데이터 작업에 대한 응답 구성

참고: 이 문서는 AWS Lambda, Genesys Cloud, Google, Microsoft Dynamics 365, Salesforce, 웹 서비스 및 Zendesk 데이터 작업 통합에 적용됩니다.

데이터 작업 통합에 대한 사용자 지정 작업을 만들 수 있습니다. 사용자 지정 작업에는 구성에 요청과 응답이 포함됩니다. 자세한 내용은 사용자 지정 작업 만들기.

이 문서에서는 응답의 일부를 설명합니다. 요청에 대한 정보는 다음을 참조하십시오. 구성 요청.

사용자 지정 작업은 번역 맵과 성공 템플릿을 사용하여 원격 웹 서비스 또는 AWS Lambda 함수의 원시 응답을 정의된 성공 스키마를 준수하는 해결된 응답으로 변환합니다. 이러한 성공 템플릿은 매크로 사용을 지원합니다. 자세한 내용은 데이터 작업을 위한 속도 매크로.

응답 없음

데이터 작업 통합에 대한 작업이 실행되면 전체 응답을 원시 응답이라고 합니다. 그러나 원시 응답이 작업의 성공 스키마에 정의된 형식과 반드시 일치하는 것은 아닙니다. 원시 응답이 일치하지 않으면 번역 맵과 성공 템플릿을 사용하여 데이터 형식을 다시 지정할 수 있습니다.

참고: Google Cloud Functions는 번역 맵을 처리하기 전에 작업이 JSON으로 변환되는 문자열화된 JSON 응답을 반환합니다.

번역 지도

번역 맵에는 속성 이름을 JSONPath 표현식 평가에서 반환된 값(또는 개체)에 매핑하는 키-값 쌍이 포함되어 있습니다.

번역 지도 기본값

번역 맵 기본값에는 번역 맵 키를 기본값으로 설정하는 키-값 쌍이 포함됩니다. 번역 맵에 구성된 JSONPath 표현식이 값을 해석하지 못하는 경우 기본값이 사용됩니다. Null 값은 기본값으로 돌아가지 않습니다.

성공 템플릿

성공 템플릿은 Velocity 템플릿 언어의 변수 표기법을 사용합니다. 성공 템플릿은 변환 맵의 속성 이름을 사용하여 JSONPath 표현식에서 반환된 데이터를 삽입합니다. 일반적으로 성공 템플릿의 모든 데이터는 출력에서 리터럴로 처리됩니다. $ 이내의 항목{} 번역 맵의 값에 대한 참조입니다. 자세한 내용은 Apache Velocity 프로젝트 선적 서류 비치.

해결된 응답

성공 템플릿은 성공 스키마를 준수해야 하는 해결된 응답을 생성합니다. 그렇지 않으면 오류가 발생합니다.

성공 스키마

성공 스키마는 작업 응답의 필수 형식을 정의합니다. 

사용 사례에서 탐색하세요.

종종 다음 상황에서 번역 맵과 성공 템플릿을 사용하여 원시 응답을 변환하려고 합니다.

  • 원시 응답에 여러 개체가 포함되어 있습니다. 확인된 출력이 성공 스키마와 일치하려면 여러 개체를 다른 개체의 구성원으로 반환해야 합니다.
  • 원시 응답에는 이산 값으로 변환하려는 값 또는 변환 유형(예: 배열)이 포함되어 있습니다.
  • 데이터의 특정 하위 집합만 반환하려고 합니다.
  • 반환된 속성의 순서를 보장하려고 합니다.

타사의 응답이 성공 스키마와 일치하면 조작 없이 원시 응답을 반환하려고 합니다. 이 경우 기본 요청 템플릿을 사용합니다. 다른 값이 제공되지 않으면 기본 요청 템플릿은 기본 제공 원시 결과 컨텍스트 값. 그런 다음 성공 템플릿은 변환 맵을 사용하여 값을 추출하지 않고 전체 결과를 전달합니다.

${rawResult}

Salesforce GetContactByPhoneNumber 작업의 예

