SegmentHandler API :スコープ付き

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:6分
  • 特定の操作の IDoc ペイロードをビルドするためのチェーン可能な API を提供するスクリプトインクルード。

    このスクリプトインクルードは、 ERP 向けゼロコピーコネクタ (com.sn_erp_integration) ストアアプリケーションを必要とし、sn_erp_integration 名前空間内で提供されます。詳細については、「Zero Copy Connector for ERP」を参照してください。

    必要なロール:sn_erp_integration.erp_user

    SegmentHandler クラス:
    • ルートデータオブジェクトと IDoc セグメントスキーマを所有します。
    • トップレベルのセグメントを作成できます。たとえば、 E1EDK01E1EDP01 などです。
    ヘッダーやアイテムなど、セグメントの下位レベルのインスタンスを処理する方法については、「 SegmentHandle API :スコープ対象」を参照してください。

    sn_erp_integration API - スコープ対象、グローバル」も参照してください。

    SegmentHandler:SegmentHandler(文字列 operationId)

    IDoc 操作にバインドされた新しい SegmentHandler オブジェクトをインスタンス化します。

    表 : 1. パラメーター
    名前 タイプ 説明
    operationId 文字列 構成された ERP モデル操作のsys_id。

    テーブル:ERP モデル操作 [sn_erp_integration_model_operation]

    次の例は、ネストされたセグメントを持つヘッダーとアイテムを 1 つの 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"
              }]
            }]
          }]
      }
    }

    SegmentHandler:addSegment(文字列 segmentName, オブジェクト値)

    segmentName タイプの事前定義されたトップレベルセグメントをペイロードに追加します。

    注:
    セグメントは操作で定義する必要があります。
    表 : 2. パラメーター
    名前 タイプ 説明
    セグメント名 文字列 トップレベルセグメントの名前。
    オブジェクト addField() メソッドの代わりに使用するオプションの実装。
    表 : 3. 返される内容
    タイプ 説明
    オブジェクト 新しいセグメントインスタンスのセグメントハンドル

    次の例は、ネストされたセグメントを持つヘッダーとアイテムを 1 つの 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"
              }]
            }]
          }]
      }
    }

    SegmentHandler:getData()

    構築されたセグメントペイロードを取得します。

    表 : 4. パラメーター
    名前 タイプ 説明
    なし
    表 : 5. 返される内容
    タイプ 説明
    オブジェクト セグメントデータを含むオブジェクト。
    データ すべてのトップレベルセグメントとネストされたセグメントを含むペイロードオブジェクトのラッパー。

    { データ:<payloadObject> }

    正確な構造は構成されたスキーマによって異なりますが、パターン (ネストされたアレイを持つセグメントのアレイ) は同じです。

    データタイプ: オブジェクト

    次の例は、ネストされたセグメントを持つヘッダーとアイテムを 1 つの 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"
              }]
            }]
          }]
      }
    }