DSで「REST Web サービス呼出(Call REST Web Service)」ステップを使用し、
ロボット A からロボット B に変数の値を受け渡す方法を紹介します。
使用例
ロボット A からロボット B に変数の値を渡す方法は3種類に大別することができます。
・DBを使用する方法(推奨)
・変数の値をファイルに書き出して読み込ませる方法
・WebAPIを使用する方法
特別な理由がない場合、DBを使う方法を推奨しております。
ロボット A の変数の値をDBに格納、ロボット B がその値を抽出する、という方法です。
ロボットの構造がシンプルで、渡す変数が増えた場合についても容易に対応することができます。
DBを使うことができない場合や、ファイルに書き出す方法を使えない場合はWebAPIを使用して変数の値を渡すことも可能です。
作業手順
「REST Web サービス呼出(Call REST Web Service)」ステップを使用して変数の値を受け渡すロボットの例を記載します。
■作成するロボット
(ロボット A)CallRestA:変数に値を代入し、変数の値を渡して "CallRestB" を起動させるロボット
(ロボット B)CallRestB: "CallRestA" から受けとった変数の値をテキストファイルで書き出すロボット
■作成するタイプ・変数
◆両方のロボットで使用
タイプ:
・result.type
タイプ内に作成する変数:
・text (Short Text、LongText)
文字テスト結果確認用変数です。
「属性の種類(Attribute Type)」はテキスト型の変数である "Short Text" や "Long Text" を指定します。
・number (Integer)
数字テスト結果確認用変数です。
「属性の種類(Attribute Type)」は "Integer" を指定します。
(図1. "result.type" 内に作成する変数)
各ロボットで "result.type" を追加する際、
「パラメータとして使用(Use as Input)」にチェックを入れます。
※値は設定しません。
(図2.「パラメータとして使用(Use as Input)」にチェックを入れる)
◆CallRestAのみで使用
作成する変数:
・ssss (Short Text、Long Text)
「REST Web サービス呼出(Call REST Web Service)」ステップの、「出力値(Output)」設定に使用します。
■作成方法
◆CallRestB.robot
1.タイプ "result" を追加します
2.「ファイル出力(Write File)」ステップを追加し、 "result.text" の値をファイルに書き出します
(図3.文字テスト用の「ファイル出力(Write File)」ステップの設定)
3.ファイル出力(Write File)ステップを追加し、 "result.number" の値をファイルに書き出します
(図4.数字テスト用の「ファイル出力(Write File)」ステップの設定)
◆CallRestA.robot
1.タイプ "result" を追加します
2.「変数の割当(Assign Variable)」ステップを追加し、 "result.text" に値を設定します
(図5.文字テスト用の「変数の割当(Assign Variable)」ステップの設定)
3.「変数の割当(Assign Variable)」ステップを追加し、 "result.number" に値を設定します
(図6.数字テスト用の「変数の割当(Assign Variable)」ステップの設定)
4.「REST Web サービス呼出(Call REST Web Service)」ステップの設定を行います
(1)ここまでに作成したロボットを、Management Consoleにアップロードします
(2)Management Consoleを開き、「リポジトリ(Repository)」 > 「ロボット(Robots)」タブを選択します
(3)"CallRestB" の[REST アイコン]をクリックします
(図7.Management Consoleの[REST アイコン])
(4)「REST URL」の値をコピーします
(図8.[REST アイコン]クリック後、「REST URL」をコピー)
(5) "CallRestA" ロボットに、「REST Web サービス呼出(Call REST Web Service)」ステップを追加します
(6)「URL」に、(4)でコピーした URL をペーストします
(図9.「REST Web サービス呼出(Call REST Web Service)」ステップ内、「URL」にペースト)
(7)「リクエスト(Request)」を "POST" > "ローボディを指定(Specify raw body)" に設定します
(図10.「REST Web サービス呼出(Call REST Web Service)」ステップ内、「リクエスト(Request」を設定)
(8)「リクエストボディ(Request body)」の記述方法を "エクスプレッション(Expression)" に変更し、以下のように記述します
>><?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<rest-request>
<parameters>
<variable variableName="result">
<attribute type="integer" name="number"><<+ result.number +>></attribute>
<attribute type="text" name="text"><<+ result.text +>></attribute>
</variable>
</parameters>
</rest-request>
<<
※入力の際、 ">>" や "<<" の後に改行が含まれていると、下記のようなエラーが発生しますのでご注意ください。
(図11.「ロード中に 500 が発生しました」のエラーが発生)
(9)「出力値(Output)」を "変数に抽出(Extract to Variable)" に変更し、変数 "ssss" に設定します
(図12.「REST Web サービス呼出(Call REST Web Service)」ステップ内、「出力値(Output)」を設定)
(10)Management Consoleにユーザー名とパスワードを設定している場合は、
「オプション(Options)」 > 「クレデンシャル(Credentials)」の、
「ユーザー名(Username)」と「パスワード(Password)」を入力します
(図13.「REST Web サービス呼出(Call REST Web Service)」ステップ内、「オプション(Options)」項目)
(11)[OK]ボタンをクリックします
"CallRestA" ロボットを起動させ、変数の値の受け渡しが成功していることを確認します。
(図14.変数の受け渡しが成功していることを確認)
区分 | 確認Ver |
逆引き | 10.4.0.4 |