새 응답

다음은 Salesforce GetContactByPhoneNumber 작업이 실행될 때 Salesforce의 원시 응답 예입니다.

{
  "searchRecords": [
    {
      "attributes": {
        "type": "Contact",
        "url": "/services/data/v37.0/sobjects/Contact/003G000001LrjlTIAR"
      },
      "Email": null,
      "FirstName": "Jack",
      "HomePhone": null,
      "Phone": "(317) 555-0123",
      "Id": "003G000001LrjlTIAR",
      "LastName": "Teller",
      "MobilePhone": null,
      "OtherPhone": null,
      "MailingStreet": null,
      "MailingCity": null,
      "MailingState": null,
      "MailingCountry": null,
      "MailingPostalCode": null
    }
  ]
}

원시 응답에는 루트 노드(searchRecords)가 포함됩니다. searchRecords 개체는 Salesforce에서 반환된 연락처 정보를 나타냅니다.

번역 지도

번역 맵은 원시 응답에서 데이터 세그먼트를 가져옵니다. 이 경우 전체 노드 searchRecords를 가져오려고 합니다. 

메모:  
  • 번역 맵의 속성 이름은 문자(az, AZ)로 시작해야 하며 문자, 숫자(0-9), 하이픈(-) 또는 밑줄(_)만 포함해야 합니다. 
  • 값 이름에 공백이 포함된 경우 이름 주위에 대괄호와 작은따옴표를 추가합니다. 예를 들면 "연락하다": “$.['기록 검색']”.

"translationMap": {
  "contact": "$.searchRecords"
}

JSONPath 표현식 $.searchRecords 원시 응답에서 searchRecords 개체를 추출하고 별칭을 할당합니다. "연락하다". 성공 템플릿은 별칭을 사용합니다.

성공 템플릿

성공 템플릿은 별칭을 참조합니다. "연락하다" 번역 맵에서 만든 것입니다. 별칭은 성공 스키마와 일치하는 데 필요한 모든 값을 포함하는 원시 응답의 개체를 가리킵니다.

${contact}

해결된 응답

성공 템플릿은 작업에 대한 해결된 응답을 생성합니다. 해결된 응답은 작업이 반환하는 응답입니다. 

[
    {
      "attributes": {
        "type": "Contact",
        "url": "/services/data/v37.0/sobjects/Contact/003G000001LrjlTIAR"
      },
      "Email": null,
      "FirstName": "Jack",
      "HomePhone": null,
      "Phone": "(317) 555-0123",
      "Id": "003G000001LrjlTIAR",
      "LastName": "Teller",
      "MobilePhone": null,
      "OtherPhone": null,
      "MailingStreet": null,
      "MailingCity": null,
      "MailingState": null,
      "MailingCountry": null,
      "MailingPostalCode": null
    }
]		

결제 제공업체와 함께 사용하기 위한 예시 작업

새 응답

다음은 신용 카드를 청구할 때 작업이 포함된 원시 응답의 예입니다.

