WinActor処理の遷移速度が操作対象アプリケーションの応答速度を追い越してしまっていることが要因と思われますが、対応策はありますか?
本記事では、安定稼働に向けた方策として「待機処理」をご説明します。
1.待機処理の重要性
WinActorはクライアント側で動作するソフトウェアのため、PCのスペックやタスク状態に影響を受けます。
PCのスペックやタスク状態に依存する場合、WinActor部品で操作対象に操作を加えた際の応答時間にバラつきがでます。
例えば、以下のような処理を想定してみます。
どこに問題がありそうでしょうか?
赤枠で示した、ダウンロード処理の部分が怪しそうです。
「取得ボタン押下」をイベントモード、もしくは画像マッチングでおこなった場合、ボタンを押下した時点で、WinActorは次の処理に進みます。
そして、即座に「取得したファイルを開く」処理に遷移します。
PCの処理が重たい場合、ダウンロードが遅くなり、存在しない(ダウンロードが完了していない)ファイルを開こうとして意図しない結果が引き起こされる可能性があります。
今回は、ダウンロード処理を一例に挙げました。
他にもページ遷移やポップアップへの操作などで同様のことがいえます。
2.待機処理の種類
上記のようなエラーを回避する方法は3つあります。
(1)物理的な待機時間を設ける
(2)画面状態を監視する
(3)想定されるアウトプット(値)の有無を監視する
(1)物理的な待機時間を設ける
「指定時間待機」
<メリット>
時刻・日付単位での待機ができる。
<デメリット>
処理結果を確認しているわけではないので、十分な待機時間が必要である。
(2)画面状態を監視する
「ウィンドウ状態待機」
「IE操作(読込完了待ち)」*ライブラリ>NTTAT>17_IE関連
<メリット>
前処理によって表示される画面が操作可能になるまで待機してくれる。
<デメリット>
画面表示がない操作対象の処理結果は確認できない。
(3)想定されるアウトプット(値)の有無を監視する
以下のような、構造をつくります。
繰り返しグループの条件
分岐グループの条件
<メリット>
画面表示がない対象でも、処理結果を監視できる。
例)指定フォルダにファイルが存在するまで繰返しを行う。
<デメリット>
繰返し回数に制限を設けないと、別の問題でエラーが発生していた場合、無限ループになってしまう。
以上のような部品もしくは仕組みを用意することで、WinActorの処理が意図せず先に進むことを防ぐことができます。
安定稼働に向けて、是非実装を検討してください。