ユースケース:カスタムアクションを使用してコレクションを動的に渡す passing-collection
実行時に値が動的に設定されるカスタムアクションパラメーターにコレクションを渡すことができます。次の 2 種類のコレクションがサポートされています。
-
単純なコレクション:単純なデータタイプを要素とする配列。以下に listString の例を示します。
code language-none { "deviceTypes": [ "android", "ios" ] }
-
オブジェクトコレクション:JSON オブジェクトの配列。以下に例を示します。
code language-none { "products":[ { "id":"productA", "name":"A", "price":20.1 }, { "id":"productB", "name":"B", "price":10.0 }, { "id":"productC", "name":"C", "price":5.99 } ] }
制限事項 limitations
-
オブジェクト配列内にオブジェクトの配列がネストされたコレクションは、現時点ではサポートされていません。以下に例を示します。
code language-none { "products":[ { "id":"productA", "name":"A", "price":20, "locations": [{"name": "Paris"}, {"name": "London"}] }, ] }
-
テストモードを使用してコレクションをテストするには、コードビューモードを使用する必要があります。ビジネスイベントに対しては、現時点ではコードビューモードはサポートされていません。コレクションは、単一の要素でのみ送信できます。
一般的な手順 general-procedure
この節では、次のサンプル JSON ペイロードを使用します。これは、単純なコレクションのフィールドを持つオブジェクトの配列です。
{
"ctxt": {
"products": [
{
"id": "productA",
"name": "A",
"price": 20.1,
"color":"blue",
"locations": [
"Paris",
"London"
]
},
{
"id": "productB",
"name": "B",
"price": 10.99
}
]
}
}
「products」は 2 つのオブジェクトの配列であることがわかります。少なくとも 1 つのオブジェクトが必要です。
-
カスタムアクションを作成します。このページを参照してください。
-
「アクションパラメーター」セクションに、JSON の例を貼り付けます。表示される構造は静的です。ペイロードを貼り付けたときに、すべてのフィールドが定数として定義されます。
-
必要に応じて、フィールドタイプを調整します。コレクションでは、listString、listInteger、listDecimal、listBoolean、listDateTime、listDateTimeOnly、listDateOnly、listObject の各フィールドタイプがサポートされています。
note note NOTE フィールドタイプは、ペイロードの例に従って自動的に推測されます。 -
オブジェクトを動的に渡す場合は、変数として設定する必要があります。この例では、「products」を変数として設定します。オブジェクトに含まれているすべてのオブジェクトフィールドは、変数に自動的に設定されます。
note note NOTE サンプルペイロードの最初のオブジェクトは、フィールドの定義に使用されます。 -
フィールドごとに、ジャーニーキャンバスに表示されるラベルを定義します。
-
ジャーニーを作成し、作成したカスタムアクションを追加します。このページを参照してください。
-
「アクションパラメーター」セクションで、高度な式エディターを使用して配列パラメーター(この例では「products」)を定義します。
-
次のオブジェクトフィールドごとに、ソース XDM スキーマ内の対応するフィールド名を入力します。名前が同じ場合は、この操作は不要です。この例では、「product id」と「color」のみを定義する必要があります。
配列フィールドの場合は、高度な式エディターを使用してデータ操作を実行することもできます。次の例では、filter 関数と intersect 関数を使用しています。
特殊な例 examples
異種混在タイプと配列の配列の場合、配列は listAny タイプで定義されます。個々の項目のみをマッピングできますが、配列を変数に変更することはできません。
異種混在タイプの例:
{
"data_mixed-types": [
"test",
"test2",
null,
0
]
}
配列の配列の例:
{
"data_multiple-arrays": [
[
"test",
"test1",
"test2"
]
]
}
関連トピック