SAP ODataの探し方|Web APIを効率的に見つける方法

SAP ODataの効率的な探し方

SAPシステムを扱う開発者やコンサルタントにとって、業務に必要、且つ的確なAPIを素早く見つける作業は、生産性を左右する重要な要素である。

ABAP開発では、汎用モジュール(Function Module)やBAPI(Business Application Programming Interface)を使って、業務データを操作していた。これらは、T-CODE: SE37(汎用モジュールビルダ)やT-CODE: BAPI(BAPIエクスプローラ)を使って、目的の関数を探し出すことができた。

しかし、最近ではWebベースの OData API が主流になりつつある一方、どのAPIがどの業務(たとえば販売伝票登録や購買伝票登録)に対応しているのかを把握するのが難しいという課題がある。そこで、

本記事では、業務アプリを構築するのに必要な、OData API を効率良く探す具体的手順をいくつか紹介する。

S/4HANA時代のSAPのシステム開発において、業務に必要なAPIを迅速に見つけるスキルは、エンジニア、コンサルタント双方に求められる重要な力である。

あのBAPIで出来たことをODataではどう実現するのか?」を知りたい方は、必見の内容となっているので、是非最後まで読んでいただきたい。


ODataとは

ODataの基本的な仕組み、利用シーン、BAPIとの違い、メリット・デメリットなど、ODataについて徹底解説した記事は以下。

目次

OData API を探す方法

本記事では、以下の3つの探し方を、購買関連のBAPI(例:BAPI_PO_CREATE1、BAPI_PO_GETDETAIL)を例に取りながら、Cloud/On-Premiseを問わず、初心者でも解るように紹介する。

Business Accelerator Hub で探す

Business Accelerator Hubとは

Business Accelerator Hub(旧称:SAP API Business Hub)は、SAPが公式に提供するAPIのポータルサイトである。

https://api.sap.com

SAP S/4HANA Cloud、S/4HANA On-Premise、SuccessFactors、Aribaなど、SAPの各種製品向けの OData API や SOAP API が体系的にまとめられている。

このサイトでは、APIの仕様書(エンドポイント、HTTPメソッド、リクエスト例、レスポンス構造など)をオンラインで確認でき、PostmanへのインポートSandbox環境での試験実行も可能である。

  • すべてのAPIがSandboxで試行できるわけではない

購買関連のAPIを検索する手順

購買業務(Purchase)を例に、実際の検索手順を見てみよう。

  1. Business Accelerator Hub にアクセス。
  2. 検索バーに「purchase order」と入力。
    ※ 日本語は通じない。英語で検索するのがポイント
Business Accelerator Hub
  1. 検索結果が表示されたら、「APIs」タブを選択。
  2. フィルタで「SAP S/4HANA」や「SAP S/4HANA Cloud XXX」などを指定し、[Apply]ボタンを押下。
  1. 表示されたAPIの一覧から「Releases」を確認し、ターゲットのS/4HANAのバージョンに適合するAPIを選択。
Releasesの番号より環境に適したOData API を選択

なお、検索結果からAPIの詳細を見るには、SAP Universal ID(旧S-USER)とサービスへのサインインが必要である(検索結果の一覧だけならログインせずに使える)。

Configuration Details」タブに移動すると、サービスを呼び出すためのURLを確認できる。

Configuration Details

フィルタリングのコツ

Business Accelerator Hubの検索では、「Filters」には以下のカテゴリがあるが、使用するのは「Products」で十分だ。

FiltersにProductsを指定

Products の中に「SAP S/4HANA」や「SAP S/4HANA Cloud Public Edition」といった選択肢がある。
これらを指定すれば S/4HANA向けの OData に絞ってフィルタすることができる。

一方、「Countries」は特定の国向けにカスタマイズされた OData を抽出するためのフィルタである。
ただし、日本だからといって「Japan」を選んでしまうと、対象となるデータがまったくヒットしなくなる。
したがって、「Countries」には何も指定しないのが無難だ。

S/4HANAにインストール済みのODataを探す

Webサービスの一覧

オンプレミス環境やプライベートクラウド環境のS/4HANAでは、システムにインストールされているODataサービスを、トランザクションコード /IWFND/MAINT_SERVICE から確認できる。

もし必要なODataサービスが登録されていない場合でも、このトランザクションから手動で追加登録することが可能だ。

さらに、Business Accelerator Hub で見つけたAPIが、自分のS/4HANA環境で使えるかどうかの確認も、このトランザクションを使ってチェックできる。

サービス登録状況を確認する手順

  1. T-CODE: /IWFND/MAINT_SERVICE を起動
    コマンドフィールドから起動する場合は、/n/IWFND/MAINT_SERVICE とタイプして [Enter] 押下。
  2. 「検索」ボタンを押下。
/IWFND/MAINT_SERVICEより「検索」ボタン
  1. 検索語句」に「PURCHASEORDER」と入力して[OK]ボタンを押下。
検索で「PURCHASEORDER]を指定
  1. 検索がヒットすると該当行にジャンプする。
検索結果の該当行にジャンプ
  1. 連続して検索する場合は[OK]ボタンを繰り返し押下。
    検索を中止する場合は[中止]ボタンを押下。

なお、ODataとしての外部公開名は列「外部サービス名」の方である(この例では API_PURCHASEORDER_PROCESS_SRV)。

ODataサービス内容の確認

Webサービスの一覧上でサービス名をクリックし、画面下にある「ICFノード」内のボタン[ブラウザ呼出]ボタンを押下すると、以下のURLを指定したブラウザが起動し、APIの内容をXML形式で参照できる。

