【初心者向け】UiPathによるRPA実装23 日付データ形式適正化とアプリケーションへの入力処理自動化

前回の記事ではExcel上のセルに入力されたデータの取得方法を紹介しました。ただ最後に、Excel上の日付データには時/分/秒の無駄な情報が含まれていることが分かりました。

そこで今回は、まず取得した日付データの適正化(無駄な情報の省略)について紹介したいと思います。

それに続き、取得したデータのアプリケーションへの登録自動化方法についても説明します。

<スポンサーリンク>

日付データの適正化

さて、まずは日付データの適正化を行いましょう。取得する日付データは”年4桁/月2桁/日2桁 時/分/秒”という構造になっています。ということは、”/”も含めて先頭の10桁だけを取得すれば良さそうですね。

文字列の一部を切り出すためには、String型に用意されている「substring(切り出す最初の文字のインデックス(※0から始まります), 切り出す文字数)」という関数が使えます。ただ、日付データは現在GenericValue型に格納されているため、まずはこれをString型に直す必要があります

この情報を元に、Write lineボックスのtext欄に入っている”expDate”を書き換えましょう。

具体的には、以下の文字列に置き換えます。

expDate.ToString.Substring(0,10)

これは、「日付データであるexpDateをtoString関数によりString型に置き換え、そのうえでSubstring関数により先頭(インデックス0)から10文字を切り出す」ことを意味しています。

これで一度処理を実行してみましょう。

以下のように、Outputペインに正しく切り出された日付データが表示されていますでしょうか。

取得データの登録処理

Recording機能を利用した登録処理自動化

さて、それではExcelファイルから取得した情報を経費申請アプリケーションに入力して申請する処理を追加しましょう。

入力、申請にはRecording機能のClickとType intoを使用します。説明は少し簡略化して書きますので、詳細な手順を忘れてしまった方は以下の記事もご参照下さい。

前回は経費申請アプリケーションの紹介を主として、それに加えてFlowchart Activityを用いたアプリケーション起動の自動化方法を紹...

まずは経費申請アプリケーションの申請入力画面を開いておき、その上でBasic Recordingを立ち上げます。そして、4つのブランク欄に対してClickとType intoを繰り返し、最後にアプリケーション上の「申請」ボタンに対してclick操作を行います。作業が終わりましたら、Basic RecordingウインドウのSave & Exitをクリックして、操作を保存して下さい。

なお、type intoに入力する文字列ですが、この後修正しますので、今は適当な文字を入れておいて下さい。ここでは”a”と入れておきます。

ここまでの操作が完了すると、Mainワークフローに新たに「Recording Sequence」が登録されているはずです。

この内容を修正し、アプリケーションへの登録操作を完成させましょう。

Recording Sequenceの修正

ここでは大きく分けて3つの作業を行います。

①Sequence名の修正

②入力文字列のVariableへの置き換え

③Variable Scopeの変更

順に説明していきます。

①Sequence名の修正

まずは後々のメンテナンス性を考慮し、Recording Sequenceの名称を変更しましょう。ここでは、「Appへの登録」という名称にしておきます。ついでに、上の「Excelデータのコピー」ボックスと線でつないでおきましょう。

②入力文字列のVariableへの置き換え

続いて、先ほど適当に指定した入力文字列を、Excelから取得したVariableに置き換えます。

まずは「Appへの登録」ボックスをダブルクリックで開き、Type into Activityを見てみて下さい。先ほど入力した”a”という文字列が表示されています。

これを、各Variableに置き換えましょう。例えば、社員番号であれば、”a”をempNoに置き換えます。日付データであるexpDateについては、前述したexpDate.ToString.Substring(0,10)という表現に置き換えるのを忘れないでください。

さて、一通り終わったところでよくよく見てみると、青い「!」マークがついていると思います。このマークにカーソルを当ててみて下さい。

「宣言されていない」というメッセージが表示されていますね。これは、expAmountなどのVariableのScope設定が正しくないために、「Appへの登録」ボックス内ではこのVariableが使えないことを意味しています。

③Variable Scopeの変更

ということで、VariableのScopeを変更しましょう。

一旦Mainワークフローに戻り、「Excelデータのコピー」ボックスをダブルクリックで開き、さらにその中のDoボックスを選択します。その状態で、Variablesペインを見てみて下さい。

各VariableのScopeがDo、つまり、これらがDoボックス内でしか使えない設定になっています。そこで、これらをDoからFlowchartへ変更し、先ほど追加した「Appへの登録」ボックスでもVarialeが使えるようにしましょう。

これでScopeの修正は完了です。「Appへの登録」ボックスを見てみると、青い!マークが消えているはずです。

テスト実行

さて、それでは登録処理がうまく自動化されたか確認するために、処理を走らせてみましょう。経費申請アプリケーションが起動されている場合には、閉じておいて下さい。

申請画面へのデータコピーが行われ、申請ボタンが押されて入力された文字列が消えたら作業は完了です。

念のために、入力データがテキストファイルとして保存されているか、アプリケーションを格納しているフォルダを見てみましょう。

おや?登録された結果はアプリケーションが保存されたフォルダ内に、”expense.txt”というファイル名で保存されるはずなのに、ファイルが存在していませんね。

代わりに、UiPathのプロジェクトフォルダを見てみましょう。

こちらにファイルは生成されているようです。

これ、実は経費申請アプリケーションのバグによるもので、現状では経費申請アプリが保存されているフォルダではなく、アプリを立ち上げたワークフローファイルが保存されているフォルダに登録結果が生成されてしまいます

このような場合、本来論からすると元のアプリケーションを改修すべきですが、アプリケーションが複雑であったり、改修のためのリソースが取れない場合などは、UiPathの処理で暫定的に対応する場合もあります。本ケースでは暫定対応でしのぐことにしましょう。

終わりに

今回の記事は以上です。Excelから取得した日付データのフォーマット修正のために関数を使用する方法と、Variableを経費申請フォームに貼り付け、申請を行う方法について紹介しました。

ただ、最後に登録結果ファイルが、あるべきフォルダに生成されないという問題が発見されましたね。

次回の記事では、ファイルをUiPathで取り扱う方法を紹介しながら、この問題に対する対応を進めて行きたいと思います。