Loop package

特定の回数、あるいは条件が満たされるまで、actions のシーケンスを繰り返し実行するには、Loop パッケージを使用します。

Loop packageでは、bot 内で特定の actions を繰り返し実行できます。たとえば、Microsoft Excel ファイルの各行からデータを読み取る、フォルダー内のすべてのファイルの名前を変更する、各 E メールをメールボックスに保存するといった一連の actions を繰り返すことができます。また、Loop アクション内で [If] action を使用すると、条件を検証し、その結果に基づいて、ループ内の現在の反復をスキップしたり、ループを抜けたりすることも可能です。

条件付きループでは、条件パラメーターが満たされているかどうかに応じて、異なる actions が実行されます。反復回数が指定されたループの場合、ループは最後の反復で終了し、bot の次のステップに進みます。

ループ内でactionsのシーケンスを特定の回数繰り返して実行すると、ループ内の終了条件はシーケンスを繰り返すたびに評価されます。

たとえば、10 列あるData Tableをループさせる場合、ループの終了条件に列数の動的な値を入力し、[データ テーブル] > [列を削除] actionを使用して、ループ本体内のインデックス 0 の列を削除し、bot を実行します。bot は操作を実行するたびに列を削除します。これにより、ループの終了条件が操作のたびに評価されるため、反復回数を減らすことができます。

注: bots は最大 97 のネストされたループで実行することができます。

ループ ラベル

Loop packageactions内の [ラベル] フィールドを使用すると、bot で使用されているループにラベルを付けることができます。ループにラベルを付けることにより、ネストしたループの特定のループを Break または続行することができます。
注: この機能を使用するには、Loop package バージョン (3.7.4) を使用して bots をビルドしていることを確認してください。この機能には、下位互換性がありません。
[ループ]、[続行]、[Break] actionsにラベルを追加するには、[ラベル] フィールドでループのラベルを指定します。
注:
  • 特定の bot 内の各ループ ラベルが一意であることを確認します。
  • [ラベル] フィールドでは、英数字のみがサポートされます。
次の例では、[ラベル] フィールドを使用して bot のループを Break または続行する方法を示します。
  • 最初の [ループ] actionの [ラベル] フィールドで、ラベルに「outerloop」と指定します。
  • 2 番目の [ループ] actionの [ラベル] フィールドで、ラベルに「innerloop」と指定します。
  • [ループ] > [続行] actionの [ラベル] フィールドで、続行するループのラベルを選択します。
  • [ループ] > [Break] actionの [ラベル] フィールドで、Break するループのラベルを選択します。

ループのラベル付けの方法を確認するには、ビデオをクリックしてください。

bot 内に複数のネストされたループがあり、ネストされたループ内に [ループ] > [続行] および [Break] actionsがあり、ループにラベルを付けていない場合、bot 実行時に、bot では、デフォルトで、最も近いループが Break または続行されます。

例:
  • 外側ループと、その外側ループ内にネストされた内側ループがあるとします。
  • その内側ループ内に [ループ] > [続行] および [Break] actionがあるとします。
これらのループのいずれにもラベルを付けずに bot を実行すると、bot では、最も近いループ (内側ループ) が Break または続行されます。

Loop packageActions

以下の Loop actions を使用できます。

アクション 説明
ループ [Loop] actionの使用」を参照してください。
続行

[続行] アクション」を参照してください。

If package」を参照してください。
Break

Break アクション」を参照してください。

If package」を参照してください。

Loop アクション内の反復子関連の条件

[反復子] オプションを選択して、Loop action の一部として actions セットを繰り返す回数を指定します。

