SegmentHandler API - Scoped

concept brazil Updated Sep 10, 2026 3 min read SegmentHandlerAPIScoped.md
Raw file servicenow.com

Script include providing a chainable API for building an IDoc payload for a specific operation.

This 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.

Role required: sn_erp_integration.erp_user

The SegmentHandler class:

  • Owns the root data object and the IDoc segment schema.
  • Enables creating top-level segments. For example, E1EDK01, E1EDP01, and so on.

For handling lower-level instances of a segment, such as a header or item, refer to SegmentHandle API - Scoped.

See also sn_erp_integration API - Scoped, Global.

Parent Topic:Server API reference

SegmentHandler - SegmentHandler(String operationId)

Instantiates a new SegmentHandler object bound to an IDoc operation.

Name

Type

Description

operationId

String

The sys_id of a configured ERP model operation.Table: ERP model operation [sn_erp_integration_model_operation]

The following example shows how to build a header and item with nested segments in one fluent chain. The structure depends on the configured schema. The schema pattern is arrays of segments with nested arrays.
JavaScript
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:

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

SegmentHandler - addSegment(String segmentName, Object values)

Adds a predefined top-level segment of the type segmentName to the payload.

Note: The segment must be defined in the operation.

Name Type Description
segmentName String Name of the top-level segment.
values Object Optional implementation in place of the addField() method.
Type Description
Object SegmentHandle for the new segment instance.

The following example shows how to build a header and item with nested segments in one fluent chain. The structure depends on the configured schema. The schema pattern is arrays of segments with nested arrays.

JavaScript
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:

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

SegmentHandler - getData()

Gets the built segment payload.

Name Type Description
None

Type

Description

Object

Object containing segment data.

data

Wrapper for the payload object containing all top-level and nested segments.{ data: <payloadObject> }

The exact structure depends on the configured schema, but the pattern (arrays of segments with nested arrays) is the same.

Data type: Object

The following example shows how to build a header and item with nested segments in one fluent chain. The structure depends on the configured schema. The schema pattern is arrays of segments with nested arrays.
JavaScript
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:

JSON
{  "data": {    "E1EDK01": [{      "BELNR": "1000",      "CURCY": "USD"    }],      "E1EDP01": [{        "MENGE": "50",        "POSEX": "0010",        "E1EDP20": [{          "AMENG": "10",          "WMENG": "5",          "E1EDP19": [{            "IDTNR": "MAT01"          }]        }]      }]  }}
Search documentation
Search document titles and file paths on the brazil branch