詳細情報:
OmniStudio のリストおよび配列関数
リストと配列を操作する関数。
- OmniStudio AVG 関数
リストの平均または数値の JSON 配列を返します。 - OmniStudio FILTER 関数
指定された条件で JSON オブジェクトのリストを絞り込み、一致するオブジェクトの JSON リストを返します。 - OmniStudio LIST 関数
リストまたは名前付き JSON 配列を匿名 JSON 配列に変換します。 - OmniStudio LISTMERGE 関数
1 つ以上の差し込みキーの値に基づいて、オブジェクトの 2 つ以上の JSON リストのノードを 1 つの JSON リストにマージします。 - OmniStudio LISTMERGEPRIMARY 関数
1 つ以上の差し込みキーの値に基づいて、オブジェクトの主 JSON リストのノードを 1 つ以上の他の JSON リストからのデータで追加します。 - OmniStudio LISTSIZE 関数
リストまたは JSON 配列の項目数を返します。 - OmniStudio MAPTOLIST 関数
JSON オブジェクトまたはオブジェクトの階層を JSON リストに変換します。 - OmniStudio MAX 関数
数値のリストまたは JSON 配列から最大値を返します。 - OmniStudio MIN 関数
数値のリストまたは JSON 配列から最小値を返します。 - OmniStudio SORTBY 関数
指定されたキーでオブジェクトの JSON リストを並び替え、並び替えられた JSON リストを返します。(データマッパーのみ) - OmniStudio SUM 関数
リストの合計または数値の JSON 配列を返します。
OmniStudio AVG 関数
リストの平均または数値の JSON 配列を返します。
署名
AVG(list)
戻り値
数値
パラメーター
パラメーター |
データ型 |
必要性 |
説明 |
|---|---|---|---|
|
数値のリスト |
必須 |
数値のカンマ区切りリスト、または JSON 配列の数値のリスト。リストの null 値は分母に含まれ、平均が低くなります。 |
数式: AVG(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
戻り値: 5.5
サンプルデータ:
"List": [
{
"Item": 3.5
},
{
"Item": 4.25
},
{
"Item": 5.75
}
]
数式: AVG(List:Item)
数式: AVG(%List:Item%)
戻り値: 4.5
OmniStudio FILTER 関数
指定された条件で JSON オブジェクトのリストを絞り込み、一致するオブジェクトの JSON リストを返します。
この関数は、大文字と小文字を区別しない文字列の照合を実行します。
署名
FILTER(LIST(list), condition)
戻り値
JSON リスト
パラメーター
パラメーター |
データ型 |
必要性 |
説明 |
|---|---|---|---|
|
JSON リスト |
必須 |
絞り込むオブジェクトの匿名 JSON 配列。JSON 配列を渡すには、 |
|
式 |
必須 |
絞り込むノードと、ノードが一致として適格である必要がある値を識別する等価式。値を文字列または変数として指定します。式全体を引用符で囲み、式内の文字列値も引用符で囲む必要があります。 |
サンプルデータ:
"NameList": [
{
"FirstName": "Zellie",
"LastName": "Xavier"
},
{
"FirstName": "Aaron",
"LastName": "Xavier"
},
{
"FirstName": "Mike",
"LastName": "Smith"
}
]
数式: FILTER(LIST(NameList), 'LastName == "Xavier"')
数式: FILTER(LIST(NameList), "LastName == 'Xavier'")
戻り値:
[
{
"FirstName": "Aaron",
"LastName": "Xavier"
},
{
"FirstName": "Zellie",
"LastName": "Xavier"
}
]
サンプルデータ:
"NameList": [
{
"FirstName": "Zellie",
"LastName": "Xavier"
},
{
"FirstName": "Aaron",
"LastName": "Xavier"
},
{
"FirstName": "Mike",
"LastName": "Smith"
}
],
"FindName": "Xavier"
数式: FILTER(LIST(NameList), 'LastName == "' + FindName + '"')
数式: FILTER(LIST(NameList), "LastName == '" + FindName + "'")
戻り値:
[
{
"FirstName": "Aaron",
"LastName": "Xavier"
},
{
"FirstName": "Zellie",
"LastName": "Xavier"
}
]
OmniStudio LIST 関数
リストまたは名前付き JSON 配列を匿名 JSON 配列に変換します。
匿名 JSON 配列 (JSON リスト) を入力として必要とする他の関数 (FILTER、LISTMERGE、LISTMERGEPRIMARY、SERIALIZE、SORTBY、および JSON リストを引数として渡すカスタムFUNCTION) と共に LIST 関数を使用します。
署名
LIST(expression)
戻り値
JSON リスト
パラメーター
パラメーター |
データ型 |
必要性 |
説明 |
|---|---|---|---|
|
リストまたは名前付き JSON 配列 |
必須 |
値または JSON オブジェクトのリスト、または 1 つ以上の値またはオブジェクトの名前付き JSON 配列に解決される式。各オブジェクトには、1 つ以上のノードまたはキーと値のペアを含めることができます。 匿名 JSON 配列を渡すと、この関数は、その匿名配列を含む 1 つの |
数式: LIST("a", "b", "c")
戻り値: [ "a", "b", "c" ]
数式: LIST(1, 2, 2, 3, 3, 4)
戻り値: [ 1, 2, 2, 3, 3, 4 ]
サンプルデータ:
"Contact": {
"FirstName": "Mike",
"LastName": "Smith"
}
数式: LIST(Contact)
戻り値:
[
{
"LastName": "Smith",
"FirstName": "Mike"
}
]
サンプルデータ:
"NameList": [
{
"FirstName": "Zellie",
"LastName": "Xavier"
},
{
"FirstName": "Aaron",
"LastName": "Xavier"
},
{
"FirstName": "Mike",
"LastName": "Smith"
}
]
数式: LIST(NameList)
戻り値:
[
{
"FirstName": "Zellie",
"LastName": "Xavier"
},
{
"FirstName": "Aaron",
"LastName": "Xavier"
},
{
"FirstName": "Mike",
"LastName": "Smith"
}
]
サンプルデータ:
"Account": [
{
"Cases": [
{
"Case1": {
"CreatedDate": "2/1/2004T16:35:30 GMT -0500 (EDT)",
"LastUpdate": "2/8/2024T09:15:00 GMT -0500 (EDT)"
}
},
{
"Case2": {
"CreatedDate": "2/2/2004T11:05:05 GMT -0500 (EDT)",
"LastUpdate": "2/3/2024T15:50:57 GMT -0500 (EDT)"
}
}
]
}
]
数式: LIST(Account:Cases)
戻り値:
[
{
"Case1": {
"CreatedDate": "2/1/2024T16:35:30 GMT -0500 (EDT)",
"LastUpdate": "2/8/2024T09:15:00 GMT -0500 (EDT)"
}
},
{
"Case2": {
"CreatedDate": "2/2/2025T11:05:05 GMT -0500 (EDT)",
"LastUpdate": "2/3/2025T15:50:57 GMT -0500 (EDT)"
}
}
]
OmniStudio LISTMERGE 関数
1 つ以上の差し込みキーの値に基づいて、オブジェクトの 2 つ以上の JSON リストのノードを 1 つの JSON リストにマージします。
この関数は、指定された差し込みキーの値が一致する場合に、指定された匿名 JSON 配列のノードを結合します。結果のリストには、マージされたすべてのリストのすべてのノードとキーが含まれます。差し込みキーが同じで値が異なるノードがリストに含まれている場合、後のノードの値で前のノードの値が上書きされます。この関数は、大文字と小文字を区別しない差し込みキーの照合を実行します。
署名
LISTMERGE(mergeKey..., LIST(list)...)
戻り値
JSON リスト
パラメーター
パラメーター |
データ型 |
必要性 |
説明 |
|---|---|---|---|
|
String |
必須 |
1 つ以上のキーのカンマ区切りリスト。この関数は、差し込みキーの値が一致すると、リストのノードを結合します。 |
|
JSON リスト |
必須 |
マージする 2 つ以上の匿名 JSON 配列。 |
サンプルデータ:
"ContactNames": [
{
"id": "0036ab",
"lastName": "Jones",
"firstName": "Cathy"
},
{
"id": "2787kq",
"lastName": "Smith",
"firstName": "Albert"
},
{
"id": "3610xr",
"lastName": "Smith",
"firstName": "Ben"
}
],
"ContactAddresses": [
{
"id": "0036ab",
"city": "Phoenix",
"state": "AZ"
},
{
"id": "2787kq",
"city": "San Francisco",
"state": "CA"
},
{
"id": "3610xr",
"city": "Portland",
"state": "OR"
}
],
"ContactBirthdates": [
{
"id": "0036ab",
"birthdate": "1976-10-04"
},
{
"id": "2787kq",
"birthdate": "1973-10-01"
},
{
"id": "3610xr",
"birthdate": "1974-10-02"
}
]
数式: LISTMERGE("id", LIST(ContactNames), LIST(ContactAddresses), LIST(ContactBirthdates))
戻り値:
[
{
"id": "0036ab",
"lastName": "Jones",
"firstName": "Cathy",
"city": "Phoenix",
"state": "AZ",
"birthdate": "1976-10-04"
},
{
"id": "2787kq",
"lastName": "Smith",
"firstName": "Albert",
"city": "San Francisco",
"state": "CA",
"birthdate": "1973-10-01"
},
{
"id": "3610fw",
"lastName": "Smith",
"firstName": "Ben",
"city": "Portland",
"state": "OR",
"birthdate": "1974-10-02"
}
]
OmniStudio LISTMERGEPRIMARY 関数
1 つ以上の差し込みキーの値に基づいて、オブジェクトの主 JSON リストのノードを 1 つ以上の他の JSON リストからのデータで追加します。
この関数は、名前付き差し込みキーの値が一致する場合に、最初の (プライマリ) 指定匿名 JSON 配列のノードを他のすべての指定匿名 JSON 配列のデータで追加します。結果のリストには、最初のリストのすべてのノードとキー、および他の一致リストのキーが含まれます。マージキーが同じである後続のリストのノードの値が最初のリストと異なる場合、後続のノードの値で以前のノードの値が上書きされます。この関数は、大文字と小文字を区別しない差し込みキーの照合を実行します。
たとえば、この関数は、関連リストのデータで強化する対象商品のリストがある場合に使用します。この関数には、プライマリリストに表示される後のリストの商品は含まれません。
署名
LISTMERGEPRIMARY(mergeKey..., LIST(list)...)
戻り値
JSON リスト
パラメーター
パラメーター |
データ型 |
必要性 |
説明 |
|---|---|---|---|
|
String |
必須 |
1 つ以上のキーのカンマ区切りリスト。この関数は、差し込みキーの値が一致すると、最初のリストのノードを他のリストのキーで追加します。 |
|
JSON リスト |
必須 |
1 つ以上の他の匿名 JSON 配列からのデータで拡張される主匿名 JSON 配列。この関数には、返されるリストの最初のリストのノードのみが含まれます。 |
サンプルデータ:
"ContactNames": [
{
"id": "0036ab",
"lastName": "Jones",
"firstName": "Cathy"
},
{
"id": "3610xr",
"lastName": "Smith",
"firstName": "Ben"
}
],
"ContactAddresses": [
{
"id": "0036ab",
"city": "Phoenix",
"state": "AZ"
},
{
"id": "7723hw",
"lastName": "Sacramento",
"firstName": "CA"
},
{
"id": "2787kq",
"city": "San Francisco",
"state": "CA"
},
{
"id": "3610xr",
"city": "Portland",
"state": "OR"
}
],
"ContactBirthdates": [
{
"id": "0036ab",
"birthdate": "1976-10-04"
},
{
"id": "7723hw",
"birthdate": "1974-07-04"
},
{
"id": "2787kq",
"birthdate": "1973-10-01"
},
{
"id": "3610xr",
"birthdate": "1974-10-02"
}
]
数式: LISTMERGEPRIMARY("id", LIST(ContactNames), LIST(ContactAddresses), LIST(ContactBirthdates))
戻り値:
[
{
"id": "0036ab",
"lastName": "Jones",
"firstName": "Cathy",
"city": "Phoenix",
"state": "AZ",
"birthdate": "1976-10-04"
},
{
"id": "3610fw",
"lastName": "Smith",
"firstName": "Ben",
"city": "Portland",
"state": "OR",
"birthdate": "1974-10-02
}
]
OmniStudio LISTSIZE 関数
リストまたは JSON 配列の項目数を返します。
空の配列をテストするには、ISBLANK 関数を使用します。
署名
LISTSIZE(list)
戻り値
数値
パラメーター
パラメーター |
データ型 |
必要性 |
説明 |
|---|---|---|---|
|
リストまたは JSON 配列 |
必須 |
値のカンマ区切りリスト、または値またはノードの JSON 配列。 |
数式: LISTSIZE(6, 7, 8, 9, 10)
戻り値: 5
数式: LISTSIZE()
数式: LISTSIZE(())
戻り値: 0
サンプルデータ:
"NameList": [
{
"FirstName": "Zellie",
"LastName": "Xavier"
},
{
"FirstName": "Aaron",
"LastName": "Xavier"
},
{
"FirstName": "Mike",
"LastName": "Smith"
}
]
数式: LISTSIZE(NameList)
戻り値: 3
サンプルデータ: "EmptyList": []
数式: LISTSIZE([])
数式: LISTSIZE(EmptyList)
戻り値: 1
数式: IF(ISBLANK(EmptyList), 0, LISTSIZE(EmptyList))
戻り値: 0
OmniStudio MAPTOLIST 関数
JSON オブジェクトまたはオブジェクトの階層を JSON リストに変換します。
署名
MAPTOLIST(jsonObject)
戻り値
JSON リスト
パラメーター
パラメーター |
データ型 |
必要性 |
説明 |
|---|---|---|---|
|
JSON オブジェクト |
必須 |
JSON リストに変換する JSON オブジェクトのノードまたはノードパス。各ノードには、1 つ以上のノードまたはキーと値のペアを含めることができます。 |
サンプルデータ:
"Contact": {
"FirstName": "William",
"MiddleName": "Leslie",
"LastName": "Edison",
"Parents": {
"Father": {
"FirstName": "Thomas",
"MiddleName": "Alva",
"LastName": "Edison"
},
"Mother": {
"FirstName": "Mary",
"MiddleName": "Stilwell",
"LastName": "Edison"
}
}
}
数式: MAPTOLIST(Contact)
戻り値:
[
{
"LastName": "Edison"
},
{
"MiddleName": "Leslie"
},
{
"FirstName": "William"
},
{
"Parents": {
"Father": {
"MiddleName": "Alva",
"LastName": "Edison",
"FirstName": "Thomas"
},
"Mother": {
"MiddleName": "Stilwell",
"LastName": "Edison",
"FirstName": "Mary"
}
}
}
]
数式: MAPTOLIST(Contact:Parents)
戻り値:
[
{
"Mother": {
"MiddleName": "Stilwell",
"LastName": "Edison",
"FirstName": "Mary"
}
},
{
"Father": {
"MiddleName": "Alva",
"LastName": "Edison",
"FirstName": "Thomas"
}
}
]
数式: MAPTOLIST(Contact:Parents:Mother)
戻り値:
[
{
"LastName": "Edison"
},
{
"MiddleName": "Stilwell"
},
{
"FirstName": "Mary"
}
]
OmniStudio MAX 関数
数値のリストまたは JSON 配列から最大値を返します。
署名
MAX(list)
戻り値
数値
パラメーター
パラメーター |
データ型 |
必要性 |
説明 |
|---|---|---|---|
|
数値のリスト |
必須 |
数値のカンマ区切りリスト、または JSON 配列の数値のリスト。 |
数式: MAX(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
戻り値: 10
サンプルデータ:
"List": [
{
"Item": 3
},
{
"Item": 4
},
{
"Item": 5
}
]
数式: MAX(List:Item)
戻り値: 5
OmniStudio MIN 関数
数値のリストまたは JSON 配列から最小値を返します。
署名
MIN(list)
戻り値
数値
パラメーター
パラメーター |
データ型 |
必要性 |
説明 |
|---|---|---|---|
|
数値のリスト |
必須 |
数値のカンマ区切りリスト、または JSON 配列の数値のリスト。 |
数式: MIN(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
戻り値: 1
サンプルデータ:
"List": [
{
"Item": 3
},
{
"Item": 4
},
{
"Item": 5
}
]
数式: MIN(List:Item)
戻り値: 3
OmniStudio SORTBY 関数
指定されたキーでオブジェクトの JSON リストを並び替え、並び替えられた JSON リストを返します。(データマッパーのみ)
この関数は、大文字と小文字を区別しないキーの一致と値の並び替えを実行します。
署名
SORTBY(LIST(list), key..., [:DSC])
戻り値
JSON リスト
パラメーター
パラメーター |
データ型 |
必要性 |
説明 |
|---|---|---|---|
|
JSON リスト |
必須 |
並び替えるオブジェクトの匿名 JSON 配列。JSON 配列を渡すには、 |
|
String |
必須 |
JSON オブジェクトを並び替える 1 つ以上のキー。 |
|
String |
省略可能 |
結果を降順に並び替えます。値を単一引用符または二重引用符で囲む必要があります (例: |
サンプルデータ:
"NameList": [
{
"FirstName": "Aaron",
"LastName": "Xavier"
},
{
"FirstName": "Zellie",
"LastName": "Xavier"
},
{
"FirstName": "Mike",
"LastName": "Smith"
}
]
数式: SORTBY(LIST(NameList), 'LastName', 'FirstName')
戻り値:
[
{
"FirstName": "Mike",
"LastName": "Smith"
},
{
"FirstName": "Aaron",
"LastName": "Xavier"
},
{
"FirstName": "Zellie",
"LastName": "Xavier"
}
]
サンプルデータ:
"NameList": [
{
"FirstName": "Aaron",
"LastName": "Xavier"
},
{
"FirstName": "Zellie",
"LastName": "Xavier"
},
{
"FirstName": "Mike",
"LastName": "Smith"
}
]
数式: SORTBY(LIST(NameList), 'LastName', 'FirstName', '[:DSC]')
戻り値:
[
{
"FirstName": "Zellie",
"LastName": "Xavier"
},
{
"FirstName": "Aaron",
"LastName": "Xavier"
},
{
"FirstName": "Mike",
"LastName": "Smith"
}
]
OmniStudio SUM 関数
リストの合計または数値の JSON 配列を返します。
署名
SUM(list)
戻り値
数値
パラメーター
パラメーター |
データ型 |
必要性 |
説明 |
|---|---|---|---|
|
数値のリスト |
必須 |
数値のカンマ区切りリスト、または JSON 配列の数値のリスト。 |
数式: SUM(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
戻り値: 55
サンプルデータ:
"List": [
{
"Item": 3.5
},
{
"Item": 4.25
},
{
"Item": 5.75
}
]
数式: SUM(List:Item)
数式: SUM(%List:Item%)
戻り値: 13.5

