LeadtoCashCore - 범위 지정됨

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기69분
  • LeadtoCashCore 스크립트 포함은 현금으로 연결 코어 수명주기에서 현금으로 연결 워크플로우를 오케스트레이션하는 방법을 제공합니다.

    인스턴스에서 LeadtoCashCore 스크립트 포함을 사용하려면 현금으로 연결 코어(com.snd.l2c.core) 플러그인을 활성화해야 합니다. 이 스크립트 포함은 sn_l2c_core 네임스페이스에 속하며 관리자 역할이 필요합니다.

    현금으로 연결 워크플로우에서는 소스 엔터티를 대상 엔터티에 매핑합니다. 엔터티는 테이블 컬렉션으로 정의됩니다. 소스-대상 매핑을 사용하면 소스 엔터티의 구조 또는 컨텐츠를 대상 엔터티에 필요한 구조 또는 컨텐츠에 맞게 변환할 수 있습니다. 이 스크립트 포함에서 제공하는 기능은 현금으로 연결 기능에서 사용할 수 있는 엔터티 매핑 기능을 나타냅니다. 자세한 내용은 Lead to Cash 문서를 참조하십시오.

    LeadtoCash 스크립트 포함을 사용하여 워크플로를 완료하려면 한 메서드에서 다음 메서드로 반환 매개 변수를 전달합니다. 일반적으로 이러한 메서드는 다음과 같은 순서로 호출합니다.

    1. LeadtoCashCore - createInstance(String headerSysIDs, String lineSysIDs, Boolean isTarget, Object additionalParams) - 지정된 엔터티의 데이터를 가져옵니다. 예를 들어 라인 항목 및 관련 데이터를 포함한 고객 주문 관련 정보입니다.

      context 매개변수를 사용하여 스크립트에서 하나 이상의 헤더 또는 라인 ID를 선언합니다. 이러한 다중 선택 사용 사례의 경우 출력 JSON에는 각 항목이 단일 엔터티를 나타내는 키 항목 배열이 포함됩니다.

    2. LeadtoCashCore - delta(객체 sourceJSON, 객체 dirtyJSON, 객체 additionalParams) - 두 JSON 입력을 비교하고 둘 사이에 발생한 변경 내용을 식별합니다. 예를 들어 엔터티에서 항목이 추가, 삭제 또는 수정되는 경우입니다.
    3. LeadtoCashCore - effect(객체 sourceJSON, 객체 targetJSON, 객체 additionalParams) - 소스 JSON 대상을 대상 개체로 변환합니다.
    4. LeadtoCashCore - commitInstance(object targetJSON, object additionalParams) - effect() 스크립트 포함에서 수행된 변형을 데이터베이스에 커밋합니다.
    주:
    필요한 경우 이 워크플로에서 delta() 를 건너뛸 수 있습니다. 그러나 이러한 메서드를 순서대로 호출하면 워크플로가 실패합니다(예: commitInstance() 를 호출한 다음 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));
    이 예에서는 고객이 판매된 제품을 구매했지만 이제 기존 판매된 제품에 대한 수정을 요청합니다. 필요한 수정 사항은 dirtyJSON 형식으로 제공됩니다. 이러한 수정 사항을 적용하기 위해 다음 순서로 현금으로 연결 코어 메서드를 호출합니다.
    1. 첫 번째 호출은 createInstance() 메서드를 사용하여 기존 판매된 제품 정보를 가져옵니다.
    2. 그런 다음 델타 JSON을 반환하는 delta() 메서드를 사용하여 이 소스 JSON을 더티 JSON과 비교합니다.
    3. 그런 다음 JSON delta()effect() 메서드를 사용하여 순서 형식의 JSON으로 변환됩니다.
    4. 순서 JSON은 commitInstance() 메서드를 사용하여 데이터베이스에 커밋됩니다.

    LeadtoCashCore - getPrimitivesEPService(String sourceToTargetConfigID, 개체 컨텍스트)

    PrimitiveUtil() 유틸리티 메서드를 트리거합니다.

    LeadtoCashCore 스크립트 포함에서 사용 가능한 메서드를 사용하려면 먼저 항상 스크립트에서 스크립팅된 확장점 PrimitiveUtil()getPrimitivesEPService() 유틸리티 메서드와 함께 호출하여 구현을 트리거해야 합니다.

    표 1. 매개변수
    이름 유형 설명
    컨텍스트 객체 옵션입니다. 속성 값을 표시하고 한 번에 둘 이상의 인스턴스를 호출하기 위한 추가 매개변수 옵션입니다.
    "context": {
      "isMultiSelect": "Boolean"
      "loadDisplayValue": "Boolean"
    }
    context.isMultiSelect 부울 옵션입니다. 인스턴스를 생성하기 위해 여러 엔터티를 입력으로 전달할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 여러 엔터티를 입력으로 전달할 수 있습니다. true인 경우 쉼표로 구분된 목록의 여러 라인 항목을 전달할 수 있습니다.
    • false: 여러 엔터티를 입력으로 전달할 수 없습니다. API 스크립트에는 하나의 입력만 전달할 수 있습니다.

    기본값: false

    context.loadDisplayValue 부울 옵션입니다. 각 속성의 표시 값을 로드할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 속성의 표시 값 로드를 활성화합니다.
    • false: 속성의 표시 값 로드를 활성화하지 않습니다.

    기본값: false

    sourceToTargetConfigID 문자열 소스-대상 매핑을 위한 매핑 구성 ID입니다.

    테이블: 현금으로 연결 엔터티 매핑 [sn_l2c_core_entity_mapping]

    표 2. 반환
    유형 설명
    안 함

    다음 예에서는 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을 사용합니다.

    주:
    LeadtoCashCore 스크립트 포함을 사용하려면 스크립트에서 createInstance()를 호출하기 전에 먼저 유틸리티 메서드와 LeadtoCashCore - getPrimitivesEPService(String sourceToTargetConfigID, 개체 컨텍스트) 함께 스크립트 유틸리티 메서드 PrimitiveUtil()을 호출하여 구현을 트리거해야 합니다. 각 플로우마다 서비스를 한 번만 가져오고 모든 LeadtoCashCore 메서드에 동일한 서비스를 사용합니다.

    createInstance()가 쉼표로 구분된 여러 headerID 또는 lineID를 한 번에 전달할 수 있도록 하려면 getPrimitivesEPService() 부울 매개 변수를 context.isMultiSelect true로 설정합니다. 그렇지 않으면 한 번에 하나의 ID만 전달할 수 있습니다. 자세한 내용은 LeadtoCashCore - getPrimitivesEPService(String sourceToTargetConfigID, 개체 컨텍스트) 문서를 참조하십시오. 여러 lineID가 있는 단일 headerID 사용 사례는 true로 설정하지 context.isMultiSelect 않아도 지원됩니다.

    표 3. 매개변수
    이름 유형 설명
    additionalParams 객체 옵션입니다. 사용할 추가 매개변수입니다.
    additionalParams.skipLines 부울 옵션입니다. 지정된 엔터티에 대한 라인 항목을 가져올지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 엔터티에 대한 라인 항목 정보 반환을 건너뜁니다.
    • false: 엔터티에 대한 라인 항목 정보를 반환합니다.

    기본값: false

    헤더SysID 문자열 데이터를 검색할 엔터티의 헤더 sys_id입니다. 매개 변수를 제공하지 lineSysIDs 않는 경우 필요합니다. 헤더 sys_ids 전달하지 않는 경우 null 을 전달합니다.

    스크립트에서 하나 이상의 헤더 sys_ids 지정하려면 getPrimitivesEPService() 유틸리티 메서드에서 context.isMultiSelect = true를 설정합니다. 자세한 내용은 의 매개변수 테이블을 LeadtoCashCore - getPrimitivesEPService(String sourceToTargetConfigID, 개체 컨텍스트)참조하십시오.

    주:
    하나 이상의 headerSysID OR lineSysIDs 매개변수가 필요합니다.
    isTarget 부울 옵션입니다. 대상 엔터티 데이터를 가져올지 여부를 결정하는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 대상 엔터티의 데이터를 가져옵니다.
    • false: 대상 엔터티의 데이터를 가져오지 않습니다.

    기본값: false

    lineSysID 문자열 엔터티 데이터를 검색할 엔터티의 라인 항목 sys_id입니다. 제공하지 headerSysIDs 않고 엔터티 구조가 판매된 제품과 같은 라인 항목으로 시작하는 경우 필요합니다.

    스크립트에서 하나 이상의 라인 항목 sys_ids 지정하려면 getPrimitivesEPService() 유틸리티 메서드에서 context.isMultiSelect = true를 설정합니다. 자세한 내용은 의 매개변수 테이블을 LeadtoCashCore - getPrimitivesEPService(String sourceToTargetConfigID, 개체 컨텍스트)참조하십시오.

    주:
    하나 이상의 headerSysID OR lineSysIDs 매개변수가 필요합니다. 여러 를 lineSysIDs전달하는 경우 모든 기록은 동일한 headerSysID.
    표 4. 반환
    유형 설명
    JSON 객체 엔터티 기록의 세부 정보를 포함하는 JSON입니다.

    데이터 유형: 객체 배열

    {
    "items": [
      {
      "attributes": {Object},
      "sys_id": {Object},
      "table": "String",
      "lineItems": [
        {
         "attributes": {Object},
         "sys_id": {Object},
         "table": "String",
         "characteristics": [Array],
         "lineItems": [Array]
         }
        ],
      "characteristics": [Array],
      "_state": "String"
      }
     ]
    }
    _상태 엔터티의 활동 상태입니다.

    가능한 값:

    • 활성: 엔터티가 활성 상태입니다.
    • 비활성: 엔터티가 비활성 상태입니다.

    기본값: active

    데이터 유형: 문자열

    특성 엔터티 특성 목록입니다. 특성은 엔터티마다 다를 수 있습니다.

    데이터 유형: 객체 배열

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    특성.속성 특성 기록과 연결된 속성에 대한 정보를 포함하는 하나 이상의 객체입니다. <속성 유형>은 특성과 관련된 기록/기능에 따라 다른 값일 수 있습니다. 예를 들어 이 객체에는 속성 기록의 sys_id, 연결된 특성 기록, 특성 옵션 기록 또는 판매된 제품 정보에 대한 참조가 포함될 수 있습니다.

    데이터 유형: 객체

    "attributes": {
      "<attribute_type>": {Object}
    }
    특성.속성.<attribute_type> 항목 속성의 키 이름에 대한 정보입니다.
    "<key_name>": { 
      "value": "String" 
    }

    데이터 유형: 객체

    특성.속성.<attribute_type>.값 일반적으로 연결 속성 기록의 sys_id이지만 연결된 속성 유형을 설명하는 의미 있는 텍스트 문자열이 될 수도 있습니다.

    데이터 유형: 문자열

    characteristics.sys_id 연결된 특성 기록의 sys_id 포함하는 객체입니다.

    데이터 유형: 객체

    "sys_id": { 
      "value": "String" 
     }
    characteristics.sys_id.value 연결된 특성 기록의 Sys_id입니다.

    데이터 유형: 문자열

    특성.테이블 현금으로 연결 엔터티의 특성 기록이 포함된 테이블의 이름입니다.

    데이터 유형: 문자열

    항목 가 true로 설정된 경우 context.isMultiSelect 선택한 객체의 배열을 포함합니다.

    데이터 유형: 객체 배열

    "items": [
    { 
      "attributes": {Object}, 
      "sys_id": {Object}, 
      "table": "String",
      "lineItems": [Array]
     }, 
    ]
    항목.속성 항목 기록의 속성입니다. 속성은 엔터티마다 다를 수 있습니다.
    "attributes": {
      "account": {Object},
      "name": {Object}
    }

    데이터 유형: 객체

    항목.속성.계정 항목 속성과 연결된 계정에 대한 정보입니다.
    "account": { 
      "value": "String" 
    }
    항목.속성.계정.값 항목의 속성입니다. 속성은 엔터티마다 다를 수 있습니다.
    "attributes": {
      "account": {Object},
      "<key_name>": {Object}
    }

    데이터 유형: 객체

    항목.속성.<key_name> 항목 속성의 키 이름에 대한 정보입니다.
    "<key_name>": { 
      "value": "String" 
    }

    데이터 유형: 객체

    항목.속성.<key_name>.값 키 이름 속성의 값입니다.

    데이터 유형: 문자열

    items.sys_id 엔터티 항목에 대한 sys_id 정보를 포함하는 객체입니다. 값은 엔터티마다 다릅니다.

    데이터 유형: 객체

    "sys_id": {
      "value": "String"
    }
    items.sys_id.value 연결된 항목의 Sys_id입니다.

    데이터 유형: 문자열

    항목.테이블 현금으로 연결 엔터티와 연결된 라인 항목 기록이 포함된 테이블의 이름입니다.

    데이터 유형: 문자열

    items.lineItems 엔터티 기록의 라인 항목 상세 정보를 포함하는 JSON 객체입니다.

    데이터 유형: 객체 배열

    "lineItems": [ 
      { 
        "attributes": {Object},
        "characteristics": [Array],
        "lineItems": [Array],
        "_state": "String",
        "sys_id": {Object},
        "table": "String"
      }
    ]
    items.lineItems._state 라인 항목 엔터티의 활동 상태입니다.

    가능한 값:

    • 활성: 엔터티가 활성 상태입니다.
    • 비활성: 엔터티가 비활성 상태입니다.

    기본값: active

    데이터 유형: 문자열

    items.lineItems.attributes 라인 항목 기록의 속성입니다. 속성은 엔터티마다 다를 수 있습니다.
    "attributes": {
      "account": {Object},
      "<key_name>": {Object}
    }

    데이터 유형: 객체

    items.lineItems.attributes.<key_name> 라인 항목 속성의 키 이름에 대한 정보입니다.
    "<key_name>": { 
      "value": "String" 
    }

    데이터 유형: 객체

    items.lineItems.attributes.<key_name>.value 키 이름 속성의 값입니다.

    데이터 유형: 문자열

    items.lineItems.attributes.account 라인 항목 속성과 연결된 계정에 대한 정보입니다.
    "account": { 
      "value": "String" 
    }
    items.lineItems.attributes.account.value 라인 항목 속성과 연결된 계정의 Sys_id입니다.

    데이터 유형: 문자열

    items.lineItems.characteristics 라인 항목과 연결된 특성의 목록입니다. 특성은 엔터티마다 다를 수 있습니다.

    데이터 유형: 객체 배열

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    항목.라인항목.특성.속성 특성 기록과 연결된 속성에 대한 정보를 포함하는 하나 이상의 객체입니다. <속성 유형>은 특성과 관련된 기록/기능에 따라 다른 값일 수 있습니다. 예를 들어 이 객체에는 속성 기록의 sys_id, 연결된 특성 기록, 특성 옵션 기록 또는 판매된 제품 정보에 대한 참조가 포함될 수 있습니다.

    데이터 유형: 객체

    "attributes": {
      "<attribute_type>": {Object}
    }
    items.lineItems.characteristics.attributes.<attribute_type>.value 일반적으로 연결 속성 기록의 sys_id이지만 연결된 속성 유형을 설명하는 의미 있는 텍스트 문자열이 될 수도 있습니다.

    데이터 유형: 문자열

    items.lineItems.characteristics.sys_id 연결된 특성 기록의 sys_id 포함하는 객체입니다.

    데이터 유형: 객체

    "sys_id": { 
      "value": "String" 
     }
    items.lineItems.characteristics.sys_id.value 연결된 특성 기록의 Sys_id입니다.

    데이터 유형: 문자열

    items.lineItems.characteristics.table 현금으로 연결 엔터티의 특성 기록이 포함된 테이블의 이름입니다.

    데이터 유형: 문자열

    items.lineItems.lineItems 상위 라인 항목의 하위 라인 항목입니다. 이 개체의 형식은 매개 변수와 lineItems 같습니다.

    데이터 유형: 객체

    "lineItems": [
      { 
        "attributes": {Object},
        "characteristics": [Array],
        "lineItems": [Array],
        "_state": {Object},
        "sys_id": {Object},
        "table": "String"
      }
    ] 
    items.lineItems.sys_id 연결된 라인 항목 기록에 대한 sys_id 정보를 포함하는 객체입니다.

    데이터 유형: 객체

    "sys_id": {
      "value": "String"
    }
    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 객체를 반환합니다.

    주:
    LeadtoCashCore 스크립트 포함을 사용하려면 스크립트에서 delta()를 호출하기 전에 먼저 유틸리티 메서드를 사용하여 LeadtoCashCore - getPrimitivesEPService(String sourceToTargetConfigID, 개체 컨텍스트) 스크립팅된 확장점 PrimitiveUtil()을 호출하여 구현을 트리거해야 합니다. 각 플로우마다 서비스를 한 번만 가져오고 모든 LeadtoCashCore 메서드에 동일한 서비스를 사용합니다.
    표 5. 매개변수
    이름 유형 설명
    소스 JSON 객체 소스의 JSON 객체는 현금으로 연결 엔터티입니다.
    주:
    더티 JSON 객체 현금으로 연결 엔터티의 수정된 소스 JSON입니다.
    additionalParams 객체 옵션입니다. 사용할 추가 매개변수입니다.
    additionalParams.delta_ignore_attributes 객체 소스와 dirtyJSON을 비교하는 동안 무시할 테이블 속성입니다. 재구성 사용 사례를 지원할 수 있습니다.
    {  
    “<table_name>”: [<attribute_name1>, attribute_name2>] 
    }
    additionalParams.delta_ignore_attributes.<table_name> 문자열 무시할 테이블 이름과 관련 속성입니다.

    예:

    {  
    “sn_install_base_sold_product”: [“state”,”unit_price”]  
    }
    additionalParams.loadDisplayValue 부울 옵션입니다. 각 속성의 표시 값을 로드할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 속성의 표시 값 로드를 활성화합니다.
    • false: 속성의 표시 값 로드를 활성화하지 않습니다.

    기본값: false

    표 6. 반환
    유형 설명
    JSON 객체 sourceJSON과 dirtyJSON 간에 발생한 모든 변경 내용이 포함된 엔터티 기록의 세부 정보를 포함하는 객체입니다.

    데이터 유형: 객체

    {
    "lineItems": [Array] 
    }
    품목 엔터티 기록의 라인 항목 상세 정보를 포함하는 JSON 객체입니다. 예를 들어 주문 라인 항목 또는 견적 라인 항목을 사용할 수 있습니다.

    데이터 유형: 객체 배열

    "lineItems": [ 
     {
      "_action": "String",
      "attributes": {Object}
      "characteristics": [Array]
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String"
     } 
    ]
    lineItems._action 소스 JSON의 라인 항목에 적용되는 변경 작업입니다.
    가능한 값:
    • add: 정보가 소스 JSON에 추가되었습니다.
    • change: 소스 JSON에서 정보가 업데이트되었습니다.
    • disconnect: 소스 JSON에서 정보 연결이 끊어졌습니다.
    • nochange: 소스 JSON에서 변경이 발생하지 않았습니다.

    데이터 유형: 문자열

    lineItems.attributes 라인 항목의 속성입니다. 예를 들어 속성의 이름 및 값입니다. 엔터티에 따라 다양한 필드를 포함할 수 있습니다.

    데이터 유형: 객체

    "attributes": { 
      "<attribute_name>": {Object}
    }
    라인항목.속성.<attribute_name> 라인 항목 속성의 이름입니다. 예를 들어 계정 또는 접촉 창구의 이름입니다. 엔터티의 다양한 필드를 포함할 수 있습니다.

    데이터 유형: 객체

    "attributes": { 
     "<attribute_name>": { 
       "value": "String"
     }
    }
    라인항목.속성.<attribute_name>.값 라인 항목 속성의 값입니다.

    데이터 유형: 문자열

    라인 항목.속성.계정 항목 속성과 연결된 계정에 대한 정보입니다.

    데이터 유형: 객체

    "account": { 
      "value": "String" 
    }
    라인 항목.속성.계정.값 라인 항목 속성과 연결된 계정의 Sys_id입니다.

    데이터 유형: 문자열

    lineItems.characteristics 라인 항목의 특성입니다. 엔터티에 따라 다양한 필드를 포함할 수 있습니다.

    데이터 유형: 객체 배열

    "characteristics": [  
     {  
      "attributes": {Object},
      "sys_id": {Object},  
      "table": "String"
      }  
    ]
    라인 항목.특성.속성 헤더 기록 특성의 속성입니다. 예를 들어 속성의 이름 및 값입니다. 엔터티에 따라 다양한 필드를 포함할 수 있습니다.

    데이터 유형: 객체

    "attributes": { 
     "<field_name>": { 
     "value": "String"
    }
    라인 항목.특성.속성.<field_name> 라인 항목과 연결된 특성 기록의 속성 이름입니다.

    데이터 유형: 객체

    "<field_name>": { 
      "value": "String" 
    }
    라인 항목.특성.속성.<field_name>.값 엔터티의 특성 기록에 속하는 속성의 값입니다.

    데이터 유형: 문자열

    lineItems.characteristics.sys_id 특성 기록의 Sys_id 객체입니다.

    데이터 유형: 객체

    "sys_id": { 
      "value": "String" 
    }
    lineItems.characteristics.sys_id.value 연결된 특성 기록의 Sys_id입니다. 업데이트된 테이블은 엔터티마다 다를 수 있습니다. 예를 들어, 주문 [sn_ind_tmt_orm_order]입니다.

    데이터 유형: 문자열

    lineItems.characteristics.table 특성 기록이 포함된 테이블의 이름입니다.

    데이터 유형: 문자열

    라인 항목.라인 항목 상위 라인 항목의 하위 라인 항목입니다. 이 개체의 형식은 매개 변수와 lineItems 같습니다.

    데이터 유형: 객체 배열

    "lineItems": [  
     {  
      "_glide_action": "String",
      "attributes": {Object},
      "characteristics": [Array],
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String"
     } 
    ]
    lineItems.sys_id 연결된 항목 기록의 Sys_id입니다.

    데이터 유형: 객체

    "sys_id": {
      "value": "String"
    }
    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" 
        } 
      ] 
    } 

    다중 선택

    다음 예제에서는 먼저 PrimitiveUtilgetPrimitivesEPService를 호출한 다음 여러 줄 또는 헤더 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 출력을 커밋하여 현금으로 연결 워크플로우를 완료합니다.

    주:
    LeadtoCashCore 스크립트 포함을 사용하려면 스크립트에서 effect()를 호출하기 전에 먼저 유틸리티 메서드를 사용하여 LeadtoCashCore - getPrimitivesEPService(String sourceToTargetConfigID, 개체 컨텍스트) 스크립팅된 확장점 PrimitiveUtil()을 호출하여 구현을 트리거해야 합니다. 각 플로우마다 서비스를 한 번만 가져오고 모든 LeadtoCashCore 메서드에 동일한 서비스를 사용합니다.
    표 7. 매개변수
    이름 유형 설명
    소스 JSON 객체 소스 엔터티의 세부 정보를 포함하는 JSON입니다.
    대상JSON 객체 대상 엔터티의 세부 정보를 포함하는 JSON입니다.
    additionalParams 객체 옵션입니다. 사용할 추가 매개변수입니다.
    additionalParams.is_future_state 부울 옵션입니다. 이를 사용하여 재구성 사용 사례를 지원합니다.
    허용되는 값:
    • true: 딕셔너리 필드 이름 대신 컨텍스트 변수 키를 제공합니다. 이렇게 하면 소스 간에 속성을 매핑하는 대신 대상 엔터티의 모든 속성을 제공할 수 있습니다.
    • false: 딕셔너리 필드 이름을 제공합니다.

    기본값: false

    표 8. 반환
    유형 설명
    JSON 객체 발생하여 소스에서 대상 엔터티로 적용된 변경 현금으로 연결 엔터티의 각 헤더에 있는 JSON 객체입니다.

    데이터 유형: 객체

    {
      "_glide_action": "String",
      "_records_count: {Object},
      "_source_object": {Object},
      "lineItems": [Array],
      "sys_id": "String", 
      "table": "String"
    }
    _glide_action 소스와 대상 JSON 사이의 항목 수준에서 발생한 변경을 나타냅니다.
    가능한 값(대/소문자 구분):
    • DELETE: 원본 JSON 구조와 대상 JSON 구조 간의 정보가 제거되었습니다.
    • 삽입: 원본 JSON 구조와 대상 JSON 구조 사이에 정보가 추가되었습니다.
    • NO_CHANGE: 소스와 대상 JSON 구조 간에 변경이 발생하지 않았습니다.
    • 업데이트 : 소스와 JSON 구조간에 정보가 수정되었습니다.

    데이터 유형: 문자열

    _records_count 각 테이블에 대해 삽입된 새 기록의 상세 정보입니다.

    데이터 유형: 객체

    "_records_count": {
    "tableName": {Object}
    }
    _records_count.tableName 새 기록이 삽입되는 테이블의 이름입니다.

    데이터 유형: 객체

    "tableName": {
          "insert": Number}
    }
    _records_count.tableName.insert 테이블에 삽입된 새 기록의 수입니다.

    데이터 유형: 숫자

    _source_object 변경 내용이 적용된 소스 JSON 객체입니다. 개체 구조는 엔터티마다 다를 수 있습니다.

    데이터 유형: 객체

    "_source_object": { 
      "sys_id": "String",
      "table": "String" 
    }
    _source_object.sys_id 업데이트된 소스 엔터티 기록의 Sys_id입니다.

    데이터 유형: 문자열

    _source_object.테이블 업데이트된 소스 엔터티 기록의 테이블 위치입니다. 이 값은 엔터티마다 다를 수 있습니다.

    데이터 유형: 문자열

    lineItems._glide_action 라인 항목에서 발생한 변경 작업입니다.
    가능한 값:
    • DELETE: 원본 JSON 구조와 대상 JSON 구조 간의 정보가 제거되었습니다.
    • 삽입: 원본 JSON 구조와 대상 JSON 구조 사이에 정보가 추가되었습니다.
    • NO_CHANGE: 소스와 대상 JSON 구조 간에 변경이 발생하지 않았습니다.
    • 업데이트 : 소스와 JSON 구조간에 정보가 수정되었습니다.

    데이터 유형: 문자열

    lineItems._source_object _glide_action 적용된 소스 엔터티 기록 상세 정보입니다. 이 개체는 엔터티마다 다를 수 있습니다.

    데이터 유형: 객체

    "_source_object": { 
      "sys_id": "String",
      "table": "String" 
    }
    lineItems._source_object.sys_id 업데이트된 소스 엔터티 기록의 Sys_id입니다.

    데이터 유형: 문자열

    lineItems._source_object.table 업데이트된 소스 엔터티 기록의 테이블 위치입니다. 이 값은 엔터티마다 다를 수 있습니다.

    데이터 유형: 문자열

    lineItems._state 엔터티의 상태입니다.

    데이터 유형: 객체

    "_state": {  
     "value": "String" 
    } 
    lineItems._state.값 엔터티의 현재 상태입니다.
    가능한 값:
    • 활성: 엔터티 객체가 활성 상태입니다.
    • 비활성: 엔터티 객체가 활성 상태가 아닙니다.

    데이터 유형: 문자열

    lineItems.attributes 라인 항목의 속성입니다. 예를 들어 속성의 이름 및 값입니다. 엔터티에 따라 다양한 필드를 포함할 수 있습니다.

    데이터 유형: 객체

    "attributes": { 
      "<attribute_name>": {Object}
    }
    라인항목.속성.<attribute_name> 라인 항목 속성의 이름입니다. 예를 들어 계정 또는 접촉 창구의 이름입니다. 엔터티의 다양한 필드를 포함할 수 있습니다.

    데이터 유형: 객체

    "attributes": { 
     "<attribute_name>": { 
       "value": "String"
     }
    }
    라인항목.속성.<attribute_name>.값 라인 항목 속성의 값입니다.

    데이터 유형: 문자열

    라인 항목.속성.계정 항목 속성과 연결된 계정에 대한 정보입니다.

    데이터 유형: 객체

    "account": { 
      "value": "String" 
    }
    라인 항목.속성.계정.값 라인 항목 속성과 연결된 계정의 Sys_id입니다.

    데이터 유형: 문자열

    lineItems.attributes.short_description 라인 항목 속성에 대한 간략한 설명입니다.

    데이터 유형: 문자열

    lineItems.characteristics 라인 항목과 연결된 특성의 목록입니다. 특성은 엔터티마다 다를 수 있습니다.

    데이터 유형: 객체 배열

    "characteristics": [  
     {
      "_glide_action: "String",
      "attributes": {Object},
      "sys_id": {Object},  
      "table": "String"
     }  
    ]
    lineItems.characteristics._glide_action 라인 항목에서 발생한 변경 작업입니다.
    가능한 값:
    • DELETE: 원본 JSON 구조와 대상 JSON 구조 간의 정보가 제거되었습니다.
    • 삽입: 원본 JSON 구조와 대상 JSON 구조 사이에 정보가 추가되었습니다.
    • NO_CHANGE: 소스와 대상 JSON 구조 간에 변경이 발생하지 않았습니다.
    • 업데이트 : 소스와 JSON 구조간에 정보가 수정되었습니다.

    데이터 유형: 문자열

    라인 항목.특성.속성 특성 기록과 연결된 속성에 대한 정보를 포함하는 하나 이상의 객체입니다.

    예를 들어 이 객체에는 속성 기록의 sys_id, 연결된 특성 기록, 계정 또는 접촉 창구, 특성 옵션 기록 또는 판매된 제품 정보에 대한 참조가 포함될 수 있습니다.

    데이터 유형: 객체

    "attributes": {
      "<attribute_type>": {Object}
    }
    라인항목.특성.속성.<attribute_type> 속성의 유형입니다. 이 값에는 특성과 관련된 기록 또는 기능에 따라 다른 값이 포함될 수 있습니다.

    데이터 유형: 객체

    "<attribute_type>": {
      "value": "String"
    }
    라인 항목.특성.속성.<attribute_type>.값 라인 항목 속성의 값입니다.

    데이터 유형: 문자열

    라인 항목.특성.속성.<field_name> 라인 항목과 연결된 특성 기록의 속성 이름입니다.

    데이터 유형: 객체

    "<field_name>": { 
      "value": "String" 
    }
    라인 항목.특성.속성.<field_name>.값 엔터티의 특성 기록에 속하는 속성의 값입니다.

    데이터 유형: 문자열

    lineItems.characteristics.sys_id 연결된 특성 기록의 Sys_id입니다.

    데이터 유형: 객체

    "sys_id": { 
      "value": "String" 
     }
    lineItems.characteristics.sys_id.value 연결된 특성 기록의 Sys_id입니다. 업데이트된 테이블은 엔터티마다 다를 수 있습니다. 예를 들어, 주문 [sn_ind_tmt_orm_order]입니다.

    데이터 유형: 문자열

    lineItems.characteristics.table 특성 기록이 포함된 테이블의 이름입니다.

    데이터 유형: 문자열

    라인 항목.라인 항목 상위 라인 항목의 하위 라인 항목입니다. 이 개체의 형식은 매개 변수와 lineItems 같습니다.

    데이터 유형: 객체 배열

    "lineItems": [  
     {  
      "_glide_action": "String",
      "attributes": {Object},
      "characteristics": [Array],
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String"
     } 
    ]
    lineItems.sys_id 연결된 항목 기록의 Sys_id입니다.

    데이터 유형: 객체

    "sys_id": {
      "value": "String"
    }
    lineItems.sys_id.value 연결된 항목 기록의 Sys_id입니다. 업데이트된 테이블은 순서 또는 사양과 같은 엔터티에 따라 다를 수 있습니다. 예를 들어, 주문 [sn_ind_tmt_orm_order]입니다.

    데이터 유형: 문자열

    lineItems.table 현금으로 연결 엔터티와 연결된 항목 기록이 포함된 테이블의 이름입니다.

    데이터 유형: 문자열

    sys_id 엔터티의 Sys_id입니다.

    데이터 유형: 문자열

    테이블 엔터티가 있는 테이블의 이름입니다.

    데이터 유형: 문자열

    다음 예제에서는 delta() 메서드의 출력을 사용하여 변환 논리를 적용하는 방법을 보여 줍니다.
    주:
    소스 JSON 형식만 변경되고 출력은 둘 다 동일하게 유지되므로 단일 선택 및 다중 선택 사용 사례 모두에 동일한 스크립트를 적용할 수 있습니다. 다중 선택 사용 사례의 경우 모든 라인 항목이 동일한 헤더에 추가된 단일 헤더가 생성됩니다.
    //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을 인스턴스에 커밋하고, 업데이트된 정보가 포함된 상태 메시지를 반환하고, 그 결과로 현금으로 연결 코어 엔터티 테이블을 업데이트합니다.

    주:
    LeadtoCashCore 스크립트 포함을 사용하려면 스크립트에서 commitInstance()를 호출하기 전에 구현을 트리거하는 유틸리티 메서드를 사용하여 LeadtoCashCore - getPrimitivesEPService(String sourceToTargetConfigID, 개체 컨텍스트) 스크립팅된 확장점 PrimitiveUtil()을 먼저 호출해야 합니다. 각 플로우마다 서비스를 한 번만 가져오고 모든 LeadtoCashCore 메서드에 동일한 서비스를 사용합니다.
    표 9. 매개변수
    이름 유형 설명
    대상JSON 객체 커밋할 대상 엔터티의 "glide_action"를 포함하는 JSON 객체입니다. 여기에서 effect() 메서드의 출력을 전달할 수 있습니다.
    주:
    'glide_action'는 현금으로 연결 엔터티의 소스와 대상 JSON 간에 발생한 변경 작업을 식별합니다.
    additionalParams 객체 옵션입니다. 사용할 추가 매개변수입니다.
    additionalParams.useNumberGenerator 부울 옵션입니다. sys_numbers 대량으로 생성할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 기록 삽입 프로세스 중에 사용할 sys_numbers 대량으로 작성합니다. 숫자를 가져오기 위해 추가 쿼리의 필요성을 줄이고 삽입 시간을 줄입니다.
    • false: 각 기록에 대한 삽입 시 sys_number 개별적으로 생성합니다.

    기본값: false

    표 10. 반환
    유형 설명
    JSON 객체 대상 엔터티 기록에 대한 상세 정보입니다.

    데이터 유형: 객체

    {
      "dataObject": {Object},
      "displayMessage": "String",
      "error": "String",
      "headerID": "String",
      "message": "String",
      "rootLineIDs": [Array],
      "status": "String"
    }
    데이터 객체 각 수준에서 수행된 커밋 작업에 대한 자세한 데이터를 포함하는 JSON 객체입니다.

    데이터 유형: 객체

    "dataObject": {
      "_commitObjectInfo": {Object},
      "_glide_action": "String",
      "_source_object": {Object},
      "lineItems": [Array],
      "sys_id": "String",
      "table": "String"
    }
    dataObject._commitObjectInfo 라인 항목 변경이 삽입 작업인지 여부를 커밋 상태와 sys_id입니다.

    데이터 유형: 객체

    "_commitObjectInfo": {
      "status": "String",
      "sys_id": "String"
    }
    dataObject._commitObjectInfo.status 특정 엔터티에 대해 수행된 커밋 작업의 상태입니다.
    가능한 값:
    • success: 엔터티 커밋 작업이 성공했습니다.
    • 실패: 엔터티 커밋 작업이 실패했습니다.

    데이터 유형: 문자열

    dataObject._commitObjectInfo.sys_id 삽입된 기록의 Sys_id입니다. 메서드는 INSERTdataObject._glide_action인 경우에만 이 매개변수를 반환합니다. 업데이트된 테이블은 엔터티마다 다를 수 있습니다. 예를 들어, 주문 [sn_ind_tmt_orm_order]입니다.

    데이터 유형: 문자열

    dataObject._glide_action 라인 항목에서 발생한 변경 작업입니다.
    가능한 값:
    • DELETE: 원본 JSON 구조와 대상 JSON 구조 간의 정보가 제거되었습니다.
    • 삽입: 원본 JSON 구조와 대상 JSON 구조 사이에 정보가 추가되었습니다.
    • NO_CHANGE: 소스와 대상 JSON 구조 간에 변경이 발생하지 않았습니다.
    • 업데이트: 소스 구조와 대상 구조 간의 정보가 수정되었습니다.

    데이터 유형: 문자열

    dataObject._source_object 변경 내용이 적용된 소스 JSON 객체입니다. 개체 구조는 엔터티마다 다를 수 있습니다.

    데이터 유형: 객체

    "_source_object": {
      "sys_id": "String", 
      "table": "String” 
    }
    dataObject._source_object.sys_id _glide_action 적용된 소스 엔터티 기록의 Sys_id입니다. 업데이트된 테이블은 엔터티마다 다를 수 있습니다. 예를 들어, 주문 [sn_ind_tmt_orm_order]입니다.

    데이터 유형: 문자열

    dataObject._source_object.테이블 _glide_action 적용된 소스 엔터티 기록이 들어 있는 테이블의 이름입니다. 이는 엔터티마다 다를 수 있습니다.

    데이터 유형: 문자열

    dataObject.lineItems 엔터티 기록의 라인 항목 상세 정보입니다. 예를 들어 주문 라인 항목 또는 견적 라인 항목을 사용할 수 있습니다.

    데이터 유형: 객체 배열

    "lineItems": [ 
    { 
      "_action": "String",
      "_commitObjectInfo": {Object},
      "_glide_action": "String",
      "_source_object": {Object},
      "_state": "String",
      "attributes": {Object},
      "characteristics": [Array],
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String",
    }
    ]
    dataObject.lineItems._action 소스 JSON의 라인 항목에 적용되는 변경 작업입니다.
    가능한 값:
    • add: 정보가 소스 JSON에 추가되었습니다.
    • change: 소스 JSON에서 정보가 업데이트되었습니다.
    • disconnect: 소스 JSON에서 정보 연결이 끊어졌습니다.
    • nochange: 소스 JSON에서 변경이 발생하지 않았습니다.

    데이터 유형: 문자열

    dataObject.lineItems._commitObjectInfo 라인 항목 변경이 삽입 작업인 경우 반환됩니다. 객체의 커밋 상태와 sys_id 포함합니다.

    데이터 유형: 객체

    "_commitObjectInfo": { 
      "status": "String", 
      "sys_id": "String" 
    }
    dataObject.lineItems._commitObjectInfo.status 특정 엔터티에 대해 수행된 커밋 작업의 상태입니다.
    가능한 값:
    • success: 엔터티 커밋 작업이 성공했습니다.
    • 실패: 엔터티 커밋 작업이 실패했습니다.

    데이터 유형: 문자열

    dataObject.lineItems._commitObjectInfo.sys_id 삽입된 기록의 Sys_id입니다. 업데이트된 테이블은 엔터티마다 다를 수 있습니다. 예를 들어, 주문 [sn_ind_tmt_orm_order]입니다.

    데이터 유형: 문자열

    dataObject.lineItems._glide_action 라인 항목에서 발생한 변경 작업입니다.
    가능한 값:
    • DELETE: 원본 JSON 구조와 대상 JSON 구조 간의 정보가 제거되었습니다.
    • 삽입: 원본 JSON 구조와 대상 JSON 구조 사이에 정보가 추가되었습니다.
    • NO_CHANGE: 소스와 대상 JSON 구조 간에 변경이 발생하지 않았습니다.
    • 업데이트 : 소스와 JSON 구조간에 정보가 수정되었습니다.

    데이터 유형: 문자열

    dataObject.lineItems._source_object _glide_action 적용된 소스 엔터티 기록 상세 정보입니다. 이 개체는 엔터티마다 다를 수 있습니다.

    데이터 유형: 객체

    "_source_object": { 
      "sys_id": "String",
      "table": "String" 
    }
    dataObject.lineItems._source_object.sys_id _glide_action 적용된 소스 엔터티 기록의 Sys_id입니다.

    데이터 유형: 문자열

    dataObject.lineItems._source_object.테이블 _glide_action 적용된 소스 엔터티 기록의 테이블 이름입니다.

    데이터 유형: 문자열

    dataObject.lineItems._state 객체의 상태입니다.
    가능한 값:
    • 활성: 엔터티 객체가 활성 상태입니다.
    • 비활성: 엔터티 객체가 활성 상태가 아닙니다.

    데이터 유형: 문자열

    dataObject.lineItems.attributes 라인 항목의 속성입니다. 예를 들어 속성의 이름 및 값입니다. 엔터티에 따라 다양한 필드를 포함할 수 있습니다.

    데이터 유형: 객체

    "attributes": { 
      "<attribute_name>": {Object}
    }
    dataObject.lineItems.attributes.<attribute_name> 라인 항목 속성의 이름입니다. 예를 들어 계정 또는 접촉 창구의 이름입니다. 엔터티의 다양한 필드를 포함할 수 있습니다.

    데이터 유형: 객체

    "attributes": { 
     "<attribute_name>": { 
       "value": "String"
     }
    }
    dataObject.lineItems.attributes.<attribute_name>.value 라인 항목 속성의 값입니다.

    데이터 유형: 문자열

    dataObject.lineItems.characteristics 라인 항목과 연결된 특성의 목록입니다. 특성은 엔터티마다 다를 수 있습니다.

    데이터 유형: 객체 배열

    "characteristics": [  
     {
      "_glide_action: "String",
      "attributes": {Object},
      "sys_id": {Object},  
      "table": "String"
     }  
    ]
    dataObject.lineItems.characteristics._glide_action 라인 항목에서 발생한 변경 작업입니다.
    가능한 값:
    • DELETE: 원본 JSON 구조와 대상 JSON 구조 간의 정보가 제거되었습니다.
    • 삽입: 원본 JSON 구조와 대상 JSON 구조 사이에 정보가 추가되었습니다.
    • NO_CHANGE: 소스와 대상 JSON 구조 간에 변경이 발생하지 않았습니다.
    • 업데이트 : 소스와 JSON 구조간에 정보가 수정되었습니다.

    데이터 유형: 문자열

    dataObject.lineItems.characteristics.attributes 특성 기록과 연결된 속성에 대한 정보를 포함하는 하나 이상의 객체입니다.

    예를 들어 이 객체에는 속성 기록의 sys_id, 연결된 특성 기록, 계정 또는 접촉 창구, 특성 옵션 기록 또는 판매된 제품 정보에 대한 참조가 포함될 수 있습니다.

    데이터 유형: 객체

    "attributes": {
      "<attribute_type>": {Object}
    }
    dataObject.lineItems.characteristics.attributes.<attribute_type> 특성 속성의 이름입니다. 엔터티의 다양한 필드를 포함할 수 있습니다.

    데이터 유형: 객체

    "<attributes_type>": { 
     "<attribute_name>": {Object}
    }
    dataObject.lineItems.characteristics.attributes.<attribute_type>.<attribute_name> 특성 속성의 이름입니다.

    데이터 유형: 객체

    "<attribute_name>": { 
     "value": "String"
    }
    dataObject.lineItems.characteristics.attributes.<attribute_type>.<attribute_name>.value 라인 항목 속성의 값입니다.

    데이터 유형: 문자열

    dataObject.lineItems[0].characteristics.sys_id 연결된 특성 기록의 Sys_id입니다.

    데이터 유형: 객체

    "sys_id": { 
      "value": "String" 
     }
    dataObject.lineItems[0].characteristics.sys_id.value 연결된 특성 기록의 Sys_id입니다. 업데이트된 테이블은 엔터티마다 다를 수 있습니다. 예를 들어, 주문 [sn_ind_tmt_orm_order]입니다.

    데이터 유형: 문자열

    dataObject.lineItems[0].characteristics.table 특성 기록이 포함된 테이블의 이름입니다.

    데이터 유형: 문자열

    dataObject.lineItems[0].lineItems 상위 라인 항목의 하위 라인 항목입니다. 이 개체의 형식은 매개 변수와 lineItems 같습니다.

    데이터 유형: 객체 배열

    "lineItems": [  
     {  
      "_glide_action": "String",
      "attributes": {Object},
      "characteristics": [Array],
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String"
     } 
    ]
    dataObject.lineItems[0].sys_id 연결된 항목 기록의 Sys_id입니다.

    데이터 유형: 객체

    "sys_id": {
      "value": "String"
    }
    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 목록입니다.

    저장 위치: 판매된 제품, 주문 등 엔터티 유형에 따른 관련 테이블입니다.

    데이터 유형: 문자열 배열

    상태 커밋의 성공을 확인하는 상태 메시지입니다.

    가능한 값:

    • success: 커밋에 성공했습니다.
    • 실패: 루트 라인 또는 헤더 Glide 작업이 실패했습니다. 현금으로 연결 코어 API 플로우를 다시 트리거합니다.
    • partial_success: 전체 JSON을 처리하는 동안 오류가 발생했습니다. 특정 오류를 해결하려면 처리 로그를 참조하십시오.

    데이터 유형: 문자열

    다음 예제에서는 각 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"
      ]
    }