汎用モジュール/BAPI/RFCの違い:重要なのはこれだ!

汎用モジュール+BAPI+RFC

この記事は、SAP ERP や S/4HANAなど、SAPシステムにおける、汎用モジュール、BAPI、RFC それぞれの特徴と違いについて、文系の人でも解るように丁寧に解説する。結局、おさえておくこととは?

目次

汎用モジュール/BAPI/RFCとは?

汎用モジュール、BAPI、そしてRFC。

これらは、SAPシステムの機能を利用するための手段であり、重要な役割を担っている。その理由は、トランザクションコード以外の、SAPシステムの機能を利用できる手段だからである。

汎用モジュール(Function Module)/BAPI/RFCの関連図
汎用モジュール(Function Module)/BAPI/RFCの関連図

汎用モジュール (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言語から使用される場合、汎用モジュールと呼ばれる

BAPI

外部アプリケーションからSAPシステムにアクセスするためのインターフェースプログラム。プログラム自体は汎用モジュールと同じものが多い。

外部アプリケーションとは、JavaやC#、Excelマクロ(VBA)で開発したアプリケーションのこと。これら外部アプリケーションから呼び出し可能な汎用モジュールが、BAPIである。

Ke1G

汎用モジュールとBAPIの中身は同じ。
SAPシステムの、中から呼ばれるのが汎用モジュール。
外からも呼べるのがBAPI。

つまり、SAPシステム以外のシステムやアプリケーションにとって、SAPシステムとのインターフェースといえばBAPIなのである

  • ※IDocというSAP標準インターフェースも存在するが、本記事の主旨から逸れるので割愛する。

BAPIを利用するソフトウェア製品

BAPIを利用してSAPシステムと通信するサードパーティのソフトウェア製品には、以下のようなものがある。

製品名販売会社特徴
ConnectPlusシリーズクレスコ・イー・ソリューションSAPシステムと社内外システムをノンプログラミングで効率的に連携する。豊富なアダプタでリアルタイム双方向連携を実現し、Excelやクラウドサービスとの連携も可能。
MALSY三菱電機インフォメーションシステムズバッチインプットとBAPIの二種類の方式で、ExcelからSAPシステムにデータを直接登録できる。
RFgen-SAPノーラックスリアルタイムなデータキャプチャとモバイルアクセスを提供し、SAP環境と統合して在庫管理や生産プロセスの効率化をサポートするツール。
BAPIを利用するサードパーティのソフトウェア製品

リモート汎用モジュール

BAPIは、SAPシステムの「外」から呼び出せる汎用モジュールなので、「リモート汎用モジュール」と呼ばれることがある。

汎用モジュールがBAPIになれるか、つまり、汎用モジュールが外部から呼び出し可能か否かは、以下のように、汎用モジュールの属性を参照することで確認できる。

  • T-CODE:SE37(汎用モジュールビルダ)より、目的の汎用モジュールを照会する。
  • 属性」タブに移動し、「リモート可能モジュール」のチェックを確認する。
    ONなら、その汎用モジュールはリモート汎用モジュール、すなわちBAPIである。
リモート汎用モジュールの確認
リモート汎用モジュール

汎用モジュール/BAPI/RFCのまとめ

汎用モジュール、BAPI、RFCのまとめ
  • プログラムの中身で見ると、汎用モジュール と BAPI は同じ
  • 汎用モジュール ・・・ SAPシステムの内部から利用する
  • BAPI ・・・ SAPシステムの外部から使用可能な汎用モジュール
    • BAPIは「リモート汎用モジュール」と呼ばれることもある
  • RFC ・・・ BAPIが通信するためのプロトコル

筆者の拙い説明が、汎用モジュールとBAPIを理解するのに、少しでも助けになれば幸いである。

汎用モジュール/BAPIの探し方を説明した記事は以下。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次