「SAP Basis概要の教科書」NO.14 SAP BAPIについて
INDEX LINK
はじめに
今回はSAPのBAPI(汎用モジュール)についてご紹介したいと思います。
SAPのデータを大量にまとめて処理するために、このBAPIとバッチインプットという
ものがありますが、それらの違いも含めて説明いたします。
1.BAPIとバッチインプットの違い
バッチインプットは、トランザクションコードを使ったユーザの入力作業の動きを記録し、大量のデータを一括でシステムに自動入力する仕組みです。
一方のBAPIはBusiness Application Programming Interfaceの略語で、SAPが標準で用意している汎用モジュール(プログラム)のことを指します。
それぞれのメリット、デメリットについて、主要な観点毎に下記に記します。
・処理速度
BAPIの方が早いです。バッチインプットは、記録したトランザクション操作を
一つずつ処理していくため、どうしても遅くなりがちです。BAPIは入力パラメータを
与えて実行することでプログラムが実行され、決まった結果が出力される動きのため、
処理速度は速いです。
・汎用性
これは、バッチインプットに軍配が上がります。上述のようにあらゆるトランザクション処理を記録して自動実行させるものなので、トランザクションで処理できるものは
全てバッチインプット化可能です。対してBAPIの場合は、SAP社が標準として提供していない機能については利用できません。
・開発
バッチインプットの場合は、一括実行するトランザクション処理の数や行程が増えるとパラメータの準備などに時間を要します。また、トランザクションの画面仕様が変わった場合に作り直しになる可能性があります。
対してBAPIは、入出力パラメータがあらかじめ決められており、アドオンプログラムや
Powershellなどの外部コマンドから呼び出すだけ使えるため、利便性が高いものになります。
アドオンプログラムや外部コマンドから実行する方法は、別の機会に詳細にご説明いたします。
2.ベーシスで利用頻度の高いBAPI
ベーシス運用の中で利用すると各種運用業務を自動化できるものがあります。
ご活用頂ければ作業効率アップに寄与できますので、下記に代表的なものをご紹介いたします。
・SM02_ADD_MESSAGE
トランザクションコード「SM02」で登録するシステムメッセージを自動登録できます。例えば、夜間バッチが起動する時間になったら利用者にログオフを促すなど、毎日同じ時間に実行させることが可能です。
・TH_CHANGE_PARAMETER
トランザクションコード「RZ11」で”動的変更”が可能なプロファイルパラメータを自動的に変更できます。例えば、ダイアログワークプロセスのタイムアウト時間を日中は長めにして、夜間バッチ実行期間は短めにするなど、時間に応じて変更することが可能になります。
※インスタンス再起動が必要な静的変更のパラメータは変更できません。
・THUSRINFO、TH_DELETE_USER
これらはログオンユーザのセッション情報を管理するBAPIになります。例えば、THUSERINFOでログオン中のユーザセッションを取得し、TH_DELETE_USERで取得したユーザセッションを切断するという使い方ができます。夜間バッチ開始前に、ダイアログユーザを完全に追い出す(ログアウト)しデータの不整合の発生を抑止したい場合などに有用です。
・BAPI_USER_LOCK、BAPI_USER_UNLOCK
これは文字通り、ユーザIDをロック・アンロックするためのBAPIになります。
大量のユーザを一括で夜間などのベーシスが不在の時間帯にロック、アンロックしたい場合に使えます。(人がいればトランザクションコード「SU10」で一括対応できますが、夜間・休日等に自動実行させたい場合などに有効)
・BAPI_USER_CREATE、BAPI_USER_CHANGE、BAPI_USER_DELETE
こちらも文字通り、ユーザの一括登録・変更・削除を実施する場合に使われます。各ベンダーにて、EXCELに必要な情報を入力しボタンをクリックすると自動でユーザが作成できるツールなどが提供されています。それらは、このBAPIを活用して作られています。EXCELのVBAにこれらBAPIを呼び出し、入力パラメータを適切に与えることで自動処理が可能で、もちろんベンダー製品に依存せず自作することも可能です。
おわりに
いかがでしたでしょうか。今回は、BAPIについてバッチインプットとの比較から、その有用性を、そしてベーシス運用で利用価値があるBAPIについてご紹介しました。BAPIを活用することにより、手動で工数がかかっていた処理を短時間で遂行することも可能になります。是非活用しみて下さい。次回はこのBAPIの具体的な使い方について紹介したいと思います。