
三崎レイナ
社会人1年目。新卒でITコンサルティングファームに就職。初配属がSAPプロジェクトにアサインされる。SAPがわからないことだらけで悩んでいたところ、会社の先輩にSAPラボの所長を紹介され、毎週末に所長とSAPのお勉強中!

博士
SAPラボの所長。SAP大好き博士!SAP導入プロジェクトを構想策定~運用保守まであらゆるフェーズを数多く経験。
いまは優しきおじいちゃんだが、プロマネバリバリの時代はかなり怖かったらしい。現在は引退し、SAPの後進育成と啓蒙活動に従事中!
登場人物紹介
三崎レイナ
社会人1年目。新卒でITコンサルティングファームに就職。初配属がSAPプロジェクトにアサインされる。SAPがわからないことだらけで悩んでいたところ、会社の先輩にSAPラボの所長を紹介され、毎週末に所長とSAPのお勉強中!
博士
SAPラボの所長。SAP大好き博士!SAP導入プロジェクトを構想策定~運用保守まであらゆるフェーズを数多く経験。
いまは優しきおじいちゃんだが、プロマネバリバリの時代はかなり怖かったらしい。現在は引退し、SAPの後進育成と啓蒙活動に従事中!
SAPのデータ連携で頻繁に登場する iDoc(Intermediate Document)。エラーが出たときに T-CODE:WE02を開いて調べるものの、「そもそも iDoc って何?」と思ったことはありませんか?
本記事では、iDoc の基本概念から、送受信の仕組み、トラブル対応のポイントまで、実務に役立つ知識を分かりやすく解説します。EDIや ALE との関係、カスタマイズの方法についても触れるので、SAP システムのデータ連携をスムーズにしたい方は必見です!
是非最後まで読んで頂き、iDocについて理解を深める一助になれば幸いです。
さっそく解説していくぞい!
新着のSAPフリーランス案件
【MM】
【PP】
製造業向けSAP PP領域の工場展開支援
【SD】
大手国内SIer関連会社に対するテンプレート展開PJの要件定義支援(SD)
【FI】
大手国内SIer関連会社に対するテンプレート展開PJの要件定義支援(FI)
【FI】
輸送用機器企業様向けS/4導入案件支援
【CO】
【FI】
S/4HANA Privateの導入支援(開発~単体テスト)
【PP】
生産領域(PP)でのテスト工程支援
【CO】
【FI】
ハードウエアリプレイスに伴うSAPシステム検証支援
【SD】
空調機メーカーS/4導入におけるFiori設計支援
【MM】
【PP】
電気機器メーカー向けSAPの運用保守支援
【MM】
【SD】
ERPシステム要件定義支援
iDoc(Intermediate Document) は、SAP システム間または SAP と外部システム間で データを交換するためのSAP独自の標準フォーマット です。「受注データを外部システムへ送信」 したり、「仕入先からの請求書データを受け取る」 といった場面で活用されます。
例えば、以下のようなケースでiDocが登場します。
✅ SAPから倉庫管理システム(WMS)に出荷指示を送る
✅ 取引先からの発注データをSAPの受注データとして取り込む
✅ 他のSAPシステム(別会社のSAPなど)とデータをやり取りする
iDocはSAP内外のデータの橋渡しをする存在なのね!
SAPのデータ連携には、いくつかの方式があります。その中でも、iDocは特に以下の3つの方式で使用されます。
利用方式 | 説明 | 主な用途 |
---|---|---|
EDI(Electronic Data Interchange) | SAPと外部システム間の電子データ交換 | 発注、請求書、出荷指示 |
ALE(Application Link Enabling) | SAPとSAP間のデータ連携 | マスタデータの転送、関係会社取引 |
BAPI連携 | iDocを介してBAPIを呼び出す | 外部システム連携 |
EDIは、SAPと取引先(顧客や仕入先)との間でビジネス文書を電子的に交換する仕組みです。例えば、小売業では店舗のPOSシステムから販売データを収集し、自動的に発注データを生成してSAPへ送信することがあります。この時、iDocが発注データを標準フォーマットで保持し、外部システムとやり取りします。
ALEは、SAP同士のデータ交換に特化した仕組みです。異なるSAPシステム間でマスタデータ(顧客、仕入先、製品情報など)を同期するケースや、SAP同士の関係会社間取引時にP/O→S/O連携およびBilling→LIVを自動化するケースなどに使用されます。例えば、SAPのERPシステムとSAPのSCM(サプライチェーン管理)システム間で在庫データをやり取りする際に、iDocを利用して情報を統合します。
BAPI(Business Application Programming Interface)は、SAPの標準APIであり、リアルタイムでのデータ更新を可能にします。iDocを利用してBAPIを呼び出し、外部システムとSAPの間で特定のビジネスプロセスを実行することができます。
SAPシステムのデータ連携には、データベースの直接更新やファイル連携などの方法も考えられますが、iDocが広く使用されるのには理由があります。
それはiDocには下記の5つの大きなメリットがあり、利便性を高めているためです。
その一方で、下記のようなデメリットもあります。
iDocによる処理は比較的高速じゃから、よく利用されるのじゃ!
iDocはツリー構造でデータを保持しており、以下の 3 つの主要セグメントで構成されます。
コントロールレコード(制御情報)は、iDocの基本情報を格納しており、「送信元」や「送信先」、「メッセージタイプ」、「iDoc番号」、「基本タイプ」などの情報を管理しています。このコントロールデータには、実際のアプリケーションデータは含まれていません。あくまで、iDocの送受信で必要な制御データが含まれています。データは、テーブルEDIDCに格納されています。
データレコードは、送受信したい目的の伝票情報やマスタデータなどのアプリケーションデータが格納されています。階層構造を持っており、複数のセグメントから構成されており、伝票情報であれば、ヘッダー・明細・価格・取引先機能などの情報ごとにセグメント化されています。データは、テーブルEDID4に格納されています。
【例】販売受注 iDoc (ORDERS05) のデータ構造
ステータスレコードでは、iDocのデータ処理ステップごとのステータス情報を保持しており、iDocの処理状況を管理しています。主に、iDoc生成・iDoc準備・ポート/アプリケーションへの受け渡し・アプリケーション更新処理ごとのステータスなどがあります。データはテーブル:EDIDSに格納されています。
複数のエラーが発生している場合は、ステータスごとに紐づくエラーメッセージを参照すると便利です。
ステータスコード | 説明 |
---|---|
03 | iDoc 送信済み |
12 | iDoc 処理成功 |
51 | iDoc 処理エラー |
64 | iDoc 未処理 |
ここでは、受注、発注、出荷などのトランザクションデータをピックアップし、代表的なiDocの送受信フローについて解説します。
データや要件によっては、下記送受信フローと異なることがあるため、注意が必要です。
例えば、品目マスタ、得意先、仕入先などのマスタデータは標準で送信の仕組みが用意されており、変更ポインタが使われます。変更ポインタとは、マスタデータが変更されたときに書き込まれ、IDoc送信対象であることを表すレコードです。この変更ポインタをトリガーに、iDocが生成され処理されます。
iDocに関わるカスタマイズは多岐に渡り、要件に応じて使用する設定も異なります。
その為、ここではiDocに代表されるいくつかのカスタマイズを「データ構造に関する設定」と「データ連携に関する設定」の2つに大別して解説していきます。
iDocのデータ構造は上述した通り、ツリー構造であり、その構造を作っているのが以下のカスタマイズです。まずは全体像を下記図を使ってイメージして頂き、詳細の設定についてそれぞれ解説していきます。
iDocのデータ構造で開設した通り、iDocの上位構造にメッセージタイプ(Message Type)があります。
T-CODE:WE81を使用し、それを定義していきます。
標準のIDOCメッセージタイプは多数用意されており、あらゆるSAP標準伝票の連携に対応しています。
標準のタイプだけでなく、独自のメッセージタイプを定義することも可能です。
SAPのiDocにおいて、「基本タイプ(Basic Type)」とは、iDocのデータ構造(セグメント構成)を定義するテンプレートのような存在です。取引する情報の種類ごとに、どのようなデータ項目を、どの順序で含めるのかを定義しており、iDocの“骨格”とも言える重要な設定です。この設定を行うのがT-CODE:WE30です。
基本タイプもメッセージタイプと同様に、多くがSAP標準で提供されていますが、ユーザーが独自に作成・拡張するカスタムタイプ(Z系)もあります。
T-CODE:WE82は、SAPにおいて「メッセージタイプ」と「基本タイプ(および拡張タイプ)」の関連付け(マッピング)を定義するトランザクションコードです。
SAPはメッセージタイプ(例:ORDERS、INVOICなど)を使って、どのようなビジネスデータを送受信するかを識別しますが、実際のiDoc構造(セグメント構成)は「基本タイプ」で定義されており、両者の紐づけが必要です。
この紐づけを行うのがT-CODE: WE82 です。
T-CODE:WE31 は、iDocの最小構成単位である「セグメント(Segment)」を定義するためのトランザクションコードです。
iDocは複数の「セグメント」で構成されており、セグメントは項目(フィールド)のまとまりです。
WE31では、これらのセグメントの「名前」「フィールド定義」「データ型」などを作成・編集することができます。標準の基本タイプには標準のセグメントが定義されていますが、そこに対して追加でセグメントを定義することも可能です。
iDocのデータ連携に関わるカスタマイズは多岐に渡り、要件に応じて使用する設定も異なります。
ここでは代表的なものをいくつか紹介していきます。
T-CODE:BD54 は、論理システム(Logical System)の定義を行うためのトランザクションコードです。論理システムは、SAPシステム間でデータを交換する際に、相手のシステムを識別するための「名前」として使用されます。特に、詳細な設定は必要なく、その名の通り、論理的なシステム名を定義するイメージです。
T-CODE:BD64 は、ALE分散モデルの設定を管理するためのトランザクションです。ALEのシステム間通信を構成するためには、分散モデル(Distribution Model)を定義する必要があります。この設定は、システム間でiDocメッセージをどのようにやり取りするかを指定します。
T-CODE:SM59 は、SAPシステム間でデータ交換を行うための基盤となる設定をするトランザクションです。特に、ALEのiDocの送受信を行う際、システム間で通信するためのRFC接続を設定します。この接続が正しく設定されていないと、データ交換が正常に行われません。
SM59で設定する主な接続タイプを紹介します。
T-CODE:WE21 は、SAPシステム間でiDocのデータ交換を行うためのポート設定を管理するトランザクションコードです。ポートは、iDocが送信される対象(受信ポート)や送信元(送信ポート)を定義するために使用されます。
ポート設定には、ローカルポート(同一システム内)やリモートポート(別のシステムとの通信)などがあり、これらを設定することで、iDocの送受信が可能になります。
ALEのiDocの送受信の場合は、前項のT-CODE:SM59で作成したRFC宛先を割り当てます。
T-CODE:WE20 は、SAPシステムにおけるパートナープロファイルの定義を行うためのトランザクションコードです。パートナープロファイルは、システム間でiDocを使用したデータ交換を行う際に、送信元や受信先のシステム、使用するメッセージタイプや通信設定を定義します。この設定により、どのパートナーとどのメッセージを交換するのかを決定します。
ここでは、送受信に関わるiDocのデータやステータスを確認するための機能を紹介します。
送信側のiDocが生成されている状態を前提としていますので、そもそもiDocを生成できていない場合は、以下に説明する確認方法は有効ではありません。まずはiDoc生成のトリガーとしているメッセージ制御のログや変更ポインタのログなどを照会し、iDocが生成されたかどうかを確認する必要があります。
まずは、iDocを生成するのが第一ステップじゃ!
T-CODE:WE02 は、iDocのステータスや内容を一覧表示・照会するためのトランザクションコードです。iDocの処理状況やエラーの有無を確認するのに使われます。
iDocの一覧では、左側に表示されているナビゲーションウィンドウで検索したいiDocを絞り込むことも可能です。
送信iDoc(Outbound iDoc)、受信iDoc(Inbound iDoc)、メッセージタイプおよびステータスで構造化されており、任意のステータスレコードをダブルクリックすると右側のiDoc一覧に表示されます。
さらにiDoc番号のレコードを選択すると、ステータスメッセージが表示され、ダブルクリックするとそのiDocの詳細画面に遷移します。
iDocの詳細画面では、制御レコード・データレコード・ステータスレコードの情報が照会できます。
左側に表示されているナビゲーションウィンドウでそれぞれの詳細情報を確認できます。
例えば、下記画面では、データレコードのセグメント“E1EDK01”を選択し、そのデータ(項目)を確認しています。
iDoc番号は送信側と受信側で別々に発番されるぞい!
同じ番号ではないから注意が必要じゃ!
T-CODE:BD87は、iDocステータスの照会に加え、iDocの再処理を実行できるトランザクションコードです。詳細なエラーメッセージを見ることができるため、T-CODE:WE02と合わせて使用すると便利な機能です。
検索したiDocを再処理したい時は、対象のiDocのレコードを選択し、「“処理(Process)”」を押すとiDocの再処理が実行できます。出力タイプなどでメッセージ制御している場合は、繰返出力でiDocの再生成からやり直すことも可能です。
iDocのステータス情報はSAPの標準テーブルに書き込まれます。
その為、テーブルからエラーログの確認を行うことができます。特に、システムの稼働直後にiDocの送受信が正常に起動しているかを一括で網羅的に確認したい場合は、有効な手段です。
iDoc関連で使用しているテーブルについては、下記の関連記事で記載しておりますので、ぜひご参照ください!
iDocは、SAPシステム間や外部システムとの間でデータをやり取りするための、非常に重要な仕組みです。EDIやALEといったさまざまな連携シナリオで活用されており、標準的な仕組みでありながら柔軟な拡張も可能という点が大きな魅力です。ただし、構造が3つのレコードに分かれていたり、設定項目や確認方法が多かったりと、最初は少し難しく感じるかもしれません。
今回の記事では、iDoc の基本概念から、送受信の仕組み、iDocのステータスやエラーログの確認方法まで、実務に役立つ知識を解説してきました。すべてを一度で完璧に理解する必要はありませんが、少しずつでもiDocの仕組みを知っておくと、SAPの連携や運用において大きな力になります。本ブログがその第一歩となり、皆さんと一緒に理解を深めていくきっかけになれば嬉しいです。今後もSAPに関する情報をわかりやすく発信していきますので、ぜひお付き合いください。
iDocの解説は以上じゃ~!
iDocのテーブル関連については、下記記事が参考になるぞい!
新着のSAPフリーランス案件
【MM】
【PP】
製造業向けSAP PP領域の工場展開支援
【SD】
大手国内SIer関連会社に対するテンプレート展開PJの要件定義支援(SD)
【FI】
大手国内SIer関連会社に対するテンプレート展開PJの要件定義支援(FI)
【FI】
輸送用機器企業様向けS/4導入案件支援
【CO】
【FI】
S/4HANA Privateの導入支援(開発~単体テスト)
【PP】
生産領域(PP)でのテスト工程支援
【CO】
【FI】
ハードウエアリプレイスに伴うSAPシステム検証支援
【SD】
空調機メーカーS/4導入におけるFiori設計支援
【MM】
【PP】
電気機器メーカー向けSAPの運用保守支援
【MM】
【SD】
ERPシステム要件定義支援
SAPラボでは、SAPの知識を活かして副業をしたい方を募集してるのじゃ!
SAPラボのライターの特徴
・ライティング初心者OK!
・報酬高単価!
・業務委託契約なので副業として最適!
SAP記事執筆者としての活動実績として利用可能なので、転職時や案件探しの際に企業へのアピール材料にもなります。
募集要項
・SAP導入や運用保守プロジェクトへの参画経験1年以上
ご応募/お問合せ先
info@sap-labo.com
少しでもご興味ある方、ぜひお気軽にご連絡下さい!
事業会社の社内SE(SAP販売・貿易管理領域を担当)
大学卒業後、化学メーカーに社内SEとして勤務し、S/4海外展開プロジェクトに参画しています。主に、SDモジュールのデータ移行を2年間経験し、その後はST/IFテストの推進業務を担当しております。その間にも、SDやGTSの保守・運用に携わりながら、SAPに関する知見を深めている最中です。
業務の中で得られた知見をアウトプットしながら、SAPを利用する方々のお役に立てれば嬉しいです!