---
sourceDocument: 호주 API 참조
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/api-reference

 Release :

    - australia

ft:locale :

    - ko-KR

ft:publication_title :

    - 호주 API 참조

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# SegmentHandle API - 범위 지정됨

# SegmentHandle API - 범위 지정됨 {#ariaid-title1}

* 릴리스 버전: Australia
* 
* 업데이트 날짜 2026년 03월 12일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 7분

헤더 또는 항목과 같은 세그먼트의 단일 인스턴스를 처리하는 방법입니다. 이 클래스는 SegmentHandler 스크립트 포함에 정의되어 있습니다.

[SegmentHandler](https://servicenow-prod.fluidtopics.net/xctpIRJ_5dAHm7GqIk6iew#SegmentHandlerAPIScoped "특정 운영에 대한 IDoc 페이로드를 빌드하기 위한 체인 가능한 API를 제공하는 스크립트 포함.") 스크립트 포함에는 (com.sn_erp_integration) 스토어 애플리케이션이 필요 ERP용 제로 카피 커넥터 하며 sn_erp_integration 네임스페이스 내에서 제공됩니다. 자세한 내용은 [Zero Copy Connector for ERP](https://www.servicenow.com/docs/access?context=erp-integration-overview&version=australia&pubname=australia-integrate-applications&ft:locale=en-US) 문서를 참조하십시오.

필요한 역할: sn_erp_integration.erp_user  
다음 작업에 이 클래스의 메서드를 사용합니다.

* 해당 특정 세그먼트 인스턴스에 필드를 추가합니다.
* 인스턴스 아래에 중첩된/하위 세그먼트를 추가합니다.
* `endSegment()` 또는 `root()` 메서드를 사용하여 상위 또는 루트에 다시 체인백합니다.
{#SegmentHandleAPIScoped__ul_plx_wjk_c3c}

## SegmentHandle - addField(String fieldName, String value) {#ariaid-title2}

현재 세그먼트 인스턴스의 미리 정의된 필드를 페이로드에 추가합니다.
{#SegmentHandle-addField_S_S__table_qkt_53x_3hc__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| fieldName | 문자열 | 세그먼트에 추가할 필드의 이름입니다. |
| 값 | 문자열 | 세그먼트에 추가할 필드의 값입니다. |
[표 1. 매개변수]

{#SegmentHandle-addField_S_S__table_qkt_53x_3hc} {#SegmentHandle-addField_S_S__table_rkt_53x_3hc__entry__2}

| 유형 | 설명 |
|-|-|
| 객체 | 체인을 위한 현재 SegmentHandle 객체입니다. |
[표 2. 반환]

{#SegmentHandle-addField_S_S__table_rkt_53x_3hc}  
다음 예는 세그먼트 페이로드를 생성하는 방법을 보여줍니다. 특정 세그먼트에 대한 참조를 유지하려는 경우 명시적 변수를 사용합니다.

* 여러 obj.addSegment("E1EDK01") 호출은 여러 헤더 세그먼트를 생성합니다.
* 중첩된 세그먼트는 올바른 상위 핸들(p01, p20 등)에서 만들어집니다.
* k01_1, k01_2, p01과 같은 핸들은 나중에 다시 사용하여 필드나 하위 항목을 더 추가할 수 있습니다.
{#SegmentHandle-addField_S_S__ul_y5z_y4m_c3c}

    var obj = new SegmentHandler('460d3ff2ff5de210d3a2fffffffffff8');

    // Create first E1EDK01
    let k01_1 = obj.addSegment("E1EDK01")
        .addField("BELNR", "1000")
        .addField("CURCY", "USD");

    // Create another E1EDK01 
    let k01_2 = obj.addSegment("E1EDK01")
        .addField("BELNR", "2000")
        .addField("CURCY", "EUR");

    // Create E1EDP01 with nested segments
    let p01 = obj.addSegment("E1EDP01")
        .addField("MENGE", "50")
        .addField("POSEX", "0010");

    let p20 = p01.addSegment("E1EDP20")
        .addField("AMENG", "10")
        .addField("WMENG", "5");

    p20.addSegment("E1EDP19")
        .addField("IDTNR", "MAT01");

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

## SegmentHandle - addSegment(문자열 segmentName, 객체 값) {#ariaid-title3}

미리 정의된 중첩된 하위 세그먼트를 페이로드에 추가합니다.
{#SegmentHandle-addSegment_S_O__table_qkt_53x_3hc__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 세그먼트 이름 | 문자열 | 현재 세그먼트 내에 중첩된 세그먼트의 이름입니다. |
| 값 | 객체 | addField() 메서드 대신 선택적 구현입니다. |
[표 3. 매개변수]

{#SegmentHandle-addSegment_S_O__table_qkt_53x_3hc} {#SegmentHandle-addSegment_S_O__table_dbp_4y2_c3c__entry__2}

| 유형 | 설명 |
|-|-|
| 객체 | 하위 세그먼트에 대한 새 SegmentHandle 을 반환합니다. |
[표 4. 반환]

{#SegmentHandle-addSegment_S_O__table_dbp_4y2_c3c}  
다음 예는 세그먼트 페이로드를 생성하는 방법을 보여줍니다. 특정 세그먼트에 대한 참조를 유지하려는 경우 명시적 변수를 사용합니다.

* 여러 obj.addSegment("E1EDK01") 호출은 여러 헤더 세그먼트를 생성합니다.
* 중첩된 세그먼트는 올바른 상위 핸들(p01, p20 등)에서 만들어집니다.
* k01_1, k01_2, p01과 같은 핸들은 나중에 다시 사용하여 필드나 하위 항목을 더 추가할 수 있습니다.
{#SegmentHandle-addSegment_S_O__ul_y5z_y4m_c3c}

    var obj = new SegmentHandler('460d3ff2ff5de210d3a2fffffffffff8');

    // Create first E1EDK01
    let k01_1 = obj.addSegment("E1EDK01")
        .addField("BELNR", "1000")
        .addField("CURCY", "USD");

    // Create another E1EDK01 
    let k01_2 = obj.addSegment("E1EDK01")
        .addField("BELNR", "2000")
        .addField("CURCY", "EUR");

    // Create E1EDP01 with nested segments
    let p01 = obj.addSegment("E1EDP01")
        .addField("MENGE", "50")
        .addField("POSEX", "0010");

    let p20 = p01.addSegment("E1EDP20")
        .addField("AMENG", "10")
        .addField("WMENG", "5");

    p20.addSegment("E1EDP19")
        .addField("IDTNR", "MAT01");

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

## SegmentHandle - endSegment() {#ariaid-title4}

스키마에서 한 수준 위로 이동합니다.
{#SegmentHandle-endSegment__table_qkt_53x_3hc__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 5. 매개변수]

{#SegmentHandle-endSegment__table_qkt_53x_3hc} {#SegmentHandle-endSegment__table_rkt_53x_3hc__entry__2}

| 유형 | 설명 |
|-|-|
| 객체 | 상위 핸들 또는 루트 핸들러입니다. * 하위 세그먼트에서 상위 SegmentHandle 객체를 반환합니다. * 최상위 세그먼트에서 상위 SegmentHandler 객체를 반환합니다. {#SegmentHandle-endSegment__ul_jgb_2qm_c3c}root() 메서드를 사용하여 루트 SegmentHandler 개체를 반환합니다. |
[표 6. 반환]

{#SegmentHandle-endSegment__table_rkt_53x_3hc}  
다음 예제에서는 하나의 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"
              }]
            }]
          }]
      }
    }

## 세그먼트 핸들 - root() {#ariaid-title5}

중첩 깊이에 관계없이 루트 SegmentHandler 객체를 가져옵니다.
{#SegmentHandle-root__table_qkt_53x_3hc__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 7. 매개변수]

{#SegmentHandle-root__table_qkt_53x_3hc} {#SegmentHandle-root__table_rkt_53x_3hc__entry__2}

| 유형 | 설명 |
|-|-|
| 객체 | SegmentHandler 루트 수준에서. |
[표 8. 반환]

{#SegmentHandle-root__table_rkt_53x_3hc}  
다음 예제에서는 스키마의 수준 사이를 이동하는 방법을 보여줍니다.

    let p19 = p20.addSegment("E1EDP19").addField("IDTNR", "MAT01");
    p19.endSegment()     // back to E1EDP20
        .endSegment()    // back to E1EDP01
        .root()          // back to SegmentHandler
        .addSegment("E1EDK01").addField("BELNR", "3000");


