LeadtoCashCore - 범위 지정됨

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

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

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

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

    1. LeadtoCashCore - createInstance(문자열 headerSysIDs, 문자열 lineSysIDs, 부울 isTarget, 객체 additionalParams, 객체 컨텍스트) - 지정된 엔터티의 데이터를 가져옵니다. 예를 들어 광고 항목 및 관련 데이터를 포함한 고객 주문 관련 정보입니다.

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

    2. LeadtoCashCore - delta(객체 sourceJSON, 객체 dirtyJSON, 객체 additionalParams, 객체 컨텍스트) - 두 JSON 입력을 비교하고 두 입력 간에 발생한 변경 사항을 식별합니다. 예를 들어 엔터티에서 무언가가 추가, 삭제 또는 수정되는 경우입니다.
    3. LeadtoCashCore - effect(객체 sourceJSON, 객체 targetJSON, 객체 additionalParams, 객체 컨텍스트) - 소스 JSON 대상을 대상 개체로 변환합니다.
    4. LeadtoCashCore - commitInstance(객체 targetJSON, 객체 additionalParams) - effect() 스크립트 포함에서 수행된 변형을 데이터베이스에 커밋합니다.
    주:
    필요한 경우 이 워크플로에서 delta() 를 건너뛸 수 있습니다. 그러나 이러한 메서드를 순서대로 호출하면 워크플로가 실패합니다(예: commitInstance()를 호출한 다음 effect()를 호출하는 경우).

    필수 구성요소

    이러한 각 메서드는 확장점 sn_l2c_core와 함께 번들로 제공됩니다. LeadToCashServiceEP입니다. PrimitiveUtil() 은 확장점 서비스를 가져오는 메서드를 제공하고 사용 가능한 매개변수에 따라 스크립트 포함을 호출하는 유틸리티입니다. 먼저 소스 및 대상 정보를 가져올 테이블을 지정하는 getPrimitivesEPService() 메서드와 함께 PrimitiveUtil()을 제공해야 합니다. 자세한 내용은 LeadtoCashCore - getPrimitivesEPService(문자열 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. delta() 그런 다음 JSON은 effect() 메서드를 사용하여 order 유형의 JSON으로 변환됩니다.
    4. 주문 JSON은 commitInstance() 메서드를 사용하여 데이터베이스에 커밋됩니다.

    LeadtoCashCore - createInstance(문자열 headerSysIDs, 문자열 lineSysIDs, 부울 isTarget, 객체 additionalParams, 객체 컨텍스트)

    헤더, 라인, 하위 라인, 특성 및 속성과 같은 다양한 세부 정보를 포함하는 JSON 객체와 함께 하나 이상의 지정된 엔터티의 데이터를 반환합니다.

    delta(), effect()commitInstance()와 같은 현금으로 연결 코어 워크플로우의 후속 메서드에서 createInstance() 메서드의 출력 JSON을 사용합니다.

    주:
    LeadtoCashCore 스크립트 포함을 사용하려면 스크립트에서 createInstance()를 호출하기 전에 구현을 트리거하기 위해 유틸리티 메서드와 LeadtoCashCore - getPrimitivesEPService(문자열 sourceToTargetConfigID, 객체 컨텍스트) 함께 스크립트 유틸리티 메서드 PrimitiveUtil()을 먼저 호출해야 합니다. 각 흐름에 따라 서비스를 한 번만 받고 모든 LeadtoCashCore 메서드에 대해 동일한 서비스를 사용합니다.

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

    표 1. 매개변수
    이름 유형 설명
    headerSysID 문자열 데이터를 검색할 엔터티의 헤더 sys_id입니다. 매개변수를 제공하지 않으면 필수입니다 lineSysIDs . 헤더 sys_ids 전달하지 않는 경우 null 을 전달합니다.

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

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

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

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

    기본값: false

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

    기본값: false

    컨텍스트 객체 옵션입니다. 매개변수를 context.isMultiSelect 사용하여 여러 인스턴스를 호출하는 옵션을 제공합니다.
    "context": [
    {
     "isMultiSelect": "Boolean"
      }, 
    ]
    context.isMultiSelect 부울 옵션입니다. 인스턴스를 작성하기 위해 여러 엔터티를 입력으로 전달할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 여러 엔터티를 입력으로 전달할 수 있습니다. 예일 경우 쉼표로 구분된 목록으로 여러 라인 항목을 전달할 수 있습니다.
    • false: 여러 엔터티를 입력으로 전달할 수 없습니다. API 스크립트에는 하나의 입력만 전달될 수 있습니다.

    기본값: false

    표 2. 반환
    유형 설명
    JSON 객체 엔터티 기록의 상세 정보를 포함하는 JSON.

    데이터 유형: 객체

    {
      "items": {Object},
      "lineItems": [Array]
    }
    항목 true로 설정된 경우 context.isMultiSelect 선택한 객체의 배열을 포함합니다.

    데이터 유형: 객체

    "items": {
        "attributes": {Object},
        "sys_id": {Object},
        "table": "String"
        },
    items._state 개체의 상태를 나타내는 개체입니다.

    데이터 유형: 객체

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

    데이터 유형: 문자열

    items.attributes 헤더 기록의 속성입니다.

    데이터 유형: 객체

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

    데이터 유형: 문자열

    items.attributes.name 헤더 기록의 엔터티 속성 이름입니다. 예를 들어, 접촉 창구의 계정입니다. 엔터티의 다양한 필드를 포함할 수 있습니다.

    데이터 유형: 객체

    "name": { 
      "value": "String" 
    }
    items.attributes.name.value 엔터티의 헤더 기록에 속하는 항목 속성의 이름입니다.

    데이터 유형: 문자열

    items.sys_id 연결된 항목 기록에 대한 sys_id 정보를 포함하는 객체입니다.

    데이터 유형: 객체

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

    데이터 유형: 문자열

    items.table 현금으로 연결 엔터티와 연결된 항목 기록이 들어 있는 테이블의 이름입니다.

    데이터 유형: 문자열

    품목 엔터티 기록의 라인 항목 상세 정보를 포함하는 JSON 객체입니다.
    주:
    메서드에 대한 LeadtoCashCore - delta(객체 sourceJSON, 객체 dirtyJSON, 객체 additionalParams, 객체 컨텍스트) 요청 매개 변수에 sourceJSON 이 개체를 사용합니다.

    엔터티의 라인 항목입니다. 예를 들어 주문 라인 항목 또는 견적 라인 항목이 있습니다.

    데이터 형식: 개체 배열

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

    데이터 유형: 객체

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

    데이터 유형: 문자열

    lineItems.attributes.name 광고 항목 속성의 이름에 대한 정보입니다.
    "name": { 
      "value": "String" 
    }

    데이터 유형: 객체

    lineItems.attributes.name.value 속성의 이름입니다.

    데이터 유형: 문자열

    lineItems.특성 항목과 연결된 특성의 목록입니다. Charraceristics는 개체마다 다를 수 있습니다.

    데이터 형식: 개체 배열

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    lineItems.특성 라인 항목과 연결된 특성 목록입니다. Charraceristics는 개체마다 다를 수 있습니다.

    데이터 형식: 개체 배열

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

    데이터 유형: 객체

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

    데이터 유형: 문자열

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

    데이터 유형: 객체

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

    데이터 유형: 문자열

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

    데이터 유형: 문자열

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

    데이터 유형: 객체

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

    데이터 유형: 객체

    "sys_id": {
      "value": "String"
    }
    lineItems.sys_id.value 연결된 라인 항목 기록의 Sys_id입니다.

    데이터 유형: 문자열

    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" 
                }, 
                "account": { 
                  "value": "9e2fd2ee11b43110f877366201dea674" 
                } 
              }, 
              "lineItems": [ 
              ], 
              "characteristics": [] 
            } 
          ], 
          "characteristics": [ 
            { 
              "table": "sn_prd_pm_product_characteristics", 
              "sys_id": { 
                "value": "8d669b6665ebf110f877d71ec56bf75c" 
              }, 
              "attributes": { 
                "sys_id": { 
                  "value": "8d669b6665ebf110f87d71ec56bf75c" 
                }, 
                "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": [] 
            } 
          ] 
        } 
      ] 
    }

    LeadtoCashCore - commitInstance(객체 targetJSON, 객체 additionalParams)

    지정된 현금 엔터티로 연결의 JSON을 인스턴스에 커밋하고, 업데이트된 정보가 포함된 상태 메시지를 반환하고, 그 결과로 현금으로 연결 핵심 엔터티 테이블을 업데이트합니다.

    주:
    LeadtoCashCore 스크립트 포함을 사용하려면 스크립트에서 commitInstance()를 호출하기 전에 구현을 트리거하기 위해 유틸리티 메서드와 LeadtoCashCore - getPrimitivesEPService(문자열 sourceToTargetConfigID, 객체 컨텍스트) 함께 스크립팅된 확장점 PrimitiveUtil()을 먼저 호출해야 합니다. 각 흐름에 따라 서비스를 한 번만 받고 모든 LeadtoCashCore 메서드에 대해 동일한 서비스를 사용합니다.
    표 3. 매개변수
    이름 유형 설명
    대상JSON 객체 커밋할 대상 엔터티의 "glide_action"을 포함하는 JSON 객체입니다. 여기에 effect() 메서드의 출력을 전달할 수 있습니다.
    주:
    "glide_action"는 현금으로 연결 엔터티의 소스와 대상 JSON 간에 발생한 변경 작업을 식별합니다.
    대상JSON 객체 옵션입니다. 사용할 추가 매개변수입니다.
    주:
    commitInstance()에 대한 추가 매개변수는 이후 릴리스까지 사용할 수 없습니다.
    표 4. 반환
    유형 설명
    JSON 객체 대상 엔터티 기록에 대한 세부 정보를 포함하는 JSON 객체입니다.
    { 
      "error": "String",
      "headerID": "String",
      "rootLineIDs": [Array],
      "status": "String"
    }

    데이터 유형: 객체

    오류 commitInstance 메서드의 실패를 설명하는 오류 메시지입니다.

    데이터 유형: 문자열

    헤더ID commitInstance 메서드에서 만들거나 업데이트한 대상 엔터티 기록의 Sys_id입니다.

    데이터 유형: 문자열

    rootLineIDs commitInstance 메서드에 의해 삽입, 업데이트 또는 삭제된 대상 엔터티 기록의 Sys_ids입니다.

    데이터 형식: 문자열 배열

    상태 값이 "성공" 또는 "실패"인 상태 메시지입니다.

    데이터 유형: 문자열

    다음 예제에서는 각 LeadtoCashCore 메서드를 사용하여 원본-대상 엔터티의 세부 정보를 검색, 적용 및 커밋하는 방법을 보여 줍니다.

    //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));  
    //The returned JSON can be used for subsequent operations.

    출력:

    { 
      "status": "success", 
      "error": "", 
      "headerID": "cc9b3db665e73510f877d71ec56bf7ed", 
      "rootLineIDs": [ 
        "0c9b3db665e73510f877d71ec56bf7f1" 
      ] 
    }

    LeadtoCashCore - delta(객체 sourceJSON, 객체 dirtyJSON, 객체 additionalParams, 객체 컨텍스트)

    현금 엔터티로 리드의 소스 및 수정된 소스 JSON 객체를 비교하고 추가, 삭제 또는 수정과 같이 소스 JSON에 대한 변경 사항을 설명하는 JSON 객체를 반환합니다.

    주:
    LeadtoCashCore 스크립트 포함을 사용하려면 스크립트에서 delta()를 호출하기 전에 구현을 트리거하기 위해 유틸리티 메서드를 사용하여 LeadtoCashCore - getPrimitivesEPService(문자열 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

    컨텍스트 객체 옵션입니다. 매개변수를 context.isMultiSelect 사용하여 여러 인스턴스를 호출하는 옵션을 제공합니다.
    "context": [
    {
     "isMultiSelect": "Boolean"
      }, 
    ]
    context.isMultiSelect 부울 옵션입니다. 인스턴스를 작성하기 위해 여러 엔터티를 입력으로 전달할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 여러 엔터티를 입력으로 전달할 수 있습니다. 예일 경우 쉼표로 구분된 목록으로 여러 라인 항목을 전달할 수 있습니다.
    • false: 여러 엔터티를 입력으로 전달할 수 없습니다. API 스크립트에는 하나의 입력만 전달될 수 있습니다.

    기본값: false

    표 6. 반환
    유형 설명
    JSON 객체 sourceJSON과 dirtyJSON 간에 발생한 변경 사항과 함께 엔터티 기록의 상세 정보를 포함하는 객체입니다.

    데이터 유형: 객체

    { 
      "lineItems": [ 
        { 
          "table": "String", 
          "sys_id": {Object}, 
          "attributes": {Object}
          }, 
          "lineItems": [ 
            { 
              "table": "String", 
              "sys_id": {Object}, 
              "attributes": {Object} 
         ],
     "characteristics": [ 
            { 
              "table": "String", 
              "sys_id": {Object}, 
              "attributes": {Object}, 
                "characteristic": {Object}, 
                "characteristic_option": {Object}, 
                "sold_product": {Object}, 
                "action": {Object} 
              }, 
              "_action": "String" 
            } 
          ], 
     "_action": "String" 
        } 
      ] 
    } 
    _행동 소스 JSON 객체에 적용된 변경 작업입니다.

    가능한 값:

    • add: 소스 JSON에 정보가 추가되었습니다.
    • change: 소스 JSON에서 정보가 업데이트되었습니다.
    • disconnect: 소스 JSON에서 정보의 연결이 끊어졌습니다.
    • no-change: 소스 JSON이 변경되지 않았습니다.

    데이터 유형: 문자열

    특성 헤더 엔터티 기록의 특성입니다. 엔터티에 따라 다양한 필드를 포함할 수 있습니다.

    데이터 형식: 객체 배열

    "characteristics": [ 
            { 
              "table": "String", 
              "sys_id": {Object}, 
              "attributes": {Object}, 
                "characteristic": {Object}, 
                "characteristic_option": {Object}, 
                "sold_product": {Object}, 
                "action": {Object} 
              }, 
              "_action": "String" 
            } 
          ]
    특성.테이블 특성 기록의 테이블 이름입니다.

    데이터 유형: 문자열

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

    데이터 유형: 객체

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

    데이터 유형: 문자열

    특성.속성 헤더 기록 특성의 속성입니다. 예를 들어, 속성의 이름과 값입니다. 엔터티에 따라 다양한 필드를 포함할 수 있습니다.

    데이터 유형: 객체

    "attributes": { 
     "<attribute_name>": { 
     "value": "String"
    }
    특성.속성.<attribute_name> 특성과 연결된 속성의 이름입니다. 예를 들어, 속성의 이름과 값입니다. 엔터티에 따라 다양한 필드를 포함할 수 있습니다.

    데이터 유형: 객체

    "attributes": { 
     "<attribute_name>": { 
     "value": "String"
    }
    특성.속성.<attribute_name>.값 지정된 속성의 값입니다.

    데이터 유형: 문자열

    characteristics._action 헤더 엔터티 기록과 연결된 특성에 적용되는 작업입니다.

    가능한 값:

    • add: 특성에 정보가 추가되었습니다.
    • change: 특성에 대한 정보가 업데이트되었습니다.
    • disconnect: 정보에서 특성의 연결이 끊어졌습니다.
    • no-change: 특성이 변경되지 않았습니다.
    품목 엔터티의 라인 항목입니다. 예를 들어 주문 라인 항목 또는 견적 라인 항목이 있습니다.

    데이터 형식: 객체 배열

    "lineItems": [ 
                { 
                  "table": "String", 
                  "sys_id": {Object}, 
                  "attributes": {Object}
                  }, 
                  "lineItems": [Array], 
                  "characteristics": [Array], 
                  "_action": "String" 
                } 
              ], 
              "characteristics": [Array], 
              "_action": "String" 
            } 
          ], 
    lineItems._action 소스 JSON의 라인 항목에 적용된 변경 작업입니다.

    가능한 값:

    • add: 소스 JSON에 정보가 추가되었습니다.
    • change: 소스 JSON에서 정보가 업데이트되었습니다.
    • disconnect: 소스 JSON에서 정보의 연결이 끊어졌습니다.
    • no-change: 소스 JSON이 변경되지 않았습니다.
    lineItems.attributes 광고 항목의 속성입니다. 예를 들어, 속성의 이름과 값입니다. 엔터티에 따라 다양한 필드를 포함할 수 있습니다.

    데이터 유형: 객체

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

    데이터 유형: 객체

    "attributes": { 
      "name": {Object}
    lineitems.attributes.<attribute_name>.value 라인 항목 속성의 이름 값입니다.

    데이터 유형: 객체

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

    데이터 유형: 객체

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

    데이터 유형: 문자열

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

    데이터 형식: 개체 배열

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    lineitems.characteristics._action 라인 항목에 속한 특성 기록에 적용되는 작업입니다.

    가능한 값:

    • add: 특성에 정보가 추가되었습니다.
    • change: 특성에 대한 정보가 업데이트되었습니다.
    • disconnect: 정보에서 특성의 연결이 끊어졌습니다.
    • no-change: 특성이 변경되지 않았습니다.
    lineItems.characteristics.attributes 특성 기록과 연결된 속성에 대한 정보를 포함하는 하나 이상의 객체입니다. <속성 유형>은 특성과 연결된 기록 또는 기능에 따라 다른 값일 수 있습니다.

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

    데이터 유형: 객체

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

    데이터 유형: 객체

    "<field_name>": { 
                  "value": "String" 
                }
    lineitems.characteristics.attributes.<field_name>.value 엔터티의 특성 기록에 속하는 속성의 값입니다.

    데이터 유형: 문자열

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

    데이터 유형: 객체

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

    데이터 유형: 문자열

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

    데이터 유형: 문자열

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

    데이터 유형: 객체

    "lineItems": [  
        {  
          "attributes": {Object}
          "sys_id": {Object},
          "table": "String"
          } 
    ] 
    lineItems.sys_id 연결된 항목 기록의 sys_id 포함하는 객체입니다.

    데이터 유형: 객체

    "sys_id": {
      "value": "String"
    }
    lineItems.sys_id.value 연결된 항목 기록의 Sys_id 값입니다.

    데이터 유형: 문자열

    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(문자열 sourceToTargetConfigID, 객체 컨텍스트) 스크립팅된 확장점 PrimitiveUtil()을 먼저 호출해야 합니다. 각 흐름에 따라 서비스를 한 번만 받고 모든 LeadtoCashCore 메서드에 대해 동일한 서비스를 사용합니다.
    표 7. 매개변수
    이름 유형 설명
    소스JSON 객체 소스 엔터티의 상세 정보를 포함하는 JSON입니다.
    대상JSON 객체 대상 엔터티의 세부 정보를 포함하는 JSON입니다.
    additionalParams 객체 옵션입니다. 사용할 추가 매개변수입니다.
    additionalParams.is_future_state 부울 옵션입니다. 이를 사용하여 재구성 사용 사례를 지원합니다.
    허용되는 값:
    • true: 딕셔너리 필드 이름 대신 컨텍스트 변수 키를 제공합니다. 이렇게 하면 소스에서 대상으로 속성을 매핑하는 대신 대상 엔터티의 모든 속성을 제공할 수 있습니다.
    • false: 딕셔너리 필드 이름을 제공합니다.

    기본값: false

    컨텍스트 객체 옵션입니다. 매개변수를 context.isMultiSelect 사용하여 여러 인스턴스를 호출하는 옵션을 제공합니다.
    "context": [
    {
     "isMultiSelect": "Boolean"
      }, 
    ]
    context.isMultiSelect 부울 옵션입니다. 인스턴스를 작성하기 위해 여러 엔터티를 입력으로 전달할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 여러 엔터티를 입력으로 전달할 수 있습니다. 예일 경우 쉼표로 구분된 목록으로 여러 라인 항목을 전달할 수 있습니다.
    • false: 여러 엔터티를 입력으로 전달할 수 없습니다. API 스크립트에는 하나의 입력만 전달될 수 있습니다.

    기본값: false

    표 8. 반환
    유형 설명
    JSON 객체 소스에서 대상 엔터티로 발생하여 적용된 변경 사항: 각 객체, 헤더 라인, 하위 라인 및 현금으로 연결 엔터티의 특성 수준에서 JSON 객체입니다.

    데이터 유형: 객체

    { 
      "sys_id": "String", 
      "table": "String", 
      "_glide_action": "String", 
      "_source_object": {Object}, 
      "lineItems": [ 
        { 
          "sys_id": "String", 
          "table": "String", 
          "attributes": { 
            "account": {Object}, 
            "short_description": {Object} 
          }, 
          "_glide_action": "String", 
          "_source_object": { 
            "sys_id": "String", 
            "table": "String" 
          }, 
          "lineItems": [Array], 
          "characteristics": [ 
            { 
              "sys_id": "String", 
              "table": "String", 
              "attributes": {Object}
                "<attribue_name>": {Object}
                  "value": "String" 
              "_glide_action": "INSERT", 
              "_source_object": {Object} 
            } 
          ] 
        }, 
      "state": {Object}
       ]
    }
    glide_action 소스 JSON 및 대상 JSON 간의 항목 수준에서 발생한 변경을 나타냅니다.
    가능한 값:
    • DELETE: 소스와 대상 JSON 구조 사이에서 정보가 제거되었습니다.
    • INSERT: 소스와 대상 JSON 구조 사이에 정보가 추가되었습니다.
    • NO_CHANGE: 소스와 대상 JSON 구조 간에 변경 사항이 없습니다.
    • 업데이트 : 소스와 JSON 구조간에 정보가 수정되었습니다.
    품목 엔터티의 라인 항목입니다. 예를 들어 주문 라인 항목 또는 견적 라인 항목이 있습니다.

    데이터 형식: 객체 배열

    "lineItems": [ 
                { 
                  "table": "String", 
                  "sys_id": {Object}, 
                  "attributes": {Object}
                  }, 
                  "lineItems": [Array], 
                  "characteristics": [Array], 
                  "_action": "String" 
                } 
              ], 
              "characteristics": [Array], 
              "_action": "String" 
            } 
          ], 
    lineItems._glide_action 라인 항목에서 발생한 변경 작업입니다.
    가능한 _glide_action 값:
    • DELETE: 소스와 대상 JSON 구조 사이에서 정보가 제거되었습니다.
    • INSERT: 소스와 대상 JSON 구조 사이에 정보가 추가되었습니다.
    • NO_CHANGE: 소스와 대상 JSON 구조 간에 변경 사항이 없습니다.
    • 업데이트 : 소스와 JSON 구조간에 정보가 수정되었습니다.
    lineItems._source_object glide_action이 적용된 소스 엔터티 기록의 JSON 객체입니다. 이 개체는 엔터티마다 다를 수 있습니다.

    데이터 유형: 객체

    lineItems._state 개체의 상태를 나타내는 개체입니다.

    데이터 유형: 객체

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

    데이터 유형: 문자열

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

    데이터 유형: 객체

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

    데이터 유형: 객체

    "attributes": { 
      "name": {Object}
    lineitems.attributes.<attribute_name>.value 라인 항목 속성의 이름 값입니다.

    데이터 유형: 객체

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

    데이터 유형: 객체

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

    데이터 유형: 문자열

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

    데이터 유형: 문자열

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

    데이터 형식: 개체 배열

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    lineItems.characteristics.attributes 특성 기록과 연결된 속성에 대한 정보를 포함하는 하나 이상의 객체입니다. <속성 유형>은 특성과 연결된 기록 또는 기능에 따라 다른 값일 수 있습니다.

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

    데이터 유형: 객체

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

    데이터 유형: 문자열

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

    데이터 유형: 객체

    "<field_name>": { 
                  "value": "String" 
                }
    lineitems.characteristics.attributes.<field_name>.value 엔터티의 특성 기록에 속하는 속성의 값입니다.

    데이터 유형: 문자열

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

    데이터 유형: 객체

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

    데이터 유형: 문자열

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

    데이터 유형: 문자열

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

    데이터 유형: 객체

    "lineItems": [  
        {  
          "attributes": {Object}
          "sys_id": {Object},
          "table": "String"
          } 
    ] 
    lineItems.sys_id 연결된 항목 기록의 sys_id 포함하는 객체입니다.

    데이터 유형: 객체

    "sys_id": {
      "value": "String"
    }
    lineItems.sys_id.value 연결된 항목 기록의 Sys_id 값입니다.

    데이터 유형: 문자열

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

    데이터 유형: 문자열

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

    데이터 유형: 객체

    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"
    }
       ],
    }

    LeadtoCashCore - getPrimitivesEPService(문자열 sourceToTargetConfigID, 객체 컨텍스트)

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

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

    표 9. 매개변수
    이름 유형 설명
    sourceToTargetConfigID 문자열 소스-대상 매핑의 매핑 구성 ID입니다. 현금으로 연결 엔터티 매핑 [sn_l2c_core_entity_mapping] 테이블에 있습니다.
    컨텍스트 객체 옵션입니다. 속성 값을 표시하고 한 번에 둘 이상의 인스턴스를 호출하기 위한 추가 매개변수 옵션입니다.
    context.loadDisplayValue 부울 옵션입니다. 각 속성의 표시 값을 로드할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 속성의 표시 값 로드를 활성화합니다.
    • false: 속성의 표시 값 로드를 활성화하지 않습니다.

    기본값: false

    context.isMultiSelect 부울 옵션입니다. 인스턴스를 작성하기 위해 여러 엔터티를 입력으로 전달할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 여러 엔터티를 입력으로 전달할 수 있습니다. 예일 경우 쉼표로 구분된 목록으로 여러 라인 항목을 전달할 수 있습니다.
    • false: 여러 엔터티를 입력으로 전달할 수 없습니다. API 스크립트에는 하나의 입력만 전달될 수 있습니다.

    기본값: false

    표 10. 반환
    유형 설명
    없음

    다음 예제에서는 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)