SegmentHandler API - Scoped
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
sn_erp_integration namespace
- Owns the root data object and the IDoc segment schema.
- Creates top-level segments (e.g.
E1EDK01,E1EDP01).
See also: sn_erp_integration API - Scoped, Global.
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 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"
}]
}]
}]
}
}
SegmentHandler - addSegment(String segmentName, Object values)
Adds a predefined top-level segment of type segmentName to the payload.
| 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 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"
}]
}]
}]
}
}
SegmentHandler - getData()
Gets the built segment payload.
| Name | Type | Description |
|---|---|---|
| None |
| Type | Description |
|---|---|
| Object | The payload object containing all top-level and nested segments. Exact structure depends on the configured schema, but the pattern—arrays of segments with nested arrays—is the same. |
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"
}]
}]
}]
}
}