SegmentHandler API :スコープ付き
特定の操作の IDoc ペイロードをビルドするためのチェーン可能な API を提供するスクリプトインクルード。
このスクリプトインクルードは、 ERP 向けゼロコピーコネクタ (com.sn_erp_integration) ストアアプリケーションを必要とし、sn_erp_integration 名前空間内で提供されます。詳細については、「Zero Copy Connector for ERP」を参照してください。
必要なロール:sn_erp_integration.erp_user
- ルートデータオブジェクトと IDoc セグメントスキーマを所有します。
- トップレベルのセグメントを作成できます。たとえば、
E1EDK01、E1EDP01などです。
「sn_erp_integration API - スコープ対象、グローバル」も参照してください。
SegmentHandler:SegmentHandler(文字列 operationId)
IDoc 操作にバインドされた新しい SegmentHandler オブジェクトをインスタンス化します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 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 タイプの事前定義されたトップレベルセグメントをペイロードに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| セグメント名 | 文字列 | トップレベルセグメントの名前。 |
| 値 | オブジェクト | addField() メソッドの代わりに使用するオプションの実装。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 新しいセグメントインスタンスのセグメントハンドル。 |
次の例は、ネストされたセグメントを持つヘッダーとアイテムを 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()
構築されたセグメントペイロードを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | セグメントデータを含むオブジェクト。 |
| データ | すべてのトップレベルセグメントとネストされたセグメントを含むペイロードオブジェクトのラッパー。
正確な構造は構成されたスキーマによって異なりますが、パターン (ネストされたアレイを持つセグメントのアレイ) は同じです。 データタイプ: オブジェクト |
次の例は、ネストされたセグメントを持つヘッダーとアイテムを 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"
}]
}]
}]
}
}