WinActorをタスクスケジューラで自動起動する その1

複数のシナリオを自動実行したい

WinActorを手動で起動してシナリオを開いて実行ボタンをクリックし結果を確認してWinActorを閉じる、ではなくて定時に自動実行して結果を通知するようにしたいです。

業務によっては手動で実行するべきものもあると思いますが、完全に自動化したいので、すべてのシナリオを同じ構成で作成しようと思います。

シナリオを作成する

「C:\WinActor\シナリオ」フォルダのなかにシナリオ毎のフォルダを作成して管理することにしました。

「C:\WinActor\シナリオ\01_シナリオ 」 フォルダを作成し、01_シナリオ.ums6を作成しました。

起動ショートカットを作成する

設定-起動ショートカットの作成から、起動用のショートカットを作成しました。

作成したショートカットを実行すると、WinActorが起動してシナリオを実行して終了します。

バッチファイルを作成する

作成したショートカットをタスクスケジューラに登録してもいいのですが、ショートカットを呼び出すバッチファイルを作成して、バッチファイルをタスクスケジューラに登録するようにしました。

作成したショートカット(lnk)をstartコマンドで起動します。このバッチファイルを手動で起動してもシナリオを実行できます。タスクスケジューラでスケジュール登録すれば自動実行できます。

バッチファイルを作成した理由

startコマンドの前に処理を追加することで、シナリオを呼び出す前に制御できます。

たとえば、あるフォルダに特定のファイルが存在したときにシナリオを実行したいときなどに、バッチファイルのなかで、事前にチェックができます。シナリオのなかでも同じことができますが、シナリオ前で判定したいとき(業務要件によっては)に使います。

また、バッチファイルのなかで動的にcsvファイルを生成し、起動したシナリオでcsvファイルを変数に読み込むこともできます。これもシナリオのなかで同じような処理を作ることもできますので、正解はわからないですが、保守しやすいように作ることが大事です。

シナリオを作成するときに考えること

タスクスケジューラで自動実行するときに、WinActorのアプリケーションが起動していると、シナリオが実行できません。作成したショートカットはWinActorを起動するショートカットです。すでにWinActorが起動している場合は、新たに起動することはできません。

複数のシナリオを自動実行するためには、シナリオの作り方を考える必要があります。

・途中でとまってはいけない。
 →待機ボックスなどのダイアログは使用禁止。
 →エラー発生時の停止もしないようにする。

・シナリオ途中でユーザーが判定するものはつくらない
 業務の内容にもよりますが、途中で選択したり、入力するようなシナリオは自動起動にはむいていません。シナリオ実行の事前に値がわかっているものは、エクセルなどの外部ファイルに編集しておけば、シナリオのなかで読み込むことができます。

・結果がわかるようにする
 →実行画面をみないので、結果をメール通知する。

・エラー時にエラー内容がわかるようにする
 →エラー時に画面をとめないので、エラー内容と画面のスクリーンショットをメール通知する。

エラーの対応はシナリオ内のノードをすてべ「例外処理」で囲めばできます。Javaのtry catchと同じです。

つづく。

Systemrpa, winactor

Posted by zzz