2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SAP Developer拡張を実プロジェクトで利用する際の新旧オブジェクトの調査方法

Last updated at Posted at 2024-12-20

はじめに

「Developer拡張」は従来のABAP開発とは大きく異なり、採用には高いハードルがあります。例えば、従来の標準テーブルやBAPI、汎用モジュールが使えず、新たに公開されたAPIを利用する必要があります。

本記事では、従来のSAP標準テーブルやBAPI、汎用モジュールから対応する公開APIを探す方法に焦点を当て、「Developer拡張」を使った開発のハードルを下げることを目指します。

前提環境

S/4HANA2022以降のオンプレミスもしくはPCE環境にアクセスできることを前提にしています。(社内にある検証環境などを想定)

新旧オブジェクトの調査方法

結論から書くと、テーブル「ARS_W_API_SCCSSR」に新旧オブジェクトの対応が格納されているため、このテーブルの項目「Subobject Name」に対して、従来のアドオン開発で利用してきた標準テーブル、BAPI、汎用モジュールなどを指定して検索することにより、それに対応する新オブジェクトがわかるようになります。
以下にいくつか例を示します。

  • SAP標準テーブルVBAK(販売伝票ヘッダ)に対応する公開APIは何か?
    DDLSのI_SALESDOCUMENTと検索できましたので、VBAKに対応するCDSViewがI_SALESDOCUMENTであることがわかります。
    image.png

  • 受注登録のBAPI「BAPI_SALESORDER_CREATEFROMDAT2」に対応する公開APIは何か?
    BDEFのI_SALESORDERTPと検索できましたので、BAPI_SALESORDER_CREATEFROMDAT2に対応するbusiness objectがI_SALESORDERTPであることがわかります。
    image.png

  • 番号範囲の取得汎用モジュール「NUMBER_GET_NEXT」に対応する公開APIは何か?
    CLASのCL_NUMBERRANGE_RUNTIMEと検索できましたので、NUMBER_GET_NEXTに対応するクラスがCL_NUMBERRANGE_RUNTIMEであることがわかります。
    image.png

テーブル「ARS_W_API_SCCSSR」の発見の経緯と注意事項

発見の経緯

ADT上でのABAPコーディング時において、旧オブジェクトを使用した際のエラーメッセージには代替オブジェクトの提案が記載されています。
これがどのようなやり方で実装されているかをデバッグなどをして調査した結果、「ARS_W_API_SCCSSR」を発見しました。

注意事項

上記のとおり、本記事の内容は SAP社が公開している情報ではありません。
将来的にこのテーブルが維持発展していくかどうかなどは不明です。
新旧オブジェクトの保証をしているのかどうかについても不明です。
これらの点に留意した上での利用をお願いします。

終わりに

筆者個人は実務として長年ABAP開発に関わってきましたが、Developer拡張はまさしく令和のABAPと呼ぶにふさわしい進化を遂げた開発手法であると同時に、これまでABAP開発をされてきた方にとっては、とっつきにくい部分が多々あると思います。
そういった中でも、このような記事を書くことにより、Developer拡張をする際の「現場の知恵」のような実務としてのお役立ち情報を提供することで、皆様のプロジェクトでDeveloper拡張が広まっていく一助となればと思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?