SAPシステムで使われる独自言語であるABAP。SAPシステムを触ったことが無い方からすると、聞き慣れない言語なのではないでしょうか。このABAPはシンプルな構造でありながら、ビジネス要件を満たすための豊富な機能が内包されています。その一つが「BAPI」。今回はSAPの開発に欠かせない、この「BAPI」を使うメリットについてまとめました。
BAPIとはSAP標準のインターフェース
そもそもBAPIとは何でしょうか。
BAPIとは「Business Application Programming Interface(ビジネス・プリケーション・プログラミング・インターフェース)」の省略形です。
BAPIは「バピ」と発音します。
まずABAPにおけるアドオン開発では、「汎用モジュール」と呼ばれるプログラムの部品を作成するケースがあることを知っておきましょう。汎用モジュールとは「さまざまなプログラムから呼び出し可能なサブルーチン」と考えれば理解が早くなります。
他言語でも同様の動きをするパーツは存在しており、「メソッド」や「関数」と呼ばれているものになります。
この汎用モジュールは汎用グループに登録することで、どのプログラムからも呼び出して使えるようになる便利な機能ですが、BAPIはパッケージに標準搭載されている汎用モジュールといえます。
SAPシステムに標準搭載されている機能、例えば伝票登録についての処理をカプセル化し、BAPIとして登録しておけばさまざまなアドオンプログラムから呼び出し可能になるのです。
その他、ビジネス利用で必要になるさまざまな処理がBAPIとして登録されており、BAPIを効率よく活用していけばフルアドオンで構築したシステムの中でも、SAP標準の機能を動かすことが可能になります。
アドオン開発の工数を削減できるBAPI
前述したように、BAPIはSAP社が世界中から集めた商習慣をベースにしながら、ビジネス用途で特に必要とされる処理をカプセル化してあります。
つまりBAPIをしっかり使うことで、アドオン開発の工数を削減できる可能性が高いのです。
アドオン開発にかかるコストは、設計やコーディングの工数だけではありません。
新しい機能を作ったならば、必ずその動きが正常であることを証明するためのテストが必要であり、テスト工数も計上することになります。
BAPIはSAPが標準機能として動きを保障している部分ですから、BAPIに関するテストをある程度省くことが可能になり、工数削減が可能です。
このテスト時の工数削減は、開発全体の工数削減に大きく貢献します。
つまり、工数をかけずに開発することを求められる場合には、BAPIを積極的に利用していくべきと言えるでしょう。
バッチインプットとBAPIとの違いは?
BAPIはその名のとおり、主な役割はデータのインターフェースです。
ところがSAPシステムでデータインターフェースを実現する方法はBAPIだけではありません。
「バッチインプット」というユーザの手入力を模した動きを仮想的に実行し、データを登録していく手法も存在しています。
BAPIとバッチインプットの大きな違いは、BAPIがデータのみを受け渡して更新・登録を行うのに対し、バッチインプットは「手入力を模してマシンが入力する」という点です。
対応するBAPIが見つからないようなケースや、既に作成済みの画面からの入力エラーを受け取りたい場合などに、バッチインプットを使用するとよいでしょう。
SE37を活用してBAPIの動きを知ろう
これまでBAPIを使用したことがない、もしくはSAPシステム自体が初めてであるという場合は、まずトランザクションコード「SE37」から汎用モジュールビルダを呼び出してみましょう。
ここでは新たに汎用モジュールを登録できるほか、既に登録してある汎用モジュールを検索・参照することが可能です。
また、汎用モジュールの基本的な動きをチェックする簡易テストも可能なので、BAPIに任意のパラメータを設定して動作させてみることもできます。
BAPIを初めて使用する場合には、まずはこの「SE37」を触ってみることをおすすめします。
ABAPまとめ
今回はABAPでBAPIを使うメリットについてご紹介いたしました。
過去にABAPのアドオン開発や、ERP導入を手掛けるエンジニアに必要なスキル、ERPパッケージ経験についてもまとめていますので、合わせて参考にしてみて下さい。