ネストされたリスト内のデータへのアクセス

リスト内の個々の項目を独自のデータ オブジェクト変数に抽出して、データを取得または設定できます。これは、ネストされたリスト内のデータにアクセスする場合に特に役立ちます。

次の例では、注文控え帳の合計コストを取得し、顧客とそれぞれの顧客に関する注文を取得して、各注文内のそれぞれの注文に関する項目を取得してから、項目あたりのコストを累計に追加します。

注文控え帳の合計コスト (すべての項目のコストの合計) を取得するには、最初に各顧客をループして顧客ごとの注文を取得し、注文ごとにそれぞれの注文の項目を取得してから、項目ごとのコストを累計に追加する必要があります。

この例には、3 つのネストされた配列があります。

  • OrderBook (オブジェクト)

    • customerList []

      • currentOrders []

        • items []

customerList 内でループする場合は、各注文を抽出して注文を currentOrders データ モデルにマッピングし、次に別のループを追加して注文内の項目をループし、項目を items データ モデルに抽出する必要があります。ネストされたループの最終結果で、すべての項目の合計が取得されます。

TotalAgility でこれを実現するには、次の手順を実行します。

データ モデルの作成

次のフィールドを使用してデータ モデルを作成します。

例: 反復データにアクセスするデータ モデル

フィールド タイプ
ID 数値
name テキスト
isComplete ブール値
customerList リスト
cutomerList 内のフィールド
ID 数値
name テキスト
address テキスト
currentOrders リスト
currentOrders 内のフィールド
ID 数値
receivedDate 日付
items リスト
items 内のフィールド
ID 数値
name テキスト
price 数値

プロセス マップの作成

Order Book Processing という名前のプロセス マップを作成します。

変数の追加

次の変数を Order Book Processing マップに追加します。

名前 タイプ

現在の注文

データ オブジェクト currentOrders

現在の注文が見つかる

ブール False

顧客

データ オブジェクト customerList

顧客の検出

ブール false

合計

小数 0

現在の注文インデックス

Short 1

顧客インデックス

Short 1

項目インデックス

Short 1

項目

データ オブジェクト Items

項目の検出

ブール False

注文控え帳

データ オブジェクト Order Book

ノードの追加

指定した構成を持つ Order Book Processing マップに、次のノードを追加します。


例: 反復データにアクセスするためのマップ

ノード タイプ 名前 構成
RESTful サービス 注文控え帳の取得

[URL パラメータ]: 1

[動詞]: GET

[タイプ]: JSON

[応答タイプ]: 変数

[値]: Order Book

ループ 各顧客

このループ ノードは、Order Book.customersList をループするためのものです。

[複合変数]: Order Book.customerList

[現在のインデックス]: 顧客インデックス

[更新されたインデックス]: 顧客インデックス

[行の検出]: 顧客の検出

[返す]: 上位レベル

[変数メンバー]: customerList 列を 顧客 プロセス変数にマップします。

判断 顧客の検出

[条件テキスト]: 顧客の検出 プロセス変数を選択します。

[結果] > [True パス]: 現在の注文の初期化 アクティビティ

現在の注文の初期化

[目標変数]: 現在の注文インデックス

[説明]: インデックスを 1 に初期化して、各顧客の現在の最初の注文から処理を開始します

[式]: 1

ループ 現在の各注文

このループ ノードは、OrderBook.currentOrders をループするためのものです。

[複合変数]: customer.currentOrders

[現在のインデックス]: 現在の注文インデックス

[更新されたインデックス]: 現在の注文インデックス

[行の検出]: 現在の注文が見つかる

[返す]: 上位レベル

[変数メンバー]: currentOrders 列を 現在の注文 プロセス変数にマップします。

判断 現在の注文が見つかる

[条件テキスト]: 現在の注文の検出 プロセス変数を選択します。

[結果] > [True パス]: 項目の初期化 アクティビティ

項目の初期化

[目標変数]: 項目インデックス

[説明]: インデックスを 1 に初期化して、顧客の現在の各注文の先頭項目から処理を開始します

[式]: 1

ループ 各項目

このループ ノードは、items をループするためのものです。

[複合変数]: 現在の注文.items

[現在のインデックス]: 項目インデックス

[更新されたインデックス]: 項目インデックス

[行の検出]: 項目の検出

[返す]: 上位レベル

[変数メンバー]: items 列を 項目 プロセス変数にマップします。

判断 項目の検出

[条件テキスト]: 項目の検出 プロセス変数を選択します。

[結果] > [True パス]: 合計の計算 アクティビティ

合計の計算

各項目 ループ ノードでこの式ノードを実行するたびに、現在の注文.items 変数値が 合計 変数に追加され、項目の合計コストが取得されます。

[目標変数]: 合計

[説明]: このメンバーには、すべての項目価格の総計が保持されます

[式]: 合計 (プロセス変数) + item.price (プロセス変数)

通常アクティビティ レポートの公開 [入力変数]: 合計
終了 終了 [イベント タイプ]: デフォルト