反復子 説明
CSV/TXT の各行に対して 指定した CSV またはテキスト ファイルの各行に対して一連の actions を繰り返し、現在の行の値をレコード変数に代入します。「[CSV/TXT の各行に対して] 反復子の使用」を参照してください。
Data Table の各行に対して 指定したテーブルの各行に対して一連の actions を繰り返し、現在の行の値をレコード変数に代入します。「[テーブルの各行用] 反復子の使用」を参照してください。
SQL クエリ データセットの各行 指定した SQL クエリ データセットの各行に対して一連の actions を繰り返し、現在の行の値をレコード変数に代入します。データベース接続を確立するときに使用したセッション名を指定します。
Dictionary 内の各キーに対して 指定したディクショナリ変数の各キーに対して一連の actions を繰り返し、現在のキーの名前を変数に代入します。
注: bot[ディクショナリ] > [書き込み] action を含む [ループ] action を実行すると、bot はディクショナリの元のアイテム数だけを反復します。これには、[書き込み] action を使用して挿入されたアイテムは無視されます。
Dictionary 内の各値に対して 指定したディクショナリ変数の各値に対して一連のactionsを繰り返し、現在の値を変数に代入します。この変数型はさまざまなサブタイプ (文字列、数値、Boolean など)を格納できるので、action を構成するときに変数のクイック作成を行った場合、変数は [任意] のタイプになります。
注: bot[ディクショナリ] > [書き込み] action を含む [ループ] action を実行すると、bot はディクショナリの元のアイテム数だけを反復します。これには、[書き込み] action を使用して挿入されたアイテムは無視されます。
メールボックス内の各 E メールに対して 指定したメールボックス内の各 E メールに対して一連の actions を繰り返します。「[メール ボックス内の各 E メールに対して] 反復子の使用」を参照してください。
ワークシート内の各行 (Excel basic または Excel advanced) ワークシート内のデータを含む各行に対して一連の actions を繰り返し、現在の行の値をレコード変数に代入します。Excel basic または Excel advanced ワークシートを開くときに使用したセッション名を入力します。actions を繰り返す対象 (すべての行、指定した行、または指定したセル範囲) を指定します。[この変数に現在の行を代入] リストからレコード変数を選択するか、新しい変数を作成します。「レコード変数」を参照してください。
この反復子は、セル値を文字列データ型として取得します。数値、パーセント、通貨、指数、日付などの Excel セル形式をサポートしています。たとえば、[通貨] 表示形式のセルから値がテーブル変数またはレコード変数に渡された場合、通貨記号は保持されます。
  • 非文字列演算を実行するには、値を変換する必要があります。
  • Excel advanced では、[ワークシート内の各行] に対してループ反復子を選択すると、セルの表示テキストまたは値のいずれかを読み取る [読み取り] オプションが表示されます。

    たとえば、セルのコンテンツが 70% の場合、[セル値の読み取り] オプションは値を 70 として読み取り、% 形式を無視します。一方、[閲覧可能なテキストの読み取り] オプションは 70% として読み取ります。

    Recommendation: [セル値の読み取り] オプションをセルからの読み取り値として使用して、閲覧可能なテキストの読み取りよりもパフォーマンスを向上させます。

[グローバル セッション] オプションを使用し、Excel advanced package による Microsoft Excel のセッションを共有することは、このオプションではできません。

代替ソリューション: [複数のセルを取得] action を使用し、データをデータテーブル変数に保存した後で、[データ テーブル] オプションを選択して Loop package を使用します。

フォルダー内の各ファイル 指定したフォルダー内の各ファイルに対して一連の actions を繰り返し、次の 2 つのキーが含まれたディクショナリ変数に現在のファイルのプロパティを代入します。name キーはファイル名、extension キーはファイル拡張子を格納しています。

異なる拡張子のファイルを開くには、変数オプションを使用して、フォルダー パス、ファイル名、ファイル拡張子を割り当てます。まず、フォルダー パスの変数 $sFolder$ を作成します。次に、フォルダー パス内のファイルに対して、ファイル名に対応する $name$ と、ファイル拡張子に対応する $extension$ という 2 つの変数を作成します。ファイルを開くには、$sFolder$\$name$.$extension$ のように変数を文字列として組み合わせます。拡張子をさまざまなファイル タイプや開くオプションに対応させるためには、条件付きロジックを追加できます。

フォルダーの各フォルダー 指定したフォルダー内の各フォルダーに対して一連の actions を繰り返し、現在のフォルダー名を文字列変数に代入します。

