Association定義

11.5 Association定義

Association,Navigation Property,Association Setとは

Association,Navigation Property,Association SetはOData(SAPのGateway/CDSで公開するサービス)の「関係(リレーション)」を表すための用語です。

前提(EntityとEntity Setの違い)

Entity(エンティティ):テーブルの1行分、つまり「レコード」や「オブジェクト」。
例)ある注文の1件。
Entity Set(エンティティセット):そのレコードがたくさん集まった「集合」=テーブル全体。
例)全ての注文明細。

Associationとは

Associationとは、エンティティの間に「どんな関係があるか」を定義するものです。
具体的には「どのフィールドが結びつくか(キー項目)」「親子の多重度(1:Nなど)」を定義するものです。

Associationのイメージ

例えば、下図の場合はヘッダの注文と明細が注文Noで紐づいていて(キー項目は注文No)、
注文:明細は1:Nになる、という関係を持っています。

Association Setとは

Associationがエンティティ同士の関係を表すのに対して、Association SetはEntity Set同士の関係を表します。

Association Setのイメージ

AssociationとAssociation Setの違いは以下のようなイメージです。
Association(アソシエーション)=「関係の設計図(ルール)」
Association Set(アソシエーションセット)=「設計図を実際のデータ集合に当てはめたもの(実際の集合間のリンク)」

Navigation Propertyとは

あるエンティティからほかのエンティティへ移動(リンク)する際、
どのアソシエーションを使うのかを定義するものです。

Navigation Propertyのイメージ

Navigation PropertyはEntity Typeの中に定義される「道の名前」のようなイメージです。
例えば、ユーザーがURLにて「XX/Items」のように入力した場合、 Navigation Propertyを利用して明細を取得できます。

Association定義

Associationを定義するために、まずはEntity Typeを定義します。手順については先述の通りです。

①トランザクションコード:「SEGW」でSAP Gateway Service Builderを実行します。

②対象のプロジェクトを選択して、照会<->変更ボタンを押下します。(変更モードにします。)

③データモデルを選択した状態で、右クリックします。
インポート>DDIC Structureを押下します。

④以下内容を入力します。
・名称:COMP
・ABAP-Struktur:KNB1
※そのほかの項目はデフォルトのままでOK

⑤Weiterボタンを押下します。

⑥以下項目にチェックを入れます。

  • MANDT(クライアント)
  • KUNNR(得意先コード)
  • BUKRS(会社コード)

⑦Weiterボタンを押下します

⑧キー項目にチェックを入れます。
当手順ではKUNNR(得意先コード) をキー項目として登録します。

⑨終了ボタンを押下します。

⑩データモデル>Entity Types>COMPを押下します。
プロパティをダブルクリックすると登録したODataが確認できます。

⑪Associationsを右クリックし、登録ボタンを押下します。

⑫以下内容を入力します

  • Assoziationsname:CUSTOMERandCOMPANY
  • Name Entitätsty:
    CUSTO(1)
    COMP(1)
  • Navigationseig:
    CUSTMERandCOMPANYNav
    (チェックを入れる)

⑬Weiterボタンを押下します。

Association定義の補足①

入力項目について

Association定義の際に入力する項目は以下となります。
①Associationの名前
②紐づけるEntityの名前(左側が親、右側が子)
③カーディナリティ
④Navigation Propertyの名前(チェックを入れる)

カーディナリティとは

カーディナリティとは「1つの親データに子データが何個あるか」を表したものです。
基本的に以下2通りで表されます。
①1対1 (1:1)
②1対多(1:N)

⑭以下内容を入力します。
・Dependent Property:Kunnr
※そのほかの項目はデフォルトのままでOK

⑮Weiterボタンを押下します。

⑯終了ボタンを押下します。
※全項目デフォルトのままでOK

Association定義の補足②

キー設定について

Association定義の際にはエンティティ間を紐づけるためにキー項目を設定します。
当手順ではKunnr(得意先コード)で紐づけています。また、複数設定することも可能です。

Association Setについて

Association定義の際には、同時にAssociation Setも設定します。
入力する項目は以下となります。
①Association Setの名前
②紐づけるEntity Setの名前

⑰実行時オブジェクト生成ボタンを押下します。

⑱「Associations」フォルダ、「Association Sets」フォルダ、「Navigation Properties」フォルダを
それぞれ選択すれば、定義したAssociation,Association Set,Navigation Propertyが以下のように登録されていることを確認できます。

テスト実行

SAP Gateway Clientでテスト実行すると、metadataを確認できます。

①以下内容を入力します。
/sap/opu/odata/sap/ZODATA_YYMMnnn_SRV/$metadata

②実行ボタンを押下します。

metadataの補足

metadata(メタデータ)とは

metadata(メタデータ)とは、データについてのデータ を指します。
データそのものではなく、そのデータを説明する情報のことです。
イメージとして、例えば、本(データ)に対してのメタデータは以下です。
著者名、出版日、ページ数、ISBN番号

SAP ODataのmetadata

SAP ODataサービスでは「$metadata」というURLがあります。
サービスで提供されるエンティティ、プロパティ、型、リレーションなどの情報が
XML形式で書かれています。
ODataクライアントはmetadataを見て、どのようなデータが取得できるかを理解できます。

③Navigation Propertyが確認できます。

④Association,Association Setが確認できます。


NEXT>> 11.6 補足情報

研修の詳細はこちら