汎用モジュール/BAPI/RFCとは?
汎用モジュール、BAPI、そしてRFC。
これらは、SAPシステムの機能を利用するための手段であり、重要な役割を担っている。その理由は、トランザクションコード以外の、SAPシステムの機能を利用できる手段だからである。
汎用モジュール (Function Module)
汎用モジュールは、SAPシステムの機能を実行するためのプログラムコンポーネントである。
再利用可能な、SAPシステム上で定義された「ソフトウェア部品」という言い方もできる。昔風に言えば、「共通サブルーチン」である。
SAPシステムを操作するためのコンピュータ言語=ABAP言語を除き、SAPシステムでは、内部のデータベースへの直接アクセスを許していない。SAPシステム以外の情報システムは、SAPシステムのデータを直接、参照・変更・削除することはできないということだ。
データベースへの直接アクセスを許していない代わりに、SAPシステムは目的に応じた様々な汎用モジュールを提供している。
外部のシステムやアプリケーションは、汎用モジュールを介し、SAPシステムのデータ操作を行うことになる。
BAPI (Business Application Programming Interface)
BAPIも、SAPシステムの機能を実行するためのプログラムコンポーネントである。
その意味において、BAPIは汎用モジュールと同じである。
BAPIは、SAPシステム以外の外部アプリケーションからSAPシステムの機能を利用するために呼び出される。外部からSAPシステムにアクセスすることを想定してデザインされているため、インターフェースや呼び出し方が標準化されている。
また、外部アプリケーションからBAPIは、後述のRFCプロトコルを介して実行される。
RFC (Remote Function Call)
RFCは、SAPシステム間や、SAPシステムと外部システム間でBAPIを呼び出すためのプロトコル※である。
SAPシステム以外のアプリケーションからSAPシステムのデータを操作する場合、BAPIを利用することになる。BAPIはRFCを経由して呼び出されるため、BAPIとRFCは混同されやすい。
※コンピュータやデバイスが通信するときの、約束事やルールのこと。
汎用モジュールとBAPIの違い
内向けか外向けか
どちらも「SAPシステムの機能を実行するためのプログラムコンポーネント」という点は同じ。
二つの違いは、部向けか外向けか、という点にある。
主にSAPシステム内部で使用される。SAPシステム内部=ABAP言語から使用される場合、汎用モジュールと呼ばれる。
外部アプリケーションからSAPシステムにアクセスするためのインターフェースプログラム。プログラム自体は汎用モジュールと同じものが多い。
外部アプリケーションとは、JavaやC#、Excelマクロ(VBA)で開発したアプリケーションのこと。これら外部アプリケーションから呼び出し可能な汎用モジュールが、BAPIである。
汎用モジュールとBAPIの中身は同じ。
SAPシステムの、中から呼ばれるのが汎用モジュール。
外からも呼べるのがBAPI。
つまり、SAPシステム以外のシステムやアプリケーションにとって、SAPシステムとのインターフェースといえばBAPIなのである※。
- ※IDocというSAP標準インターフェースも存在するが、本記事の主旨から逸れるので割愛する。
BAPIを利用するソフトウェア製品
BAPIを利用してSAPシステムと通信するサードパーティのソフトウェア製品には、以下のようなものがある。
製品名 | 販売会社 | 特徴 |
---|---|---|
ConnectPlusシリーズ | クレスコ・イー・ソリューション | SAPシステムと社内外システムをノンプログラミングで効率的に連携する。豊富なアダプタでリアルタイム双方向連携を実現し、Excelやクラウドサービスとの連携も可能。 |
MALSY | 三菱電機インフォメーションシステムズ | バッチインプットとBAPIの二種類の方式で、ExcelからSAPシステムにデータを直接登録できる。 |
RFgen-SAP | ノーラックス | リアルタイムなデータキャプチャとモバイルアクセスを提供し、SAP環境と統合して在庫管理や生産プロセスの効率化をサポートするツール。 |
リモート汎用モジュール
BAPIは、SAPシステムの「外」から呼び出せる汎用モジュールなので、「リモート汎用モジュール」と呼ばれることがある。
汎用モジュールがBAPIになれるか、つまり、汎用モジュールが外部から呼び出し可能か否かは、以下のように、汎用モジュールの属性を参照することで確認できる。
- T-CODE:SE37(汎用モジュールビルダ)より、目的の汎用モジュールを照会する。
- 「属性」タブに移動し、「リモート可能モジュール」のチェックを確認する。
ONなら、その汎用モジュールはリモート汎用モジュール、すなわちBAPIである。
汎用モジュール/BAPI/RFCのまとめ
- プログラムの中身で見ると、汎用モジュール と BAPI は同じ
- 汎用モジュール ・・・ SAPシステムの内部から利用する
- BAPI ・・・ SAPシステムの外部から使用可能な汎用モジュール
- BAPIは「リモート汎用モジュール」と呼ばれることもある
- RFC ・・・ BAPIが通信するためのプロトコル
筆者の拙い説明が、汎用モジュールとBAPIを理解するのに、少しでも助けになれば幸いである。
汎用モジュール/BAPIの探し方を説明した記事は以下。
コメント