[すべてのサブフォルダーを含む] オプションを使用して、隠しフォルダーを含むフォルダー内の各サブフォルダーを再帰的に反復処理します。

リストの各項目に対して 指定したリスト内の各項目に対して一連の actions を繰り返し、現在の項目を変数に代入します。action をリスト内のすべての項目で繰り返すか、リスト内の一定範囲の項目でのみ繰り返すかを指定します。この変数型はさまざまなサブタイプ (文字列、数値、Boolean など)を格納できるので、action を構成するときに変数のクイック作成を行った場合、変数は [任意] のタイプになります。
注: リスト内のインデックスは 0 から始まります。たとえば、リストの 3 番目の位置から 6 番目の位置までの項目にactionを繰り返すには、該当するフィールドに「2」と「5」を指定します。
n 回 指定した回数だけコンテナ内で actions を繰り返します。反復回数は、数値変数に代入することができます。
レコード内の各値 指定したレコードの各値に actions セットを繰り返し、変数に現在の値を割り当てます。この変数型はさまざまなサブタイプ (文字列、数値、Boolean など)を格納できるので、action を構成するときに変数のクイック作成を行った場合、変数は [任意] のタイプになります。
カレンダーの各会議 指定したカレンダー内の各ミーティングに対して一連の actions を繰り返すには、このオプションを使用します。「Microsoft 365 Calendar アクションをループ内で使用する」を参照してください。
ワークシートの各行 (Office 365 Excel) ワークシート内でデータを含む各行に対して一連の actions を繰り返します。
  • ワークシートを開くときに使用したセッション名を入力します。
  • actions を繰り返す対象 (すべての行または指定した行) を指定します。
  • 現在の行の値をレコード変数に代入できます。
XML Dataset の各ノードに対して XML Dataset 内の各ノードに対して一連の actions を繰り返し、現在のノードを文字列変数に代入します。XML ファイルを開くときに使用したセッション名を入力します。

Loop アクション内の While 関連の条件

1 つの Loop action 内に複数の関連条件を設定できます。
  1. [条件を追加] をクリックします。
  2. 以下のいずれかのオプションを選択します。
    • And: actions を実行するには、両方の条件を満たす必要があります。
    • Or: actions を実行するには、どちらか一方の条件を満たす必要があります。
  3. ドロップダウン リストから条件を選択します。
以下の条件を使用するには、[While] オプションを選択します。
While 説明
アプリケーション アプリケーションが実行中かどうかに基づいてactionsを実行するには、[アプリケーションは実行中です] または [アプリケーションは実行されていません] の条件を使用します。

アプリケーション パスを入力するか、変数を使用してパスを指定し、条件が真になるまで待機する時間 (秒) を指定します。

注: [アプリケーションは実行中です] および [アプリケーションは実行されていません] の条件は、Internet Explorer bots の場合は適用できません。それは、[Microsoft Edge] が [IE モード] で起動されている場合、対応するプロセス iexplore.exe が背後で実行されているからです。
Boolean Boolean 変数の値に基づいて actions を実行するには、この条件を使用します。この条件を使用して、2 つの Boolean 変数の値を比較するか、1 つの Boolean 変数と選択した Boolean 値を比較します。
データ テーブル 指定したテーブルに値が含まれているかどうかに基づいて actions を実行するには、[データ テーブルは空です] 条件を使用します。

列または行の数の値が [等しい] かどうか、[より大きい] かどうか、または [より小さい] かどうかに基づいて actions を実行するには、[行数] および [列数] の条件を使用します。

