コンポジットビューの編集
2. コンポジットビューの編集
コンポジットビューの編集
① 以下の内容を参考にアノテーションを編集していきましょう。
| アノテーションの種類 | 内容 | 値 |
|---|---|---|
| @AbapCatalog.sqlViewName | ABAPディクショナリに登録される、CDSビュー名となる | ZIYYMMnnn_s5_1 |
| @AbapCatalog.compiler.compareFilter |
フィルターの評価の仕方
|
True |
| @AbapCatalog.preserveKey | 参照するテーブルのKeyをCDSビューのKeyとする | True |
| @AccessControl.authorizationCheck | ABAPから呼ばれた場合の権限チェック | #NOT_REQUIRED |
| @EndUserText.label | CDSビューの内容説明(60文字) | 任意 |
このように、アノテーションの編集まではベーシックビューと同じ流れで作成していきます。
② 定義部分(データ取得元テーブル、項目定義)の編集を行います。
| 変更概要 | 変更箇所 | 変更値 |
|---|---|---|
| data_source_name |
define view ZIYYMMnnn_SAMP5_1 as select from data_source_name |
define view ZIYYMMnnn_SAMP5_1 as select from ZIYYMMnnn_SAMP4_3 |
| 結合条件① | – |
left outer join zclass_details as class on cls_det.class = student.class and cls_det.deleted = ” |
| 結合条件② | – |
inner join ZI2409HUB_SAMP_SUM as payment on payment.payer_id = student.student_id |
| 項目 |
{ } |
{ //ZIYYMMnnn_SAMP4_3 key student.student_id as student_id, student.first_name as first_name, student.last_name as last_name, cast(student.class as abap.int4) as class, //zclass_details cls_det.teacher_name as teacher_name, //ZIYYMMnnn_SAMP_SUM payment.amount_sum as amount, payment.currency as currency } |
❏ ビューの確認
このCDSビューは、以下3つの情報を1つの結果セット」にまとめるためのコンポジットビューです。
❏ ビューの内容
1.学生の基本情報(students)
・学生ID
・氏名(first_name / last_name)
・クラス(class)
2.クラスの詳細情報(zclass_details)
・担任教師(teacher_name)
3.学生ごとの支払金額
・支払合計額(amount_sum)
・通貨(currency)
つまり、これは「学生情報 + クラスの教師情報 + 支払合計金額」をまとめて取得するビューです。
結合条件についてみてみましょう。
ER図とは?
ER図とはデータの関係を分かりやすくした図のことです。
複数のテーブル・ビューを結合する際に視覚的に関係が分かるため、実務でもしばしば用いられます。
解説(結合条件)
今回は「生徒から担任へ支払う金額や日付を確認する」ビューを作成しています。
そのため、支払テーブルは内部結合です。支払がある生徒だけを出力します。
クラス詳細テーブルは外部結合です。
支払はあるが、担任(支払先)が未定の場合などのケースも表示させたいため、外部結合でなければなりません。
また、削除フラグは結合条件にする場合もあれば抽出条件にする場合もあります。
- 結合条件(JOINのON句)にする場合は、そもそも削除データを結合しないためパフォーマンスが向上します。
- 抽出条件(WHERE句)にする場合は、結合はするがその後で削除されていないデータだけを選びます。削除済みかどうかに関係なく結合されるので、後で「削除されたデータも確認したい」という場合でも柔軟に対応できます。
このように、結合する条件を要件にあわせて適切に設定することが大切です。
CAST(型変換)についてみてみましょう。
コンポジットビューのCAST(型変換)について
前述の通り、コンポジットビューは中間ビューとしての役割を持つため
出力項目の型変換は「画面表示のため」ではなく、結合や抽出、計算など
「内部処理を行いやすくするため」に実施されることがほとんどです。
例えば、下図のような条件がある場合、
NUMC型はあくまでも文字列のため、条件式に不等号を用いることができません。
INT型などの数値に変換することで、不等号を使用することができます。
(チェック Ctrl + F2) を押下します。
(有効化 Ctrl + F3) を押下します。
これで、コンポジットビューが編集されました。