【SAP】バッチインプットとBAPIの違いを解説|大量のデータを処理する

バッチインプットとBAPIはどちらも大量のデータを一括で処理するために用いられます。

両者には一長一短があるため、それぞれのメリット・デメリットも合わせて説明します。どちらを使用するか迷った際の観点として参考にしていただければと思います。

バッチインプットとは

バイナリ, 手, キーボード, タップ, 入力してください, 入力, ストア

バッチインプットとは、トランザクションコードを介したユーザの入力作業を模した動きを記録することで、大量のデータをシステムに自動で入力させる方法です。

バッチインプット用プログラム

Tr-cd:SHDBから、一連の入力処理を記録したプログラムを作成することが可能です。

また、バッチインプット処理を実行するための構文は下記の通りです。

CALL TRANSACTION 'トランザクションコード'
   USING <BDCテーブル>
   MODE<処理モード>
   UPDATE <更新モード>
   MESSAGES INTO <メッセージテーブル>

それぞれの項目について説明します。

■トランザクションコード
・叩きたいトランザクションコードを指定する。

■BDCテーブル
・指定したトランザクションの画面上に入力するデータ。Tr-cd:SHDBで記録した情報を基に、事前に内部テーブルにデータを作成しておく必要がある。
■実行モード
・下記3つのモードがある
 A:実行時にすべての画面を表示しながら処理する
 E:エラー発生時のみ画面を表示する
 N:画面を表示せずに処理をする

■更新モード
・下記3つのモードがある
 A:非同期更新(デフォルト)
 S:同期更新
 L:ローカル更新

■メッセージテーブル
・処理時に出力されたメッセージを格納するための空の内部テーブルのこと。

バッチインプット用汎用モジュール

汎用モジュールを使用する場合は、下記の流れでプログラムを作成します。

  1. バッチインプット用のデータを取り込む(ファイルアップロードなど)
  2. BDCテーブルを作成する
  3. 汎用モジュール:BDC_OPEN_GROUPを使用しバッチインプットセッションを開始する
  4. 汎用モジュール:BDC_INSETTを使用しバッチインプットデータをトランザクションへ受け渡す
  5. 汎用モジュール:BDC_CLOSE_GROUPを使用しバッチインプットセッションを終了する

BAPIとは

ウェブ, ネットワーク, ポイント, ライン, インターフェイス, お問い合わせ

BAPIとはBusiness Application Programming Interface の略語で、SAPが標準で用意してくれている汎用モジュールのことです。大量のデータを取得したり更新したりする目的で使用されます。

BAPIはSAP標準で搭載されているため動作が保証されており、うまく活用することでアドオン開発の工数を減らすことが可能です。

BAPIはTr-cd:BAPIから調べることができます。

また、Tr-cd:SE37からBAPIの照会やテスト実行などを行うことができます。

さらに、テスト実行の際に表示されたパラメータの中身を確認したい場合は、Tr-cd:SE11から「データ型」にパラメータを入力して照会します。

バッチインプットとBAPIの比較

バランス, スイング, 等しいかどうか, 測定, スケール, 比較, シーソー

バッチインプットとBAPIを比較したものを下記に示しておきます。基本的には、BAPIがある場合はBAPIを使った方がよさそうですね。

以上。


\\SAP ABAPを勉強するなら//

ABAPを勉強するなら「SAP ABAPプログラミング入門」がおすすめです。

ABAPの文法はもちろん、テーブルやトランザクションコードの作成方法やプログラムのデバック方法、周辺ツールの使い方など必要な要素がこの一冊に網羅されています。

これからABAPを学習しようと考えている方は、手元に置いておくと必ず役に立つと思います。ぜひ、手にとってみてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です