CData Software Blog

クラウド連携のCData Software の技術ブログです。

SAP S/4 HANA Cloud のOData APIの使い方

はじめに

CData Japan技術ディレクターの桑島です。本記事では、SAP S/4 HANA CloudのOData APIを利用する手順をご紹介します。

f:id:kuwazzy:20200304184916p:plain

SAP S/4 HANA Cloudは、インメモリー型データベースエンジン「SAP HANA」を使用したERPアプリケーションのSaaSです。

www.sap.com

SAP S4/HANA Cloudには、SOAPとODataプロトコルで実装されているAPIがあり、外部システムやアプリケーションとデータ連携を行うことが可能です。APIドキュメントは以下のページから参照することができます。

api.sap.com

f:id:kuwazzy:20200304151918p:plain

OData APIとは

ODataではAPIメタデータエンドポイントやフィルタ・並び替えといったパラメータで指定するような仕様が定められています。これにより、ODataインタフェースを標準で持っているツール(Power BIなど)からはノーコードでSAP S/4 HANAのデータを参照することができます。ODataのプロトコル仕様については以下ページをご参照ください。

www.odata.org

SAP S/4 HANA CloudのOData APIを利用する手順

API References からの実行

本手順では、Sales Order(受注)についてのAPIを使用していきます。API Referenceの検索ボックスにて「sales order」と検索します。するとSales Orderに関連するAPI Referenceが検索されました。

f:id:kuwazzy:20200304162801p:plain

ちなみに、(A2X)、(A2A)の違いは以下の通りのようです。目的に応じた方を選んでください。今回はA2Xの同期実行を選択しました。

  • A2X (Application to X users) : 同期実行
  • A2A (Application to Application) : 非同期実行

Sales Order (A2X)のAPI Referencesが開きます。API Environmentが「Sandbox」になっている頃を確認して「GET : /A_Sales_Order」の「Try out」ボタンをクリックします。

f:id:kuwazzy:20200304163344p:plain

するとリクエストパラメータを設定する画面に切り替わります。今回は最初の10件だけを返すように$topに「10」とセットして下の方のExecuteボタンをクリックしてください。

f:id:kuwazzy:20200304163606p:plain

APIからレスポンスが正しく受け取れた場合、Codeは200を返します。

f:id:kuwazzy:20200304163751p:plain

Request URLにて、実際に上記で設定したパラメータがURL内のパラメータとしてセットされていることを確認できます。

https://sandbox.api.sap.com/s4hanacloud/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder?%24top=10

実際のレスポンスとしてAPIから戻ってきたJSON形式データはResponse Bodyのところで確認できます。

なお、今回はSandbox環境でアクセスしましたが、Production(本番)環境にアクセスしたい場合は、API Environment > Configure Environmentsより変更することができるようです。

f:id:kuwazzy:20200304164201p:plain

API Cockpit(BETA) からの実行

API Referencesには、API Cockpit(BETA)と呼ばれる別なAPIをリクエストできる機能があります。BETAとついている通り、現在(2020/03/04時点)はまだベータ版としての提供となっています。

f:id:kuwazzy:20200304164339p:plain

API Cockpit(BETA)をクリックすると下記のようなAPIを追加を促す画面が開きます。「Browse and Add」をクリックします。

f:id:kuwazzy:20200304164551p:plain

APIsの検索ができるウィンドウが開くので、「sales order」で絞り込んでみて「Sales Order (A2X)」を追加してみます。

f:id:kuwazzy:20200304164725p:plain

すると「Your API List」と左側にリストバーが表示されます。この「API Cockpit(BETA) 」では自分がよく使用するAPIをこのようにリスト化して保存できるようです。便利ですね。

f:id:kuwazzy:20200304164845p:plain

それでは、先の「API References からの実行」の時と同じように10件だけを取得するために、$topに10をセットして「Execute」ボタンをクリックしてみます。ResponseのStatusCodeが200で、ResponseBodeyにJSONデータが返ってくれば成功です。

f:id:kuwazzy:20200304165020p:plain

Postmanからの実行

API References以外の環境からAPIをリクエストするにはAPIKeyが必要となります。APIKeyはAPI Referencesから参照できますので手元に控えておきます。

f:id:kuwazzy:20200304185634p:plain

それではAPI管理ツールのPostmanから実行してみましょう。設定項目は以下の通りです。

(注意)URLパラメータに「$format=json」を追加しないとデフォルトではXMLでレスポンスを返すようです。

リクエストを実行してStatus 200、JSONレスポンスが返ってくれば成功です。

f:id:kuwazzy:20200304185250p:plain

まとめ

以上が、SAP S/4 HANA CloudのOData APIの使い方のご紹介でした。弊社CData Software では、本SAP S/4 HANA CloudのOData APISQLCRUD操作可能なデータドライバ製品を開発販売しております。BIツールやExcel・MS-AccessといったOfficeツールからSAP S/4 HANA Cloudへのデータアクセスが可能な製品です。30日間ご利用いただける評価版もございますので是非こちらもお試しください。

CData OData Drivers www.cdata.com

CData SAP Netweaver Gateway Drivers www.cdata.com

おしまい