概要
Automation Anywhere では通常の変数 (Value) のほかに、List (1次元)とArray (2次元)があります。ただし、特にListは、通常のプログラミング言語の1次元配列とは使い勝手が違うので、解説したいと思います。
List変数の特徴
Automation AnywhereにおけるList型変数は、複数の値をリストとして保持して1つずつ取得できます。データの1次元配列に似ています。ただし、通常の配列変数のように引数に数字を指定してn番目の値を取り出す、という使い方ではなく、リストから1つずつ順番に値を取り出すことが想定されています。各要素には番号付けがされていません。変数の命名規則1では、$lstList$
のように"lst"を前につけます。
どんな場面で使えるのか?
ユーザーシナリオとしては以下のようなことが考えられます。
- メールアドレスのリストを保持 → 一斉にメールを送る
- Webアドレスのリスト → Webスクレイピングを一斉に行う
- ループ内で利用する値のリスト
LOOPコマンドでの要素の列挙
List変数を生かすことができるコマンドのひとつにLOOPがあります。
LOOPの条件として、List変数を指定しておくと、ループの中で参照するList変数は要素を1つ返します。たとえば以下のアクションリストを作成します。LOOPコマンドを追加した後、単純にMessage BoxコマンドでList変数の中身を表示するものです。
ここで$my-list-variable$
には、以下の値が入っています。
my-value-1
my-value-2
my-value-3
my-value-4
my-value-5
すると、以下のようなメッセージボックスが順番に表示されます。
List変数を引数に持つコマンド
下記の他にもパラメータ指定ダイアログボックスの中のテキストボックスでF2
を押すことで入力できる変数の候補にList変数が含まれる場合があります。
- Clipboard - Assign To Clipboard
- If/Else - Variable
- Loop - List
List変数を出力するコマンド
- Active Directory - Search
- Excel - Find/Replace
- Prompt - Prompt for File
- String Operation - Split
- Variable Operation
Array変数の特徴
Automation AnywhereにおけるArray型変数は、通常のプログラミング言語における配列型変数と近いです。配列の引数に指定できるインデックスは1から始まります。変数の命名規則1では"arr"を前につけ、$arrTable(1,3)$
のような形で表現します。列数は$ArrayColumns($<Array 変数>$)$
、行数は$ArrayRows($<Array変数>$)$
を参照することで取得できます。
どんな場面で使えるのか?
複数の要素を持つ値をやり取りする様々なシーンで活用ができます。ユーザーシナリオとしては以下のようなことが考えられます。
- Webページからデータを抽出する
- Excel スプレッドシートまたはデータベースから、大量の行を含むデータを抽出する
- レガシー システム、ERP システム、または他のアプリケーションとの間でデータの読み書きを行う
- Excel からデータベースへと、さまざまなフィールドを含む注文フォームに入力する
初期化時にテキスト/Excel/CSV/データベースから値を読み込む
変数マネージャでArray変数を作成する際に、初期化の手段を以下の4種類から選択できます。
- Value (値を直接指定)
- Read from text file (テキストファイルから読み込み)
- Read from excel/csv file (Excel/CSVファイルから読み込み)
- Read from database (データベースから読み込み)
それぞれ、初期化をするためのユーザーインターフェイスがあります。
1. Value (値を直接指定)
配列の行、列の最大サイズを数字で指定します。データはスプレッドシートのようなダイアログボックスのインターフェイスで、画面上で要素を指定します。
2. Read from text file (テキストファイルから読み込み)
要素がカンマ区切りと改行で仕切られたテキスト形式のデータファイルを読み込んで初期化します。配列の行、列のサイズはデータから決定されます。
3. Read from excel/csv file (Excel/CSVファイルから読み込み)
ExcelファイルもしくはCSVファイルを読み込んで初期化します。シートの中から読み込むデータの範囲を選択するオプションがいくつかあります。配列の行、列のサイズはデータから決定されます。
4. Read from database (データベースから読み込み)
ODBCの接続文字列を使って接続するデータベース (Microsoft Access, SQL Server, Oracle Database等)からデータを取ってきます。データ取得のためのSQL文を指定することができます。配列の行、列のサイズはデータから決定されます。
特筆すべきは、ここでどの手段で初期化したかにより、後でVariable Operationコマンドで値をまとめて再初期化する際に、初期化を行った方法での再初期化が可能だということです。つまり、Array変数は厳密にいうとさらに上記の4種類に分かれていることになります。(変数マネージャで、それぞれのArray変数のOptionを見ると、種類がわかります。)
Variable Operationコマンドを使用したときの、各Array変数を再初期化しようとしたときのユーザーインターフェイスは、初期化の時と同じ画面となります。
2. Read from text file (テキストファイルから読み込み)
3. Read from excel/csv file (Excel/CSVファイルから読み込み)
4. Read from database (データベースから読み込み)
Array変数を引数に持つコマンド
下記の他にもパラメータ指定ダイアログボックスの中のテキストボックスでF2
を押すことで入力できる変数の候補にArray変数が含まれる場合があります。
- Clipboard - Assign To Clipboard
- If/Else - Variable
- Task - Run Task
Array変数を出力するコマンド
Array変数は通常の変数を受け付けるコマンドには、ほとんどの場合選択肢として表示されます。太字のものは通常の変数は指定できずArray変数のみを受け付けるものです。
- Clipboard - Assign To Clipboard
- Clipboard - Assign From Clipboard
- Error Handling - Begin Error Handling
- Excel - Get Cells
- OCR
- Printers - Get Default Printer
- Prompt - Prompt for Value
- Prompt - Prompt for Yes/No
- Prompt - Prompt for Folder
- Services - Get Service Status
- SNMP - Get or Get Next or Walk
- SOAP Web Service
- String Operation (Split以外)
- Task - Run Task
- Terminal Emulator - Get All Fields
- Variable Operation
- Web Recorder - Execute JavaScript Function
- Window Actions - Get Active Window Title
- XML - Get Node(s) or Execute XPath Function or Validate XML Document or Save Session Data