SAP ABAPにおけるIDOCチュートリアル:ステップバイステップガイド
⚡ スマートサマリー
SAP IDoc(中間文書)は、ビジネス情報をやり取りするための標準化されたデータコンテナです。 SAP と非SAP ALEおよびEDIを介したシステムについて説明します。このチュートリアルでは、その定義、構造、種類、テーブル、パートナープロファイル、ポート、およびエンドツーエンドのアウトバウンドおよびインバウンドプロセスについて説明します。

IDocとは何ですか?
IDocは 単なるデータコンテナ データの構文とセマンティクスを理解できる XNUMX つのプロセス間で情報を交換するために使用されます。
言い換えれば、IDocは、特定のフォーマットを持つデータファイルのようなもので、そのデータを解釈する方法を知っている2つのシステム間で交換される。
IDocは「中間文書"
実行すると 外国行きの ALEまたはEDIプロセスでは、IDocが作成されます。 SAP システムIDocはデータベースに保存され、すべてのIDocには 一意の番号 クライアント内で。
他社とのちがい
- IDocは 送信システムと受信システムから独立した (SAP対SAP 非SAP).
- IDocは EDI ANSI ASC X12およびEDIFACTといった規格に対応しています。データサイズに競合が生じた場合は、IDocはより長いデータサイズを採用します。
- IDocは データ交換の方向に依存しない例えば、購買モジュールのORDERS01は、入荷と出荷の両方をサポートしています。
- IDocは テキストエディタ データがバイナリ形式ではなく文字形式で保存されているためです。
IDocの構造
IDocの構造は3つの部分から構成されます。
- 管理部分(管理記録) — IDocのタイプ、メッセージタイプ、現在のステータス、送信者、受信者、および同様のメタデータを保持します。これは制御レコードと呼ばれます。
- アプリケーションデータ(データレコード) — ビジネスデータが含まれています。これらはデータレコードまたは セグメント.
- ステータス情報(ステータスレコード) — IDocが通過したさまざまな段階に関する情報を提供します。
トランザクションを使用してIDocを表示できます WE02 or WE05.
上記のスクリーンショットに示すように、IDocレコードは制御、データ、ステータスの3つの部分から構成されています。各部分については、以下で詳しく説明します。
制御記録
- すべてのコントロールレコードデータは、 EDIDC このテーブルのキーはIDoc番号です。
- これには、IDoc番号、方向(受信/送信)、送信者、受信者情報、使用中のチャネル、使用中のポートなどの情報が含まれます。
- 方向「1」は郊外方面、「2」は市内方面を示します。
データレコード
- データレコードには、従業員ヘッダー情報、週次詳細、顧客詳細などのアプリケーションデータが含まれています。
- すべてのデータレコードデータはテーブルに保存されます EDID2からEDID4, エディッド 構成要素を見ることができる構造物です。
- これには、IDoc番号、IDoc内のセグメント名と番号、階層構造、およびデータ自体などのデータが含まれます。
- 実際のペイロードは、というフィールドに文字列として格納されます。 SDATAこれは1000文字のフィールドです。
ステータスレコード
- ステータスレコードは、各マイルストーン時、またはエラーが発生した際に、IDocに添付されます。
- すべてのステータスレコードデータは、 EDIDS 列で番号の横にあるXをクリックします。
- ステータス1~42は発信用、50~75は着信用です。
IDocタイプ
IDocタイプ(基本)は、交換されるビジネス文書の構造と形式を定義します。 IDocはIDocタイプのインスタンスです変数と変数型の概念と同様に プログラミング言語IDocタイプはトランザクションを使用して定義できます。 WE30.
セグメントとは
セグメントは、セグメントの形式と構造を定義します。 データレコード IDoc内において、セグメントは再利用可能なコンポーネントです。
各セグメントについて、 SAP 以下のコンポーネントを作成します。
- セグメントタイプ (バージョンに依存しません)
- セグメント定義 (バージョンに依存)
- セグメントのドキュメント
最後の3文字はセグメントのバージョンを表します。定義はバージョンの変更に伴って変更される可能性がありますが、セグメントタイプは同じままです。トランザクション: WE31.
拡張IDocタイプとは何ですか?
IDocには2種類あります。
- Basic
- 拡張
SAP 事前定義された多くの基本 IDoc タイプを提供します。 変更することはできません制限付き基本型にさらにデータを追加する必要がある場合は、拡張型を使用できます。ほとんどの場合、 延長が必要です。
ドキュメント
各IDocはトランザクションに詳細に文書化されています WE60.
メッセージタイプ
メッセージは特定の種類の文書を表します。 transmit例えば、注文、注文応答、請求書など、2 つのパートナー間でやり取りされるもの。
IDocタイプは複数のメッセージタイプに関連付けることができます。逆に、メッセージタイプは複数のIDocタイプに関連付けることができます。トランザクション: WE81.
IDocビュー
IDocタイプは複数のメッセージタイプに使用できるため、特定のメッセージタイプに必要なフィールドよりも多くのフィールドがIDocに含まれる場合があります。
IDocビューは、関連するセグメントのみにデータが入力されるようにすることで、IDoc生成のパフォーマンスを向上させます。IDocビューは、送信処理においてのみ重要です。
パートナーのプロフィール
パートナーとは、ビジネスを行い、書類を交換する相手方のことです。
IDocを交換するパートナーのパートナープロファイルでは、データ交換に必要なパラメータを維持します。使用されるトランザクションは次のとおりです。 WE20.
ポート
ポートは、お客様の間の接続の技術的特性を定義します。 SAP 一方のシステムと、データを転送したいもう一方のシステム(サブシステム)を指定します。ポートは、2つのシステム間でデータが交換される媒体を定義します。
ポートにはさまざまな種類があります。最も一般的に使用されているのは、 TRFCポート ALEで使用 ファイルポート EDIで使用されます。
TRFCポートの場合、作成する論理宛先の名前を指定する必要があります。 SM59ファイルポートを使用する場合、IDoc ファイルを配置するディレクトリを指定できます。他のシステムまたはミドルウェアは、そこからファイルを取得します。関数モジュールを使用して IDoc のファイル名を生成できます。 テスト「送信ファイル」を使用して、固定ファイル名を指定できます。タブ「アウトバウンドトリガー」は、この場所で IDoc が作成されたときにサブシステムで何らかの処理をトリガーしたい場合に情報を提供するために使用できます。実行する必要のあるコマンドファイル名とディレクトリを指定してください。
共通IDocトランザクション Codes
| トランザクション Code | 目的 |
|---|---|
| WE02 / WE05 | IDocの表示と監視 |
| WE30 | IDocタイプの作成または変更 |
| WE31 | セグメントの作成または変更 |
| WE20 | パートナープロフィールの維持 |
| WE21 | ポートの維持 |
| WE42 | インバウンドプロセスを定義する Code |
| WE57 | 受信機能モジュールをメッセージタイプに割り当てます |
| WE60 | IDocドキュメント |
| WE81 / WE82 | メッセージタイプを作成する/IDocタイプに関連付ける |
| BD51 | 機能モジュールの特性を定義する |
| SM59 | RFC宛先を維持する |
IDocプロセス:実例
IDocを使用して仕入先に発注書を送信する例を考えてみましょう。
- 発注書(PO)が作成されるたびに、システムは仕入先にIDocを送信する必要があります。
- 発注書はIDocの形式で仕入先(パートナー)に送信されます。そのパートナーはシステム上でEDIが有効になっている必要があります。 SAP 当該ベンダーに文書を電子的に送信できることを認識している。
- 顧客から送信IDocとして送られたPOは、ベンダーにとっては受信IDocとなる。 SAP ベンダー側のシステムは、これを処理して、自社システム上にアプリケーション文書(販売注文書)を作成することができます。
- 見積書、見積依頼書、発注書、販売注文書、請求書、納品書などは、IDocを通じて最も頻繁にやり取りされる文書の一部です。
データを外部に転送するプロセス SAP システムは アウトバウンドプロセスデータがあなたの SAP システムは インバウンドプロセス組織向けにこれらのプロセスを設定する開発者またはコンサルタントとして、それぞれの設定手順を以下に詳しく説明します。
アウトバウンドプロセス
必要な手順:
- セグメントを作成します(WE31)。
- IDocタイプを作成します(WE30)。
- メッセージタイプを作成します(WE81)。
- メッセージタイプをIDocタイプに関連付けます(WE82)。
- ポートを作成します(WE21)。
- メッセージ制御方式を使用して IDoc をトリガーする場合は、IDoc を構築する関数モジュールを作成し、それをアウトバウンドプロセスにリンクします。 Code.
- それ以外の場合は、IDocを直接作成する関数モジュールまたはスタンドアロンプログラムを作成してください。
- IDocを交換するパートナーの送信パラメータに必要な情報を含むパートナープロファイル(WE20)を作成し、IDocをトリガーします。
インバウンドプロセス
必要な手順:
- 基本IDocタイプを作成します(トランザクションコードWE30)。
- メッセージタイプを作成します(トランザクションコードWE81)。
- メッセージタイプを基本IDocタイプに関連付けます(トランザクションWE82)。
- IDocを処理するための関数モジュールを作成します。
- 機能モジュールの特性を定義します(BD51)。
- 受信機能モジュールをメッセージタイプに割り当てます(WE57)。
- プロセスを定義する Code (トランザクションコードWE42)
- パートナープロファイルを作成します(トランザクションコードWE20)。