http://接続先のサーバ/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/?$format=xml

ODataの一覧からブラウザを呼び出す
ODataサービスで使えるエンティティセットの一覧

上記のXMLからは、このサービスで使えるエンティティセット(データ構造:以下)を確認できる。

エンティティセット意味
A_PurchaseOrder購買伝票ヘッダ
A_PurchaseOrderItem購買伝票明細
A_PurchaseOrderScheduleLine納入日程行
A_PurOrdAccountAssignment勘定設定
A_PurOrdPricingElement価格条件
A_PurchaseOrderNoteヘッダテキスト
A_PurchaseOrderItemNote明細テキスト
A_POSubcontractingComponent外注部品
A_ValAddedSrvcMM_2役務明細

ご覧の通り、購買発注伝票に関連するデータが一通り揃っているので、

このWebサービスは購買発注関連のWebサービス/ODataだな

ということを認識できる。

また、このXMLが見えたということは、接続先のSAPシステムで

  • Gateway設定
  • サービス有効化
  • ICFノード
  • 認証

最低限正しく動作しているという証拠になる。

なお、このサービスのメタデータを参照したい場合は、以下のように上記URLの末尾を「$metadata」に変えればよい。

http://接続先のサーバ/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/$metadata

ICFとは

ICFノードを参照するには、画面下にある「UCFノード」から「設定(SICF)」を開く。

ICF(Internet Communication Framework)とは、SAPシステム内でWebサーバ(SAP ICM)とABAP層をつなぐ仕組みである。つまり、

このURLにアクセスされたら、SAPのどのプログラムを動かすか

を管理しているのがICFである。

ICF設定の呼出し
ICFサービス定義画面

生成AI(ChatGPTなど)で探す

生成AIがもたらす新しいAPI探索アプローチ

従来、OData APIを探すには、SAPの公式ドキュメントや Business Accelerator Hub で検索するのが一般的であった。

しかし、生成AI(ChatGPTやGeminiなど)の登場により、業務キーワードやBAPI名を自然言語で入力するだけで、対応するOData API候補を即座に得られるようになった。

この手法は、特に

BAPIをODataに置き換えたい

という場面で効果を発揮する。

ChatGPTでの具体的な質問例

生成AIを効果的に使うには、質問(プロンプト)の作り方が鍵である。
たとえば次のようなプロンプトを入力すると、OData APIの候補や対応関係が即座に得られる。

例1:BAPIから対応するOData APIを探す場合

BAPI_PO_CREATE1に対応するSAP S/4HANAのOData APIを教えて。

  • 「API_PURCHASEORDER_PROCESS_SRV」や「API_PURCHASEORDER_SRV」が提案され、
  • エンティティセット(/A_PurchaseOrder)まで示される場合もある。

例2:業務キーワードから探す場合

購買発注書を登録・変更するためのSAP OData APIを教えて。

  • 「API_PURCHASEORDER_PROCESS_SRV」などの候補が提示される。
  • さらに従来のT-CODE(ME21Nなど)やBAPIとの対応表も出力してくれることがある。

生成AIで効果的にODataを検索するコツ

質問は業務目的で書く

OData名を知らなくても、「購買伝票を登録するAPI」と、目的を明確にすると高精度に回答される。

システム環境(Cloud or On-Premise)を指定する

AIは環境により異なるAPIを提案できる。
S/4HANA Cloud向けで探して」と明示することで、より適切な回答が得られる。

BAPIとの対応関係を明示する

BAPI_PO_GETDETAIL のOData版」などと質問すると、AIがBAPIとODataの対応を踏まえて回答を返す。

必ず公式で確認する

AIは最新リリースや非公開APIまでは把握していない場合がある。

生成AIの回答をそのまま鵜呑みにするのではなく、公式な検索手法と組み合わせることで最強の探索プロセスが完成する。

つまり、AIが提案されたAPI名を Business Accelerator Hub で検索し、実際に存在することと、仕様を最終確認すること。

プロンプトの例

たとえば次のようなテンプレートを用意しておくと、生成AIで効率的にODataを検索できる。

あなたはSAPの専門家です。
次のBAPIまたは業務要件に対応するOData APIを教えてください。
-システム:S/4HANA Cloud
-対象BAPI:BAPI_PO_CREATE1
-目的:購買伝票の登録
-出力形式:OData API名、Entityセット名、HTTPメソッド

まとめ|BAPIとODataを橋渡しするスキルを持つ

BAPIで扱っていた業務処理を、OData APIでどのように再現できるかを理解することで、開発や連携設計のスピードは飛躍的に向上する。

その一方、OData APIの探索は、従来のBAPI検索に比べて情報の分散度が高く、どのAPIがどの業務に対応しているのかを把握するには経験が求められていた。

しかし今では、Business Accelerator Hub といった公式のポータルサービスに加えて、生成AIを使うことで探索プロセス自体を大幅に短縮できるようになった。

AIで見つけ、Business Accelerator Hubで確認し、実システムで検証する

という3段構えのプロセスを確立することで、SAP開発のスピードと品質を同時に高めることができる。

BAPIを扱った経験のあるエンジニアは、BAPI経由の業務フローや、SAPのデータ構造に精通している点が大きな強みだ。今後は、BAPIとODataを橋渡しできるスキルが、さらに重要になってくるだろう。
加えて、AIを活用して開発の生産性を高めることが、次世代のSAPエンジニアに求められる、価値あるスキルのひとつである。

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

コメント

コメントする

CAPTCHA

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

目次