284.6. IDoc のメッセージ本文
IDoc メッセージタイプ リンクのコピーリンクがクリップボードにコピーされました!
IDoc Camel SAP エンドポイントの 1 つを使用する場合、メッセージ本文のタイプは、使用している特定のエンドポイントによって異なります。
sap-idoc-destination
エンドポイントまたは sap-qidoc-destination
エンドポイントの場合、メッセージ本文は Document
タイプです。
org.fusesource.camel.component.sap.model.idoc.Document
org.fusesource.camel.component.sap.model.idoc.Document
sap-idoclist-destination
エンドポイント、sap-qidoclist-destination
エンドポイント、または sap-idoclist-server
エンドポイントの場合、メッセージボディーは DocumentList
タイプです。
org.fusesource.camel.component.sap.model.idoc.DocumentList
org.fusesource.camel.component.sap.model.idoc.DocumentList
IDoc 文書モデル リンクのコピーリンクがクリップボードにコピーされました!
Camel SAP コンポーネントの場合、IDoc ドキュメントは、基礎となる SAP IDoc API のラッパー API を提供する Eclipse Modeling Framework (EMF) を使用してモデル化されます。このモデルで最も重要なタイプは次のとおりです。
org.fusesource.camel.component.sap.model.idoc.Document org.fusesource.camel.component.sap.model.idoc.Segment
org.fusesource.camel.component.sap.model.idoc.Document
org.fusesource.camel.component.sap.model.idoc.Segment
Document
タイプは、IDoc ドキュメントインスタンスを表します。概説すると、Document
インターフェイスは次のメソッドを公開します。
次の種類のメソッドが Document
インターフェイスによって公開されます。
- 制御レコードにアクセスする方法
- ほとんどのメソッドは、IDoc 制御レコードのフィールド値にアクセスまたは変更するためのものです。これらのメソッドは、AttributeName、AttributeName の形式です。ここで、AttributeName はフィールド値の名前です (を参照してください)。表284.2「IDoc ドキュメントの属性」)。
- ドキュメントコンテンツへのアクセス方法
getRootSegment
メソッドは、ドキュメントコンテンツ (IDoc データレコード) へのアクセスを提供し、コンテンツをSegment
オブジェクトとして返します。各Segment
オブジェクトには任意の数の子セグメントを含めることができ、セグメントは任意の程度にネストできます。ただし、セグメント階層の正確なレイアウトは、文書の特定の IDoc タイプ によって定義されることに注意してください。したがって、セグメント階層を作成 (または読み取り) するときは、IDoc タイプによって定義された正確な構造に従う必要があります。
Segment
タイプは、IDoc ドキュメントのデータレコードにアクセスするために使用されます。セグメントは、ドキュメントの IDoc タイプによって定義された構造に従って配置されます。概説すると、Segment
インターフェイスは次のメソッドを公開します。
getChildren (String segmentType)
メソッドは、新しい (ネストされた) 子をセグメントに追加する場合に特に便利です。次のように定義されているタイプ SegmentList
のオブジェクトを返します。
したがって、E1SCU_CRE
タイプのデータレコードを作成するには、次のような Java コードを使用できます。
Segment rootSegment = document.getRootSegment(); Segment E1SCU_CRE_Segment = rootSegment.getChildren("E1SCU_CRE").add();
Segment rootSegment = document.getRootSegment();
Segment E1SCU_CRE_Segment = rootSegment.getChildren("E1SCU_CRE").add();
Document インスタンスの作成例 リンクのコピーリンクがクリップボードにコピーされました!
例えば、例284.1「Java での IDoc ドキュメントの作成」 Java で IDoc モデル API を使用して、IDoc タイプ FLCUSTOMER_CREATEFROMDATA01
で IDoc ドキュメントを作成する方法を示します。
例284.1 Java での IDoc ドキュメントの作成
ドキュメント属性 リンクのコピーリンクがクリップボードにコピーされました!
表284.2「IDoc ドキュメントの属性」 Document
オブジェクトに設定できる制御レコード属性を示します。
属性 | 長さ | SAP フィールド | 説明 |
---|---|---|---|
| 70 |
| EDI アーカイブキー |
| 3 |
| クライアント |
| 8 |
| IDoc が作成された日付 |
| 6 |
| IDoc が作成された時間 |
| 1 |
| 方向 |
| 14 |
| メッセージ参照 |
| 14 |
| メッセージグループへの参照 |
| 6 |
| EDI メッセージタイプ |
| 1 |
| EDI 規格 |
| 6 |
| EDI 規格のバージョン |
| 14 |
| エクスチェンジファイルへの参照 |
| 8 |
| IDoc タイプ |
| 16 |
| IDoc 番号 |
| 4 |
| IDoc の SAP リリース |
| 30 |
| 基本 IDoc タイプの名前 |
| 30 |
| 拡張タイプの名前 |
| 3 |
| 論理メッセージコード |
| 3 |
| 論理メッセージ機能 |
| 30 |
| 論理メッセージタイプ |
| 1 |
| 出力モード |
| 10 |
| 受信者アドレス (SADR) |
| 70 |
| 受信者の論理アドレス |
| 2 |
| 受信者のパートナー機能 |
| 10 |
| 受信機のパートナー番号 |
| 2 |
| 受信者のパートナータイプ |
| 10 |
| 受信側ポート (SAP システム、EDI サブシステム) |
|
| 送信者アドレス (SADR) | |
| 70 |
| 送信者の論理アドレス |
| 2 |
| 差出人のパートナー機能 |
| 10 |
| 送信者のパートナー番号 |
| 2 |
| 送信者のパートナータイプ |
| 10 |
| 送信側ポート (SAP システム、EDI サブシステム) |
| 20 |
| EDI/ALE: シリアル化フィールド |
| 2 |
| IDoc のステータス |
| 1 |
| テストフラグ |
Java でドキュメント属性を設定する リンクのコピーリンクがクリップボードにコピーされました!
Java で制御レコード属性を設定する場合 (から表284.2「IDoc ドキュメントの属性」)、Java Bean プロパティーの通常の規則に従います。つまり、属性値を取得および設定するために、getName
および setName
メソッドを介して name
属性にアクセスできます。たとえば、iDocType
、iDocTypeExtension
、および messageType
属性は、Document
オブジェクトで次のように設定できます。
// Java document.setIDocType("FLCUSTOMER_CREATEFROMDATA01"); document.setIDocTypeExtension(""); document.setMessageType("FLCUSTOMER_CREATEFROMDATA");
// Java
document.setIDocType("FLCUSTOMER_CREATEFROMDATA01");
document.setIDocTypeExtension("");
document.setMessageType("FLCUSTOMER_CREATEFROMDATA");
XML でドキュメント属性を設定する リンクのコピーリンクがクリップボードにコピーされました!
XML で制御レコード属性を設定する場合、idoc:Document
要素に属性を設定する必要があります。たとえば、iDocType
、iDocTypeExtension
および messageType
属性は次のように設定できます。