SegmentHandler API - 범위 지정됨

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 6분
  • 특정 운영에 대한 IDoc 페이로드를 빌드하기 위한 체인 가능한 API를 제공하는 스크립트 포함.

    이 스크립트 포함에는 (com.sn_erp_integration) 스토어 애플리케이션이 필요 ERP용 제로 카피 커넥터 하며 sn_erp_integration 네임스페이스 내에서 제공됩니다. 자세한 내용은 Zero Copy Connector for ERP 문서를 참조하십시오.

    필요한 역할: sn_erp_integration.erp_user

    SegmentHandler 클래스:
    • 루트 데이터 객체와 IDoc 세그먼트 스키마를 소유합니다.
    • 최상위 세그먼트를 생성할 수 있습니다. 예를 들어 E1EDK01, E1EDP01 등이 있습니다.
    헤더 또는 항목과 같은 세그먼트의 하위 수준 인스턴스를 처리하려면 다음 문서를 SegmentHandle API - 범위 지정됨참조하십시오.

    sn_erp_integration API - 범위, 전역 또한 참조하십시오.

    SegmentHandler - SegmentHandler(문자열 operationId)

    IDoc 작업에 바인딩된 새 SegmentHandler 객체를 인스턴스화합니다.

    표 1. 매개변수
    이름 유형 설명
    operationId 문자열 구성된 ERP 모델 운영의 sys_id입니다.

    테이블: ERP 모델 운영 [sn_erp_integration_model_operation]

    다음 예제에서는 하나의 Fluent 체인에 중첩된 세그먼트가 있는 헤더와 항목을 빌드하는 방법을 보여줍니다. 구조는 구성된 스키마에 따라 달라집니다. 스키마 패턴은 배열이 중첩된 세그먼트의 배열입니다.

    let obj = new sn_erp_integration.SegmentHandler('460d3ff2ff5de210d3a2fffffffffff8');
    
    obj.addSegment("E1EDK01")
        .addField("BELNR", "1000")
        .addField("CURCY", "USD")
        .endSegment()
        .addSegment("E1EDP01")
        .addField("MENGE", "50")
        .addField("POSEX", "0010")
        .addSegment("E1EDP20")
        .addField("AMENG", "10")
        .addField("WMENG", "5")
        .addSegment("E1EDP19")
        .addField("IDTNR", "MAT01")
        .endSegment()
        .endSegment()
        .endSegment();
    
    gs.info(JSON.stringify(obj.getData(), null, 2));

    출력:

    {
      "data": {
        "E1EDK01": [{
          "BELNR": "1000",
          "CURCY": "USD"
        }],
          "E1EDP01": [{
            "MENGE": "50",
            "POSEX": "0010",
            "E1EDP20": [{
              "AMENG": "10",
              "WMENG": "5",
              "E1EDP19": [{
                "IDTNR": "MAT01"
              }]
            }]
          }]
      }
    }

    SegmentHandler - addSegment(문자열 segmentName, 객체 값)

    segmentName 유형의 미리 정의된 최상위 세그먼트를 페이로드에 추가합니다.

    주:
    작업에 세그먼트를 정의해야 합니다.
    표 2. 매개변수
    이름 유형 설명
    세그먼트 이름 문자열 최상위 세그먼트의 이름입니다.
    객체 addField() 메서드 대신 선택적 구현입니다.
    표 3. 반환
    유형 설명
    객체 새 세그먼트 인스턴스에 대한 SegmentHandle입니다.

    다음 예제에서는 하나의 Fluent 체인에 중첩된 세그먼트가 있는 헤더와 항목을 빌드하는 방법을 보여줍니다. 구조는 구성된 스키마에 따라 달라집니다. 스키마 패턴은 배열이 중첩된 세그먼트의 배열입니다.

    let obj = new sn_erp_integration.SegmentHandler('460d3ff2ff5de210d3a2fffffffffff8');
    
    obj.addSegment("E1EDK01")
        .addField("BELNR", "1000")
        .addField("CURCY", "USD")
        .endSegment()
        .addSegment("E1EDP01")
        .addField("MENGE", "50")
        .addField("POSEX", "0010")
        .addSegment("E1EDP20")
        .addField("AMENG", "10")
        .addField("WMENG", "5")
        .addSegment("E1EDP19")
        .addField("IDTNR", "MAT01")
        .endSegment()
        .endSegment()
        .endSegment();
    
    gs.info(JSON.stringify(obj.getData(), null, 2));

    출력:

    {
      "data": {
        "E1EDK01": [{
          "BELNR": "1000",
          "CURCY": "USD"
        }],
          "E1EDP01": [{
            "MENGE": "50",
            "POSEX": "0010",
            "E1EDP20": [{
              "AMENG": "10",
              "WMENG": "5",
              "E1EDP19": [{
                "IDTNR": "MAT01"
              }]
            }]
          }]
      }
    }

    SegmentHandler - getData()

    빌드된 세그먼트 페이로드를 가져옵니다.

    표 4. 매개변수
    이름 유형 설명
    안 함
    표 5. 반환
    유형 설명
    객체 세그먼트 데이터를 포함하는 객체입니다.
    데이터 모든 최상위 및 중첩된 세그먼트를 포함하는 페이로드 객체의 래퍼입니다.

    { data: <payloadObject> }

    정확한 구조는 구성된 스키마에 따라 다르지만 패턴(중첩된 배열이 있는 세그먼트의 배열)은 동일합니다.

    데이터 유형: 객체

    다음 예제에서는 하나의 Fluent 체인에 중첩된 세그먼트가 있는 헤더와 항목을 빌드하는 방법을 보여줍니다. 구조는 구성된 스키마에 따라 달라집니다. 스키마 패턴은 배열이 중첩된 세그먼트의 배열입니다.

    let obj = new sn_erp_integration.SegmentHandler('460d3ff2ff5de210d3a2fffffffffff8');
    
    obj.addSegment("E1EDK01")
        .addField("BELNR", "1000")
        .addField("CURCY", "USD")
        .endSegment()
        .addSegment("E1EDP01")
        .addField("MENGE", "50")
        .addField("POSEX", "0010")
        .addSegment("E1EDP20")
        .addField("AMENG", "10")
        .addField("WMENG", "5")
        .addSegment("E1EDP19")
        .addField("IDTNR", "MAT01")
        .endSegment()
        .endSegment()
        .endSegment();
    
    gs.info(JSON.stringify(obj.getData(), null, 2));

    출력:

    {
      "data": {
        "E1EDK01": [{
          "BELNR": "1000",
          "CURCY": "USD"
        }],
          "E1EDP01": [{
            "MENGE": "50",
            "POSEX": "0010",
            "E1EDP20": [{
              "AMENG": "10",
              "WMENG": "5",
              "E1EDP19": [{
                "IDTNR": "MAT01"
              }]
            }]
          }]
      }
    }