【8問目】博士の一問一答~シナリオの実行速度を実行中に変更したい
2023.01.19
今回のお悩み

博士。僕のシナリオでちょっと相談が・・・。
なんか一部分だけ重いところがあって「指定時間待機」入れてたら
そのノードで溢れかえっちゃいました。見づらくないですか?
初期設定で速度落としたくないし・・・。

意外にも真面目な感じで質問してきたのう。
それはとあるライブラリ1つで解消できるぞ!

僕いつも真面目ですけど。ていうかそんなのあるんですか?
なんでいつも先に教えてくれないんですか!

先に教えてたらワシ今頃エスパーで売っとるわ。
問
シナリオの実行速度を実行中に変更したい
変更方法
自動化でロボットのシナリオを作成するときに必ずぶつかる問題が「処理速度」です。
特にVer.7以降、大幅にシナリオの実行速度が向上したWinActorでは、操作対象のアプリケーションの動作が重いため
シナリオが先走ったために止まってしまったという話はよく聞きます。
ブラウザを対象とした操作でも、ネットワークでの遅延によって応答に時間がかかるために
次の操作を行うまで待機しなくてはいけない場合もあります。
シナリオ全体にウェイトをかける
よくある対処として、WinActorの設定を変更して実行速度にウェイトをかけるという方法があります。
これはシナリオ全体の設定のため、通常の速度で問題ない部分もゆっくり実行されることになり
シナリオが完了するまでの時間が必要以上にかかってしまいます。
指定時間ノードを利用する
もう一つの対処は、ロータス君も言っていた「指定時間待機」ノードを利用する方法です。
この方法は、待機が必要な場所がわかっている場合に有効です。
たとえばブラウザで特定のURLにアクセスした直後など、必ず一定の時間がかかるとわかっていれば
このノードを差し込むことで解決します。
シナリオ全体の速度を変えることもありません。
ただし、操作1つ1つの間に入れる必要があるため
動作が重くなる懸念のある場所が広範囲にわたるシチュエーションではあまり有効ではありません。

ということで、任意の範囲だけ実行速度を遅くするライブラリを紹介しよう。
これを使えばシナリオ実行中に実行速度を可変にできるのじゃ。
スロー実行の設定ライブラリを利用する
ライブラリは以下の場所に格納されています。
NTTATライブラリ > 01_WinActor制御 > 03_スロー実行の設定 > スロー実行の設定
プロパティ設定はシンプルで、実行速度を10段階から設定するだけです。
0が最も早く、10に近いほど速度がゆっくりになります。(デフォルトは0)
このライブラリを通過すると、以降のシナリオが全てここで設定した速度で実行されていきます。
このライブラリを、実行速度をゆっくりにしたい範囲の最初に速度「10」で配置し
そのエリアを抜けて通常の速度に戻したい場所に速度「0」で配置することで
任意の範囲だけをゆっくり実行させることが可能になります。

こんな感じの使い方じゃな。
こうすれば指定時間待機でシナリオが溢れかえることもないじゃろう。
答
任意の範囲の実行速度を変えたいときは
「スロー実行の設定」ライブラリを使うのじゃ!

なるほどこれは便利ですね!
範囲の場合はこれ、ピンポイントの場合は指定時間待機を使えばよさそう。

うむ!それで問題ないじゃろう。
安定した動作のためとはいえ、ウェイトが不要なところまで遅くなっては困るからのう。
関連記事こちらの記事も合わせてどうぞ。
2025.03.07
【30問目】博士の一問一答~コマンド実行でoutlookを起動したい
2025.01.21
【29問目】博士の一問一答~画面外のノードを探したい
2024.12.13