SegmentHandler API - Scoped

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 2 minutes de lecture
  • 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).
    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.

    SegmentHandler - SegmentHandler(String operationId)

    Instantiates a new SegmentHandler object bound to an IDoc operation.

    Tableau 1. Parameters
    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.

    Remarque :
    The segment must be defined in the operation.
    Tableau 2. Parameters
    Name Type Description
    segmentName String Name of the top-level segment.
    values Object Optional implementation in place of the addField() method.
    Tableau 3. Returns
    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.

    Tableau 4. Parameters
    Name Type Description
    None
    Tableau 5. Returns
    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"
              }]
            }]
          }]
      }
    }