LeadtoCashCore - 범위 지정됨
LeadtoCashCore 스크립트 포함은 현금으로 연결 코어 수명주기에서 현금으로 연결 워크플로우를 오케스트레이션하는 방법을 제공합니다.
인스턴스에서 LeadtoCashCore 스크립트 포함을 사용하려면 현금으로 연결 코어(com.snd.l2c.core) 플러그인을 활성화해야 합니다. 이 스크립트 포함은 sn_l2c_core 네임스페이스에 속하며 관리자 역할이 필요합니다.
현금으로 연결 워크플로우에서는 소스 엔터티를 대상 엔터티에 매핑합니다. 엔터티는 테이블 컬렉션으로 정의됩니다. 소스-대상 매핑을 사용하면 소스 엔터티의 구조 또는 컨텐츠를 대상 엔터티에 필요한 구조 또는 컨텐츠에 맞게 변환할 수 있습니다. 이 스크립트 포함에서 제공하는 기능은 현금으로 연결 기능에서 사용할 수 있는 엔터티 매핑 기능을 나타냅니다. 자세한 내용은 Lead to Cash Core 문서를 참조하십시오.
LeadtoCash 스크립트 포함을 사용하여 워크플로를 완료하려면 한 메서드에서 다음 메서드로 반환 매개 변수를 전달합니다. 일반적으로 이러한 메서드는 다음과 같은 순서로 호출합니다.
- LeadtoCashCore - createInstance(String headerSysIDs, String lineSysIDs, Boolean isTarget, Object additionalParams) - 지정된 엔터티의 데이터를 가져옵니다. 예를 들어 라인 항목 및 관련 데이터를 포함한 고객 주문 관련 정보입니다.
context 매개변수를 사용하여 스크립트에서 하나 이상의 헤더 또는 라인 ID를 선언합니다. 이러한 다중 선택 사용 사례의 경우 출력 JSON에는 각 항목이 단일 엔터티를 나타내는 키 항목 배열이 포함됩니다.
- LeadtoCashCore - delta(객체 sourceJSON, 객체 dirtyJSON, 객체 additionalParams) - 두 JSON 입력을 비교하고 둘 사이에 발생한 변경 내용을 식별합니다. 예를 들어 엔터티에서 항목이 추가, 삭제 또는 수정되는 경우입니다.
- LeadtoCashCore - effect(객체 sourceJSON, 객체 targetJSON, 객체 additionalParams) - 소스 JSON 대상을 대상 개체로 변환합니다.
- LeadtoCashCore - commitInstance(object targetJSON, object additionalParams) - effect() 스크립트 포함에서 수행된 변형을 데이터베이스에 커밋합니다.
필수 구성요소
이러한 각 메서드는 확장점 sn_l2c_core와 함께 번들로 제공됩니다. LeadToCashServiceEP입니다. PrimitiveUtil() 은 확장점 서비스를 가져오는 메서드를 제공하고 사용 가능한 매개변수에 따라 스크립트 포함을 호출하는 유틸리티입니다. 먼저 PrimitiveUtil() 에 소스 및 대상 정보를 가져올 테이블을 지정하는 getPrimitivesEPService() 메서드를 제공해야 합니다. 자세한 내용은 LeadtoCashCore - getPrimitivesEPService(String sourceToTargetConfigID, 개체 컨텍스트) 문서를 참조하십시오. 스크립트에 PrimitiveUtil() 및 getPrimitivesEPService()가 제공되면 사용 사례에 필요한 대로 createInstance(),delta(),effect() 또는 commitInstance() 스크립트 포함을 호출할 수 있습니다.
현금으로 연결 코어 워크플로우 스크립트 예
사용 가능한 각 현금으로 연결 핵심 스크립트 포함은 개별적으로 문서화되어 있지만 다음 예를 참조하여 이러한 방법을 함께 사용하여 현금으로 연결 작업 흐름을 생성하는 방법을 확인할 수 있습니다.
var util = new sn_l2c_core.PrimitiveUtil();
var context = {"isMultiSelect": false}; // Set the context.isMultiSelect parameter as true to enable multi-select use cases
//Flow: Creation of Order from a sold product
var service = util.getPrimitivesEPService('sn_l2c_cust_flows_sp_to_order', context);
//CREATE INSTANCE to get the data of sold product with sys_id '06670ba3c3adbd501caee74bb0013166'
var SPInstance = service.createInstance(null, '06670ba3c3adbd501caee74bb0013166');
gs.info("SPInstance: "+JSON.stringify(SPInstance));
// DELTA
// construct the dirtyJSON as required
var deltaOutput = service.delta(SPInstance, dirtyJSON);/
gs.info("deltaOutput: "+JSON.stringify(deltaOutput));
// EFFECT
var effectOutput = service.effect(deltaOutput);
gs.info("effectOutput: " + JSON.stringify(effectOutput));
// COMMIT INSTANCE
var commitOutput = service.commitInstance(effectOutput);
gs.info("commitOutput: " + JSON.stringify(commitOutput));
- 첫 번째 호출은 createInstance() 메서드를 사용하여 기존 판매된 제품 정보를 가져옵니다.
- 그런 다음 델타 JSON을 반환하는 delta() 메서드를 사용하여 이 소스 JSON을 더티 JSON과 비교합니다.
- 그런 다음 JSON delta() 은 effect() 메서드를 사용하여 순서 형식의 JSON으로 변환됩니다.
- 순서 JSON은 commitInstance() 메서드를 사용하여 데이터베이스에 커밋됩니다.
LeadtoCashCore - getPrimitivesEPService(String sourceToTargetConfigID, 개체 컨텍스트)
PrimitiveUtil() 유틸리티 메서드를 트리거합니다.
LeadtoCashCore 스크립트 포함에서 사용 가능한 메서드를 사용하려면 먼저 항상 스크립트에서 스크립팅된 확장점 PrimitiveUtil()을 getPrimitivesEPService() 유틸리티 메서드와 함께 호출하여 구현을 트리거해야 합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 컨텍스트 | 객체 | 옵션입니다. 속성 값을 표시하고 한 번에 둘 이상의 인스턴스를 호출하기 위한 추가 매개변수 옵션입니다. |
| context.isMultiSelect | 부울 | 옵션입니다. 인스턴스를 생성하기 위해 여러 엔터티를 입력으로 전달할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
| context.loadDisplayValue | 부울 | 옵션입니다. 각 속성의 표시 값을 로드할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
| sourceToTargetConfigID | 문자열 | 소스-대상 매핑을 위한 매핑 구성 ID입니다. 테이블: 현금으로 연결 엔터티 매핑 [sn_l2c_core_entity_mapping] |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 예에서는 PrimitiveUtil() 을 호출하고 현금으로 연결 엔터티 매핑 [sn_l2c_core_entity_mapping] 테이블의 매핑 구성 ID인 sn_l2c_cust_flows_sp_to_order를 기반으로 구현을 선택합니다.
//Utility to invoke createInstance API
var util = new sn_l2c_core.PrimitiveUtil();
var context = {"isMultiSelect": true}; // Set the context.isMultiSelect parameter as true to enable multi-select use cases
//Invokes the extension point and specifies an implementation based on sourceToTargetConfigID of a L2C flow.
var service = util.getPrimitivesEPService('sn_l2c_cust_flows_sp_to_order’, context)
LeadtoCashCore - createInstance(String headerSysIDs, String lineSysIDs, Boolean isTarget, Object additionalParams)
헤더, 라인, 하위 라인, 특성 및 해당 속성과 같은 다양한 세부 정보가 포함된 JSON 객체와 함께 하나 이상의 지정된 엔터티의 데이터를 반환합니다.
delta(),effect() 및 commitInstance()와 같은 현금으로 연결 코어 워크플로우의 후속 메서드에서 createInstance() 메서드의 출력 JSON을 사용합니다.
createInstance()가 쉼표로 구분된 여러 headerID 또는 lineID를 한 번에 전달할 수 있도록 하려면 getPrimitivesEPService() 부울 매개 변수를 context.isMultiSelect true로 설정합니다. 그렇지 않으면 한 번에 하나의 ID만 전달할 수 있습니다. 자세한 내용은 LeadtoCashCore - getPrimitivesEPService(String sourceToTargetConfigID, 개체 컨텍스트) 문서를 참조하십시오. 여러 lineID가 있는 단일 headerID 사용 사례는 true로 설정하지 context.isMultiSelect 않아도 지원됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| additionalParams | 객체 | 옵션입니다. 사용할 추가 매개변수입니다. |
| additionalParams.skipLines | 부울 | 옵션입니다. 지정된 엔터티에 대한 라인 항목을 가져올지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
| 헤더SysID | 문자열 | 데이터를 검색할 엔터티의 헤더 sys_id입니다. 매개 변수를 제공하지 lineSysIDs 않는 경우 필요합니다. 헤더 sys_ids 전달하지 않는 경우 null 을 전달합니다.스크립트에서 하나 이상의 헤더 sys_ids 지정하려면 getPrimitivesEPService() 유틸리티 메서드에서 주: 하나 이상의 headerSysID OR lineSysIDs 매개변수가 필요합니다. |
| isTarget | 부울 | 옵션입니다. 대상 엔터티 데이터를 가져올지 여부를 결정하는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
| lineSysID | 문자열 | 엔터티 데이터를 검색할 엔터티의 라인 항목 sys_id입니다. 제공하지 headerSysIDs 않고 엔터티 구조가 판매된 제품과 같은 라인 항목으로 시작하는 경우 필요합니다. 스크립트에서 하나 이상의 라인 항목 sys_ids 지정하려면 getPrimitivesEPService() 유틸리티 메서드에서 주: 하나 이상의 headerSysID OR lineSysIDs 매개변수가 필요합니다. 여러 를 lineSysIDs전달하는 경우 모든 기록은 동일한 headerSysID. |
| 유형 | 설명 |
|---|---|
| JSON 객체 | 엔터티 기록의 세부 정보를 포함하는 JSON입니다. 데이터 유형: 객체 배열 |
| _상태 | 엔터티의 활동 상태입니다. 가능한 값:
기본값: active 데이터 유형: 문자열 |
| 특성 | 엔터티 특성 목록입니다. 특성은 엔터티마다 다를 수 있습니다. 데이터 유형: 객체 배열 |
| 특성.속성 | 특성 기록과 연결된 속성에 대한 정보를 포함하는 하나 이상의 객체입니다. <속성 유형>은 특성과 관련된 기록/기능에 따라 다른 값일 수 있습니다. 예를 들어 이 객체에는 속성 기록의 sys_id, 연결된 특성 기록, 특성 옵션 기록 또는 판매된 제품 정보에 대한 참조가 포함될 수 있습니다. 데이터 유형: 객체 |
| 특성.속성.<attribute_type> | 항목 속성의 키 이름에 대한 정보입니다.데이터 유형: 객체 |
| 특성.속성.<attribute_type>.값 | 일반적으로 연결 속성 기록의 sys_id이지만 연결된 속성 유형을 설명하는 의미 있는 텍스트 문자열이 될 수도 있습니다. 데이터 유형: 문자열 |
| characteristics.sys_id | 연결된 특성 기록의 sys_id 포함하는 객체입니다. 데이터 유형: 객체 |
| characteristics.sys_id.value | 연결된 특성 기록의 Sys_id입니다. 데이터 유형: 문자열 |
| 특성.테이블 | 현금으로 연결 엔터티의 특성 기록이 포함된 테이블의 이름입니다. 데이터 유형: 문자열 |
| 항목 | 가 true로 설정된 경우 context.isMultiSelect 선택한 객체의 배열을 포함합니다. 데이터 유형: 객체 배열 |
| 항목.속성 | 항목 기록의 속성입니다. 속성은 엔터티마다 다를 수 있습니다.데이터 유형: 객체 |
| 항목.속성.계정 | 항목 속성과 연결된 계정에 대한 정보입니다. |
| 항목.속성.계정.값 | 항목의 속성입니다. 속성은 엔터티마다 다를 수 있습니다.데이터 유형: 객체 |
| 항목.속성.<key_name> | 항목 속성의 키 이름에 대한 정보입니다.데이터 유형: 객체 |
| 항목.속성.<key_name>.값 | 키 이름 속성의 값입니다. 데이터 유형: 문자열 |
| items.sys_id | 엔터티 항목에 대한 sys_id 정보를 포함하는 객체입니다. 값은 엔터티마다 다릅니다. 데이터 유형: 객체 |
| items.sys_id.value | 연결된 항목의 Sys_id입니다. 데이터 유형: 문자열 |
| 항목.테이블 | 현금으로 연결 엔터티와 연결된 라인 항목 기록이 포함된 테이블의 이름입니다. 데이터 유형: 문자열 |
| items.lineItems | 엔터티 기록의 라인 항목 상세 정보를 포함하는 JSON 객체입니다. 데이터 유형: 객체 배열 |
| items.lineItems._state | 라인 항목 엔터티의 활동 상태입니다. 가능한 값:
기본값: active 데이터 유형: 문자열 |
| items.lineItems.attributes | 라인 항목 기록의 속성입니다. 속성은 엔터티마다 다를 수 있습니다.데이터 유형: 객체 |
| items.lineItems.attributes.<key_name> | 라인 항목 속성의 키 이름에 대한 정보입니다.데이터 유형: 객체 |
| items.lineItems.attributes.<key_name>.value | 키 이름 속성의 값입니다. 데이터 유형: 문자열 |
| items.lineItems.attributes.account | 라인 항목 속성과 연결된 계정에 대한 정보입니다. |
| items.lineItems.attributes.account.value | 라인 항목 속성과 연결된 계정의 Sys_id입니다. 데이터 유형: 문자열 |
| items.lineItems.characteristics | 라인 항목과 연결된 특성의 목록입니다. 특성은 엔터티마다 다를 수 있습니다. 데이터 유형: 객체 배열 |
| 항목.라인항목.특성.속성 | 특성 기록과 연결된 속성에 대한 정보를 포함하는 하나 이상의 객체입니다. <속성 유형>은 특성과 관련된 기록/기능에 따라 다른 값일 수 있습니다. 예를 들어 이 객체에는 속성 기록의 sys_id, 연결된 특성 기록, 특성 옵션 기록 또는 판매된 제품 정보에 대한 참조가 포함될 수 있습니다. 데이터 유형: 객체 |
| items.lineItems.characteristics.attributes.<attribute_type>.value | 일반적으로 연결 속성 기록의 sys_id이지만 연결된 속성 유형을 설명하는 의미 있는 텍스트 문자열이 될 수도 있습니다. 데이터 유형: 문자열 |
| items.lineItems.characteristics.sys_id | 연결된 특성 기록의 sys_id 포함하는 객체입니다. 데이터 유형: 객체 |
| items.lineItems.characteristics.sys_id.value | 연결된 특성 기록의 Sys_id입니다. 데이터 유형: 문자열 |
| items.lineItems.characteristics.table | 현금으로 연결 엔터티의 특성 기록이 포함된 테이블의 이름입니다. 데이터 유형: 문자열 |
| items.lineItems.lineItems | 상위 라인 항목의 하위 라인 항목입니다. 이 개체의 형식은 매개 변수와 lineItems 같습니다. 데이터 유형: 객체 |
| items.lineItems.sys_id | 연결된 라인 항목 기록에 대한 sys_id 정보를 포함하는 객체입니다. 데이터 유형: 객체 |
| items.lineItems.sys_id.value | 연결된 라인 항목 기록의 Sys_id입니다. 데이터 유형: 문자열 |
| items.lineItems.table | 현금으로 연결 엔터티와 연결된 라인 항목 기록이 포함된 테이블의 이름입니다. 데이터 유형: 문자열 |
아래 예시 스크립트는 createInstance() 메서드를 호출하여 판매된 제품의 데이터, 전체 계층 구조 및 특성을 로드합니다.
//Utility to invoke createInstance API
var util = new sn_l2c_core.PrimitiveUtil();
//Invoke extension point, picks an implementation based on sourceToTargetConfigID of a L2C flow, the Mapping Config ID in "sn_l2c_core_entity_mapping" table.
var service = util.getPrimitivesEPService('sn_l2c_cust_flows_sp_to_order');
//Invoke createInstance API with required params
var SPInstance = service.createInstance(null, '4e03cda2ec873110f87727ef5883a2cf');
//Print the returned JSON
gs.info("SPInstance: "+JSON.stringify(SPInstance));
//The returned JSON can be used for subsequent methods of the flow such as delta(), effect() and commitInstance()
출력:
{
"lineItems": [
{
"table": "sn_install_base_sold_product",
"sys_id": {
"value": "4e03cda2ec873110f87727ef5883a2cf"
},
"attributes": {
"name": {
"value": "Quadplay Home Tech Hub Bundle"
},
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
}
},
"lineItems": [
{
"table": "sn_install_base_sold_product",
"sys_id": {
"value": "9e0301e2ec873110f87727ef5883a23a"
},
"attributes": {
"name": {
"value": "Internet and OTT Bundle"
},
"_state": "active",
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
}
},
"lineItems": [
],
"characteristics": []
}
],
"characteristics": [
{
"table": "sn_prd_pm_product_characteristics",
"sys_id": {
"value": "8d669b6665ebf110f877d71ec56bf75c"
},
"attributes": {
"sys_id": {
"value": "8d669b6665ebf110f87d71ec56bf75c"
},
"_state": "active",
"characteristic_value": {
"value": ""
},
"characteristic": {
"value": "4f31999fd0a63110f8770dbf976be178"
},
"characteristic_option": {
"value": "4f31999fd0a63110f8770dbf976be179"
},
"sold_product": {
"value": "4e03cda2ec873110f87727ef5883a2cf"
}
}
}
]
}
]
}
다중 선택
다음 스크립트는 createInstance() 메서드를 호출하고 판매된 두 제품의 데이터를 전체 계층 구조 및 특성과 함께 로드하는 데 사용하는 isMultiSelect 방법을 보여줍니다.
//Utility to invoke createInstance API
var util = new sn_l2c_core.PrimitiveUtil();
//Set context variable isMultiSelect true to enable multi-select
var context = {"isMultiSelect": true};
//Invoke extension point, picks an implementation based on sourceToTargetConfigID of a L2C flow, the Mapping Config ID in “sn_l2c_core_entity_mapping” table.
var service = util.getPrimitivesEPService('sn_l2c_cust_flows_sp_to_order’, context);
//Multiple sold products selected
var selectedLineitems = '4e03cda2ec873110f87727ef5883a2cf,036a2349284d0210f877b68370fb2e93';
//Invoke createInstance API with required params
var SPInstance = service.createInstance(null, selectedLineitems);
//Print the returned JSON
gs.info("SPInstance: "+JSON.stringify(SPInstance));
//The returned JSON can be used for subsequent APIs of the flow such as Delta, Effect and Commit Instance
응답:
{
"items": [
{
"lineItems": [
{
"table": "sn_install_base_sold_product",
"sys_id": {
"value": "4e03cda2ec873110f87727ef5883a2cf"
},
"attributes": {
"name": {
"value": "Quadplay Home Tech Hub Bundle"
},
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
}
},
"lineItems": [
{
"table": "sn_install_base_sold_product",
"sys_id": {
"value": "9e0301e2ec873110f87727ef5883a23a"
},
"attributes": {
"name": {
"value": "Internet and OTT Bundle"
},
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
}
},
"lineItems": [],
"characteristics": []
}
]
}
]
},
{
"lineItems": [
{
"table": "sn_install_base_sold_product",
"sys_id": {
"value": "036a2349284d0210f877b68370fb2e93"
},
"attributes": {
"name": {
"value": "Quadplay Home Tech Hub Bundle"
},
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
}
},
"lineItems": [
{
"table": "sn_install_base_sold_product",
"sys_id": {
"value": "4b6a2349284d0210f877b68370fb2e9c"
},
"attributes": {
"name": {
"value": "Internet and OTT Bundle"
},
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
}
},
"lineItems": [],
"characteristics": []
}
],
"characteristics": [],
"_state": "active"
}
]
}
]
}
LeadtoCashCore - delta(객체 sourceJSON, 객체 dirtyJSON, 객체 additionalParams)
현금으로 연결 엔터티의 소스와 수정된 소스 JSON 객체를 비교하고 소스 JSON에 대한 추가, 삭제 또는 수정과 같은 변경 사항을 설명하는 JSON 객체를 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 소스 JSON | 객체 | 소스의 JSON 객체는 현금으로 연결 엔터티입니다. 주: LeadtoCashCore - createInstance(String headerSysIDs, String lineSysIDs, Boolean isTarget, Object additionalParams) 이 메서드를 사용하여 엔터티의 소스 JSON을 검색합니다. |
| 더티 JSON | 객체 | 현금으로 연결 엔터티의 수정된 소스 JSON입니다. |
| additionalParams | 객체 | 옵션입니다. 사용할 추가 매개변수입니다. |
| additionalParams.delta_ignore_attributes | 객체 | 소스와 dirtyJSON을 비교하는 동안 무시할 테이블 속성입니다. 재구성 사용 사례를 지원할 수 있습니다. |
| additionalParams.delta_ignore_attributes.<table_name> | 문자열 | 무시할 테이블 이름과 관련 속성입니다. 예: |
| additionalParams.loadDisplayValue | 부울 | 옵션입니다. 각 속성의 표시 값을 로드할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
| 유형 | 설명 |
|---|---|
| JSON 객체 | sourceJSON과 dirtyJSON 간에 발생한 모든 변경 내용이 포함된 엔터티 기록의 세부 정보를 포함하는 객체입니다. 데이터 유형: 객체 |
| 품목 | 엔터티 기록의 라인 항목 상세 정보를 포함하는 JSON 객체입니다. 예를 들어 주문 라인 항목 또는 견적 라인 항목을 사용할 수 있습니다. 데이터 유형: 객체 배열 |
| lineItems._action | 소스 JSON의 라인 항목에 적용되는 변경 작업입니다. 가능한 값:
데이터 유형: 문자열 |
| lineItems.attributes | 라인 항목의 속성입니다. 예를 들어 속성의 이름 및 값입니다. 엔터티에 따라 다양한 필드를 포함할 수 있습니다. 데이터 유형: 객체 |
| 라인항목.속성.<attribute_name> | 라인 항목 속성의 이름입니다. 예를 들어 계정 또는 접촉 창구의 이름입니다. 엔터티의 다양한 필드를 포함할 수 있습니다. 데이터 유형: 객체 |
| 라인항목.속성.<attribute_name>.값 | 라인 항목 속성의 값입니다. 데이터 유형: 문자열 |
| 라인 항목.속성.계정 | 항목 속성과 연결된 계정에 대한 정보입니다. 데이터 유형: 객체 |
| 라인 항목.속성.계정.값 | 라인 항목 속성과 연결된 계정의 Sys_id입니다. 데이터 유형: 문자열 |
| lineItems.characteristics | 라인 항목의 특성입니다. 엔터티에 따라 다양한 필드를 포함할 수 있습니다. 데이터 유형: 객체 배열 |
| 라인 항목.특성.속성 | 헤더 기록 특성의 속성입니다. 예를 들어 속성의 이름 및 값입니다. 엔터티에 따라 다양한 필드를 포함할 수 있습니다. 데이터 유형: 객체 |
| 라인 항목.특성.속성.<field_name> | 라인 항목과 연결된 특성 기록의 속성 이름입니다. 데이터 유형: 객체 |
| 라인 항목.특성.속성.<field_name>.값 | 엔터티의 특성 기록에 속하는 속성의 값입니다. 데이터 유형: 문자열 |
| lineItems.characteristics.sys_id | 특성 기록의 Sys_id 객체입니다. 데이터 유형: 객체 |
| lineItems.characteristics.sys_id.value | 연결된 특성 기록의 Sys_id입니다. 업데이트된 테이블은 엔터티마다 다를 수 있습니다. 예를 들어, 주문 [sn_ind_tmt_orm_order]입니다. 데이터 유형: 문자열 |
| lineItems.characteristics.table | 특성 기록이 포함된 테이블의 이름입니다. 데이터 유형: 문자열 |
| 라인 항목.라인 항목 | 상위 라인 항목의 하위 라인 항목입니다. 이 개체의 형식은 매개 변수와 lineItems 같습니다. 데이터 유형: 객체 배열 |
| lineItems.sys_id | 연결된 항목 기록의 Sys_id입니다. 데이터 유형: 객체 |
| lineItems.sys_id.value | 연결된 항목 기록의 Sys_id입니다. 업데이트된 테이블은 순서 또는 사양과 같은 엔터티에 따라 다를 수 있습니다. 예를 들어, 주문 [sn_ind_tmt_orm_order]입니다. 데이터 유형: 문자열 |
| lineItems.table | 현금으로 연결 엔터티와 연결된 항목 기록이 포함된 테이블의 이름입니다. 데이터 유형: 문자열 |
다음 예제에서는 먼저 PrimitiveUtil 유틸리티 메서드와 getPrimitiesEPService()를 호출한 다음 원본 및 대상 JSON 객체를 제공하여 delta() 메서드를 호출하는 방법을 보여 줍니다.
//Utility to invoke Delta API
var util = new sn_l2c_core.PrimitiveUtil();
//Invoke extension point, picks an implementation based on sourceToTargetConfigID of a L2C flow, the Mapping Config ID in “sn_l2c_core_entity_mapping” table.
var service = util.getPrimitivesEPService('sp_order_macd');
//Invoke delta API with required params
// sourceJSON can be the output of createInstance or null
//dirtyJSON is the modified sourceJSON
var deltaOutput= service.delta(sourceJSON, dirtyJSON);
//Print the returned JSON
gs.info(" deltaOutput: "+JSON.stringify(deltaOutput));
//The returned JSON can be used for subsequent APIs of the flow such as Effect and Commit Instance
출력 JSON은 판매된 기본 제품에 여러 라인 항목이 추가되었음을 보여줍니다.
{
"lineItems": [
{
"table": "sn_install_base_sold_product",
"sys_id": {
"value": "-1"
},
"attributes": {
"name": {
"value": "Quadplay Home Tech Hub Bundle"
},
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
}
},
"lineItems": [
{
"table": "sn_install_base_sold_product",
"sys_id": {
"value": "-1"
},
"attributes": {
"name": {
"value": "Internet and OTT Bundle"
},
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
}
},
"lineItems": [
{
"table": "sn_install_base_sold_product",
"sys_id": {
"value": "-1"
},
"attributes": {
"name": {
"value": "Solana Sports streaming channel"
},
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
}
},
"lineItems": [],
"characteristics": [],
"_action": "add"
}
],
"characteristics": [],
"_action": "add"
}
],
"characteristics": [
{
"table": "sn_prd_pm_product_characteristics",
"sys_id": {
"value": "-1"
},
"attributes": {
"characteristic_value": {
"value": ""
},
"characteristic": {
"value": "4f31999fd0a63110f8770dbf976be178"
},
"characteristic_option": {
"value": "4f31999fd0a63110f8770dbf976be179"
},
"sold_product": {
"value": "4e03cda2ec873110f87727ef5883a2cf"
},
"action": {
"value": "add"
}
},
"_action": "add"
}
],
"_action": "add"
}
]
}
다중 선택
다음 예제에서는 먼저 PrimitiveUtil 및 getPrimitivesEPService를 호출한 다음 여러 줄 또는 헤더 ID에 대한 원본 및 대상 JSON 개체를 제공하여 다중 선택 delta() 메서드를 구성하는 방법을 보여 줍니다. 각 플로우마다 서비스를 한 번만 가져오고 모든 LeadtoCashCore 메서드에 동일한 서비스를 사용합니다.
/Utility to invoke Delta API
var util = new sn_l2c_core.PrimitiveUtil();
//Set context variable isMultiSelect true to enable multi-select
var context = {"isMultiSelect": true};
//Invoke extension point, picks an implementation based on sourceToTargetConfigID of a L2C flow, the Mapping Config ID in “sn_l2c_core_entity_mapping” table.
var service = util.getPrimitivesEPService(‘sn_l2c_cust_flows_sp_to_order’, context);
//Invoke delta API with required params
// sourceJSON can be the output of createInstance for multiple lineIDs or headerIDs or null
//dirtyJSON is the modified sourceJSON
var deltaOutput= service.delta(sourceJSON, dirtyJSON);
//Print the returned JSON
gs.info(" deltaOutput: "+JSON.stringify(deltaOutput));
//The returned JSON can be used for subsequent APIs of the flow such as Effect and Commit Instance
출력 JSON은 판매된 기본 제품에 여러 라인 항목이 추가되었음을 보여줍니다.
{
"items": [
{
"lineItems": [
{
"table": "sn_install_base_sold_product",
"sys_id": {
"value": "4e03cda2ec873110f87727ef5883a2cf"
},
"attributes": {
"name": {
"value": "Quadplay Home Tech Hub Bundle"
},
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
}
},
"lineItems": [
{
"table": "sn_install_base_sold_product",
"sys_id": {
"value": "9e0301e2ec873110f87727ef5883a23a"
},
"attributes": {
"name": {
"value": "Internet and OTT Bundle"
},
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
}
},
"lineItems": [],
"characteristics": [],
"_action": "disconnect"
}
],
"characteristics": [],
"_action": "disconnect"
}
]
},
{
"lineItems": [
{
"table": "sn_install_base_sold_product",
"sys_id": {
"value": "036a2349284d0210f877b68370fb2e93"
},
"attributes": {
"name": {
"value": "Quadplay Home Tech Hub Bundle"
},
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
}
},
"lineItems": [
{
"table": "sn_install_base_sold_product",
"sys_id": {
"value": "4b6a2349284d0210f877b68370fb2e9c"
},
"attributes": {
"name": {
"value": "Internet and OTT Bundle"
},
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
}
},
"lineItems": [],
"characteristics": [],
"_action": "disconnect"
}
],
"characteristics": [],
"_action": "disconnect"
}
]
}
]
}
LeadtoCashCore - effect(객체 sourceJSON, 객체 targetJSON, 객체 additionalParams)
지정된 엔터티의 소스 JSON 구조를 변환하고 다른 엔터티의 대상 JSON에 적용합니다. 그런 다음 commitInstance() 메서드를 사용하여 변경된 엔터티를 데이터베이스에 커밋할 수 있습니다.
effect() 요청에서 delta() 메서드의 출력 JSON을 사용할 수 있습니다. 그런 다음, commitInstance()를 사용하여 데이터베이스에 effect() JSON 출력을 커밋하여 현금으로 연결 워크플로우를 완료합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 소스 JSON | 객체 | 소스 엔터티의 세부 정보를 포함하는 JSON입니다. 주: |
| 대상JSON | 객체 | 대상 엔터티의 세부 정보를 포함하는 JSON입니다. |
| additionalParams | 객체 | 옵션입니다. 사용할 추가 매개변수입니다. |
| additionalParams.is_future_state | 부울 | 옵션입니다. 이를 사용하여 재구성 사용 사례를 지원합니다. 허용되는 값:
기본값: false |
| 유형 | 설명 |
|---|---|
| JSON 객체 | 발생하여 소스에서 대상 엔터티로 적용된 변경 현금으로 연결 엔터티의 각 헤더에 있는 JSON 객체입니다. 데이터 유형: 객체 |
| _glide_action | 소스와 대상 JSON 사이의 항목 수준에서 발생한 변경을 나타냅니다. 가능한 값(대/소문자 구분):
데이터 유형: 문자열 |
| _records_count | 각 테이블에 대해 삽입된 새 기록의 상세 정보입니다. 데이터 유형: 객체 |
| _records_count.tableName | 새 기록이 삽입되는 테이블의 이름입니다. 데이터 유형: 객체 |
| _records_count.tableName.insert | 테이블에 삽입된 새 기록의 수입니다. 데이터 유형: 숫자 |
| _source_object | 변경 내용이 적용된 소스 JSON 객체입니다. 개체 구조는 엔터티마다 다를 수 있습니다. 데이터 유형: 객체 |
| _source_object.sys_id | 업데이트된 소스 엔터티 기록의 Sys_id입니다. 데이터 유형: 문자열 |
| _source_object.테이블 | 업데이트된 소스 엔터티 기록의 테이블 위치입니다. 이 값은 엔터티마다 다를 수 있습니다. 데이터 유형: 문자열 |
| lineItems._glide_action | 라인 항목에서 발생한 변경 작업입니다. 가능한 값:
데이터 유형: 문자열 |
| lineItems._source_object | _glide_action 적용된 소스 엔터티 기록 상세 정보입니다. 이 개체는 엔터티마다 다를 수 있습니다. 데이터 유형: 객체 |
| lineItems._source_object.sys_id | 업데이트된 소스 엔터티 기록의 Sys_id입니다. 데이터 유형: 문자열 |
| lineItems._source_object.table | 업데이트된 소스 엔터티 기록의 테이블 위치입니다. 이 값은 엔터티마다 다를 수 있습니다. 데이터 유형: 문자열 |
| lineItems._state | 엔터티의 상태입니다. 데이터 유형: 객체 |
| lineItems._state.값 | 엔터티의 현재 상태입니다. 가능한 값:
데이터 유형: 문자열 |
| lineItems.attributes | 라인 항목의 속성입니다. 예를 들어 속성의 이름 및 값입니다. 엔터티에 따라 다양한 필드를 포함할 수 있습니다. 데이터 유형: 객체 |
| 라인항목.속성.<attribute_name> | 라인 항목 속성의 이름입니다. 예를 들어 계정 또는 접촉 창구의 이름입니다. 엔터티의 다양한 필드를 포함할 수 있습니다. 데이터 유형: 객체 |
| 라인항목.속성.<attribute_name>.값 | 라인 항목 속성의 값입니다. 데이터 유형: 문자열 |
| 라인 항목.속성.계정 | 항목 속성과 연결된 계정에 대한 정보입니다. 데이터 유형: 객체 |
| 라인 항목.속성.계정.값 | 라인 항목 속성과 연결된 계정의 Sys_id입니다. 데이터 유형: 문자열 |
| lineItems.attributes.short_description | 라인 항목 속성에 대한 간략한 설명입니다. 데이터 유형: 문자열 |
| lineItems.characteristics | 라인 항목과 연결된 특성의 목록입니다. 특성은 엔터티마다 다를 수 있습니다. 데이터 유형: 객체 배열 |
| lineItems.characteristics._glide_action | 라인 항목에서 발생한 변경 작업입니다. 가능한 값:
데이터 유형: 문자열 |
| 라인 항목.특성.속성 | 특성 기록과 연결된 속성에 대한 정보를 포함하는 하나 이상의 객체입니다. 예를 들어 이 객체에는 속성 기록의 sys_id, 연결된 특성 기록, 계정 또는 접촉 창구, 특성 옵션 기록 또는 판매된 제품 정보에 대한 참조가 포함될 수 있습니다. 데이터 유형: 객체 |
| 라인항목.특성.속성.<attribute_type> | 속성의 유형입니다. 이 값에는 특성과 관련된 기록 또는 기능에 따라 다른 값이 포함될 수 있습니다. 데이터 유형: 객체 |
| 라인 항목.특성.속성.<attribute_type>.값 | 라인 항목 속성의 값입니다. 데이터 유형: 문자열 |
| 라인 항목.특성.속성.<field_name> | 라인 항목과 연결된 특성 기록의 속성 이름입니다. 데이터 유형: 객체 |
| 라인 항목.특성.속성.<field_name>.값 | 엔터티의 특성 기록에 속하는 속성의 값입니다. 데이터 유형: 문자열 |
| lineItems.characteristics.sys_id | 연결된 특성 기록의 Sys_id입니다. 데이터 유형: 객체 |
| lineItems.characteristics.sys_id.value | 연결된 특성 기록의 Sys_id입니다. 업데이트된 테이블은 엔터티마다 다를 수 있습니다. 예를 들어, 주문 [sn_ind_tmt_orm_order]입니다. 데이터 유형: 문자열 |
| lineItems.characteristics.table | 특성 기록이 포함된 테이블의 이름입니다. 데이터 유형: 문자열 |
| 라인 항목.라인 항목 | 상위 라인 항목의 하위 라인 항목입니다. 이 개체의 형식은 매개 변수와 lineItems 같습니다. 데이터 유형: 객체 배열 |
| lineItems.sys_id | 연결된 항목 기록의 Sys_id입니다. 데이터 유형: 객체 |
| lineItems.sys_id.value | 연결된 항목 기록의 Sys_id입니다. 업데이트된 테이블은 순서 또는 사양과 같은 엔터티에 따라 다를 수 있습니다. 예를 들어, 주문 [sn_ind_tmt_orm_order]입니다. 데이터 유형: 문자열 |
| lineItems.table | 현금으로 연결 엔터티와 연결된 항목 기록이 포함된 테이블의 이름입니다. 데이터 유형: 문자열 |
| sys_id | 엔터티의 Sys_id입니다. 데이터 유형: 문자열 |
| 테이블 | 엔터티가 있는 테이블의 이름입니다. 데이터 유형: 문자열 |
//Utility to invoke effect API
var util = new sn_l2c_core.PrimitiveUtil();
//Invoke extension point, picks an implementation based on sourceToTargetConfigID of a L2C flow, the Mapping Config ID in “sn_l2c_core_entity_mapping” table.
var service = util.getPrimitivesEPService('sp_order_macd');
//Invoke effect API with required params
var effectOutput = service.effect(deltaOutput, null);
//Print the returned JSON
gs.info("effectOutput: " + JSON.stringify(effectOutput));
//The returned JSON can be used in the subsequent commitInstance() method.
출력:
{
"sys_id": "-1",
"table": "sn_ind_tmt_orm_order",
"_glide_action": "INSERT",
"_source_object": {},
"lineItems": [
{
"sys_id": "-1",
"table": "sn_ind_tmt_orm_order_line_item",
"attributes": {
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
},
"short_description": {
"value": "Quadplay Home Tech Hub Bundle"
}
},
"_glide_action": "INSERT",
"_source_object": {
"sys_id": "-1",
"table": "sn_install_base_sold_product"
},
"lineItems": [
{
"sys_id": "-1",
"table": "sn_ind_tmt_orm_order_line_item",
"attributes": {
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
},
"short_description": {
"value": "Internet and OTT Bundle"
}
},
"_glide_action": "INSERT",
"_source_object": {
"sys_id": "-1",
"table": "sn_install_base_sold_product"
},
"lineItems": [
{
"sys_id": "-1",
"table": "sn_ind_tmt_orm_order_line_item",
"attributes": {
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
},
"short_description": {
"value": "Solana Sports streaming channel"
}
},
"_glide_action": "INSERT",
"_source_object": {
"sys_id": "-1",
"table": "sn_install_base_sold_product"
},
"lineItems": [],
"characteristics": []
}
],
"characteristics": []
}
],
"characteristics": [
{
"sys_id": "-1",
"table": "sn_ind_tmt_orm_order_characteristic_value",
"attributes": {
"characteristic_option": {
"value": "4f31999fd0a63110f8770dbf976be179"
},
"characteristic": {
"value": "4f31999fd0a63110f8770dbf976be178"
},
"characteristic_option_value": {
"value": ""
}
},
"_glide_action": "INSERT",
"_source_object": {
"sys_id": "-1",
"table": "sn_prd_pm_product_characteristics"
}
}
]
},
"_state": {
"value": "active"
}
],
"_records_count":
{
"sn_ind_tmt_orm_order":
{
"insert": 1
},
"sn_ind_tmt_orm_order_line_item":
{
"insert": 3
},
"sn_ind_tmt_orm_order_characteristic_value":
{
"insert": 1
}
}
}
LeadtoCashCore - commitInstance(object targetJSON, object additionalParams)
지정된 현금으로 연결 엔터티의 JSON을 인스턴스에 커밋하고, 업데이트된 정보가 포함된 상태 메시지를 반환하고, 그 결과로 현금으로 연결 코어 엔터티 테이블을 업데이트합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 대상JSON | 객체 | 커밋할 대상 엔터티의 "glide_action"를 포함하는 JSON 객체입니다. 여기에서 effect() 메서드의 출력을 전달할 수 있습니다. 주: 'glide_action'는 현금으로 연결 엔터티의 소스와 대상 JSON 간에 발생한 변경 작업을 식별합니다. |
| additionalParams | 객체 | 옵션입니다. 사용할 추가 매개변수입니다. |
| additionalParams.useNumberGenerator | 부울 | 옵션입니다. sys_numbers 대량으로 생성할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
| 유형 | 설명 |
|---|---|
| JSON 객체 | 대상 엔터티 기록에 대한 상세 정보입니다. 데이터 유형: 객체 |
| 데이터 객체 | 각 수준에서 수행된 커밋 작업에 대한 자세한 데이터를 포함하는 JSON 객체입니다. 데이터 유형: 객체 |
| dataObject._commitObjectInfo | 라인 항목 변경이 삽입 작업인지 여부를 커밋 상태와 sys_id입니다. 데이터 유형: 객체 |
| dataObject._commitObjectInfo.status | 특정 엔터티에 대해 수행된 커밋 작업의 상태입니다. 가능한 값:
데이터 유형: 문자열 |
| dataObject._commitObjectInfo.sys_id | 삽입된 기록의 Sys_id입니다. 메서드는 INSERTdataObject._glide_action인 경우에만 이 매개변수를 반환합니다. 업데이트된 테이블은 엔터티마다 다를 수 있습니다. 예를 들어, 주문 [sn_ind_tmt_orm_order]입니다.데이터 유형: 문자열 |
| dataObject._glide_action | 라인 항목에서 발생한 변경 작업입니다. 가능한 값:
데이터 유형: 문자열 |
| dataObject._source_object | 변경 내용이 적용된 소스 JSON 객체입니다. 개체 구조는 엔터티마다 다를 수 있습니다. 데이터 유형: 객체 |
| dataObject._source_object.sys_id | _glide_action 적용된 소스 엔터티 기록의 Sys_id입니다. 업데이트된 테이블은 엔터티마다 다를 수 있습니다. 예를 들어, 주문 [sn_ind_tmt_orm_order]입니다. 데이터 유형: 문자열 |
| dataObject._source_object.테이블 | _glide_action 적용된 소스 엔터티 기록이 들어 있는 테이블의 이름입니다. 이는 엔터티마다 다를 수 있습니다. 데이터 유형: 문자열 |
| dataObject.lineItems | 엔터티 기록의 라인 항목 상세 정보입니다. 예를 들어 주문 라인 항목 또는 견적 라인 항목을 사용할 수 있습니다. 데이터 유형: 객체 배열 |
| dataObject.lineItems._action | 소스 JSON의 라인 항목에 적용되는 변경 작업입니다. 가능한 값:
데이터 유형: 문자열 |
| dataObject.lineItems._commitObjectInfo | 라인 항목 변경이 삽입 작업인 경우 반환됩니다. 객체의 커밋 상태와 sys_id 포함합니다.데이터 유형: 객체 |
| dataObject.lineItems._commitObjectInfo.status | 특정 엔터티에 대해 수행된 커밋 작업의 상태입니다. 가능한 값:
데이터 유형: 문자열 |
| dataObject.lineItems._commitObjectInfo.sys_id | 삽입된 기록의 Sys_id입니다. 업데이트된 테이블은 엔터티마다 다를 수 있습니다. 예를 들어, 주문 [sn_ind_tmt_orm_order]입니다. 데이터 유형: 문자열 |
| dataObject.lineItems._glide_action | 라인 항목에서 발생한 변경 작업입니다. 가능한 값:
데이터 유형: 문자열 |
| dataObject.lineItems._source_object | _glide_action 적용된 소스 엔터티 기록 상세 정보입니다. 이 개체는 엔터티마다 다를 수 있습니다. 데이터 유형: 객체 |
| dataObject.lineItems._source_object.sys_id | _glide_action 적용된 소스 엔터티 기록의 Sys_id입니다. 데이터 유형: 문자열 |
| dataObject.lineItems._source_object.테이블 | _glide_action 적용된 소스 엔터티 기록의 테이블 이름입니다. 데이터 유형: 문자열 |
| dataObject.lineItems._state | 객체의 상태입니다. 가능한 값:
데이터 유형: 문자열 |
| dataObject.lineItems.attributes | 라인 항목의 속성입니다. 예를 들어 속성의 이름 및 값입니다. 엔터티에 따라 다양한 필드를 포함할 수 있습니다. 데이터 유형: 객체 |
| dataObject.lineItems.attributes.<attribute_name> | 라인 항목 속성의 이름입니다. 예를 들어 계정 또는 접촉 창구의 이름입니다. 엔터티의 다양한 필드를 포함할 수 있습니다. 데이터 유형: 객체 |
| dataObject.lineItems.attributes.<attribute_name>.value | 라인 항목 속성의 값입니다. 데이터 유형: 문자열 |
| dataObject.lineItems.characteristics | 라인 항목과 연결된 특성의 목록입니다. 특성은 엔터티마다 다를 수 있습니다. 데이터 유형: 객체 배열 |
| dataObject.lineItems.characteristics._glide_action | 라인 항목에서 발생한 변경 작업입니다. 가능한 값:
데이터 유형: 문자열 |
| dataObject.lineItems.characteristics.attributes | 특성 기록과 연결된 속성에 대한 정보를 포함하는 하나 이상의 객체입니다. 예를 들어 이 객체에는 속성 기록의 sys_id, 연결된 특성 기록, 계정 또는 접촉 창구, 특성 옵션 기록 또는 판매된 제품 정보에 대한 참조가 포함될 수 있습니다. 데이터 유형: 객체 |
| dataObject.lineItems.characteristics.attributes.<attribute_type> | 특성 속성의 이름입니다. 엔터티의 다양한 필드를 포함할 수 있습니다. 데이터 유형: 객체 |
| dataObject.lineItems.characteristics.attributes.<attribute_type>.<attribute_name> | 특성 속성의 이름입니다. 데이터 유형: 객체 |
| dataObject.lineItems.characteristics.attributes.<attribute_type>.<attribute_name>.value | 라인 항목 속성의 값입니다. 데이터 유형: 문자열 |
| dataObject.lineItems[0].characteristics.sys_id | 연결된 특성 기록의 Sys_id입니다. 데이터 유형: 객체 |
| dataObject.lineItems[0].characteristics.sys_id.value | 연결된 특성 기록의 Sys_id입니다. 업데이트된 테이블은 엔터티마다 다를 수 있습니다. 예를 들어, 주문 [sn_ind_tmt_orm_order]입니다. 데이터 유형: 문자열 |
| dataObject.lineItems[0].characteristics.table | 특성 기록이 포함된 테이블의 이름입니다. 데이터 유형: 문자열 |
| dataObject.lineItems[0].lineItems | 상위 라인 항목의 하위 라인 항목입니다. 이 개체의 형식은 매개 변수와 lineItems 같습니다. 데이터 유형: 객체 배열 |
| dataObject.lineItems[0].sys_id | 연결된 항목 기록의 Sys_id입니다. 데이터 유형: 객체 |
| dataObject.lineItems[0].sys_id.value | 연결된 항목 기록의 Sys_id입니다. 업데이트된 테이블은 순서 또는 사양과 같은 엔터티에 따라 다를 수 있습니다. 예를 들어, 주문 [sn_ind_tmt_orm_order]입니다. 데이터 유형: 문자열 |
| dataObject.lineItems[0].table | 현금으로 연결 엔터티와 연결된 항목 기록이 포함된 테이블의 이름입니다. 데이터 유형: 문자열 |
| dataObject.sys_id | 연결된 라인 항목 기록의 Sys_id입니다. 업데이트된 테이블은 엔터티마다 다를 수 있습니다. 예를 들어, 주문 [sn_ind_tmt_orm_order]입니다. 데이터 유형: 문자열 |
| dataObject.table | 현금으로 연결 엔터티의 기록이 포함된 테이블의 이름입니다. 데이터 유형: 문자열 |
| displayMessage | UI에서 사용자에게 표시되는 메시지입니다. 표시 메시지는 문자열 값과 동일합니다 message . 데이터 유형: 문자열 |
| 오류 | commitInstance 메서드의 실패를 설명하는 오류 메시지입니다. 요청이 성공하면 이 매개변수는 빈 문자열을 반환합니다. 데이터 유형: 문자열 |
| 헤더 ID | commitInstance 메서드에서 만들거나 업데이트한 대상 엔터티 기록의 Sys_id입니다. 저장 위치: 판매된 제품, 주문 등 엔터티 유형에 따른 관련 테이블입니다. 데이터 유형: 문자열 |
| 메시지 | 성공, 오류 또는 partially_success 시나리오를 설명하는 메시지입니다. 이 메시지는 문자열 값과 동일 displayMessage 하며 API에 대한 다른 애플리케이션 호출에서 사용할 수 있습니다. 데이터 유형: 문자열 |
| rootLineID | commitInstance 메서드에 의해 삽입, 업데이트 또는 삭제된 대상 엔터티 기록의 쉼표로 구분된 sys_ids 목록입니다. 저장 위치: 판매된 제품, 주문 등 엔터티 유형에 따른 관련 테이블입니다. 데이터 유형: 문자열 배열 |
| 상태 | 커밋의 성공을 확인하는 상태 메시지입니다. 가능한 값:
데이터 유형: 문자열 |
다음 예제에서는 각 LeadtoCashCore 메서드를 사용하여 원본-대상 엔터티의 세부 정보를 검색, 적용 및 커밋하는 방법을 보여 줍니다. 이 예에서 commitInstance() 메서드는 변경된 JSON을 인스턴스의 현금으로 연결 엔터티에 커밋하는 데 사용됩니다.
//Utility to invoke commitInstance API
var util = new sn_l2c_core.PrimitiveUtil();
//Invokes the PrimitiveUtil extension point, picks an implementation based on sourceToTargetConfigID of a Lead to Cash (L2C) flow. The Mapping Config ID in “sn_l2c_core_entity_mapping” table.
var service = util.getPrimitivesEPService('sp_order_macd');
//Invoke commitInstance API with the required params
var commitOutput = service.commitInstance(effectOutput);
//Print the returned JSON
gs.info("commitOutput: "+JSON.stringify(commitOutput));
출력:
{
"status": "success",
"error": "",
"message": "Commit operation successfully processed.",
"displayMessage": "Commit operation successfully processed.",
"dataObject": {
"sys_id": "-1",
"table": "sn_ind_tmt_orm_order",
"_glide_action": "INSERT",
"_source_object": {},
"lineItems": [
{
"sys_id": "-1",
"table": "sn_ind_tmt_orm_order_line_item",
"attributes": {
"account": {
"value": "86837a386f0331003b3c498f5d3ee4ca"
},
"sold_product": {
"value": "e4bbf902b7343300ece839a6ee11a937"
},
"short_description": {
"value": "Network Monitoring"
}
},
"_glide_action": "INSERT",
"_source_object": {
"sys_id": "e4bbf902b7343300ece839a6ee11a937",
"table": "sn_install_base_sold_product"
},
"lineItems": [
{
"sys_id": "-1",
"table": "sn_ind_tmt_orm_order_line_item",
"attributes": {
"account": {
"value": "86837a386f0331003b3c498f5d3ee4ca"
},
"sold_product": {
"value": "23dbbd02b7343300ece839a6ee11a98e"
},
"short_description": {
"value": "Remote Monitoring"
}
},
"_glide_action": "INSERT",
"_source_object": {
"sys_id": "23dbbd02b7343300ece839a6ee11a98e",
"table": "sn_install_base_sold_product"
},
"lineItems": [],
"characteristics": [],
"coveredProducts": [],
"_commitObjectInfo": {
"sys_id": "d2d5b868488d5610f877a23d5db8922f",
"status": "success"
}
}
],
"characteristics": [],
"coveredProducts": [],
"_commitObjectInfo": {
"sys_id": "92d5b868488d5610f877a23d5db89229",
"status": "success"
}
}
],
"_commitObjectInfo": {
"sys_id": "46d5b0a4488d5610f877a23d5db892ef",
"status": "success"
}
},
"headerID": "46d5b0a4488d5610f877a23d5db892ef",
"rootLineIDs": [
"92d5b868488d5610f877a23d5db89229"
]
}