위치:
REST 호출을 사용하여 체인형 통합 절차 호출
Salesforce 총괄자 제한에 도달하지 않도록 연결 가능한 통합 절차가 여러 트랜잭션으로 분할됩니다. REST API를 사용하면 통합 절차가 완료되기 전에 각 트랜잭션이 반환하는 부분 응답을 가장 쉽게 확인할 수 있습니다.
시작하기 전에
-
조직의 통합 절차에서 사용하는 네임스페이스를 결정합니다(예:
omnistudio). -
다음 통합 절차 예를 만들거나 DataPack을 가져옵니다. 수식을 사용하여 Try-Catch 블록 예를 만듭니다.
-
조직에 현재 로그인할 수 있는 세션 ID를 가져옵니다. Salesforce의 REST API 개발자 가이드에서 권한 부여 설정을 참조하십시오.
REST API와 통합 절차 사용:
- 조직에서 통합 절차 예를 엽니다. DataPack을 가져온 경우 Documentation/IPTryCatch2 또는 Documentation/IPTryCatchF2에 나열됩니다.
- 미리 보기 탭에서 여러 개 이상의 레코드를 반환하는 레코드를 찾을 때까지 다른 이름 입력 매개 변수 값을 시도합니다. 이상 이름 값은 두 개의 이름을 반환합니다.
-
절차 구성에서 통합 절차가 활성화된 경우 버전 비활성화를 클릭하여 편집할 수 있습니다. Chainable Query Rows Limit을 체인화할 수 있을 정도로 낮은 값으로 설정합니다.
예를 들어, 이전 단계의 이름 값이 두 개의 레코드를 반환하는 경우 1의 체인 가능 쿼리 행 제한 값이 두 개의 트랜잭션을 생성합니다. 이름 값이 3개의 레코드를 반환하는 경우 2의 Chainable Query Rows Limit 값이 3개의 트랜잭션을 생성합니다.
- DRExtractAction1 구성 요소로 이동하여 해당 Chain on Step 속성을 확인합니다.
- 절차 구성으로 돌아가서 버전 활성화를 클릭합니다.
-
터미널에서 다음 양식의 curl 명령을 입력하여 REST API를 호출합니다.
curl -X POST \ -H 'Authorization: Bearer session_id' \ -H 'Content-Type: application/json' \ -H 'chainable:true' \ --data-raw '{"Name":"Name"}' \ https://ap1.salesforce.com/services/apexrest/namespace/v1/integrationprocedure/Type_SubType예를 들어, 이름이
Jones이고 네임스페이스가omnistudio이고 유형이Documentation이고 하위 유형이IPTryCatchF2인 경우 이 curl 명령을 입력합니다. 양식00Dnn000000nnnn!ARUAQLt...QqodNY3의 긴 문자열인 세션 ID는 명확성을 위해 SessionId로 표시됩니다.curl -X POST \ -H 'Authorization: Bearer SessionId' \ -H 'Content-Type: application/json' \ -H 'chainable:true' \ --data-raw '{"Name":"Jones"}' \ https://MyDomainName.my.salesforce.com/services/apexrest/omnistudio/v1/integrationprocedure/Documentation_IPTryCatchF2팁텍스트 편집기에서 curl 명령을 조립하고 터미널에 복사할 수 있습니다.
-
다음
vlcIPData가 포함된 응답을 검사합니다.{ "vlcUseQueueableApexRemoting": false, "vlcMessage": null, "vlcIPData": "dc3e1986-2f7c-0871-e968-28eb63e11820", "vlcStatus": "InProgress" }노트통합 절차 미리 보기는 체인화를 자동으로 처리하므로 미리 보기에 이 유형의 응답이 표시되지 않습니다.
-
curl 명령에
vlcIPData의 머리글을 추가하고 다음을 입력합니다.curl -X POST \ -H 'Authorization: Bearer SessionId' \ -H 'Content-Type: application/json' \ -H 'chainable:true' \ -H 'vlcIPData:dc3e1986-2f7c-0871-e968-28eb63e11820' \ --data-raw '{"Name":"Jones"}' \ https://MyDomainName.my.salesforce.com/services/apexrest/omnistudio/v1/integrationprocedure/Documentation_IPTryCatchF2 -
응답을 검사합니다. 다른
vlcIPData값이 포함된 경우 새vlcIPData값으로 이전 단계를 반복합니다. 응답에 해당 값이 없을 때까지 각각의 새vlcIPData값을 반복합니다.이 응답은 통합 절차가 완료되면 반환되는 항목의 예입니다.
{ "response": {}, "ResponseAction1Status": true, "Name": "Jones", "options": { "Accept": "*/*", "X-B3-SpanId": "ee09609f22d890e1", "CipherSuite": "ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 256-bits", "User-Agent": "curl/7.64.1", "X-B3-Sampled": "0", "Host": "MyDomainName.my.salesforce.com", "X-B3-TraceId": "ee09609f22d890e1", "chainable": "true", "X-Salesforce-SIP": "42.42.42.42", "Content-Type": "application/json" }, "DRExtractAction1Status": true, "DRExtractAction1": [ { "ContactName": "John Jones" }, { "ContactName": "June Jones" } ], "TryCatchBlock1Status": true, "TryCatchBlock1": null }
