---
sourceDocument: Australia API Reference
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/de-DE/api-reference

 Release :

    - australia

ft:locale :

    - de-DE

ft:publication_title :

    - Australia API Reference

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# SegmentHandle API - Scoped

# SegmentHandle API - Scoped {#ariaid-title1}

* Freigeben Version: Australia
* 
* Aktualisiert 12. März 2026
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 Minuten Lesedauer

Methods provided by the SegmentHandler script include for handling a single instance of a segment, such as a header or item.

The [SegmentHandler](https://servicenow-prod.fluidtopics.net/2NLqvmfdLtIwvpZP6mRn1g#SegmentHandlerAPIScoped "Script include providing a chainable API for building an IDoc payload for a specific operation.") script include requires the Zero Copy Connector for ERP (com.sn_erp_integration) store application and is provided within the sn_erp_integration namespace. For more information, refer to [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).

Role required: sn_erp_integration.erp_user  
* Add fields to that specific segment instance.
* Add nested/child segments under the instance.
* Chain back to parent or root using the `endSegment()` or `root()` methodw.
{#SegmentHandleAPIScoped__ul_plx_wjk_c3c}

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

Adds a predefined field on the current segment instance to the payload.
{#SegmentHandle-addField_S_S__table_qkt_53x_3hc__entry__3}

| Name | Type | Description |
|-|-|-|
| fieldName | String | The name of the field to be added to the segment. |
| value | String | The value of the field to be added to the segment. |
[Tabelle : 1. Parameters]

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

| Type | Description |
|-|-|
| Object | Current SegmentHandle object for chaining. |
[Tabelle : 2. Returns]

{#SegmentHandle-addField_S_S__table_rkt_53x_3hc}  
The following example shows how to create a segment payload. Use explicit variables when you want to keep references to specific segments.

* Multiple obj.addSegment("E1EDK01") calls generate multiple header segments.
* Nested segments are created from the correct parent handle (p01, p20, etc.).
* Handles like k01_1, k01_2, p01 can be reused later to add more fields or children.
{#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));

Output:

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

## SegmentHandle - addSegment(String segmentName, Object values) {#ariaid-title3}

Adds a predefined nested child segment to the payload.
{#SegmentHandle-addSegment_S_O__table_qkt_53x_3hc__entry__3}

| Name | Type | Description |
|-|-|-|
| segmentName | String | Name of a segment nested within the current segment. |
| values | Object | Optional implementation in place of the addField() method. |
[Tabelle : 3. Parameters]

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

| Type | Description |
|-|-|
| Object | Returns this SegmentHandle object for chaining. |
[Tabelle : 4. Returns]

{#SegmentHandle-addSegment_S_O__table_dbp_4y2_c3c}  
The following example shows how to create a segment payload. Use explicit variables when you want to keep references to specific segments.

* Multiple obj.addSegment("E1EDK01") calls generate multiple header segments.
* Nested segments are created from the correct parent handle (p01, p20, etc.).
* Handles like k01_1, k01_2, p01 can be reused later to add more fields or children.
{#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));

Output:

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

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

Moves up one level in a schema.
{#SegmentHandle-endSegment__table_qkt_53x_3hc__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Tabelle : 5. Parameters]

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

| Type | Description |
|-|-|
| Object | Parent handle or root handler. * From a child segment, returns the parent SegmentHandle object. * From the top-level segment, returns the parent SegmentHandler object. {#SegmentHandle-endSegment__ul_jgb_2qm_c3c}Use the root() method to return the root SegmentHandler object. |
[Tabelle : 6. Returns]

{#SegmentHandle-endSegment__table_rkt_53x_3hc}  
The following example shows Build a header and item with nested segments in one fluent chain. The structure depends on the configured schema, but the pattern---arrays of segments with nested arrays---is the same.

    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));

Output:

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

## SegmentHandle - root() {#ariaid-title5}

Gets the root SegmentHandler object, regardless of nesting depth.
{#SegmentHandle-root__table_qkt_53x_3hc__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Tabelle : 7. Parameters]

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

| Type | Description |
|-|-|
| Object | SegmentHandler at the root level. |
[Tabelle : 8. Returns]

{#SegmentHandle-root__table_rkt_53x_3hc}  
The following example shows how to move between levels in a schema.

    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");


