##はじめに
今回は、SAPでの実際のODataサービスの作り方について紹介したいと思います。
残念ながら開発環境がないので、以下のページを参考にしながらステップをまとめます。
画像はすべて下記ページからの引用です。
OData and SAP Netweaver Gateway. Part II. Create your first OData Service
※OData関連の投稿一覧は以下の記事をご参照ください。
【SAPUI5】OData(1) ODataとは
##ステップ
- SAP Gateway Service Builderでプロジェクトを作る
- Entity Typeを定義する
- ODataサービスを生成する
- ODataサービスを有効化する
- サービスをテストする
###1. SAP Gateway Service Builderでプロジェクトを作る
SAP Netweaver Gatewayの導入パターンによって、HubまたはバックエンドでODataサービスを開発します。
トランザクションコード:SEGWでSAP Gateway Service Builderを実行し、プロジェクトを登録します。
プロジェクト=ODataサービスの単位となります。
登録時点では、以下のように空のフォルダが作られています。
###2. Entity Typeを定義する
構造を一から定義することもできますが、ここでは既存のDDIC構造を参照して登録します。
Data Modelの上で右クリックして、EKKO(POHeader)の構造をインポートします。
構造から必要な項目だけを選択し、キーを指定します。
インポートの結果、以下のようにEntity Type, Entity SetとService Implementationが追加されます。
Service Implementationとは、データに対する処理ロジックです。(この時点ではガラだけで中身はありません)
同様にしてEKPO(POItem)のEntity Typeも登録します。
###3. ODataサービスを生成する
実際のODataサービスではNavigation Propertyやデータ取得処理が必要なのですが、ここまでのところで一旦ODataサービスを生成します。
生成ボタン(1)を押すと、ポップアップが出てきます。
Model Provider ClassとData Provider Classの名前が提案されます。
また、Technical Model Name, Technical Service Nameも提案されます。
Technical Service Nameが、ODataサービスを外部に公開する際のサービス名となります。
####Model Provider ClassとData Provider Classとは
Model Provider Class(MPC)はODataのモデルを定義したもので、あまりこちらに手を入れることはないようです。
Data Provider Class(DPC)はデータに対するCRUDの処理やファンクションを定義します。
DPCのExtention Classに処理を書いていくことになります。
###4. ODataサービスを有効化する
有効化の方法はSAP Netweaver Gatewayの導入パターンによって変わります。
Embedded Deploymentの場合、SAP Gateway Service Builderから直接有効化します。
Hub Deploymentの場合はHub側から有効化します。
参考にした手順はHub Deploymentなので、Hub側での有効化となります。
トランザクションコード:/IWFND/MAINT_SERVICEでActivate and Maintain Servicesの画面を開き、新しく作成したサービスをサービスカタログに追加します。
結果、以下のようにサービスカタログに追加されます。
###5. サービスをテストする
上の画面で左下の"SAP Gateway Client"ボタンを押して実行します。(またはトランザクションコード:/IWFND/GW_CLIENT)
うまくいけば、以下のようにステータスコード200が返ってきます。
※権限のエラーが出る場合があるようです。エラーが出た場合の対処は参考元のページをご参照ください。
Request URIの欄のアドレスの末尾に"$metadata"を追加すると、Entity TypeとEntity Setが表示されます。
##参考
OData and SAP Netweaver Gateway. Part II. Create your first OData Service
Model provider class and data provider class
##関連記事
OData(4) SAPでのODataサービスの作り方 環境編
OData(6) SAPでのODataサービスの作り方 開発編-2