Q1. Xplenty에서 사용하는 API는?
"Bulk API"입니다.
Q2. 데이터 Source/Destination에서 사용자 정의 객체를 지정할 수 있습니까?
지정 가능 합니다.
Q3. SOQL을 사용할 수 있습니까?
기본값은 "Object"이지만 "Query"로 변경하면 SOQL을 사용할 수 있습니다.
![thumbnail image]()
힌트: Salesforce Object에서 날짜 필터의 지정 방법
Object를 지정 한 경우에도, SOQL 베이스의 필터 조건을 설정할 수 있습니다.
고정값의 경우
필터링할 필드가 날짜 형식인 경우 홑 따옴표 없이 설정합니다.
![thumbnail image]()
변수를 사용하는 경우
1) 2시간 전 ~ 현재 의 데이터를 취득한다
변수 이름: two_hours_ago
변수 식: SubtractDuration(CurrentTime(),'PT2H')
![thumbnail image]()
2) 현재 날짜(한국 시간)의 0시 이후의 데이터를 취득한다
변수식 : 먼저 한국의 현재 일자의 0시를 취득해 거기로부터 -9시간(UTC)으로 변환한다.
SubtractDuration(ToDate(ToString(SwitchTimeZone (CurrentTime(),'Asia/Seoul') ,'yyyy-MM-dd\\'T\\'00:00:00.000')),'PT9H')
Q5. Salesforce가 Destination인 경우: 업데이트 방법에 대하여
-
Insert : 레코드 추가 전용
-
Upsert : 레코드 추가 / 업데이트 (Upsert Key ID를 설정하고, 기존 레코드가 있는 경우 해당 레코드를 덮어 씁니다)
-
Delete: Key 열을 지정해, 일치하는 레코드를 삭제
데이터의 추가, 갱신의 목적이 아니고, 레코드의 삭제를 실시하고 싶은 경우에 사용한다
![thumbnail image]()
열 매핑
※ 관련 객체(REFFERENCED OBJECT)를 자동으로 감지합니다.
![thumbnail image]()
Q5. Salesforce가 Destination인 경우: 오브젝트의 기존 레코드의 일부 필드만 업데이트할 수 있습니까?
예) 상담 오브젝트의 이슈 정확도(Probability)를 업데이트하는 경우 이 경우 작업은 다음과 같이 동작합니다.
![thumbnail image]()
-
개체에 지정된 상담 ID의 데이터가 있는 경우 : 대상 레코드 업데이트
-
개체에 지정된 상담 ID의 데이터가 없는 경우 : 오류
Q6. Salesforce가 Destination인 경우: 에러 판정의 제어에 대하여
전체 작업에서 허용되는 오류 레코드 수는 Maximum errors 값으로 제어할 수 있습니다.
「Batch size」는 한번의 API에 보낼 레코드수입니다. 하지만, 에러수는 Batch size에 관계없이, 처리 전반에 에러 레코드수가 어느 정도 있었는지와 허용 가능한 최대 에러수의 값을 비교 작업의 결과가 에러인지 여부를 결정합니다.
![thumbnail image]()
DB의 경우 업데이트에 성공한 레코드도 롤백되지만 Salesforce의 경우 API의 특성상 롤백되지 않으므로 주의해야 합니다.
자세한 내용은 링크(영어)를 참고하세요
시나리오 |
최대 에러 수 |
작업결과 |
비교 |
10건 중 1건 실패하면 |
0 |
에러 |
최대 오류 수 0 < 실제 오류 수 1 |
10건 중 1건 실패하면 |
1 |
성공 |
최대 오류 수 1 = 실제 오류 수 1 |
10건 중 2건 실패하면 |
1 |
에러 |
최대 오류 수 1 < 실제 오류 수 2 |
10건 중 8건 실패하면 |
10 |
성공 |
최대 오류 수 10 > 실제 오류 수 8 |
Q7. Salesforce가 Destination인 경우: 배치 크기(Batch size) 설정으로 인한 API제한을 피하기
Salesforce 문서(영어) 에 따르면 하나의 배치에서 최대 건수가 10,000레코드 이므로, API의 제한에 걸리는 경우에는 배치 사이즈를 더 적은 사이즈로 설정해 API 제한을 피하는 것이 가능합니다.
![thumbnail image]()