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が確認できます。