Q1. Xplenty에서 사용하는 API는?
"Bulk API"입니다.
Q2. 데이터 Source/Destination에서 사용자 정의 객체를 지정할 수 있습니까?
지정 가능 합니다.
Q3. SOQL을 사용할 수 있습니까?
기본값은 "Object"이지만 "Query"로 변경하면 SOQL을 사용할 수 있습니다.
힌트: Salesforce Object에서 날짜 필터의 지정 방법
Object를 지정 한 경우에도, SOQL 베이스의 필터 조건을 설정할 수 있습니다.
고정값의 경우
필터링할 필드가 날짜 형식인 경우 홑 따옴표 없이 설정합니다.
변수를 사용하는 경우
1) 2시간 전 ~ 현재 의 데이터를 취득한다
변수 이름: two_hours_ago
변수 식: SubtractDuration(CurrentTime(),'PT2H')
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 열을 지정해, 일치하는 레코드를 삭제
데이터의 추가, 갱신의 목적이 아니고, 레코드의 삭제를 실시하고 싶은 경우에 사용한다
열 매핑
※ 관련 객체(REFFERENCED OBJECT)를 자동으로 감지합니다.
Q5. Salesforce가 Destination인 경우: 오브젝트의 기존 레코드의 일부 필드만 업데이트할 수 있습니까?
예) 상담 오브젝트의 이슈 정확도(Probability)를 업데이트하는 경우 이 경우 작업은 다음과 같이 동작합니다.
- 개체에 지정된 상담 ID의 데이터가 있는 경우 : 대상 레코드 업데이트
- 개체에 지정된 상담 ID의 데이터가 없는 경우 : 오류
Q6. Salesforce가 Destination인 경우: 에러 판정의 제어에 대하여
전체 작업에서 허용되는 오류 레코드 수는 Maximum errors 값으로 제어할 수 있습니다.
「Batch size」는 한번의 API에 보낼 레코드수입니다. 하지만, 에러수는 Batch size에 관계없이, 처리 전반에 에러 레코드수가 어느 정도 있었는지와 허용 가능한 최대 에러수의 값을 비교 작업의 결과가 에러인지 여부를 결정합니다.
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 제한을 피하는 것이 가능합니다.