SAPトランザクションコードの代わりになるBAPIの一覧

トランザクションコードの代わりになるBAPIのリスト

SAPのトランザクションコード(T-CODE)を呼び出してデータの一括登録を行うバッチインプットは、SAPシステムにデータを一括登録する強力な手段だ。しかし、バッチインプットに対応していないトランザクションコードは存在する。

そんな時は、トランザクションコードの代わりになるBAPI(Business Application Programming Interface)を使うのがおすすめだ。

本記事は、トランザクションコードを代替するBAPIとは何かを説明し、BAPIを使うことのメリット、そして、各トランザクションコードに対応するBAPIの一覧を発表する。BAPIを探すのが面倒な時は、本記事のBAPIの一覧から探してみてほしい。


バッチインプットできない色々なトランザクションコードを解説した記事は以下。

目次

トランザクションコードの代わりになるBAPI

BAPIとは

SAPのBAPIは、外部システムやアプリケーションがプログラムを通じて業務を実行するための、SAPが提供している標準インターフェースである。

バッチインプットは、トランザクションコード=画面操作を模倣して処理を行う。一方、BAPIはトランザクションの画面操作を経由せず、直接SAPシステムの内部処理やデータにアクセスするため、プログラムからシステムの操作を、より効率的に行うことができる。データ処理完了時のコミットやロールバックといったトランザクション制御など、バッチインプットよりも柔軟、且つ細かな制御をすることも可能だ。

バッチインプットは画面操作を模倣するため、画面デザインやバージョン違いなど、システム変更の影響を受けやすいが、BAPIの仕様は安定しており、システム変更の影響を受けにくいという特長もある。

BAPIはSAP社も推している

バッチインプットはSAP GUI+トランザクションコードをベースにしているが、S/4HANAにバージョンアップしてからのUI(ユーザーインターフェース)は「Fiori」が中心である。しかし、Fioriはバッチインプットには対応していない。そして、今後、新しい機能がリリースされる時、UIはSAP GUIではなくFioriが前提となることが、ほぼ確実である。

SAP GUIをベースとした新機能のリリースが見込めないということは、SAP GUIをベースとしたバッチインプットも今後は出番が少なくなると予想される。実際、SAP社も、バッチインプットではなくBAPIを推奨している。たとえば、SAP Note #216806(新しい転記トランザクションとバッチインプット)には、「長期的には、対応する BAPI を使用することをお奨めします」という記述がある。

SAP社もバッチインプットではなく、BAPIを推しているのだ。

BAPIを使うことのメリット

バッチインプットができないことをBAPIはできる

バッチインプットもBAPIも、SAPシステムにデータ登録を行う手段であるが、BAPIの方が柔軟性がある。バッチインプットが使えないトランザクションコードでも、BAPIならトランザクションコードと同じデータ処理を実行できる場合が少なくない。

バッチインプットは、トランザクションコードを実行する時の画面(SAP GUI)操作をトレースしてデータを入力する方法である。しかし、一部のトランザクションコードは特殊な画面要素(例:動的な画面の遷移、Enjoyトランザクション、ALVグリッドなどのカスタムコントロールなど)を使用しており、バッチインプットで処理できない場合がある。

一方のBAPIは、SAPシステムのオブジェクトに直接アクセスして操作を行うプログラミングインターフェースであり、SAP GUIを経由せずにビジネスロジックを呼び出すため、画面の制約を受けない。

そのため、バッチインプットが使えないトランザクションでも、BAPIを利用することで同じ処理を実現できるのだ。


BAPIはバッチインプットと比べ、ハードルが高いとされている。それは、ABAPプログラムの知識が必要であり、初心者向きではないから。そのような、BAPIのメリットだけでなく、デメリットについても解説した記事は以下。

サードパーティのデータ登録ツールを利用できる

BAPIを利用するには、通常はアドオンと呼ばれるカスタムプログラムを開発する必要がある。しかし、サードパーティーのツールを使えば、プログラムを開発しなくてもBAPIを利用することが可能だ。ツールを活用することで、アドオンの開発を抑制し、開発コストを削減できる。

以下は、BAPIを使ってSAPシステムにデータを一括登録できる、サードパーティ製データ登録ツールの一覧である。これらの製品を利用すれば、アドオンを開発しなくても、BAPIを利用してデータの一括登録が可能だ。

ツール名称販売/開発元特長
ConnectPlusクレスコ・イー・ソリューションノンプログラミングで効率的にデータ連携が可能。Excelやクラウドサービスとのリアルタイム双方向連携をサポートしている。
MALSY三菱電機インフォメーションシステムズExcelからSAPシステムへ直接データ登録が行える。バッチインプットとBAPIをサポート。エンドユーザーがSAPシステムを意識せずに操作可能で、エラーメッセージやステータスを即時にExcelに返す機能も備えている。
Precisely Automate
(旧Winshuttle)
PreciselySAPデータの抽出や更新を行うためのツールで、ExcelやAccessと連携し、BAPIを利用したデータ登録にも対応している。
UiPath SAP AutomationUiPathRPAの代表的な製品であるUiPathは、SAPシステムの操作の自動化も可能であり、BAPIやGUIベースのトランザクションにも対応している。
Syniti Data WorkBenchクライム/SynitiExcelを介してSAPシステムとのデータ連携を簡素化する。プログラミング不要で3ステップの簡単操作、迅速な導入、高品質なデータ入力、効率的なプロセスを実現。
BAPIを利用するサードパーティのデータ登録ツール

