Design Studio は、デザイン時に以下の 2 つのロボット実行モードをサポートします:Minimal Execution (ダイレクト) および Smart Re-execution (フル)。このトピックでは、この 2 つのモードについて詳しく説明します。新しいロボットの作成時に、新規ロボット ウィザードで実行モードを選択できます。実行モードを表示または変更するには、ロボット設定のデザイン モード タブを使用します。選択されたロボットの実行モードは、デザイン モードでの実行にのみ影響し、デバッグ モードや RoboServer の実行には影響しません。
最小実行 (ダイレクト)
Minimal Execution (ダイレクト) モードは、従来の Design Studio 実行モードです。9.5 以前のバージョンで記述されたロボットは、すべてこの実行モードを使用します。また、このモードは新規ロボットのデフォルトのモードです。ロボット グラフの Minimal Execution モードでステップをクリックすると、ダイレクト パスにない以前の分岐とイテレーションをスキップし、Design Studio はそのステップへの最短のダイレクト パスを選択します。次の例を考えてみましょう。
通常、ロボットは実行時にステップ E へ到達する前にステップ A、B、C および D を実行します。ただしデザイン モードでは、ステップ E をクリックするとステップ A および D の実行のみが行われます。
同様に、ステップがループ内にある場合は、選択されたイテレーションのみが実行されます。
イテレーション カウンタが 3 に設定されているため、ステップ C をクリックするとステップ A、B および C のみが一度実行され、ステップ B では第 3 のイテレーションが選択されます。
Minimal Execution モードは、できるだけ少ないステップを実行するように最適化されています。複雑なウェブサイトとやり取りするステップなど、実行にかなりの時間がかかる大きなロボットやステップがあるとき、このモードが便利です。一般的に、データ収集を行う多くの場合または外部サイトとの重要なやりとりを行うロボットには、Minimal Execution が推奨されます。
Minimal Execution モードの欠点は、デフォルトのパスを使用してステップにロボットが直接到達できない場合に、ユーザーが指定されたステップへのパスを選択する必要があることです。たとえば、パスのトライ ステップによってロボットの一番上の分岐が妨げられることがあります。
次の例をご覧ください。
ステップ C をクリックした場合に、[値判定] ステップでテストが失敗すると、Minimal Execution モードは続行されません。この場合、ステップ C に対する実行パスを指定するには、ユーザーが最初にトライ ステップの一番下の分岐を明示的にクリックする必要があります。
スマート再実行 (フル)
Smart Re-execution モードにおいて、デザイン モードでのロボットの実行方法は実行時またはデバッグ モードで実行される方法と同様です。一例として、以下のロボットでステップ C をクリックすると、値判定ステップでテストが失敗した場合に、トライ構造の一番下の分岐を通ってロボットが自動的に実行されます。
[値判定] ステップの青色の感嘆符アイコンは、[次の代替手段を試行] へのエラー処理がトリガーされたことを示します。ループ内のステップをクリックすると、繰り返しステップによって、選択したイテレーションまでを含むすべてのステップが実行されます。
以下の例では、ステップ C をクリックするとループのイテレーションが 3 回実行されます。
さらに、ループの下の分岐のステップをクリックすると、ループのすべてのイテレーションが実行されます。例として、以下のロボットをご覧ください。
ステップ D をクリックすると、ステップ A の実行と ステップ B および C の繰り返し (ループ B の反復回数と同じ回数) が実行され、最終的にステップ D で停止します。
Smart Re-execution モードが特に便利なのは、グローバル変数で作業する場合や、正確な変数に応じたステップがロボット内で後続する場合などです。このモードは、ウェブサービス (REST または SOAP) 呼び出しのペイロードを構築したり、Excel ドキュメントを作成したりするのに便利です。XML または Excel ドキュメントはグローバル変数に埋め込まれますが、そのコンテンツはループの実行中に追加されます。ドキュメントを生成するループの下の分岐で、ロボットはドキュメント全体を取り出し、それをウェブ サービスまたは同等のサービスにポストします。この場合、ドキュメントが確実に埋め込まれているため、デザイン モードでウェブ サービスの呼び出しをテストする場合に、Smart Re-execution モードによるロボットの構築が容易となります。
Smart Re-execution では、ウェブサイト、データベース、またはウェブ サービスによる外部とのやりとりがキャッシュされます。実行結果を格納するための前提条件 (ロードする URL を決定する変数など) が変更されるまで、キャッシングによってステップの再実行が回避されます。Smart Re-execution モードには、Minimal Execution モードよりも多くのメモリを消費します。
また、Smart Re-execution モードは、デバイス オートメーション ワークフローをサポートするモードです。
外部と重要なやりとりを行う大型ロボットや長時間稼働するロボットには、Smart Re-execution モードはお勧めしません。こうしたロボットでは、実行時間が長くなり、メモリの使用量が高くなり過ぎてしまいます。
ロボットのデザイン時の実行時間を短縮するために、Design Studio で分岐を右クリックしてロボットを無効にすることもできます。デバッグ モードでも同様の設定を適用することができます。さらに、選択したイテレーションで指定された条件に基づいて、分岐を無効にすることもできます。
また、ロボット構成の [デザイン モード] タブには、[外部の再実行を回避] オプションがあります。このオプションにチェックを入れると、前の実行でキャッシュされた結果が使用できない場合でも、ステップが再実行されないようにすることができます。この場合、ロボットの編集は可能ですが、作業対象となる現在の入力状態は表示されません。このオプションは、外部環境とのやりとりの再実行を避ける場合にのみ使用します (たとえば、再実行によりパートナーのシステムでデータに不整合が生じる、または重複が発生するといった場合など)。