RPA(UiPath)の直し方。ふるさと納税データをExcelから確定申告コーナー(e-Tax)へ入力。

  • URLをコピーしました!

ソフトやサービスに変更があると、 RPA は動かなくなることがあります。
自分である程度直せるようにしておきたいものです。

L1005353

※確定申告コーナーとExcel by Leica M10

プログラミングの敵は人

プログラミングをすると、人がやらなくても仕事を効率化することができます。
繰り返しやる仕事を人がしなくてすむわけです。

しかしながら、その便利なしくみを人が壊してしまうこともあります。
プログラミングの敵は人です。

たとえば Excel からデータを読み込もうとしたときに、人がそのExcelを変えてしまっていたら、プログラムは動きません。
セル A1の日付を読み取るプログラムなのに、その日付がセルB2へ移動してしまっていたら、もう動かないわけです。

もちろん人がどう動かそうと問題ないようにプログラミングすることはできなくはありませんが、それはそれでプログラミングの手間が膨大に増えてしまいます。

人がプログラミングの邪魔をしないようにするのが得策です。

これは、プログラミングの1つ(と私は考えています)、 RPA でも同様です。

RPA×ブラウザの注意点

Excel 上で基本的に動く Excel マクロであれば、Excelを自分なり他の人が壊さなければ、プログラムが動くには問題ありません。
「ここを変えないように」ということを伝えることもできます。
面識のない人が、そのExcelを触ることはまずないでしょう。

一方で、RPA で、ブラウザに入力する入力する操作を効率化していた場合は、事情がちょっと変わってきます。
そのサービスやソフトを面識のない誰かが触るからです。

もちろん、そのサービスをよりよくするための変更ではあるのでしょうが、RPA で使っていると困ります。
必要のない変更ならして欲しくないものですが、いたしかたありません。
(人によって重要度は違うものですので)

ネット上のサービスは随時変わることがメリットですが、その随時変わることがRPA上、困るわけです。
昨日問題なく動いていたプログラムが今日は動かないこともありますし、去年動いていたプログラムが今年は動かないなんてことは、よくあります。

だからこそ RPA を使うなら、自分である程度修正できるようにしておきたいものです。

RPA のプログラムを直す場合の考え方を、事例を元にまとめてみました。

RPA UiPathの直し方。ふるさと納税のExcelデータをサイトに入力する事例。

今回の事例は Excel にこういったふるさと納税のデータを

Screenshot_15
国税庁の確定申告作成コーナーへ入力するという事例です。

※ふるさと納税のデータ加工については、こちらの記事を参考にしていただければ。
ブラウザ(ふるさと納税)からExcelへデータ加工事例とコツ&RPA UiPathで自動入力 | EX-IT

昨日も個別コンサルティングで使いました。

image

プログラムは、このようなものです。
Excelを読み込み、Screenshot_41

 

サイトを開いて、Screenshot_42

 

繰り返し、Excelから月、日を入力し、項目を選択し、

Screenshot_43

都道府県、市区町村、金額(ふるさと納税の額)を入れ、最後に[入力終了]を押し、

Screenshot_44

最後にどこまで繰り返すか(Excelにデータがある限り)を指定します。

Screenshot_45

この入力先のサイト(確定申告コーナー)が、ちょっとだけ変わりました。
そのため、このままのプログラムでは動かないわけです。

[ブラウザーにアタッチ]のエラー

プログラムを実行してみると、まずこういったエラーが出ます。Screenshot_9

セレクターというのは、ソフトやブラウザのパーツ(ボタンやボックスなど)を選択している工程で、ここは[ブラウザーにアタッチ]というと書いてあるとおり、「ブラウザーを選択する」というものです。

UI 要素というのは、ユーザーインターフェイスで、ブラウザ上のそれぞれのパーツをいいます。
ブラウザのタブ、ウィンドウ、ボタン、チェックボックスなどです。

エラーでは、その UI 要素が見つからないと書いています。
[ブラウザーにアタッチ]の右上のアイコン→[セレクターを編集]をクリックすると、

 

どうやってセレクトしているか(選んでいるか)というのがわかります。

ここでは、htmlwindowsnameが1577342676282、titleが、【確定申告書作成コーナー~】という指定です。
Screenshot_10

