はじめに
すべての作業をRPAで自動化しようとするとたぶん破綻する。ExcelやIEなどのソフトウェア側の設定で可能なことはソフトウェアに任せたほうがいい。文字列の結合をRPAでやるより、Excelの関数を使って予め整形しておいたほうが楽だし、RPAにログインID/PWを入力させるより、ブラウザにキャッシュさせておくほうが楽だ。
操作記録モードだけだと、かゆいところに手が届くシナリオが作れないので、「コマンドプロンプト」実行アクションとNTTATが用意している「ライブラリ」で補完するといい感じなるだろう。
環境
WinActor ver4.x(現在の最新版はver5.0)
実装した全自動フローチャート
WinActorに関心のある人は、このページを見ることで何ができるのかの大凡をつかめるはず。以下、わたしが実装したフローチャート。
- WinActorを定時に起動する。
- 受注データ(Excelファイル)を自動で読み込む。
- 受注データ(Excelファイル)をWEBアプリケーションに入力する。
- 顧客にユーザ情報登録完了メールを、ユーザごとに本文の内容を変えてメール送信する。
- 担当者に作業完了メールを送信する。
- 登録済の受注データのファイル名に日付を付加して、別のフォルダに保存する。
上記フローチャートの基本的動作はドキュメントをみれば実装できる。以下、わたしがハマった部分についての備忘録だ。
シナリオの定時実行
たとえば毎日15時にWinActorのあるシナリオを実行することを定時実行とよぶが、WinActor自身に定時実行機能はないので、Windows標準のタスクスケジューラを利用する。WinActorは起動ショートカットごとに読み込むシナリオファイルと読み込むデータファイル(Excelファイルなど)を指定できるので、タスクスケジューラはこの起動ショートカットを実行することになる。
しかし、起動ショートカットに設定した読み込みデータファイル(Excelファイルなど)が存在しない場合、WinActorは起動に失敗する。これは、データファイルの有る無しを条件に、全体シナリオを実行したいときに大きな問題になるが対処法はある。タスクスケジューラから起動ショートカットを直接実行せずに、以下のようなバッチファイルを間に挟む。
if exist 読み込みたいデータのファイルパス start WinActor起動ショートカットのファイルパス
exit
タスクスケジューラ→バッチファイル→WinActorの順にすることで「データが無い場合はシナリオを実行しない」ことが可能になる。
また、タスクスケジューラの新規作成ウィザートからWinActorの起動ショートカットを設定するとなぜかWinActorの本体プログラムが登録されてしまうので、わたしの環境では以下のようにバッチファイルからすべての起動ショートカットを実行させている。
start WinActor起動ショートカットのファイルパス
exit
データの整形
WinActorに読み込ませるデータは事前に整形しておいたほうがいい。データの整形とは、2つの文字をくっつけたり、翌年の同日の日付を取得するといった具合だ。
「空白セル」と「未入力セル」は別物である
データの整形はWinActorでもできるが、使い慣れてるExcelに任せたほうが万人にとって楽だろう。ただし、Excelで整形したデータをWinActorにインポートするときに大きな壁にぶち当たる。Excelの関数が入力されているセルは見た目には「空白セル」に見えても「未入力セル」にはならないので、そのままだと空白データとしてWinActorに読み込まれてしまう。従って、余計な空白行はすべて削除しなければならない。この作業は、WinActorのExcel操作ライブラリ(最終行を調べるやつと行を指定回数連続で削除するやつ)を使うことで実現できる。
条件分岐
そもそもファイルが存在しない場合はデータ整形は不要だ。ファイルの存在有無によってフローチャートを分岐すればいいが、変数に格納した値は大文字と小文字が区別されるので、値が「True」なら、「True」とし「true」としないことだけ気をつける。
データの読み込み
起動ショートカットを利用した起動時のみ、自動でデータの読み込みができる。
そのほかのヒント
そのほか「ウェブアプリケーションのログイン」「Basic認証」「IEの設定」「Outlookの強制終了」「ループの分岐」「Excelの設定」「Gmailの設定」「ストレージサービスとの連携」「CSV変換」「PCロック中にシナリオを実行する方法」など WinActor の実際の利用において役立つ情報はこちらで御覧ください。