日時 ターゲットの日時変数の値に比べてソース日時変数の値が [等しい] か [等しくない] か、[より大きい] か [等しい] か、または [より小さい] か [等しい] かに基づいて actions を実行するには、[日時変数] 条件を使用します。
Dictionary 選択したディクショナリ変数に指定したキーが含まれているかどうかに基づいて一連の actions を繰り返すには、この条件を使用します。
注: キーの比較では大文字と小文字が区別されます。
File 以下の条件を使用して、action を実行します。
  • [ファイルの日付]

    この条件は、ファイルを作成または編集した日時を確認するために使用します。[日付]、[次の期間内に]、[の間]、または [指定日より前の日時] オプションを使用して、日付範囲を指定します。[日付] オプションを選択する場合は、ファイルの作成または変更が行われたかどうかを確認する日付を指定します。[過去の日付範囲] オプションでは、日数または時間 (時間、分、秒) を指定します。この条件が真になるまで待機する時間 (秒) を入力します。

  • [ファイルが存在する] と [ファイルが存在しない]

    ファイルが存在するかどうかに基づいて action を実行するには、これらの条件を使用します。たとえば、データファイルが存在する場合は、ファイル形式を指定してデータベースにアップロードするなどの操作が可能です。

  • [ファイル拡張子]

    この条件は、選択されたファイルの拡張子をチェックし、その結果に基づいて actions を実行するために使用します。[ファイル パス] フィールドを使用して、ファイルを選択します。

  • [ファイル サイズ]

    この条件は、指定したサイズと比べて、ファイル サイズが大きいか、小さいか、同じかを確認します。

    この条件が真になるまで待機する時間 (秒) を入力します。

Folder が存在するかどうか フォルダーが存在するかどうかに基づいて一連の actions を繰り返すには、この条件を使用します。
画像認識 これらの条件を使用して以下を確認します。
  • [画像ファイル] が [画像ファイル] で見つかるかどうか。
  • [画像ファイル] が [ウィンドウ] で見つかるかどうか。
  • [ウィンドウ] が [画像ファイル] で見つかるかどうか。
  • [ウィンドウ] が [ウィンドウ] で見つかるかどうか。
[ウィンドウ] 条件では、[ウィンドウのサイズ変更] オプションを使用してウィンドウの寸法を指定できます。このオプションによって、より信頼性の高い bot を実現できます。これによってウィンドウのサイズは、タスクが記録された寸法に変更されるため、Bot におけるターゲット オブジェクトの識別能力が高まります。
注: このオプションは、サイズ変更可能なウィンドウに対してのみ使用できます。これは [デスクトップ] または [タスクバー] オプションでは使用できません。

[ウィンドウ] の条件では、[プレビュー] オプションを使用して、キャプチャされた特定のオカレンスを選択し、画像を基準にしてクリック位置を設定できます。

JavaScript 指定した JavaScript のステータスに基づいて actions を実行するには、[スクリプトが正常に実行されました] または [スクリプトが正常に実行されませんでした] の条件を使用します。スクリプトが含まれているファイルを選択し、オプションでリスト変数を選択してパラメーターを指定します。
レガシー オートメーション [レガシー オートメーション] 条件は、移行した botsAutomation 360 でシームレスに実行することを確認するためだけに使用します。これらの条件を使用して新しい bot を開発することは推奨されません。以下を検証するには、以下の条件を使用します。
  • [Web コントロール] が存在するかどうか。
  • [ウィンドウ コントロール] が存在するかどうか。
  • [ウィンドウ コントロール] がアクティブかどうか。
  • [スクリプト] が成功したかどうか。
  • [子ウィンドウ] が存在するかどうか。

[ウィンドウ コントロール] 条件では、[ウィンドウのサイズ変更] オプションを使用してウィンドウの寸法を指定できます。このオプションによって、より信頼性の高い bot を実現できます。これによってウィンドウのサイズは、タスクが記録された寸法に変更されるため、Bot におけるターゲット オブジェクトの識別能力が高まります。

