SAPシステムの機能を利用する方法は、トランザクションコードを実行するだけではない。
アドオンプログラムでは、トランザクションコードを実行する代わりに、同じことができる汎用モジュール/BAPIを利用して機能を実現する。
たとえば、トランザクションコード:MIGO(在庫移動)を実行する代わりに、MIGOと同じ機能の汎用モジュール “BAPI_GOODSMVT_CREATE”を利用することで、カスタム開発プログラム、いわゆるアドオンを作成できる。
MIGO = BAPI_GOODSMVT_CREATE というわけだ。
では、目的のT-CODEと同じ機能のBAPIは、どのように探せばよいのだろうか?
上の例で挙げた、BAPI_GOODSMVT_CREATE をどこよりも詳しく解説した記事は以下。
汎用モジュール/BAPI/RFCの、それぞれの違いを解説した記事は以下。
汎用モジュール/BAPIの探し方
それでは、汎用モジュール/BAPIを検索する方法を、4つ紹介していく。
1. BAPI Explorer で探す
S/4HANA や SAP ERP など、SAPシステムには、BAPIを検索できるトランザクションが搭載されている。
そのトランザクションの名は「BAPI Explorer(BAPIエクスプローラ)」。
T-CODEは、そのまんま”BAPI“である。
T-CODE:BAPIを起動すると、「階層別」「アルファベット順」に参照できるようになっており、「階層別」は業務領域別に、階層構造でBAPIを参照することができる。
たとえば、購買発注関連のBAPIを「階層別」から探す場合、次のように操作する。
- 購買発注は「在庫/購買管理(MM)」モジュールに属するので、
「在庫/購買管理」->「購買管理」
へと下りる。 - 「購買発注」の英語名を予想し、「PurchaseOrder」へ。
「PurchaseOrder」から下は、BAPIが持つキー項目や、メソッド(命令)が一覧できる。 - 購買発注伝票の登録を行うBAPIであれば、メソッドは、登録=Createの文字で始まる「CreateFormData1」と予想できるので、選択する。
- 「詳細」タブより、BAPIの属性を参照する。「内容説明」を読むと「Enjoy 購買発注登録」とあるので、T-CODE:ME21Nと同等の汎用モジュールであることがわかる。
また、「汎用モジュール」の「BAPI_PO_CREATE1」が、このBAPIのIDである。 - 「文書」タブに移動すると、BAPIの文書(解説)を読むことができる。
上の例では、
- 「購買発注」というワードから、「PurchaseOrder」という単語を予想する。
- 「購買発注伝票の登録」というトピックから、「CreateFormData1」というメソッド名を予想する。
という、名前からの「予想」が、少々難しいかもしれない。
しかし、トランザクションコードの名前に規則性があるように、BAPIのメソッド名にも規則性がある。
たとえば、「登録」のメソッド名は、上の例のように”Create“で始まることが多い。「変更」であれば”Change“、削除であれば”Delete“といった具合だ。
この規則性を覚えておけば、探し出すときの手掛かりになるだろう。
2. 汎用モジュールビルダ(T-CODE:SE37)で探す
汎用モジュールビルダ(T-CODE:SE37)は、その名が示す通り、汎用モジュール/BAPIを作成・変更するためのトランザクションである。
汎用モジュールビルダは、登録済みの汎用モジュールの呼び出しと参照もできる。ということは、汎用モジュールを呼び出すために「検索」ができる。その「検索」機能を使って、目当ての汎用モジュールを探すのだ。
たとえば、「受注」関連のBAPIを検索したい場合、SE37 を次のように操作する。
- 「汎用モジュール」の入力欄にカーソルをあわせ、[F4]キーを押す。
- 「情報システム」ボタンを押す。
- 汎用モジュールの検索ダイアログボックスが表示されるので、「内容説明」に「*Sales*」と、ワイルドカード付きの英語で入力し、[Enter]キーを押す。
- 「内容説明」の文言に「Sales」を含む汎用モジュールの一覧が表示される。
- 「内容説明」は大文字と小文字を区別するため、入力時は大文字と小文字を意識するようにする。
- 「内容説明」には日本語を入力しても構わないが、日本語ではほとんどヒットしないため、英語で入力した方がよい。
検索条件が「Sales」だけだと、Salesに一致する汎用モジュールが大量に表示されてしまい、探し難いので、「汎用モジュール」には “BAPI*” や “RFC*” も追加した方がよい。
BAPIのID(技術名称)の接頭辞は、”BAPI”または”RFC”が多いため、下図のように、汎用モジュール名の先頭にワイルドカードで指定しておくと、BAPIを絞り込みやすい。
3. ビューを検索する
汎用モジュールの一覧を照会できるビュー V_FDIRT があるので、それを検索する。
T-CODE: SE16N または SE16H(S/4HANA専用)を起動し、「テーブル(Dataベース)」に V_FDIRT を指定する。
選択基準には、次の値を入力する。
有効 = ‘X’
モード = ‘R’ (リモート汎用モジュールを選択したい場合)
内容説明 = 検索したい汎用モジュールのキーワード
たとえば、「購買」関連のBAPIを探したいなら、「内容説明」に *Purchase* と、ワイルドカード(両端にアスタリスク)付きの英語で入力する。日本語で「*購買*」と入力しても構わないが、日本語ではほとんどヒットしないため、英語で入力した方がよい。
また、SE16はワイルドカードは使えるが、大文字と小文字を区別するので、「内容説明」に入力するワードは、大文字と小文字を意識する。
4. 生成AIに尋ねる
今のところ、これが最もお勧めの方法である。
たとえば生成AIに向かって、
「受注伝票を登録できるBAPIを教えて」
というような、質問を投げかける。
これだけで、生成AIは答えを返してくれる。SAPシステムに詳しくない人でも、目当てのBAPIを容易に探すことができるというわけだ。
当ブログでは、生成AIを使ってBAPIを効率的に探すためのプロンプト(命令文)を紹介している。左記のプロンプトは、ChatGPT や Google Gemini にコピペするだけで、トランザクションコードに対応するBAPIを一括で検索できるようになっている。適宜利用していただきたい。
まとめ:汎用モジュール/BAPIの探し方
顧客から、「トランザクションコード〇〇と、同じことができる汎用モジュール/BAPIは?」と質問されることがあるので、探し方について4つの方法を紹介した。
- BAPIエクスプローラーで探す
- 汎用モジュールビルダ(T-CODE:SE37)で探す
- ビュー V_FDIRT を検索する
- 生成AIに尋ねる
SAP ERP は S/4HANA への代替わりと共に、トランザクションコードを用いる「バッチインプット」の使用を控えるよう、SAP社は呼びかけている。同時に、バッチインプットの代替手段として、汎用モジュール/BAPIの利用を推奨している。
そのことは、SAP Note #216806(新しい転記トランザクションとバッチインプット)や、#304122(MIGO: バッチインプットと CATT がサポートされない)など、多くの SAP Note にも書かれている。
しかし、汎用モジュール/BAPIの利用を進めようと思っても、目当ての汎用モジュール/BAPIを知らない場合、まず探さなければならない。
この記事が、汎用モジュール/BAPIを探すのに、難儀している人の助けになれば幸いである。
汎用モジュール/BAPIという言葉が何度も出てきたが、その違いを解説した記事は以下。
コメント