プロジェクト作成
11.2 プロジェクト作成
SAP Gateway Service Builderでプロジェクトを作る
SAP Netweaver Gatewayの導入パターン
SAPでは、ODataサービスを作るときに次の2つの方法があります。
❏Hub方式
・ODataサービスを専用のGatewayサーバーで作成する方式
・UIと処理を分離でき、複数システムを接続する場合に向いている
❏バックエンド方式
・ODataサービスをS/4HANAなどの同じサーバー内で作成する方式
・シンプルで、一体型の構成になる
ODataサービスを作成する際は、まず「どの方式で作成するか」を選択します。
本手順では、よりシンプルなバックエンド方式を使用してODataサービスを作成します。
ODataサービスを作成するときは、最初にSAPのどこで作成するかを決めます。
当手順ではバックエンドでODataを作成します。
プロジェクト登録
①トランザクションコード:「SEGW」でSAP Gateway Service Builderを実行し、プロジェクトを登録します。
プロジェクト=ODataサービスの単位となります。
②登録ボタンを押下します。
③以下内容を入力します。
- プロジェクト :ZODATA_YYMMnnn(nnnは受講生番号)
- Beschreibung :CUSTOMER DATA
- パッケージ :$TMP
※そのほかの項目はデフォルトのままでOK
④続行ボタンを押下します。(EnterでもOK)
EntityType定義
ODataサービスの中で利用するデータモデルを作成します。
最終的にデータのやり取りを行う上での項目などを定義します。
構造を一から定義することもできますが、当手順では既存の構造を参照して登録します。
①データモデルを選択した状態で、右クリックします。
インポート>DDIC Structureを押下します。
②以下内容を入力します。
- 名称 :CUSTO
-
ABAP-Struktur:KNA1
※そのほかの項目はデフォルトのままでOK
③Weiterボタンを押下します。
④以下項目にチェックを入れます。
- MANDT(クライアント)
- KUNNR(得意先コード)
- LAND1(国/地域)
- NAME1(名称)
⑤Weiterボタンを押下します。
⑥キー項目にチェックを入れます。
当手順ではKUNNR(得意先コード)をキー項目として登録します。
⑦終了ボタンを押下します。
⑧データモデル>Entity Types>CUSTOを押下します。
プロパティをダブルクリックすると登録したODataが確認できます。
EntityType定義手順の補足
KNA1について
KNA1はSAP標準テーブルの一つで、得意先の基本情報を管理するためのテーブルです。
SAPの得意先マスタは、以下の通り複数のテーブルから構成されています。
KNA1 … 得意先の「基本情報」
KNB1 … 得意先の「会社別の情報」
KNVV … 得意先の「販売組織別の情報」
当手順では、SAPが用意している標準のテーブル(構造)
KNA1を参照してODataを登録しています。
また、インポートした構造の全項目をOData化するのではなく、必要な項目を選ぶことができます。
このように、必要最低限のデータをやり取りします。
キー項目について
ODataサービスにおける「Key(キー)」は、
ODataサービス上で個別のデータ(=エンティティ)を特定するための目印です。
例)ODataエンティティに得意先番号(KUNNR)をKeyに設定する
⇒ URLにアクセスすると、得意先番号「10010001」のデータだけをピンポイントで取得できる
URL:https://〇〇/sap/opu/odata/sap/ZCUSTOMER_SRV/CustomerSet(‘10010001’)
ただし、 ODataのKeyはあくまで「ODataの識別用」であり、
データベース上の重複を防ぐための制約(=PRIMARY KEY)ではありません。
つまり、ODataでは一意性の保証は開発者の責任です。
開発者は、一意になるような項目(または組み合わせ)をKeyに設定する必要があります。
OData生成
データモデル作成後、オブジェクトを生成します。
オブジェクト生成しない場合、ODataを利用することはできないので注意しましょう。
①プロジェクトを選択して、実行時オブジェクト作成ボタンを押下します。
②続行ボタンを押下します。(EnterでもOK)
※全項目デフォルトのままでOK
③ローカルオブジェクトボタンを押下します。
④オブジェクトが生成できたことを確認します。
(画面下部に以下のようなオブジェクト生成メッセージが表示できればOK)
OData生成手順の補足
クラス・サービス名について
オブジェクト生成ボタンを押下すると、ODataサービスの構成要素を確認する画面が表示されます。
この画面では、ODataサービスを構成する次の3つの要素を設定します。
モデルプロバイダクラス(Model Provider Class/MPC)
ODataサービスで扱うデータ構造(エンティティ、プロパティ、関連(Association)など)を定義します。
どんなデータ構造を持つサービスにするかを決める、言わばODataの設計書を作るクラスです。
データプロバイダクラス(Data Provider Class/DPC)
データの取得・登録・更新・削除といった処理ロジックを実装します。
テーブルやCDSビューから実際にデータを読み書きする役割を担当します。
サービス登録(Service Registration)
作成したODataサービスを外部から利用できるように登録します。
ここで公開設定を行うことで、Fioriアプリや外部システムからアクセス可能になります。
つまり、
MPCは「データの形」を決める。
DPCは「データの動き」を決める。
この2つを設定し、最後にサービスとして公開します。
全体的な構成は下記のようになります。
・モデルプロバイダクラス(MPC):データの設計図を作る場所
・データプロバイダクラス(DPC):データの処理ロジックを書く場所
・サービス登録:サービスをSAPに公開して使えるようにする作業(公開・有効化)
データプロバイダクラスは一言でいうと「データに対する処理を決めるクラス」です。
たとえば「注文一覧を確認する」「新しい得意先を登録する」といったデータの取得や更新の処理を書きます。
サービス登録は一言でいうと「ODataサービスに名前をつける作業」です。
ODataを利用する場合、SAPシステムに「この名前のODataサービスを使えるようにします」と
登録(=有効化)する必要があります。
サービス登録でつけた名前を使って、ODataを利用できるようにしていきます。