リスト 指定したリスト変数に特定の値が含まれているかどうかに基づいて actions を実行するには、[List 変数] 条件を使用します。値には [数値]、[文字列]、または [Boolean] データ タイプを指定できます。
数字 指定した数値変数が特定の値と [等しい] か [等しくない] か、特定の値 [より大きい] か、[等しい] か、または特定の値 [より小さい] か、[等しい] かに基づいて actions を実行するには、[数値変数] 条件を使用します。
Ping マシンやサーバーが実行中かどうかを確認し、その結果に基づいて action を実行するには、[Ping が成功] または [Ping が失敗] の条件を使用します。条件が真になるまで待機する時間 (秒) を入力します。
レコーダー
  • ウィンドウ内のオブジェクトを検出するには、[オブジェクトが存在します] 条件を使用します。オブジェクトをキャプチャするウィンドウまたは変数を選択します。この条件が真になるまで、つまりオブジェクトが検出されるまで待機する時間 (秒) を入力します。
  • [オブジェクトが存在しない] 条件を使用して、ウィンドウ内の特定のオブジェクトが存在するかどうかを確認し、その結果に基づいて actions を実行します。この条件が真になるまで待機する時間 (秒) を入力します。たとえば、[オブジェクトが存在しない] 条件を [ループ] > [While] 条件内で使用し、ビジネス アプリケーション上のオブジェクトが読み込まれるまで、bot が次の action を実行しないようにします。
注: [オブジェクトが存在します] と [オブジェクトが存在しません] というレコーダーの条件は、Internet Explorer モードの Chromium ベースの Microsoft Edge に対応しています。
サービス サービスが実行されているかどうかに基づいて actions を実行するには、[サービス実行中] または [サービス非実行中] 条件を使用します。[サービス リスト] を選択して、使用可能なサービスのリストからサービスを選択します。
String 指定したソース文字列の値がターゲット値と [等しい] か [等しくない] か、ターゲット値を [含む] か [含まない] かに基づいて actions を実行するには、[文字列変数] 条件を使用します。

[大文字と小文字を区別する] オプションを指定すると、2 つの文字列の大文字と小文字が一致する場合にのみactionsを実行できます。

Microsoft アプリケーションからテキストを抽出する場合、抽出されたテキストには、改行を示す /r/n 特殊文字が含まれます。テキストを比較するときに /r 特殊文字を無視する場合は、[キャリッジ リターンを無視] オプションを選択します。

文字列が空かどうかに基づく条件を作成するには、[等しい] 演算子を使用してソース値と空のターゲット フィールドを比較します。

条件付きステートメントの使用例」を参照してください。

Task Bot 指定した Task Bot のステータスに基づいて actions を実行するには、[タスクが正常に完了しました] または [タスクが正常に完了しませんでした] の条件を使用します。
VBScript 指定した Visual Basic スクリプトのステータスに基づいて actions を実行するには、[スクリプトが正常に実行されました] または [スクリプトが正常に実行されませんでした] の条件を使用します。スクリプトが含まれているファイルを選択し、オプションで変数を選択してパラメーターを指定します。
ウィンドウ [ウィンドウ タイトル] を入力するか変数を使用して、特定のアプリケーション ウィンドウが開いているかどうかを確認するには、[ウィンドウが存在する] または [ウィンドウが存在しない] の条件を使用します。条件が真になるまで待機する時間 (秒) を入力します。これらの条件は、ウィンドウのタイトルが変わらない場合に、特定のウィンドウが開いているかどうかを確認し、その出力に基づいてさらに actions を実行するために使用されます。

同じタイトルのウィンドウが存在するか、またはウィンドウのタイトルが変更されたかどうかを確認するには、[同じタイトルのウィンドウは存在しません] または [同じタイトルのウィンドウが存在します] 条件を使用します。条件が真であるかどうかを検証し続ける時間 (秒) を入力します。これらの条件は、ウィンドウ タイトルが動的である場合に使用されます。たとえば、Google アカウントの Web ページを開き、ユーザー名とパスワードを入力してアカウントにログインすると、ウィンドウ タイトルが変わります。次の action として新しいメールを作成する場合、次の action を実行する前に、これらの条件を使用して、同じタイトルのウィンドウが存在するか、タイトルが変更されているかを確認することができます。

グループ条件

一連のactionsを実行する前に bot で一度に複数の条件をチェックしたい場合、[グループを追加] オプションを使用して、複数の Boolean 条件を追加するか、グループ内で [And] や [Or] オプションを使用して複数の条件を組み合わせます。

また、グループ内に追加でグループを作成することもできます。