なお、BAPIではなくバッチインプットを利用するサードパーティ製のデータ登録ツールは、以下の記事で紹介している。

BAPIを探そう

トランザクションコードと異なり、BAPIは SAP GUI の「SAPメニュー」に表示されないので、自分で探す必要がある。目的に合うBAPIを探すには、以下の記事を参考にしてほしい。BAPIの探し方を4パターン紹介している。

トランザクションコードに対応したBAPIの一覧

BAPIを探す時間がない読者のために、筆者が確認済みのBAPIの一覧を、本記事で紹介する。目当てのトランザクションコードに対応するBAPIが、下の一覧の中に見つかれば幸いだ。

以下は、データ登録および更新(削除)のトランザクションコードに対応するBAPIの一覧である。筆者が実際に使っことのあるBAPIを集めてみた。

CO: 管理会計

T-CODEトランザクション名
Transaction Name EN
トランザクション名
Transaction Name JA
対応するBAPI
Corresponding BAPI
KO01Create Internal Order内部指図登録BAPI_INTERNALORDER_CREATE

FI: 財務会計

T-CODEトランザクション名
Transaction Name EN
トランザクション名
Transaction Name JA
対応するBAPI
Corresponding BAPI
F-02Enter G/L Account Posting一般転記入力BAPI_ACC_DOCUMENT_POST
FB01Post Document伝票転記BAPI_ACC_DOCUMENT_POST
ABZONAcquis. w/Autom. Offsetting Entry自動相殺仕訳のある取得BAPI_ASSET_ACQUISITION_POST
AS01Create Asset Master Record資産マスタ登録BAPI_FIXEDASSET_CREATE1

MM: 在庫購買管理

T-CODEトランザクション名
Transaction Name EN
トランザクション名
Transaction Name JA
対応するBAPI
Corresponding BAPI
MB01Post Goods Receipt for PO購買発注入庫登録BAPI_RESERVATION_CREATE
MB1AGoods Withdrawal出庫登録BAPI_GOODSMVT_CREATE
MB1BTransfer Posting在庫転送登録BAPI_GOODSMVT_CREATE
MB1COther Goods Receipts発注外入庫登録BAPI_GOODSMVT_CREATE
MBSTCancel Material Document入出庫伝票取消BAPI_GOODSMVT_CANCEL
ME21Create Purchase Order購買発注登録BAPI_PO_CREATE1
ME21NCreate Purchase Order購買発注登録BAPI_PO_CREATE1
ME22Change Purchase Order購買発注変更BAPI_PO_CHANGE
ME51Create Purchase Requisition購買依頼登録BAPI_PR_CREATE
ME51NCreate Purchase Requisition購買依頼登録BAPI_PR_CREATE
ME52Change Purchase Requisition購買依頼変更BAPI_PR_CHANGE
ME52NChange Purchase Requisition購買依頼変更BAPI_PR_CHANGE
MI01Create Physical Inventory Document実地棚卸伝票登録BAPI_MATPHYSINV_CREATE
MI02Change Physical Inventory Document実地棚卸伝票変更BAPI_MATPHYSINV_CHANGECOUNT
MI04Enter Inventory Count with Document実地棚卸検数の入力 (伝票あり)BAPI_MATPHYSINV_COUNT
MI05Change Inventory Count棚卸検数変更BAPI_MATPHYSINV_CHANGECOUNT
MI07Process List of Differences棚卸差異一覧処理BAPI_MATPHYSINV_POSTDIFF
MIGOGoods Movement在庫移動BAPI_GOODSMVT_CREATE
BAPI_GOODSMVT_CANCEL
MIROEnter Incoming Invoice請求書受領入力BAPI_INCOMININVOICE_CREATE1
MM01Create Material &品目 & 登録BAPI_MATERIAL_SAVEDATA
MM02Change Material &品目 & 変更BAPI_MATERIAL_SAVEDATA

PP: 生産計画管理

