사용자 정의 액션 매개 변수에 컬렉션 전달 passing-collection

이 페이지에서: 단순 컬렉션 및 개체 컬렉션을 사용자 지정 작업 매개 변수에 전달하여 런타임 시 동적으로 채우는 방법을 알아봅니다.

런타임 시 동적으로 채워진 사용자 지정 작업 매개 변수에서 컬렉션을 전달할 수 있습니다.

지원되는 컬렉션은 두 가지입니다.

  • 단순 컬렉션

    문자열, 숫자 또는 부울 같은 기본 값 목록에 간단한 컬렉션을 사용합니다. 이러한 기능은 추가 속성 없이 항목 목록을 전달하기만 하면 되는 경우에 유용합니다.

    예를 들어 디바이스 유형 목록은 다음과 같습니다.

    code language-json
    {
     "deviceTypes": [
         "android",
         "ios"
     ]
    }
    
  • 개체 컬렉션

    각 항목에 여러 필드 또는 속성이 포함된 경우 개체 컬렉션을 사용합니다. 일반적으로 제품 세부 사항, 이벤트 레코드 또는 항목 속성과 같은 구조화된 데이터를 전달하는 데 사용됩니다.

    예:

    code language-json
    {
    "products":[
       {
          "id":"productA",
          "name":"A",
          "price":20.1
       },
       {
          "id":"productB",
          "name":"B",
          "price":10.0
       },
       {
          "id":"productC",
          "name":"C",
          "price":5.99
       }
     ]
    }
    
NOTE
컬렉션 내의 중첩된 배열은 사용자 지정 작업 요청 페이로드에서 일부만 지원됩니다. 자세한 내용은 제한 사항을 참조하세요.

일반 절차 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이(가) 두 개체의 배열임을 확인할 수 있습니다. 하나 이상의 개체가 있어야 합니다.

  1. 사용자 지정 작업을 만듭니다. 이 페이지에서 자세히 알아보십시오.

  2. 작업 매개 변수 섹션에 JSON 예제를 붙여 넣습니다. 표시된 구조는 정적입니다. 페이로드를 붙여 넣을 때 모든 필드가 상수로 정의됩니다.

    컬렉션 함수 및 작업을 표시하는 식 편집기

  3. 필요한 경우 필드 유형을 조정합니다. 컬렉션에는 listString, listInteger, listDecimal, listBoolean, listDateTime, listDateTimeOnly, listDateOnly, listObject 필드 형식이 지원됩니다

    note
    NOTE
    페이로드 예제에 따라 필드 유형이 자동으로 유추됩니다.
  4. 개체를 동적으로 전달하려면 변수로 설정해야 합니다. 이 예제에서는 products을(를) 변수로 설정합니다. 객체에 포함된 모든 객체 필드는 자동으로 변수로 설정됩니다.

    note
    NOTE
    페이로드 예제의 첫 번째 객체는 필드를 정의하는 데 사용됩니다.
  5. 각 필드에 대해 여정 캔버스에 표시될 레이블을 정의합니다.

    조건 빌더 인터페이스를 사용한 컬렉션 함수 필터링 {width="70%"}

  6. 여정을 만들고 만든 사용자 지정 작업을 추가합니다. 이 페이지에서 자세히 알아보십시오.

  7. 작업 매개 변수 섹션에서 고급 표현식 편집기를 사용하여 배열 매개 변수(products)를 정의합니다.

    필드 선택이 있는 컬렉션 필터링 식

  8. 다음 각 오브젝트 필드에 대해 소스 XDM 스키마의 해당 필드 이름을 입력합니다. 이름이 동일한 경우 이 작업이 필요하지 않습니다. 이 예제에서는 product id과(와) "color"만 정의하면 됩니다.

    순서 지정 구성이 있는 컬렉션 정렬 함수 {width="50%"}

배열 필드의 경우 고급 표현식 편집기를 사용하여 데이터 조작을 수행할 수도 있습니다. 다음 예제에서는 filterintersect 함수를 사용합니다.

필터, 정렬 및 제한 작업이 있는 컬렉션 식 완료

제한 사항 limitations

