この記事を読むメリット
- CDSビューとは何か、基本的な仕組みを理解できます。
- SAP FioriでCDSビューが利用される理由を理解できます。
- CDSビューの基本的な作成手順を学ぶことができます。
SAP S/4HANAのプロジェクトやSAP Fioriを使用しているプロジェクトでは、「CDSビュー(Core Data Services)」という言葉を目にする機会が増えます。
一方で、オンプレミスのGUIをよく使用しているSAPコンサルタントは「CDSビューとは何なのか」「SE16Nで参照しているテーブルとは何が違うのか」「なぜFioriではCDSビューが必要なのか」と疑問に思う方も多いのではないでしょうか。
本記事では、SAP初心者やSAPコンサルタント、ABAP開発者を対象に、CDSビューの基本的な仕組みから、DBテーブルとの違い、さらに簡単な作成方法までを図解付きでわかりやすく解説します。
この記事のポイント
CDSビューとは?
SAP S/4HANAでは、従来のようにデータベーステーブルへ直接アクセスするだけではなく、CDSビュー(Core Data Services) を利用してデータを取得する仕組みが採用されています。
CDSビューとは、データベーステーブルのデータを必要な形に加工して提供する「仮想的なビュー」です。
例えば、会計伝票のデータを取得したい場合、実際のデータは ACDOCA テーブルに保存されています。しかし、Fioriアプリでは直接ACDOCAを参照するのではなく、CDSビューを経由してデータを取得します。
これにより、複数のテーブルを結合したり、必要な項目だけを取得したり、計算項目を追加したりといった処理を、アプリケーション側ではなくCDSビュー側で定義できます。
イメージ↓
つまり、CDSビューはFioriアプリとデータベースをつなぐ役割を担っています。
ポイント!
- CDSビューはデータを保存する場所ではありません。
- データベーステーブルから必要なデータを取得・加工するための仕組みです。
- SAP FioriではCDSビューを利用してデータを表示します。
なぜCDSビューが必要なの?
SAP S/4HANAでは、SE16Nなどを利用してデータベーステーブルを直接参照することは現在でも可能です。
※Public cloudではテーブル参照できません。
実際に、SAPコンサルタントやABAP開発者は、ACDOCAやMARA、BKPFなどのテーブルを確認するために、日常業務でSE16Nを利用する機会が多くあります。
では、なぜSAPは新たにCDSビューという仕組みを提供したのでしょうか。
その理由は、Fioriアプリや分析機能などで共通利用できるデータモデルを提供するためです。
従来のように各アプリケーションが個別にデータ取得処理を実装すると、同じデータを取得するために何度もSQLやABAPプログラムを作成する必要があり、保守性や再利用性が低下してしまいます。
CDSビューを利用することで、必要なデータの取得方法やテーブルの結合、集計処理などを一か所で定義できます。その結果、Fioriアプリや分析レポートなど複数のアプリケーションから同じCDSビューを再利用できるようになります。
CDSビューとDBテーブル(SE16N)の違い
CDSビューとデータベーステーブル参照(T-CODE:SE16N等)は混同されがちですが、それぞれ役割が異なります。
データベーステーブルは、データを実際に保存する場所です。一方、CDSビューは、データベーステーブルに保存されているデータを取得・加工して提供するための仕組みであり、データそのものは保持していません。
例えば、会計伝票のデータはACDOCAテーブルに保存されています。しかし、FioriアプリではACDOCAを直接参照するのではなく、CDSビューを経由して必要なデータを取得します。
つまり、「データを保存する」のがDBテーブル、「データを利用しやすい形にして提供する」のがCDSビューです。
スクロールできます
| 項目 | データの保存 | データ取得 | 結合 | データ加工ロジック | 主な利用場面 |
|---|
| データベーステーブル | ○ | ○ | SQLやABAPで実装 | SQLやABAPで実装 | データ保存・参照 |
| CDSビュー | × | ○ | CDSで定義可能 | CDSで定義可能 | Fiori、分析 |
CDSビューとDB
CDSビューの種類
SAPでは、CDSビューを役割ごとに階層化して設計することが推奨されています。
一般的には、次の3つのレイヤーで構成されます。
- Basic View
- Composite View
- Consumption View
それぞれ役割が異なるため、目的に応じて使い分けます。
① Basic View
Basic Viewは、データベーステーブルからデータを取得する最も基本的なCDSビューです。
通常は1つまたは少数のテーブルを参照し、後続のCDSビューで再利用されることを目的として作成されます。
例えば、ACDOCAやMARAなどのテーブルをベースにBasic Viewを作成します。
② Composite View
Composite Viewは、複数のBasic Viewを組み合わせて業務データを構成するCDSビューです。
JOINやAssociationを利用し、複数のマスタデータやトランザクションデータを関連付けます。
例えば、販売伝票と得意先マスタを組み合わせたデータモデルなどが該当します。
③ Consumption View
Consumption Viewは、SAP FioriアプリやODataサービスなどから直接利用されるCDSビューです。
画面に表示する項目や検索条件、並び順など、ユーザー向けの設定も定義できます。
※ ODataサービスとして公開する場合は、別途サービス定義(Service Definition/Service Binding)の設定が必要です。
SAP標準のFioriアプリでも、多くのConsumption Viewが利用されています。
- Basic View:DBテーブルを取得する基礎レイヤー
- Composite View:複数のデータを組み合わせるレイヤー
- Consumption View:FioriやODataから利用されるレイヤー
SAP標準CDSビューの命名規則
SAP標準のCDSビューには、用途や役割を表すための命名規則があります。
CDSビュー名の先頭に付いている接頭辞を見ることで、そのCDSビューがどのような目的で作成されているかをある程度判断できます。
代表的な接頭辞は以下のとおりです。
| 接頭辞 | 名称 | 用途 |
|---|
| I_ | Interface View | 他のCDSビューやアプリケーションから再利用される基本的なCDSビュー |
| C_ | Consumption View | SAP FioriアプリやODataサービスから直接利用されるCDSビュー |
| ZI_ | Custom Interface View | お客様独自に作成するInterface View |
| ZC_ | Custom Consumption View | お客様独自に作成するConsumption View |
CDSビュー命名
なお、「種類(3レイヤー)」と「接頭辞(I_ / C_)」は、次のように対応します。
| レイヤー | 接頭辞 |
|---|
| Basic View | I_ |
| Composite View | I_ |
| Consumption View | C_ |
ポイントは、Basic View と Composite View はどちらも「Interface View」に分類されるため、接頭辞は同じ I_ になるという点です。C_ が付くのは Consumption View だけです。
つまり I_ は「Basic・Composite の2つをまとめて表す接頭辞」であり、種類の数(3つ)と接頭辞の数(2つ)が一致しないのはこのためです。
SAP Fioriで標準CDSビューを確認する方法
アプリ:View Browser
ここでは例として検索欄にI_BusinessPartnerを検索してみます。
CDSビューをクリックして項目を確認します。
SAP FioriでCDSビューを作成する方法
SAP S/4HANAでは、CDSビューを作成する方法は主に2つあります。
| 作成方法 | 対象 |
|---|
| ABAP Development Tools(ADT) | 開発者 |
| Custom CDS Views(Fiori) | Key User |
CDSビューの作成方法
本記事はKey Userでも作成できるCustom CDS Viewsの作成方法を紹介したいと思います。
➀アプリ:Custom CDS Viewsを起動
➁新規作成
「Create」をクリックして、新しいCDSビューを作成します。
入力する内容は以下になります。
| 項目 | 説明 |
|---|
| Name | CDSビュー名を入力します。 |
| Label | CDSビューの説明を入力します。 |
| Scenario | 利用目的に応じたシナリオを選択します。 |
Custom CDS View入力内容
Scenarioは用途によって選択する必要があり、代表的なものとして以下があります。
- General
- External API
- Analytical Cube
- Analytical Dimension
では、どのようなCDSビューはどのシナリオを選択したらよいでしょうか。
| Scenario | 説明 | 主な用途 |
|---|
| General | 一般的なデータ取得を目的としたCDSビューです。 | Fioriアプリや他のCDSビューから利用するデータソースを作成する場合 |
| External API | 外部システムへODataサービスとして公開するためのCDSビューです。 | 他システムとのデータ連携 |
| Analytical Cube | 集計対象となるトランザクションデータ(売上金額、数量など)を扱う分析用CDSビューです。 | 分析レポートやダッシュボードの作成 |
| Analytical Dimension | 分析時の軸となるマスタデータを提供するCDSビューです。 | 得意先、製品、会社コードなどのマスタ情報 |
シナリオ用途
初めてCustom CDS Viewsを作成する場合は、一般的なデータ参照用途で利用される「General」を選択するケースが最も多くなるでしょう。
③ データソースを選択する
続いて、CDSビューの基となるデータソースを選択します。
通常はSAP標準のReleased CDS Viewを指定します。
例:
- I_BusinessPartner
- I_Material
- I_GLAccount
- I_JournalEntryItem
④ 項目を追加する
画面左側から必要な項目を選択し、出力項目として追加します。
⑤ プレビューで結果を確認する
設定が完了したらPreview機能を利用し、取得されるデータを確認します。
取得項目やフィルタ条件に問題がないかを事前に確認できます。
⑥ Publishする
問題がなければCDSビューをPublishします。
公開後は、利用シナリオに応じてFioriアプリや分析レポート、ODataサービスなどから利用できるようになります。
Custom CDS ViewsではABAPコードを書く必要がなく、GUI操作のみでCDSビューを作成できます。
一方で、複雑なロジックを実装する場合は、ABAP Development Tools(ADT)を利用したCDS開発が必要になる場合があります。
まとめ
本記事では、CDSビューの概要やDBテーブルとの違い、SAP標準CDSビューの命名規則、そしてSAP Fioriの「Custom CDS Views」を利用した作成方法について解説しました。
CDSビューは、SAP S/4HANAにおけるデータアクセスの中核となる技術です。
DBテーブルのデータをそのまま参照するのではなく、必要なデータを効率よく取得・加工できることが大きな特徴です。
また、Custom CDS Viewsを利用すれば、ABAPコードをコーディングしなくてもCDSビューを作成できるため、Key Userでも比較的容易にデータモデルを作成できます。
CDSビューは何か、従来のSE16Nでアクセスするデータベーステーブルとの違いとFioriアプリでカスタムCDSビューを作成する方法について、よく理解できました!
CDSビューの基本的な仕組みを理解しておくことで、Fioriアプリや各種分析機能のデータ構造を理解しやすくなり、SAP S/4HANAの開発や運用にも役に立つぞ!