このhtmlwindowsnameは、ブラウザーを立ち上げることに変わるので、この場合はいったんチェックを外してウインドウのtitleだけで判断してくれればいいという風に変えると、エラーがなくなります。

 

元号のエラー

プログラムを実行すると、ひとまず次の画面には進みました。
しかしながらまたエラーで止まります。
今度のエラーは 、月を選択するところでアイテム(選択すべきもの)が見つかりませんでしたと。
Screenshot_11

画面をぱっと見ただけでは違いがわかりませんが、今回の2019年分の確定申告はこれまでと大きな違いがあるのです。
Screenshot_12

2019年は、平成31年1月から令和1年(元年)12月までです。
確定申告というのは、通常、その年の1月から12月までの期間でやりますので、年を入れる必要はなく、月から入れればいいわけです。
前回までは、ここに、「平成30年」とあらかじめ入っていました。
今回は、平成か令和かを選ばなければいけないわけです。

その変更がプログラムに影響しています。

また平成を選ぶと、年に「31」が自動的に入り、令和を選ぶと「1」が自動的に入るので元号のみを指定すればいいということです。
Screenshot_13

Screenshot_14
(私が実際にやったときは、これも最初はわからず、年もデータとして入れるプログラムをつくっていました。
今回の記事では、その過程は省いています。)

Excelデータに元号欄を追加しましょう。

数式でやるなら、月が5以上だったら令和、そうじゃなかったら平成と自動的に表示することもできます。

Screenshot_16

元号を読み取る過程をつくってプログラムに入れていきましょう。
UiPathのウェブレコーディングで、
Screenshot_17

Screenshot_18

ブラウザ上でたとえば平成を選択して記録します。

Screenshot_19

記録した結果は、UiPathでこうなりますので必要な[項目を選択]だけを移動させて、

Screenshot_20

「月」を入れるプログラムの前に置きましょう。
Screenshot_21

その後、[ブラウザーのアタッチ]という工程は不要なので消しておきます。
(Deleteキー)
Screenshot_23

ただ、このプログラムだと平成が必ず入ってしまいますので、それをExcelデータから読み取っていれるように、変えていきましょう。

 

Screenshot_34

 

月の部分はrow(”月”).ToStringで、Excelの月という列からデータを1つずつ読み取るように伝えていますので、この部分をコピーしてrow(”元号”).ToStringにすれば、元号を1つずつ読み取るように変えることができます。

Screenshot_35

 

……もう2019でいいやんと思うのですが。

 

「入力終了」と「入力確認」

再度動かしてみましょう。
データの入力はうまくいっていますが、また止まります。
今度は何で止まったのか見てみると、やはり「 UI 要素が見つかりません」と出ています。
Screenshot_25
よくよく見ると[入力終了]というものが見つからないと出ており、画面を見てみると今回から[入力終了]が[入力確認]に変わっていました。

Screenshot_27

セレクターを見ると、[入力終了]となっています。

Screenshot_28

 

入力終了でいいやんと思うのですが……。

 

UiPathの[入力終了]の右にあるアイコンをクリックし、[画面上で指定]を選び、ブラウザーの[入力確認]をクリックしましょう。

Screenshot_31

こう変われば問題ありません。

Screenshot_32

 

これで、無事動きました。

 

Screenshot_36

 

なお、この[入力確認]の変更は医療費控除でもありました。

今回は、サイト側に変更があったので、プログラムが動かなくなっていました。
ブラウザーの場合は、自分の意図しない変更というものはあり得ますので、プログラムを多少なりとも直せるようにしておきたいものです。

修正後のサンプルはダウンロードできます。
(ファイル名は適宜指定していただければ)

EX-ITサンプル ふるさと納税→e-Tax



■編集後記
昨日は確定申告の個別コンサルティングで、お客様の新居へ。
様々な工夫をされていて、びっくりです。

毎年、家族でうかがわせていただき、私とお客様が確定申告をしている間、妻や娘は、奥様や娘さんと。
不思議な空間です。

■昨日の1日1新
※詳細は→「1日1新」

お客様の新居

■昨日の娘日記

昨日はお客様の娘さんと遊んでもらい、楽しんでいました。
疲れ果ててその場で寝るくらいに。
ぬいぐるみの「しろまるひめ」を気に入り、メルカリで探して買いました。
(姫路のマスコットキャラとのこと)

  • URLをコピーしました!