사용자 지정 작업의 컬렉션은 동적 데이터를 유연하게 전달할 수 있지만 다음과 같은 특정 구조적 제약 조건이 있습니다.

  • 사용자 지정 작업에서 중첩된 배열 지원

    Adobe Journey Optimizer은(는) 사용자 지정 작업 응답 페이로드​에서 중첩된 개체 배열을 지원하지만, 이 지원은 요청 페이로드​에서 제한됩니다.

    요청 페이로드에서 중첩된 배열은 사용자 지정 작업 구성에 정의된 대로 고정 수의 항목이 포함된 경우에만 지원됩니다. 예를 들어 중첩된 배열에 항상 정확히 세 개의 항목이 포함되어 있으면 상수로 구성할 수 있습니다. 항목 수가 동적이어야 하는 경우, 중첩되지 않은 배열(맨 아래 수준의 배열)만 변수로 정의할 수 있습니다.

    예:

    1. 다음 예제에서는 지원되지 않는 사용 사례​를 보여 줍니다.

      이 예제에서 제품 배열에는 동적 항목 수가 포함된 중첩된 배열(locations)이 포함되어 있습니다. 이 배열은 요청 페이로드에서 지원되지 않습니다.

      code language-json
      {
      "products": [
         {
            "id": "productA",
            "name": "A",
            "price": 20,
            "locations": [
            { "name": "Paris" },
            { "name": "London" }
            ]
         }
      ]
      }
      
    2. 고정 항목이 상수로 정의된 지원되는 예입니다.

      이 경우 중첩된 위치가 고정 필드(location1, location2)로 대체되므로 페이로드가 지원되는 구성 내에서 유효한 상태로 유지될 수 있습니다.

      code language-json
      {
      "products": [
         {
            "id": "productA",
            "name": "A",
            "price": 20,
            "location1": { "name": "Paris" },
            "location2": { "name": "London" }
         }
      ]
      }
      
  • 컬렉션 테스트: 테스트 모드를 사용하여 컬렉션을 테스트하려면 코드 보기 모드를 사용해야 합니다. 코드 보기 모드는 비즈니스 이벤트에 대해 지원되지 않으므로 이 경우 단일 요소가 포함된 컬렉션만 보낼 수 있습니다.

특별한 경우 examples

이기종 유형 및 배열 배열의 경우 배열은 listAny 형식으로 정의됩니다. 개별 항목만 매핑할 수 있지만 배열을 변수로 변경할 수는 없습니다.

데이터 형식과 필드 선택이 혼합된 다른 형식 컬렉션 {width="70%"}

형식이 다른 형식의 예:

{
    "data_mixed-types": [
        "test",
        "test2",
        null,
        0
    ]
}

배열 배열의 예:

{
    "data_multiple-arrays": [
        [
            "test",
            "test1",
            "test2"
        ]
    ]
}

추가 리소스

사용자 지정 작업의 구성, 사용 및 문제 해결에 대한 자세한 내용을 보려면 아래 섹션을 찾아보십시오.

AI 기술 자료 참조

이 단원에는 이 주제와 관련된 해석, 검색 및 질문 답변을 지원하기 위한 구조화된 지식이 포함되어 있습니다.

이해를 돕기 위해 이 정보를 이 페이지의 설명서와 통합해야 합니다. 두 소스 모두 독립적으로 사용하기 위한 것은 아닙니다. 이 페이지에서는 기능에 대해 설명하지만, 용어, 의도, 적용 가능성 및 제약 조건을 명확히 하는 데 도움이 되는 추가 컨텍스트를 제공합니다.

  • TL;DR: 이 페이지에서는 지원되는 필드 유형, 구성 프로시저 및 중첩된 배열에 대한 알려진 제한 사항을 포함하여 Journey Optimizer의 사용자 지정 작업 매개 변수에 단순 및 개체 컬렉션을 동적으로 전달하는 방법을 설명합니다.

