メイン コンテンツをスキップする 補完的コンテンツへスキップ

ネスト化されたループを単純なループに集計

ネスト化されたループを集計することで、ネスト化されたループを持つXMLストラクチャーをフラットなCSVストラクチャーに変換します。

始める前に

マップを作成し、入力ストラクチャーと出力ストラクチャーを追加済みであること。

このタスクについて

この例では、ネスト化されたループを単純なループに結合と同じ入力ストラクチャーが使用されています。この変換の目標は、各Addressエレメントに配送と製品に関する情報が含まれている行を持つCSVファイルを作成することです。

住所に配送されるすべての製品が各行に含まれるよう、出力ストラクチャーには複数のPartNumberエレメントとProductNameエレメントが含まれています。次のように定義されています:
AddressesShipping
	Address (0:*)
		Name
		Street
		City
		State
		Zip
		Country
		DeliveryNotes
		PartNumber_1
		ProductName_1
		PartNumber_2
		ProductName_2
		PartNumber_3
		ProductName_3

手順

  1. 次の入力Componentエレメントを対応する出力エレメントにドラッグします。
    • Name
    • Street
    • City
    • State
    • Zip
    • Country
    • DeliveryNotes
  2. 入力PartNumberエレメントを出力PartNumber_1にドラッグします。
    出力ストラクチャーは入力Addressエレメントで既にループしているため、競合が発生します。
  3. ダイアログボックスが開いたら、[Generate AgConcat value expression] (AgConcat値の式をに生成)を選択し、[OK]をクリックします。
    このオプションを使用すると、各Addressエレメントに含まれているPartNumberエレメントの値がすべて、AgConcatファンクションで1つのフィールドに集計されます。1つのフィールドに1つの値を持つようにしたい場合は、フィルターを使用する必要があります。
  4. SingleIndexファンクションを、出力PartNumber_1エレメントの[Value] (値)タブにあるFilter引数にドラッグします。
    最初のPartNumberエレメントの値を取得する場合は、インデックスのデフォルト値のままにしておきます。
  5. 入力PartNumberエレメントを出力PartNumber_2エレメントとPartNumber_3エレメントにドラッグし、表示されるダイアログボックスで[Generate AgConcat value expression] (AgConcat値の式をに生成)選択して[OK]をクリックします。
    フィルターは、PartNumber_1で定義された式に基づいて自動的に設定されます。
  6. 前のステップを繰り返し、入力ProductNameエレメントを出力ProductName_1ProductName_2ProductName_3の各エレメントにマッピングします。

タスクの結果

これでマッピングが設定されます。サンプルドキュメントがある場合は、[Test Run] (テスト実行)をクリックして結果を確認します。この例では次のようになります:
Name,Street,City,State,Zip,Country,DeliveryNotes,PartNumber_1,ProductName_1,PartNumber_2,ProductName_2,PartNumber_3,ProductName_3
Deandre King,4894  Winding Way,Southfield,MI,48075,USA,Please leave packages in shed by driveway.,872-AA,Lawnmower,926-AA,Baby Monitor,,
Burl Clark,3807 Pointe Lane,Fort Lauderdale,FL,33308,USA,,356-KX,Gas canister,,,,

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。