【工事中】CDSの留意点
注:草案中ですが一旦公開します。
頻繁に更新するのでご了承ください。
SAP S/4HANAで追加された機能である CDS(Core Data Services)は、その名のとおり、中核となるデータを提供する実装方法の総称です。
CDSコードの書き方が Select文に似ていることや、CDSを有効化した後にDB Viewが自動生成されることから、CDSについて少々誤解されている面があるようです。そのような誤解を少しでも解消できるよう、留意点をいくつかまとめました。
5つの留意点
CDSには多くの特徴があります。しかし、CDSコードがSelect文に似ていることから誤解している方も少なくないようです。私が特に留意してほしいと思う点を5つ挙げます。
1.CDS(Basic)は、概念ERDをCDSコードに変換して作成し、
必要な Annotation などを追加して作成する。
2.Select文を自動生成する機能である。
3.DBMSである SAP HANA を十分に引き出すためには、CDS設計だけ
でなく、適切に設計されたDBテーブルが前提となる。
4.クライアント機能を自動生成する機能も持つ。
5.CDSコードそのものが設計書である。
留意点1~5の補足
留意点1
留意点1から、CDS(Basic)を設計する場合には、概念データモデリングのスキルが必要だと言えます。
今までは、物理データモデル(DBテーブルやDBビューなど)やSelect文の実装を重視し、概念データモデルを軽視してきた技術者が多いのではないでしょうか。そのような技術者が CDS(Basic)を適切に設計するのは困難です。CDSだけでなく、概念データモデリングについても学びましょう。
留意点2
CDSコードは、(SAP HANA用のSQL仕様に合う)Select文に変換されます。そして、そのSelect文がSAP HANAに対して発行されます。そのSelect文は、SAP用語でいえば「Native SQL」にあたります。
CDSコードがSelect文に似ていることから、Select文のつもりでCDSコードを書くことが多いと思います。CDSの学び始めはその姿勢でもよいのです。しかし、ある程度慣れてきたら、どのようなSelect文(しかも、Native SQL)が自動生成されるのかも意識するようにしましょう。
留意点3
留意点3から、CDSを設計する前に適切なDBテーブル設計が必要だと言えます。
これは、一般的なSelect文を考える場合と同じです。そのため、特徴(2-a)から導ける特徴です。しかし、DBテーブル設計が不慣れまたは未経験な場合には気づきにくいので、留意点として挙げました。
留意点4
ここでいう「クライアント機能」は、SAPでいえば、SAP Fiori アプリケーションや、SAP BI アプリケーション(SAP Analytics Cloud など)などを指します。
これらのクライアント機能をノーコード・ローコード開発する場合は、呼び出すCDSコードの定義を元に自動生成することから始めます。CDSを設計する場合は、クライアント機能のことも考慮することが求められます。
なお、SAP Fiori アプリケーションの場合は、Webアプリケーションに関するスキルも必要になります。また、SAP BI アプリケーションの場合は、BI や DWH(Data Warehouse)モデリングに関するスキルも必要になります。
留意点5
結論からいえば、CDSの理解が深まれば分かることですが、CDSコードを使わずに、CDSの仕様を正確に伝えることは不可能です。したがって、一般的なプログラミング設計書のようなドキュメントに頼らずに、CDSコードを書くスキルが求められます。
ただし、留意点1にある概念ERDや、複数のCDSの関係を表す図(※)などのドキュメントについては作成したほうが望ましいです。技術者間の議論や保守などで役に立つので。