SAP ABAPにおけるIDOCチュートリアル:ステップバイステップガイド

⚡ スマートサマリー

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

  • 📦 コア定義: IDocは、ANSI ASC X12やEDIFACTなどのEDI規格に基づいた、システムに依存しないデータコンテナです。
  • 🧱 3部構成: すべてのIDocは、制御レコード、データレコード、およびステータスレコードで構成され、それぞれ専用のデータベーステーブルに格納されます。
  • 🆚 型の階層構造: 基本的な IDoc タイプには、 SAP 変更することはできません。拡張機能タイプは、必要に応じてカスタムフィールドを追加します。
  • 🔁 プロセスフロー: アウトバウンドはIDocを作成して送信し、インバウンドはリンクされた関数モジュールを介してIDocを受信して​​転記します。
  • 🤖 AIの有効化: AI 駆動型監視ツールは IDoc の失敗を早期に検出し、フィールドを自動マッピングします SAP と非SAP パートナー。

SAP IDOCチュートリアル

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の構造

IDocの構造は3つの部分から構成されます。

  1. 管理部分(管理記録) — IDocのタイプ、メッセージタイプ、現在のステータス、送信者、受信者、および同様のメタデータを保持します。これは制御レコードと呼ばれます。
  2. アプリケーションデータ(データレコード) — ビジネスデータが含まれています。これらはデータレコードまたは セグメント.
  3. ステータス情報(ステータスレコード) — IDocが通過したさまざまな段階に関する情報を提供します。

トランザクションを使用してIDocを表示できます WE02 or WE05.

コントロール、データ、ステータスを示すIDocレコード

上記のスクリーンショットに示すように、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タイプとは何ですか?

IDocには2種類あります。

  1. Basic
  2. 拡張

基本IDocタイプと拡張IDocタイプ

SAP 事前定義された多くの基本 IDoc タイプを提供します。 変更することはできません制限付き基本型にさらにデータを追加する必要がある場合は、拡張型を使用できます。ほとんどの場合、 延長が必要です。

拡張IDocタイプの図解

ドキュメント

各IDocはトランザクションに詳細に文書化されています WE60.

WE60におけるIDocドキュメント

メッセージタイプ

メッセージは特定の種類の文書を表します。 transmit例えば、注文、注文応答、請求書など、2 つのパートナー間でやり取りされるもの。

IDocタイプは複数のメッセージタイプに関連付けることができます。逆に、メッセージタイプは複数のIDocタイプに関連付けることができます。トランザクション: WE81.

IDocのメッセージタイプ

IDocビュー

IDocタイプは複数のメッセージタイプに使用できるため、特定のメッセージタイプに必要なフィールドよりも多くのフィールドがIDocに含まれる場合があります。

IDocビューは、関連するセグメントのみにデータが入力されるようにすることで、IDoc生成のパフォーマンスを向上させます。IDocビューは、送信処理においてのみ重要です。

IDocビュー

パートナーのプロフィール

パートナーとは、ビジネスを行い、書類を交換する相手方のことです。

IDocを交換するパートナーのパートナープロファイルでは、データ交換に必要なパラメータを維持します。使用されるトランザクションは次のとおりです。 WE20.

IDocのパートナープロファイル

ポート

ポートは、お客様の間の接続の技術的特性を定義します。 SAP 一方のシステムと、データを転送したいもう一方のシステム(サブシステム)を指定します。ポートは、2つのシステム間でデータが交換される媒体を定義します。

ポートにはさまざまな種類があります。最も一般的に使用されているのは、 TRFCポート ALEで使用 ファイルポート EDIで使用されます。

TRFCポートの場合、作成する論理宛先の名前を指定する必要があります。 SM59ファイルポートを使用する場合、IDoc ファイルを配置するディレクトリを指定できます。他のシステムまたはミドルウェアは、そこからファイルを取得します。関数モジュールを使用して 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 システムは インバウンドプロセス組織向けにこれらのプロセスを設定する開発者またはコンサルタントとして、それぞれの設定手順を以下に詳しく説明します。

アウトバウンドプロセス

必要な手順:

  1. セグメントを作成します(WE31)。
  2. IDocタイプを作成します(WE30)。
  3. メッセージタイプを作成します(WE81)。
  4. メッセージタイプをIDocタイプに関連付けます(WE82)。
  5. ポートを作成します(WE21)。
  6. メッセージ制御方式を使用して IDoc をトリガーする場合は、IDoc を構築する関数モジュールを作成し、それをアウトバウンドプロセスにリンクします。 Code.
  7. それ以外の場合は、IDocを直接作成する関数モジュールまたはスタンドアロンプ​​ログラムを作成してください。
  8. IDocを交換するパートナーの送信パラメータに必要な情報を含むパートナープロファイル(WE20)を作成し、IDocをトリガーします。

インバウンドプロセス

必要な手順:

  1. 基本IDocタイプを作成します(トランザクションコードWE30)。
  2. メッセージタイプを作成します(トランザクションコードWE81)。
  3. メッセージタイプを基本IDocタイプに関連付けます(トランザクションWE82)。
  4. IDocを処理するための関数モジュールを作成します。
  5. 機能モジュールの特性を定義します(BD51)。
  6. 受信機能モジュールをメッセージタイプに割り当てます(WE57)。
  7. プロセスを定義する Code (トランザクションコードWE42)
  8. パートナープロファイルを作成します(トランザクションコードWE20)。

よくあるご質問

IDocは非同期で、ALEまたはEDIを介したシステム間メッセージングに使用されます。BAPIは同期で、リアルタイムアクセスに使用されます。 SAP ビジネスオブジェクト。IDocはキューに追加され、BAPIは即座に戻り値を返します。

IDocタイプは、セグメントとフィールドの技術的な構造を定義します。メッセージタイプは、注文や請求書などのビジネス上の意味を定義します。1つのIDocタイプは複数のメッセージタイプに対応でき、その逆も可能です。

IDocを表示し、ステータスレコードを確認するには、トランザクションWE02またはWE05を使用します。送信にはステータスコード1~42、受信にはステータスコード50~75が使用されます。トランザクションBD87は、エラーが発生したIDocを再処理します。

各データレコードのペイロードを格納するSDATAフィールドは1000文字の長さです。IDocには多数のデータレコードが含まれるため、ペイロードの総量はセグメント数に応じて増加します。

はい。IDocはシステムに依存せず、ANSI ASC X12やEDIFACTなどのEDI標準に準拠しています。SAP システムは、ファイルポートやミドルウェアなどを介してIDocファイルを生成または消費できます。 SAP PI/PO。

制御レコードはEDIDCテーブルに、データレコードはEDID2~EDID4テーブルに、ステータスレコードはEDIDSテーブルに格納されます。IDoc番号は、特定のIDocに関するこれら3つのテーブルすべてをリンクするキーとなります。

AIを活用した監視ツールは、繰り返し発生するIDocエラーをクラスタリングし、過去のパターンから障害を予測し、ステータス51または56の問題に対する修正を推奨することで、手動による再処理時間を大幅に削減します。

はい。AI駆動型マップping エンジンはセグメント定義を比較します SAP パートナーシステムとフィールドマップを提案ping過去の修正から学び、ALEおよびEDIプロジェクトにおける手動設定を大幅に削減します。