11
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

インフォマティカ・ジャパン株式会社Advent Calendar 2024

Day 19

[CAIレシピ] リスト型のプロセスオブジェクト変数の利用

Last updated at Posted at 2024-12-19

はじめに

プロセスオブジェクトによるユーザー定義変数の利用では、プロセスオブジェクトの利用手順を確認しました。この記事では、より実践的な実装方法を理解するためにプロセスオブジェクトのフィールドをリスト型(プログラミングにおける配列)として利用する手順を確認します。

なお、この記事は次の記事の内容を理解していることを前提としています。

リスト型のプロセスオブジェクトを利用する

CAIプロセスの作成

次の手順では プロセスオブジェクトによるユーザー定義変数の利用 で作成したプロセスオブジェクトを入力フィールドとして受け取り、内容を編集・コピーした値を出力フィールドとして返すCAIプロセスを作成しています。

  1. CAIプロセスを次の設定で作成します。

    • 名称を recipe-pca-processObjectList とする
    • 匿名アクセス を許可する
    • クラウドサーバー にデプロイする
  2. 入力フィールド inputリスト型 として タイプ=recipe-po-processObjectTest (作成したプロセスオブジェクト) にて定義します。
    image.png

  3. 同様に、出力フィールド outputリスト型 として タイプ=recipe-po-processObjectTest (作成したプロセスオブジェクト) にて定義します。

  4. 次の一時フィールドを定義します。

    名前 タイプ 初期値 概要
    1 tmpPO recipe-po-processObjectTest 出力用ProcessObject用の一時的なフィールド
    2 tmpCount 整数 入力フィールドとして受け取ったリスト型の長さ
    3 tmpLength 整数 1 イテレート処理用カウンタ変数
  5. CAIプロセスが次の順に実行されるように各種ステップを追加します。
    image.png
    配置手順によってはディシジョンステップの終端(image.png)が上記スクリーンショットとは異なる場所に配置される(または、表示されない)場合があります。

  6. 割り当てステップをステップを選択して、一時フィールド tmpLength計算式 として list:count($input.input ) を指定します。この計算式では一時フィールドに、リスト型入力フィールドの要素数(長さ)を代入しています。

  7. ディシジョンステップを選択して、tmpCounttmpLength 以下の場合と、それ以外の場合で分岐する設定をします。
    image.png
    この処理では、tmpCount(イテレート処理用のカウンタ変数)の値が、tmpLength(入力フィールドの要素数)以下の場合に処理を継続します。

  8. 割り当てステップを選択して、次のように設定します。
    image.png

    フィールド 割り当て 概要
    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 カウンタ変数のインクリメント
  9. ジャンプステップを選択して、遷移先としてディシジョンステップ(今回の例では tmpCount)を指定します。
    image.png

CAIプロセスの実行

curlコマンドを例とした動作確認結果です。入力フィールドをコピー・編集した値が出力フィールドとして得られる動作を確認できました。

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"}
]}

参照

11
0
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
11
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?