はじめに
プロセスオブジェクトによるユーザー定義変数の利用では、プロセスオブジェクトの利用手順を確認しました。この記事では、より実践的な実装方法を理解するためにプロセスオブジェクトのフィールドをリスト型(プログラミングにおける配列
)として利用する手順を確認します。
なお、この記事は次の記事の内容を理解していることを前提としています。
- はじめてCAIを使う際に
- プロセスの作成と実行(匿名認証と基本認証)
- 割り当てステップと、各種変数フィールドの利用
- ディシジョンステップによるによる分岐処理
- ジャンプステップによる実行制御
- プロセスオブジェクトによるユーザー定義変数の利用
リスト型のプロセスオブジェクトを利用する
CAIプロセスの作成
次の手順では プロセスオブジェクトによるユーザー定義変数の利用 で作成したプロセスオブジェクトを入力フィールドとして受け取り、内容を編集・コピーした値を出力フィールドとして返すCAIプロセスを作成しています。
-
CAIプロセスを次の設定で作成します。
- 名称を recipe-pca-processObjectList とする
- 匿名アクセス を許可する
- クラウドサーバー にデプロイする
-
入力フィールド input を リスト型 として タイプ=recipe-po-processObjectTest (作成したプロセスオブジェクト) にて定義します。
-
同様に、出力フィールド output を リスト型 として タイプ=recipe-po-processObjectTest (作成したプロセスオブジェクト) にて定義します。
-
次の一時フィールドを定義します。
№ 名前 タイプ 初期値 概要 1 tmpPO recipe-po-processObjectTest 出力用ProcessObject用の一時的なフィールド 2 tmpCount 整数 入力フィールドとして受け取ったリスト型の長さ 3 tmpLength 整数 1 イテレート処理用カウンタ変数 -
CAIプロセスが次の順に実行されるように各種ステップを追加します。
配置手順によってはディシジョンステップの終端()が上記スクリーンショットとは異なる場所に配置される(または、表示されない)場合があります。 -
割り当てステップをステップを選択して、一時フィールド tmpLength に 計算式 として
list:count($input.input )
を指定します。この計算式では一時フィールドに、リスト型入力フィールドの要素数(長さ)を代入しています。 -
ディシジョンステップを選択して、tmpCount が tmpLength 以下の場合と、それ以外の場合で分岐する設定をします。
この処理では、tmpCount(イテレート処理用のカウンタ変数
)の値が、tmpLength(入力フィールドの要素数
)以下の場合に処理を継続します。 -
フィールド 割り当て 値 概要 tmpPO > id 計算式 concat("new-",\$input.input [\$temp.tmpCount ]/id) 入力フィールドのX番目のid値を一時フィールドにコピー tmpPO > value 計算式 concat("new-",\$input.input [\$temp.tmpCount ]/value) 入力フィールドのX番目のvalue値を一時フィールドにコピー output 追加 tmpPO 出力フィールドに一時フィールドを追加 tmpCount 計算式 $temp.tmpCount + 1 カウンタ変数のインクリメント
CAIプロセスの実行
curlコマンドを例とした動作確認結果です。入力フィールドをコピー・編集した値が出力フィールドとして得られる動作を確認できました。
// curl コマンド
curl https://<IICS・CAIサーバー>/active-bpel/public/rt/<Org ID>/recipe-pca-processObjectList \
-H 'Content-Type: application/json' \
-d '{"input": [
{"id" : "aaa1", "value" : "bbb1"},
{"id" : "aaa2", "value" : "bbb2"},
{"id" : "aaa3", "value" : "bbb3"}
]}'
// 実行結果
{"output":[
{"id":"new-aaa1","value":"new-bbb1"},
{"id":"new-aaa2","value":"new-bbb2"},
{"id":"new-aaa3","value":"new-bbb3"}
]}