Friday is awesome

SAPについて個人的なメモをまとめたブログです

MENU

【SAP Tips】伝票番号からIDOCを検索する方法

SAPでは、インタフェース連携にIDOCを使うことが多いです。以下、IDOC説明の記事もありますので、参考にして頂きたいです。

sapbasic.hatenablog.com

IDOCを使っていると、度々エラーになり調査が必要になることがあります。そうした際、困ることがIDOC→伝票番号を調べることや伝票番号→IDOCを調べることって、どうすればいいのかな?と考えることがあると思います。1件だと、
IDOC→伝票番号は、IDOC no.をBD87で検索してセグメントの中身の値を確認すればいいですし、
伝票番号→IDOCは、伝票からRelationshipブラウザを起動すれば、伝票に関係するIDOC no.を確認できます。
では、大量データの場合はどうでしょうか?
IDOC→伝票番号
こちらは簡単でSE16NでEDID4テーブルを開いてIdoc numberの項目にIdoc番号を入力して検索するとIDOCのセグメント情報が出てきます。一番右の項目にApplication dataがあるので、伝票番号を持つセグメントを確認できると思います。テーブルの検索画面でIDOC番号とセグメントを指定して検索すれば、伝票番号を一覧で確認できます。
伝票番号→IDOC

逆に伝票番号はわかっているけど、IDOC番号が不明な場合ですね。こちらはSRRELROLESとIDOCRELという2つのテーブルを使います。
SRRELROLESのKey項目に伝票番号を入力してRole GUIDの値を取得します 
IDOCRELのRole GUID(ROLE_A)項目に①で取得したGUIDを入力して検索し、Role GUID(ROLE_B)の値を取得します
③ SRRELROLESのRole GUID項目に②で取得した値を入力して検索し、Key項目の値を取得します
このKey項目にIDOC番号が入っています。
SAP自体も伝票からIDOC番号を表示する際は、だいたいこのロジックで表示していると思います。
IDOCと伝票番号の連結は難しいところもありますが、参考になれば幸いです。

【参考】
伝票の出力とIDOCを連動している場合は、出力レコードからIDOC番号を辿れるかもしれません。NASTテーブルのCMFPNR(番号)項目が
出力レコードとIDOCのリンク番号になります。この項目の番号でCMFPテーブルのNR(番号)項目を検索すると、メッセージ変数でIDOC番号を取得できます。この取得方法は出力レコードが作成する処理結果メッセージを活用した方法となります。ご参考まで。