LoginSignup
5
9

More than 5 years have passed since last update.

【SAPUI5】OData(5) SAPでのODataサービスの作り方 開発編-1

Last updated at Posted at 2019-01-06

はじめに

今回は、SAPでの実際のODataサービスの作り方について紹介したいと思います。
残念ながら開発環境がないので、以下のページを参考にしながらステップをまとめます。
画像はすべて下記ページからの引用です。
OData and SAP Netweaver Gateway. Part II. Create your first OData Service

※OData関連の投稿一覧は以下の記事をご参照ください。
【SAPUI5】OData(1) ODataとは

ステップ

  1. SAP Gateway Service Builderでプロジェクトを作る
  2. Entity Typeを定義する
  3. ODataサービスを生成する
  4. ODataサービスを有効化する
  5. サービスをテストする

1. SAP Gateway Service Builderでプロジェクトを作る

SAP Netweaver Gatewayの導入パターンによって、HubまたはバックエンドでODataサービスを開発します。
トランザクションコード:SEGWでSAP Gateway Service Builderを実行し、プロジェクトを登録します。
プロジェクト=ODataサービスの単位となります。
登録時点では、以下のように空のフォルダが作られています。
image.png

2. Entity Typeを定義する

構造を一から定義することもできますが、ここでは既存のDDIC構造を参照して登録します。
Data Modelの上で右クリックして、EKKO(POHeader)の構造をインポートします。
image.png

構造から必要な項目だけを選択し、キーを指定します。
インポートの結果、以下のようにEntity Type, Entity SetとService Implementationが追加されます。
Service Implementationとは、データに対する処理ロジックです。(この時点ではガラだけで中身はありません)
image.png

同様にしてEKPO(POItem)のEntity Typeも登録します。
image.png

3. ODataサービスを生成する

実際のODataサービスではNavigation Propertyやデータ取得処理が必要なのですが、ここまでのところで一旦ODataサービスを生成します。
生成ボタン(1)を押すと、ポップアップが出てきます。
Model Provider ClassとData Provider Classの名前が提案されます。
また、Technical Model Name, Technical Service Nameも提案されます。
Technical Service Nameが、ODataサービスを外部に公開する際のサービス名となります。
image.png

Model Provider ClassとData Provider Classとは

Model Provider Class(MPC)はODataのモデルを定義したもので、あまりこちらに手を入れることはないようです。
Data Provider Class(DPC)はデータに対するCRUDの処理やファンクションを定義します。
DPCのExtention Classに処理を書いていくことになります。
image.png

4. ODataサービスを有効化する

有効化の方法はSAP Netweaver Gatewayの導入パターンによって変わります。
Embedded Deploymentの場合、SAP Gateway Service Builderから直接有効化します。
Hub Deploymentの場合はHub側から有効化します。
参考にした手順はHub Deploymentなので、Hub側での有効化となります。
トランザクションコード:/IWFND/MAINT_SERVICEでActivate and Maintain Servicesの画面を開き、新しく作成したサービスをサービスカタログに追加します。
image.png
結果、以下のようにサービスカタログに追加されます。
image.png

5. サービスをテストする

上の画面で左下の"SAP Gateway Client"ボタンを押して実行します。(またはトランザクションコード:/IWFND/GW_CLIENT)
うまくいけば、以下のようにステータスコード200が返ってきます。
※権限のエラーが出る場合があるようです。エラーが出た場合の対処は参考元のページをご参照ください。
image.png

Request URIの欄のアドレスの末尾に"$metadata"を追加すると、Entity TypeとEntity Setが表示されます。
image.png

参考

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

5
9
0

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
5
9