{
  "id": "ch_1AS7Iv2eZvKYlo2CmgEX0bHw",
  "object": "charge",
  "amount": 999,
  "amount_refunded": 0,
  "application": null,
  "application_fee": null,
  "balance_transaction": "txn_1AS7Iv2eZvKYlo2CjrARHR6C",
  "captured": true,
  "created": 1496854005,
  "currency": "usd",
  "customer": "cus_AFEwvtMn3H17af",
  "description": null,
  "destination": null,
  "dispute": null,
  "failure_code": null,
  "failure_message": null,
  "fraud_details": {
  },
  "invoice": "in_1AS6Mf2eZvKYlo2C9QEibbxz",
  "livemode": false,
  "metadata": {
  },
  "on_behalf_of": null,
  "order": null,
  "outcome": {
    "network_status": "approved_by_network",
    "reason": null,
    "risk_level": "normal",
    "seller_message": "Payment complete.",
    "type": "authorized"
  },
  "paid": true,
  "receipt_email": null,
  "receipt_number": null,
  "refunded": false,
  "refunds": {
    "object": "list",
    "data": [
 
    ],
    "has_more": false,
    "total_count": 0,
    "url": "/v1/charges/ch_1AS7Iv2eZvKYlo2CmgEX0bHw/refunds"
  },
  "review": null,
  "shipping": null,
  "source": {
    "id": "card_19ukSY2eZvKYlo2CHlYUs1DM",
    "object": "card",
    "address_city": null,
    "address_country": null,
    "address_line1": null,
    "address_line1_check": null,
    "address_line2": null,
    "address_state": null,
    "address_zip": "94301",
    "address_zip_check": "pass",
    "brand": "Visa",
    "country": "US",
    "customer": "cus_AFEwvtMn3H17af",
    "cvc_check": null,
    "dynamic_last4": null,
    "exp_month": 12,
    "exp_year": 2018,
    "fingerprint": "Xt5EWLLDS7FJjR1c",
    "funding": "credit",
    "last4": "4242",
    "metadata": {
    },
    "name": null,
    "tokenization_method": null
  },
  "source_transfer": null,
  "statement_descriptor": null,
  "status": "succeeded",
  "transfer_group": null
}

번역 지도

번역 맵은 원시 응답에서 데이터 세그먼트를 가져옵니다. 이 경우 원시 응답에서 4개의 필드를 가져오려고 합니다.

"translationMap": {
  "idValue": "$.id",
  "paidValue": "$.paid",
  "outcomeValue": "$.outcome",
  "sourceValue": "$.source"
}

JSONPath 표현식 $.id, $.유료, $.결과, 그리고 $.source 원시 응답에서 값을 추출하고 별칭에 할당 아이디 값, 유료 가치, 결과값, 그리고 소스 값. 번역 맵 기본값은 기본값을 설정합니다. 소스 값. 성공 템플릿은 이러한 모든 별칭을 사용합니다.

번역 지도 기본값

번역 맵 기본값은 번역 맵의 키를 기본값으로 설정합니다. 이 경우 응답에 소스 속성이 포함되지 않았으므로 소스 값 기본값으로 "알려지지 않은".

"translationMapDefaults": {
  "sourceValue": "\"UNKNOWN\""
}

지불 공급자의 응답에는 번역 맵의 소스 속성이 포함되거나 포함되지 않을 수 있습니다. 응답에 포함된 경우 소스 속성을 사용하고 응답에 포함되지 않은 경우 오류가 발생하지 않도록 하려면 다음을 설정하십시오. 소스 값 번역 맵에서 기본적으로 "알려지지 않은".

응답에 번역 맵의 다른 필드가 포함되지 않으면 작업이 실패합니다.

성공 템플릿

성공 템플릿은 별칭을 참조하는 유효한 JSON 응답을 빌드합니다. 아이디 값, 유료 가치, 그리고 결과값 번역 맵에서 생성되었습니다. 별칭은 성공 스키마와 일치하는 데 필요한 원시 응답의 값을 가리킵니다.

{
   "id": ${idValue},
   "outcome": ${outcomeValue},
   "paid": ${paidValue},
   "source": ${sourceValue}
}
참고: $ 외부의 텍스트{} 리터럴로 처리됩니다.

해결된 응답

성공 템플릿은 작업에 대한 해결된 응답을 생성합니다. 해결된 응답은 작업이 반환하는 응답입니다.

{
   "id": "ch_1AS7Iv2eZvKYlo2CmgEX0bHw",
   "outcome": {
      "network_status": "approved_by_network",
      "reason": null,
      "risk_level": "normal",
      "seller_message": "Payment complete.",
      "type": "authorized"
   },
   "paid": true,
   "source": "UNKNOWN"
}

사용자 지정 작업의 구성에 대한 자세한 내용은 다음을 참조하십시오. 구성 추가 그리고 구성 수정.

자세한 내용은 통합을 위한 사용자 지정 작업 정보.

통합에 대한 자세한 내용은 다음을 참조하십시오. 데이터 작업 통합 정보.