의도:

  • 컬렉션(단순 또는 개체)을 동적 매개 변수로 수락하도록 사용자 지정 작업을 구성합니다.
  • 여정을 작성할 때 고급 표현식 편집기에서 배열 매개 변수를 변수로 정의합니다
  • 필터 및 교차 함수를 적용하여 표현식 편집기에서 배열 데이터 조작
  • 사용자 지정 작업 요청 페이로드에 대한 중첩된 배열 제한 사항을 이해하고 작업합니다.
  • 여정 테스트 모드에서 코드 보기 모드를 사용하여 컬렉션 매개 변수 테스트

용어집:

  • 단순 컬렉션: 사용자 지정 작업 매개 변수 (제품별)로 전달된 기본 스칼라 값 목록(문자열, 숫자, 부울)
  • 개체 컬렉션: 각각 여러 필드가 있는 구조화된 개체의 목록이 사용자 지정 작업 매개 변수 (제품별)(으)로 전달되었습니다.
  • listObject: 개체 배열 (제품별)을 나타내기 위해 사용자 지정 작업 구성에 사용되는 필드 형식
  • listAny: 항목이 혼합된 (제품별)​이(가) 있는 다른 배열 또는 배열 배열에 사용되는 필드 형식입니다
  • 변수(변수와 상수): 작업 매개 변수 구성에서 "variable"로 설정된 필드는 여정 컨텍스트에서 런타임에 동적으로 채워지는 반면 "constant"는 구성 시간 (제품별)에 설정된 고정 값입니다

보호 기능:

  • 요청 페이로드의 중첩된 배열은 고정 수의 항목(상수로 정의됨)이 포함된 경우에만 지원되며, 동적 중첩된 배열은 지원되지 않습니다
  • 테스트 모드에서 컬렉션을 테스트하려면 코드 보기 모드가 필요합니다. 코드 보기는 비즈니스 이벤트에 대해 지원되지 않으므로 이 경우 단일 요소 컬렉션만 전송할 수 있습니다
  • 컬렉션 필드를 정의하는 데 사용되는 페이로드 예제에는 개체가 하나 이상 있어야 합니다.
  • 페이로드 예제의 첫 번째 개체는 전체 컬렉션에 대한 필드를 정의합니다

용어:

  • 정식 이름: 컬렉션 — 약어: 없음 — 변형: 배열, 목록, 동적 컬렉션
  • 동의어: “simple collection” = “scalar 값 목록” ; “object collection” = “오브젝트 배열”
  • 혼동하지 마십시오. “listAny” ≠ “listObject”(listAny는 이기종 또는 중첩 배열을 처리하며, listObject는 구조화된 개체의 균일한 배열을 처리합니다.)

FAQ:

  • Q: 단순 컬렉션과 개체 컬렉션의 차이점은 무엇입니까? — 간단한 컬렉션에는 기본 스칼라 값(문자열, 숫자, 부울)이 들어 있고 객체 컬렉션에는 이름이 지정된 여러 필드가 있는 구조화된 객체가 들어 있습니다.
  • Q: 런타임에 컬렉션 매개 변수를 동적으로 만들려면 어떻게 해야 합니까? — 사용자 지정 작업의 작업 매개 변수 섹션에서 배열 필드를 "변수"로 설정합니다. 그러면 그 안의 모든 객체 필드가 자동으로 변수로 설정됩니다.
  • Q: 중첩된 배열이 사용자 지정 작업 요청 페이로드에서 지원됩니까? — 부분적으로만 사용할 수 있습니다. 알려진 고정 항목 수가 있는 중첩된 배열은 상수로 정의할 수 있습니다. 동적 항목 수가 있는 중첩된 배열은 요청 페이로드에서 지원되지 않습니다.
  • Q: 여정 테스트 모드에서 컬렉션을 테스트하려면 어떻게 합니까? — 테스트 인터페이스의 코드 보기 모드를 사용합니다. 비즈니스 이벤트는 코드 보기를 지원하지 않으므로 해당 컨텍스트에서 단일 요소 컬렉션만 테스트할 수 있습니다.
  • Q: 컬렉션에 지원되는 필드 유형은 무엇입니까? — listString, listInteger, listDecimal, listBoolean, listDateTime, listDateTimeOnly, listDateOnly 및 listObject가 모두 지원됩니다.
recommendation-more-help
journey-optimizer-help