4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Automation Anywhere A2019で使える条件分岐/繰り返し処理などのフロー制御機能

Last updated at Posted at 2020-07-26

Automation Anywhere A2019ではフローをドラッグ&ドロップで構築していくことで業務を自動化するのですが、得られたデータの個数だけ同じ処理を繰り返したり (繰り返し処理)、得られたデータの条件によって処理を変えたり (条件分岐)といったこともやりたくなってくるでしょう。そのような場合、フローは単純に一方向に流れるだけでなく、分岐したりループしたり、時にはこれらの処理が入れ子になったりすることもあります。A2019ではどのような処理が可能なのかについてみていきます。

環境

  • Automation Anywhere A2019.14 (ビルド5322)

1. ループ処理

**「ループ」はRPAの処理で得られたデータの個数分/指定回数だけ繰り返したり、指定条件を満たす間ずっと繰り返しをすることができる便利なしくみです。ループ処理には「ループ」「Continue」「Break」**の3種類のアクションがあります。

公式な説明は以下にあります。

image.png

「ループ」をドラッグ&ドロップすると、"折り畳み式の領域" が作られ、その中にアクションを入れられるようになります。ループは入れ子にすることもできます。

ContinueやBreakはIf文と入れ子で利用した場合に、条件分岐した特定の枝の指定した個所で、繰り返しの最初に戻ったり (Continue)、ループの "折り畳み式の領域" を抜けて次の処理に移ったり (Break) することができます。

フロー表示
image.png

リスト表示
image.png

右側の「アクションの詳細」パネルでは以下のようなオプションが利用できます。
image.png

1-1. データの個数分/指定回数だけ繰り返し

**Loop Type=反復子 (Iterator)**で利用できます。反復子のリストで利用できるオプション一覧は[ループ] パッケージを参照してください。既定では「n回」になっています。実際にドロップダウンに出てくる表記は以下ですが、製品ドキュメントと訳語が違うものが結構あるので注意してください。

CSV/TXT
 CSV/TXTの各行に対して
Eメール
 メールボックス内の各Eメールに対して
Excelの基本操作
 For each row in worksheet
Excelの高度な操作
 For each row in worksheet
Office 365 Excel
 シートの各行
Office 365カレンダー
 カレンダーの各会議
XML
 XML Datasetの各ノードに対して
データテーブル
 テーブルの各行用
データベース
 SQLクエリデータセットの各行に対して
ファイル
 フォルダーの各ファイルに対して
フォルダー
 フォルダー内の各フォルダーに対して
リスト
 リストの各項目に対して
ループ
 n回
 レコード内の各値に対して
辞書
 辞書内の各キーに対して
 辞書内の各値に対して

ちなみに、この条件はパッケージSDKで独自に開発して追加することが可能です。興味がある場合は見てみてください。

1-2. 指定条件を満たす間ずっと繰り返し

Loop Type=Whileで利用できます。Whileのリストで利用できるオプション一覧は[ループ] パッケージを参照してください。実際にドロップダウンに出てくる表記は以下ですが、製品ドキュメントと訳語が違うものが結構あるので注意してください。

条件は11個まで並列に配置でき、And/Or (および/または)条件で関係付けることができます。

Boolean
 Boolean condition
Image Recognition
 画像ファイルが画像ファイルで検出されない
 画像ファイルがウィンドウで検出されない
 ウィンドが画像ファイルで検出されない
 ウィンドウがウィンドウで検出されない
 画像ファイルが画像ファイルで検出される
 画像ファイルがウィンドウで検出される
 ウィンドが画像ファイルで検出される
 ウィンドウがウィンドウで検出される
Javascript
 Script is successful
 Script is unsuccessful
Legacy Automation
 Web control exists
 Web control does not exist
 Window control is active
 Window control does not exist
 Window control exists
 Window control is not active
 Script is unsuccessful
 Script is successful
 Child window does not exist
 Child window exists
Ping
 Pingが成功
 Pingが失敗
Taskbot
 Task successful
 Task unsuccessful
VBScript
 Script is successful
 Script is unsuccessful
アプリケーション
 アプリケーションが実行されていません
 アプリケーションが実行中です
ウィンドウ
 ウィンドウが存在する
 ウィンドウが存在しない
データテーブル
 Data table is empty
 Number of columns
 Number of rows
ファイル
 ファイルの日付
 ファイルが存在する
 ファイルが存在しない
 ファイルサイズ
フォルダー
 フォルダーが存在しない
 フォルダーが存在する
リスト
 リスト変数
レコーダー
 オブジェクト
数字
 数字条件
文字列
 文字列の条件
日時
 Date Condition
辞書
 キーを確認
 Check for a single value

ちなみに、この条件はパッケージSDKで独自に開発して追加することが可能です。興味がある場合は見てみてください。(If条件と同じものが出てきます)

2. 条件分岐

**「If」は、指定条件を満たす場合と満たさない場合で別の処理を実施できるしくみです。Ifパッケージには「If」「Else If」「Else」**の3種類のアクションがあります。
image.png

公式な説明は以下にあります。

「If」をドラッグ&ドロップすると、"折り畳み式の領域" が作られ、その中にアクションを入れられるようになります。Ifは入れ子にすることもできます。Else Ifは条件に満たない場合に次の条件分岐を定義できます。Elseはいずれの条件にも合わない場合の処理を定義します。

フロー表示
image.png

リスト表示
image.png

入れ子でさらに複雑なフローを作成
image.png
image.png

条件のリストで利用できるオプション一覧は[ループ] パッケージを参照してください。実際にドロップダウンに出てくる表記は既出の「ループ」のWhileで出てくる条件のリストと同一です。

条件は11個まで並列に配置でき、And/Or (および/または)条件で関係付けることができます。

3. エラー処理

特定の箇所でエラーが発生した際に異常終了することを抑える目的で、エラー処理を施すのがお勧めです。v11を知っている方は、前は「Begin Error Handling / End Error Handling」で囲んだ領域に対してエラーが起こったら、あらかじめ用意されたエラー処理を行った後「Continue」「Stop Task」を選ぶ形式でしたが、A2019ではより進化して**「試行」「キャッチ」「最終」「スロー」という4つのアクションを使うことができます。アクション名が日本語になっているので、何だこりゃ、と思うかもしれませんが、プログラミング言語でよくある Try/Catch/Finally/Throwです。(ここは英語の方がわかりやすいかもしれません)
image.png
これらはエラーが起こった時の「条件分岐」として使うことができます。「キャッチ」の
"折り畳み式の領域"**の範囲がエラー処理を行う範囲、エラーが起こったら「キャッチ」の内容を実行、「最終」の内容はエラーが起きても起きなくても「試行」や「キャッチ」の内容が実行された後に実行されます。

image.png

「スロー」は、任意の場所でエラーが発生したことにできるアクションです。これにより「キャッチ」の内容にジャンプすることができます。
A2019エラー処理については、以下の記事でより詳しい例が記載されているので参照してみてください。

Automation Anywhere - 【A2019】Error Handlingの紹介』- C&S Engineer Voice

4. ステップ

最後に、フローの処理自体には影響を与えないのですが、見た目を整理するための**"折り畳み式の領域"**を作るアクションが「Step」です。詳細は別の記事『Automation Anywhere A2019の「コメント」と「ステップ」で見やすいフローを作ろう』で解説しているので参照してください。

image.png

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?