Automation Anywhere 開発環境をV11からA2019に変えるときの心構え – タスク間で値の受け渡しはどうやるの?

Automation Anywhere

開発環境を変更するときの学習コストは、できるだけ抑えたいものです。「Automation Anywhere 開発環境をV11からA2019に変えるときの心構え」では、これまでV11の開発環境を使っていた筆者が、A2019を使い始めて気付いた事を中心に説明しています。

概要

V11では、タスク間の値の受け渡し定義は、メインタスクで定義した変数とRun Taskで呼び出すサブタスクで定義した変数とを関連付けする方式でした。

A2019では、メインタスクからサブタスクに値を入力する場合の定義はV11と似ていますが、サブタスクからメインタスクに値を返す方法がディクショナリ型変数(※1)経由になるなど、やり方が大きく変わっています。

(※1)ディクショナリ型変数:キーと対応させて値を格納しておくことができる、テーブルに似た変数です。キーを指定して値を取得することができます。(下図の「D_SubTaskOutput」がディクショナリ型変数に3件の値を格納した場合の具体例です。)

ここでは、サブタスクでプロフィール情報を入力し、メインタスクで入力結果を表示する対話型のBotの例で、タスク間で値を受け渡す方法を紹介します。各タスクで定義しているユーザー変数とアクションとの関係は、下図のようになっています。

ここで紹介しているBotのデモ動画は こちら で参照できます。

サブタスク

サブタスクの仕様

メインタスクから渡される「会員番号」を文字列型の変数「S_MemberNo」で受けます。サブタスクでは「プロンプト」アクションを使って「氏名」、「年齢」、「メールアドレス」を入力し、それぞれ文字型の変数「S_Name」、「S_Age」、「S_Email」に代入します。

サブタスクのBot(ユーザー変数定義)

(1)「S_MemberNo」は[入力として使用]を選択して定義します。

[入力として使用]を選択して定義した変数は、メインタスクの「Run」アクションの詳細設定の際に、[入力値]欄に表示されるようになります。[入力として使用]を選択していないと、メインタスクからサブタスクに値を渡すことができません。
【関連】[入力値]欄の表示例については、別項「メインタスクのBot(アクションリスト)」-「(2)サブタスクの呼び出し」を参照してください。

「S_Name」、「S_Age」、「S_Email」は[出力として使用]を選択して定義します。

サブタスクのBot(アクションリスト)

「プロンプト」アクションを使って「氏名」、「年齢」、「メールアドレス」を入力し、それぞれ文字型の変数「S_Name」、「S_Age」、「S_Email」に代入します。

メインタスク

メインタスクの仕様

「会員番号」を引数にしてサブタスクを呼び出し、サブタスクで入力した結果をメッセージボックスで表示します。

メインタスクのBot(ユーザー変数定義)

(1)サブタスクに渡す文字列型の変数「S_MemberNo」を定義します。

(2)サブタスクの結果を受け取るディクショナリ型の変数「D_SubTaskOutput」を定義します。

(3)ディクショナリ型の変数から値を取得する際に使用するキーを、リスト型の変数で定義します。

サブタスクの結果を格納するディクショナリ型の変数には、サブタスクで変数を定義する際に[出力として使用]を選択した変数名をキーにして値が格納されます。リストには、サブタスクの出力値を格納する3つの変数の変数名を固定で定義しておきます。

メインタスクのBot(アクションリスト)

(1)アクションリストの全体概要

この中から4, 11, 13行目について詳しく紹介します。

(2)サブタスクの呼び出し

「Task Bot」パッケージの「Run」アクション

【詳細設定】

タイトルが「S_MemberNoを設定」のチェックボックスにチェックを入れ、入力値として「S_MemberNo」を設定します。[Assign the output to variable]欄にディクショナリ型の変数「D_SubTaskOutput」を設定します。入力値に設定する「S_MemberNo」はメインタスク側で定義した変数の方です。

【注意】[入力値]欄にタイトルが「S_MemberNoを設定」のチェックボックスが表示していますが、[入力値]欄は[Task Bot to run]欄に設定したBotと連動して表示したり表示しなかったりします。[Task Bot to run]欄に設定したBotの中の変数定義で、[入力として使用]を選択して定義している変数があるときだけ、[入力値]欄が表示します。

(3)サブタスクの出力値の取得

「ディクショナリ」パッケージの「取得」アクション

【詳細設定】

サブタスクの出力値をディクショナリ型変数から取得するには、変数名をキーにして「ディクショナリ」パッケージの「取得」アクションを実行します。

(4)取得内容の表示

「メッセージボックス」アクション

【詳細設定】

『変数名:値』の形式で表示します。

【余談】

変数を作成する画面に、[入力として使用]や[出力として使用]のチェックボックスがあることは認識していましたが、Botを作成するのに支障がなかったので『どんな場面で使うのかな?』と呑気に構えていました。「Run」アクションで値を受け渡しする段になって、V11にあった「変数の関連付け」が無くなっていることが分かり、焦りました。(@_@;)


タイトルとURLをコピーしました