【AutomationAnywhere】WinActorを管理する – vol.2

前回のおさらい

前回は
AutomationAnywhereでWinActorを管理すると

  • 管理
  • セキュリティ
  • 起動条件のカスタマイズ

などの面でメリットがあり、WinDirectorよりも安価に高機能なサーバー型RPAが導入できることをまとめました。

今回は「その方法で本当に動くの?」ということを、実際にボットを作成して検証していきます!

※前回の記事をお読みでない方は、こちらからご確認ください↓

実現できそうな方法は3種類

  1. WinActorの出力するログから結果を取得
  2. WinActorシナリオ内で結果ファイルを出力し、結果を取得
  3. WinActorシナリオ内でメールを送信し、結果を取得

今回はこの中から、
「1.WinActorの出力するログから結果を取得」
を検証してみます!

つくってみる

実現方法のおさらい

大まかな実現方法は下記の流れの通りです。

  1. AutomationAnywhereがVBスクリプトを起動する
  2. WinActorのタスクが動く
  3. WinActorがログを出力する
  4. AutomationAnywhereがログを読み取る
  5. 結果を判定して終了

メリット

  • シナリオに手を入れずに管理できる!​
  • シナリオごとに、AAのタスクをカスタマイズしなくても使える!​

利用シーン

ログを確認して結果を取得する特性上、下記のようなケースに向いています。

  • 詳細なログの通知は必要ない。
  • 実行されたかどうかと、エラーの有無が分かれば良い。​

事前準備

ログ出力の設定

ボットをつくりはじめる前に、WinActorのログ出力の設定をしておきましょう。

WinActorメイン画面から
設定 > オプション > ログ
の順に選択し、下の画像のように設定します。

WinActor – オプション画面

ファイルパスは自由に設定可能ですが、AutomationAnywhereで読み取るために、拡張子(ファイル名の最後の「.」以降の部分)は「.txt」にしておきましょう。

また、ファイルエンコーディングの設定を忘れてしまうとAutomationAnywhereで読み取ることができないので、必ず「MS932」に設定してください。

シナリオショートカットの作成

次に、実行したいシナリオを、ショートカットから起動できるようにしておきましょう。

WinActorメイン画面から
設定 > 起動ショートカット作成
を選択し、下の画像の通りに設定します。

WinActor – ショートカット作成画面

保存すると、指定した場所に起動ショートカットが作成されます。
この時、ファイルタイプは必ず「VBSファイル」を選択してください。

起動用ボットの作成

概要

続いて、AutomationAnywhereでタスクボットを作ります。
ショートカットからファイルを起動するだけなので、処理内容は極めて単純です。

タスクボットを作る

今回は下記のような流れの処理にしてみました。

  1. シナリオを起動する(Run Scriptコマンド)
  2. ログの行数を確認する(Read From CSV/TEXT コマンド)
  3. ログの内容を確認する (Read From CSV/TEXT コマンド)
  4. 最終行であることを確認(IF:Variable コマンド)
  5. 処理結果の判定 (String Operation コマンド)
  6. 処理結果をもとに分岐( IF:Variable コマンド )
開発画面

若干複雑に見えますが、使っているコマンドの種類は4種類と、意外とシンプルな構成です!

エラーの判定方法について

今回はエラー時に「WinActorを終了」ノードを利用して処理を終わらせているシナリオを想定します。

その場合の正常時とエラー時のログの違いを見てみましょう。

正常終了時
エラー終了時

正常時は【実行終了】のログで終わっているのに対し、
エラー時は【アクション】のログで終わっていますね。

この違いを読み取ることでエラーを判定しています。

動かしてみる

今回は、デスクトップにあるファイルを開くだけのシナリオで動作を確認します。

デスクトップに開きたいファイルがあれば正常、存在しなければエラーとなります。

WinActorフローチャート

正常終了の場合

処理を実行するとWinActorが起動し…

ファイルが開かれて、「正常」のメッセージボックスが出ました。
どうやら起動は問題なさそうですね。

エラーの場合

エラーの場合も無事判定できるのでしょうか?
開こうとしているファイルを消してから試してみます。

あらかじめファイルを消しておく

すると…

(運よくエラー処理に入る瞬間のキャプチャが撮れました。
よく見るとログも確認できます)

WinActorは起動しましたが…

メッセージボックスは「エラー」となっています。
エラーの有無を判定できていますね!

結果

AutomationAnywhereでのWinActor管理は実現可能!

応用編

ここまでの結果で「実現可能!」と結論付けましたが、

「ちょっと待て、メッセージボックスが出せたところで、どうやって管理するんだ?」

とお思いの方もいらっしゃるのではないでしょうか?
ごもっともです。実施の運用でメッセージボックスを出しても何ら役に立ちません。
折角ほかの端末から起動できるようになっても、結局人がPCを開いて確認することになってしまいます。

しかし!今回の検証結果はあくまでスタート地点です。
この結果を踏まえてさらに一工夫加えることで、運用の幅をさらに広げることができます!

例えば…

活用方法としてはこんなことが考えられます。

  • エラー時にAutomationAnywhere側からもエラーを発信して
    ControlRoom(AAの管理ツール)で実行状況を確認できるようにする
  • AutomationAnywhere でリカバリ処理を実行する
  • エラー処理を共通部品化して、対応内容を統一&
    対応方法変更時に簡単に更新できるつくりにする

などなど…
他にも様々な工夫が考えられます。

しかも!
これらは一度作ってしまえば簡単に流用可能なので、
「最初のボット作成 + α」の手間で 数多くのWinActorシナリオに適用可能です!

まとめ

今回の検証はいかがだったでしょうか!
活用方法の広がりを考えると、なかなか魅力的な構成といえるのではないでしょうか。

次回は、WinActorのシナリオにも一工夫加えることで、さらなる活用の可能性を見ていきます!