リスト関数 list-functions
リスト関数を使用すると、ジャーニー式内で値のコレクションを操作して作業できます。 これらの関数は、カスタマージャーニーでの配列やリストのフィルタリング、並べ替え、変換、分析に不可欠です。
リスト関数は、次の操作が必要な場合に使用します。
- 条件に基づいてコレクションから特定の項目をフィルタリングして抽出(filter、getListItem)
- リスト要素を昇順または降順に並べ替えて整理(sort)
- リストから重複を削除し、一意の値を取得(distinct、distinctWithNull)
- コレクション内に値が存在するかどうかを確認(in)
- リストから返される項目の数を制限(limit)
- リストのサイズを取得(listSize)またはリストを異なる形式に変換(serializeList)
- リスト間の共通要素の検索などの集合演算を実行(intersect)
リスト関数は、複雑なデータ構造を操作するための強力なツールを提供し、コレクションの内容に基づいた高度なデータ操作と条件付きロジックを可能にします。
distinct distinct
指定されたリストのユニークな値またはオブジェクトを返します。 null エントリは無視されます。
distinct(<parameters>)| table 0-row-3 1-row-3 2-row-3 | ||
|---|---|---|
| パラメーター | タイプ | 説明 |
| listToProcess | listString、listBoolean、listInteger、listDecimal、listDuration、listDateTime、listDateTimeOnly、listDateOnly、listObject のいずれか | 処理するリスト。 listObject の場合は、フィールド参照にする必要があります。 |
| keyAttributeName | 文字列 | このパラメーターはオプションで、listObject に対してのみ使用できます。 パラメーターを指定しないと、すべての属性の値が同じ場合、オブジェクトは重複していると見なされます。 パラメーターを指定していて、指定された属性が同じ値を持つ場合、オブジェクトは重複していると見なされます。 |
distinct(<listInteger>)
整数のリストを返します。
distinct(<listDecimal>)
小数のリストを返します。
distinct(<listString>)
文字列のリストを返します。
distinct(<listDateTimeOnly>)
タイムゾーンを考慮しない日時のリストを返します。
distinct(<listDateTime>)
日時のリストを返します。
distinct(<listDateOnly>)
日付のリストを返します。
distinct(<listBoolean>)
ブール値のリストを返します。
distinct(<listDuration>)
期間のリストを返します。
distinct(<listObject>)
distinct(<listObject>,<string>)
オブジェクトのリストを返します。
distinct([10,2,10,null])
[10, 2] を返します。
distinctWithNull distinctWithNull
指定されたリストのユニークな値またはオブジェクトを返します。 リストに null エントリが少なくとも 1 つ含まれる場合、返されるリストに null エントリが含まれます。
distinctWithNull(<parameters>)| table 0-row-3 1-row-3 | ||
|---|---|---|
| パラメーター | タイプ | 説明 |
| listToProcess | listString、listBoolean、listInteger、listDecimal、listDuration、listDateTime、listDateTimeOnly、listDateOnly | 処理するリスト。 |
distinctWithNull(<listInteger>)
整数のリストを返します。
distinctWithNull(<listDecimal>)
小数のリストを返します。
distinctWithNull(<listString>)
文字列のリストを返します。
distinctWithNull(<listDateTimeOnly>)
タイムゾーンを考慮しない日時のリストを返します。
distinctWithNull(<listDateTime>)
日時のリストを返します。
distinctWithNull(<listDateOnly>)
日付のリストを返します。
distinctWithNull(<listBoolean>)
ブール値のリストを返します。
distinctWithNull(<listDuration>)
期間のリストを返します。
distinctWithNull([10,2,10,null])
[10, 2, null] を返します。
メモ:パラメーター <listObject> は、この関数ではサポートされません。
filter filter
指定されたキー値の 1 つに一致するキー属性を持つオブジェクトで構成される listObject(オブジェクトリスト)を返します。
filter(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| パラメーター | タイプ | 説明 |
| listToFilter | listObject(オブジェクトリスト) | フィルタリングの対象となるオブジェクトリスト。 フィールド参照にする必要があります。 |
| keyAttributeName | 文字列 | 指定されたリストのオブジェクト内の属性名。フィルタリングのキーとして使用されます |
| keyValueList | リスト | フィルタリングに使用するキー値の配列 |
filter(listObject, string, listString)
filter(listObject, string, listInteger)
filter(listObject, string, listDecimal)
filter(listObject, string, listDateTime)
filter(listObject, string, listDateTimeOnly)
filter(listObject, string, listDateOnly)
filter(listObject, string, listDuration)
filter(listObject, string, listBoolean)
listObject を返します。
受信イベント「myevent」で渡されるペイロードの例を次に示します。
| code language-json |
|---|
|
次の式を使用できます。
| code language-json |
|---|
|
「product2」と「product3」を id とする 2 つのオブジェクトから成る listObject を返します。
getListItem getListItem
指定されたインデックスのリスト項目を返します。
getListItem(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2 9-row-2 | |
|---|---|
| パラメーター | タイプ |
| リスト | listString |
| リスト | listBoolean |
| リスト | listInteger |
| リスト | listDecimal |
| リスト | listDuration |
| リスト | listDateTime |
| リスト | listDateTimeOnly |
| リスト | listDateOnly |
| index | 整数 |
getListItem(<listInteger>,<index>)
整数を返します。
getListItem(<listDecimal>,<index>)
小数を返します。
getListItem(<listString>,<index>)
文字列を返します。
getListItem(<listDateTimeOnly>,<index>)
タイムゾーンを無視して日時を返します。
getListItem(<listDateTime>,<index>)
日時を返します。
getListItem(<listDateOnly>,<index>)
日付のリストを返します。
getListItem(<listBoolean>,<index>)
ブール値を返します。
getListItem(<listDuration>,<index>)
期間を返します。
getListItem([10, 2, 3], 1)
「2」を返します。
getListItem(["A", "B", "C"], 2)
「C」を返します。
値「20.45.2.3434」を持つイベントフィールド「event.appVersion」の例
split(@event{event.appVersion}, "\\.")
["20", "45", "2", "3434"] を返します
getListItem(split(@event{event.appVersion}, "\\."), 0)
「20」を返します
in in
最初の引数値がリストに含まれているかどうかを確認します。 確認は、各引数値に対して Equal を使用して実行されます。 引数の値が見つかった場合は true を返し、それ以外の場合は false を返します。
<expression> のタイプは、リストの項目と一致する必要があります。 なお、リストの項目のタイプは互いに一致する必要があります。
in(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2 9-row-2 10-row-2 11-row-2 12-row-2 13-row-2 14-row-2 15-row-2 | |
|---|---|
| パラメーター | タイプ |
| 文字列 | 文字列 |
| ブール | ブール |
| 整数 | 整数 |
| 小数 | 小数 |
| 期間 | 期間 |
| 日時 | 日時 |
| 日時のみ | 日時のみ |
| リスト | listString |
| リスト | listBoolean |
| リスト | listInteger |
| リスト | listDecimal |
| リスト | listDuration |
| リスト | listDateTime |
| リスト | listDateTimeOnly |
| リスト | listDateOnly |
in(<integer>,<listInteger>)
in(<decimal>,<listDecimal>)
in(<string>,<listString>)
in(<boolean>,<listBoolean>)
in(<dateTimeOnly>,<listDateTimeOnly>)
in(<dateTime>,<listDateTime>)
in(<dateOnly>,<listDateOnly>)
in(<duration>,<listDuration>)
ブール値を返します。
in(4,[4,5,3,4])
true を返します。
in(8,[4,5,3,4])
false を返します。
in(#{ExperiencePlatform.ProfileFieldGroup.profile.person.gender}, ["male"])
intersect intersect
2 つの入力リストで共通する値を返します。 2 つのリストのいずれかが null の場合、空のリストを返します。
intersect(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| パラメーター | タイプ |
| リスト 1 | リスト |
| リスト 2 | リスト |
intersect(listString,listString):listString
intersect(listDecimal,listDecimal):listDecimal
intersect(listInteger,listInteger):listInteger
intersect(listDateTime,listDateTime):listDateTime
intersect(listDateTimeOnly,listDateTimeOnly):listDateTimeOnly
intersect(listDateOnly,listDateOnly):listDateOnly
intersect(listDuration,listDuration):listDuration
intersect(listBoolean,listBoolean):listBoolean
リストを返します。
| code language-json |
|---|
|
[“sports”, “news”] を返します。
| code language-json |
|---|
|
プロファイル属性と指定されたカテゴリリストの間の共通項目を返します。
| code language-json |
|---|
|
プロファイル属性と指定されたイベントフィールドの間の共通項目を返します。
limit limit
リストの先頭または末尾の N 個の要素を返します。
limit(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| パラメーター | タイプ | 説明 |
| listToProcess | listString、listBoolean、listInteger、listDecimal、listDuration、listDateTime、listDateTimeOnly、listDateOnly、listObject のいずれか | 考慮するリスト。 listObject の場合は、フィールド参照にする必要があります。 |
| numberOfItems | 整数 | 指定されたリストから返される項目の数。 |
| firstOrLastItems | ブール値 | このパラメーターはオプションです(デフォルトは true)。 true の場合は、先頭の項目を返します。 false の場合は、末尾の項目を返します。 |
limit(<listString>,<integer>)
limit(<listString>,<integer>,<boolean>)
文字列のリストを返します。
limit(<listInteger>,<integer>)
limit(<listInteger>,<integer>,<boolean>)
整数のリストを返します。
limit(<listDecimal>,<integer>)
limit(<listDecimal>,<integer>,<boolean>)
小数のリストを返します。
limit(<listBoolean>,<integer>)
limit(<listBoolean>,<integer>,<boolean>)
ブール値のリストを返します。
limit(<listDateOnly>,<integer>)
limit(<listDateOnly>,<integer>,<boolean>)
日付のリストを返します。
limit(<listDateTimeOnly>,<integer>)
limit(<listDateTimeOnly>,<integer>,<boolean>)
タイムゾーンを考慮しない日時のリストを返します。
limit(<listDateTime>,integer>)
limit(<listDateTime>,<integer>,<boolean>)
日時のリストを返します。
limit(<listDuration>,<integer>)
limit(<listDuration>,<integer>,<boolean>)
期間のリストを返します。
limit(<listObject>,<integer>)
limit(<listObject>,<integer>,<boolean>)
オブジェクトのリストを返します。
limit(["A", "B", "C", "D", "E"], 3)
["A","B","C"] を返します。
limit(["A", "B", "C", "D", "E"], 3, false)
["C","D","E"] を返します。
listSize listSize
リスト内の要素の数をカウントします。
listSize(<parameters>)| table 0-row-3 1-row-3 | ||
|---|---|---|
| パラメーター | タイプ | 説明 |
| listToProcess | listString、listBoolean、listInteger、listDecimal、listDuration、listDateTime、listDateTimeOnly、listDateOnly、listObject のいずれか | 処理するリスト。 listObject の場合は、フィールド参照にする必要があります。 listObject に null オブジェクトを含めることはできません。 |
listSize(<listInteger>)
listSize(<listDecimal>)
listSize(<listString>)
listSize(<listBoolean>)
listSize(<listDateTimeOnly>)
listSize(<listDateTime>)
listSize(<listDateOnly>)
listSize(<listDuration>)
整数を返します。
listSize(<listObject>)
listSize([10,2,3])
3 を返します。
listSize(@event{my_event.productListItems})
指定されたオブジェクト配列内のオブジェクト数を返します(listObject 型)。
serializeList serializeList
指定されたリスト(listObject 以外の任意の型)を文字列に変換します。
serializeList(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| パラメーター | タイプ | 説明 |
| listToProcess | listString、listBoolean、listInteger、listDecimal、listDuration、listDateTime、listDateTimeOnly、listDateOnly | 文字列に変換するリスト。 |
| 区切り記号 | 文字列 | 出力文字列内の各リスト要素間の区切り記号。 |
| addQuotes | ブール値 | このパラメーターは、出力文字列の各要素に引用符を含める(true)か、含まない(false)かを示します。 |
serializeList(<listInteger>,<string>,<boolean>)
serializeList(<listDecimal>,<string>,<boolean>)
serializeList(<listString>,<string>,<boolean>)
serializeList(<listBoolean>,<string>,<boolean>)
serializeList(<listDateTimeOnly>,<string>,<boolean>)
serializeList(<listDateTime>,<string>,<boolean>)
serializeList(<listDateOnly>,<string>,<boolean>)
serializeList(<listDuration>,<string>,<boolean>)
文字列を返します。
serializeList(["Hello","World"], " ", false)
「Hello World」を返します。
serializeList(["Hello", "World"], ",", true)
「“Hello”,“World”」を返します。
sort sort
値のリストやオブジェクトを自然な順序に並べ替えます。
sort(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| パラメーター | タイプ | 説明 |
| listToSort | listString、listBoolean、listInteger、listDecimal、listDuration、listDateTime、listDateTimeOnly、listDateOnly、listObject のいずれか | 並べ替えるリスト。 listObject の場合は、フィールド参照にする必要があります。 |
| keyAttributeName | 文字列 | このパラメーターは listObject に対してのみ使用します。 指定されたリストのオブジェクト内の属性名は、並べ替えのキーとして使用されます。 |
| sortingOrder | ブール値 | 昇順(true)または降順(false) |
sort(<listInteger>,<boolean>)
整数のリストを返します。
sort(<listDecimal>,<boolean>)
小数のリストを返します。
sort(<listString>,<boolean>)
文字列のリストを返します。
sort(<listDateTimeOnly>,<boolean>)
タイムゾーンを考慮しない日時のリストを返します。
sort(<listDateTime>,<boolean>)
日時のリストを返します。
sort(<listDateOnly>,<boolean>)
日付のリストを返します。
sort(<listBoolean>,<boolean>)
ブール値のリストを返します。
sort(<listObject>,<string>,<boolean>)
オブジェクトのリストを返します。
sort(["A", "C", "B"], true)
["A","B","C"] を返します。
sort([1, 3, 2], false)
[3, 2, 1] を返します。
sort(@event{my_event.productListItems}, "SKU", true)
SKU 属性で並べ替えられた listObject を返します(昇順)
このセクションには、このトピックに関連する解釈、検索、質問への回答をサポートすることを目的とした構造化された知識が含まれています。
理解を深めるには、この情報をこのページのドキュメントと組み合わせる必要があります。 どちらのソースも単独で使用することを意図していません。このページでは、機能について説明しますが、この節では、用語、意図、適用可能性、および制約の曖昧さを解消するのに役立つ追加のコンテキストを提供します。
- TL;DR:このページでは、AJO ジャーニー式で使用できるすべてのリスト関数について説明します。リストと配列の共通点をフィルタリング、並べ替え、重複排除、メンバーシップのチェック、制限、シリアル化、検索する方法について説明します。
インテント:
distinct(nullを無視)またはdistinctWithNull(nullを保持)を使用して、リストから重複する値を削除しますfilterを使用して特定のキー値に一致するオブジェクトのみを返すようにlistObjectをフィルタリングしますgetListItemを使用して、リストから特定のインデックスの要素を取得しますinを使用して、リストに値が存在するかどうかを確認しますintersectを使用して2つのリスト間の共通の要素を検索limitを使用して、リストの最初または最後のN要素を返しますlistSizeを使用してリスト内の要素の合計数をカウントしますserializeListを使用してリストを区切り文字列に変換するsortを使用してリストを昇順または降順で並べ替える
用語集:
- listObject: フィールド参照である必要がある複雑なオブジェクトのリスト。null オブジェクトを含めることはできません(製品固有)
- keyAttributeName:
distinct、filter、sortで使用されるオプションの文字列パラメーターで、重複排除、フィルタリング、並べ替えに使用するオブジェクト属性 (製品固有) を識別します - intersect:両方の入力リストに存在する要素のみを返す設定操作
ガードレール:
distinctWithNullは<listObject>パラメーター型をサポートしていませんfilterでは、listObject パラメーターをインライン リテラルではなくフィールド参照にする必要があります- listObjectの
listSizeでは、リストをフィールド参照にする必要があります。listObjectにnull オブジェクトを含めることはできません serializeListはlistObjectタイプをサポートしていません
用語:
- 正規名:リスト関数 – Acronym: none — バリアント:コレクション関数、配列関数
- 同義語:“listSize” = “count list elements”; “serializeList” = “join list to string”
- 混同しないでください:“distinct” (nullを無視) ≠ “distinctWithNull” (nullを一意の値として保持)
- 次を混同しないでください:「limit」と3番目のパラメーター
true(最初のN個の項目を返します)≠「limit」とfalse(最後のN個の項目を返します) - 混同しないでください。「intersect」(2つのリスト間の共通エレメント)≠「filter」(特定のキー値に一致するエレメント)
FAQ:
- Q: リストの最初の3つの項目を取得するにはどうすればよいですか? —
limit(myList, 3)またはlimit(myList, 3, true)を使用します。デフォルトでは、最初の項目を返します。 - Q: リストの最後の3つの項目を取得するにはどうすればよいですか? —
limit(myList, 3, false)を使用します。 - Q:
distinctとdistinctWithNullの違いは何ですか? —distinctはnull値を無視して結果から除外します。distinctWithNullはnullを明確な値として扱い、nullが存在する場合は1つのnull エントリを含みます。 - Q:
filterで文字列のリストをフィルタリングできますか? – いいえ、filterはlistObjectでのみ機能します。スカラー一覧の場合は、重複排除にinまたはdistinctを使用します。 - Q:値がリストにあるかどうかを確認するにはどうすればよいですか? — リスト内に値が見つかった場合にtrueを返す
in(value, myList)を使用します。 - Q: listObjectを特定の属性で並べ替えることはできますか? – はい、2番目のパラメーターが属性名、3番目のパラメーターが並べ替え方向(true = ascending)の場合は
sort(@event{...}, "attributeName", true)を使用します。