T-CODEトランザクション名
Transaction Name EN
トランザクション名
Transaction Name JA
対応するBAPI
Corresponding BAPI
CA01Create Routing作業手順登録BAPI_ROUTING_CREATE
CO01Create Production Order製造指図登録BAPI_PRODORD_CREATE
CO02Change Production Order製造指図の変更BAPI_PRODORD_CHANGE
CO11Enter Time Ticket作業記録票入力BAPI_PRODORDCONF_CREATE_TT
CO11NSingle Screen Entry of Confirmations確認の単一画面入力BAPI_PRODORDCONF_CREATE_TT
CO40Convert Planned Order計画手配変換BAPI_PRODORD_CREATE_FROM_PLORD
CO41Coll. Conversion of Planned Orders計画手配一括変換BAPI_PRODORD_CREATE_FROM_PLORD
COR1Create Process Orderプロセス指図登録BAPI_ALM_ORDER_MAINTAIN
COR2Change Process Orderプロセス指図変更BAPI_ALM_ORDER_MAINTAIN
CR01Create Work Center作業区登録CRAP_WORKCENTER_CREATE
CR02Change Work Center作業区変更CRAP_WORKCENTER_CHANGE
CS01Create Material BoM品目 BOM 登録CSAP_MAT_BOM_MAINTAIN*1
BAPI_MATERIAL_BOM_GROUP_CREATE
BAPI_BOM_UPLOAD_SAVE
CS02Change Material BoM品目 BOM 変更CSAP_MAT_BOM_MAINTAIN*1
CSAP_MAT_BOM_DELETE*1
BAPI_MATERIAL_BOM_GROUP_CREATE
BAPI_BOM_UPLOAD_SAVE
MB31Goods Receipt for Production Order製造指図入庫登録BAPI_GOODSMVT_CREATE
MD11Create Planned Order計画手配登録BAPI_PLANNEDORDER_CREATE
MD12Change Planned Order計画手配変更BAPI_PLANNEDORDER_CHANGE
BAPI_PLANNEDORDER_DELETE
MD61Create Planned Indep. Requirements計画独立所要量の登録BAPI_REQUIREMENTS_CREATE
MD62Change Planned Indep. Requirements計画独立所要量の変更BAPI_REQUIREMENTS_CHANGE
MS11LTP: Create planned orderLTP: 計画手配登録BAPI_PLANNEDORDER_CREATE
MS12LTP: Change planned orderLTP: 計画手配変更BAPI_PLANNEDORDER_CHANGE
BAPI_PLANNEDORDER_DELETE

*1: S/4HANAのバージョンによってはブロックリストに登録されており使用不可。

PS: プロジェクト管理

T-CODEトランザクション名
Transaction Name EN
トランザクション名
Transaction Name JA
対応するBAPI
Corresponding BAPI
CJ01Create Work Breakdown StructureWBS 登録BAPI_PROJECT_MAINTAIN
CJ02Change Work Breakdown StructureWBS 変更BAPI_PROJECT_MAINTAIN
CJ06Create Project Definitionプロジェクト定義登録BAPI_PROJECT_MAINTAIN
BAPI_PROJECTDEF_CREATE
CJ07Change Project Definitionプロジェクト定義変更BAPI_PROJECT_MAINTAIN
CJ20NProject BuilderプロジェクトビルダBAPI_BUS2001_CREATE
BAPI_BUS2054_CREATE_MULTI
BAPI_BUS2002_CREATE
BAPI_BUS2002_ACTELEM_CREATE_M
BAPI_NETWORK_COMP_ADD
CJR2PS: Change plan CElem/Activ. inputPS: 計画原価要素/活動投入量の変更BAPI_COSTACTINPUT_POSTACTINPUT
BAPI_COSTACTINPUT_POSTPRIMCOST

SD: 販売管理

T-CODEトランザクション名
Transaction Name EN
トランザクション名
Transaction Name JA
対応するBAPI
Corresponding BAPI
VA01Create Sales Orders受注登録BAPI_SALESORDER_CREATEFROMDAT2
VA02Change Sales Orders受注変更BAPI_SALESORDER_CHANGE
VF01Create Billing Documents請求伝票登録BAPI_BILLINDOC_CREATE
BAPI_BILLINDOC_CREATEFROMDATA
BAPI_BILLINDOC_CREATEMULTIPLE
BAPI_BILLINGDOC_CREATEMULTIPLE
VL01NCreate Outbound Dlv. with Order Ref.出荷伝票登録 (受注参照)BAPI_OUTB_DELIVERY_CREATE_SLS
VL01NOCreate Outbound Dlv. w/o Order Ref.出荷伝票登録 (受注参照なし)BAPI_OUTB_DELIVERY_CREATE_SLS

モジュール非依存

T-CODEトランザクション名
Transaction Name EN
トランザクション名
Transaction Name JA
対応するBAPI
Corresponding BAPI
BPMaintain Business Partnerビジネスパートナ更新BAPI_BUPA_CREATE_FROM_DATA

まとめ:バッチインプットできない時はBAPIを使おう

SAPシステムにおけるデータ入力の自動化手段として、トランザクションコードを自動化するバッチインプットは多くの現場で使われている。しかし、SAP GUIの画面のデザインに依存するため、すべてのトランザクションコードには対応していない。

一方、BAPIはSAP内部のビジネスロジックやデータに直接アクセスするため、バッチインプットが対応できないトランザクションでも、データ登録を行うことができる。

もし、バッチインプットが使えなかったり、苦戦しているトランザクションコードがあるなら、BAPIにスイッチすることで、データ登録が上手くいくかもしれない。SAP社も、長期的にはBAPIの利用を推奨している。

バッチインプットできないならBAPIを使う」という選択肢を、本記事のトランザクションコードに対応するBAPIの一覧を参考に、ぜひ検討してみてほしい。

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

コメント

コメントする

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

目次