SAP S/4HANA のライブデータを BI ツールから参照するための仕組みを理解しよう


SAP S/4HANA が有する機能の一つとして、SAP S/4HANA embedded analytics と呼ばれる機能があります。SAP S/4HANA embedded analytics は、オペレーショナル・レポーティングを目的としたデータ分析機能や事前定義されたデータモデルなどで構成されます。これにより SAP S/4HANA のデータ構造を気にせずにリアルタイムにビジネスアクションをとるために必要な情報を得ることができます。このため、SAP S/4HANA embedded analytics は、 SAP S/4HANA 上でビジネスプロセスに組み込んで利用することで、お客さまのビジネスの効率化・迅速化をサポートします。SAP S/4HANA embedded analytics については、コチラのブログも参照ください。

しかしながら、SAP S/4HANA embedded analytics は多様化する情報活用のニーズのすべてに必ずしも対応できるとは限りません。「レポートのビジュアライズにこだわりたい」、「情報活用をセルフサービス化したい」、といったニーズに対応するためには、SAP BusinessObjects BI プラットフォームなどの BI ツールが必要になる場合もあります。

本ブログでは、SAP が提供する BI ツールである SAP Lumira, discovery edition から SAP S/4HANA のライブデータを参照するための仕組みと方法をご紹介します。SAP Lumira, discovery editionの詳細についてはコチラのブログを参照ください。

Virtual Data Model (VDM) と Core Data Services (CDS)

SAP Lumira, discovery edition から SAP S/4HANA のライブデータに参照するための仕組みの全体像を下図に示します。

SAP Lumira, discovery edition から SAP S/4HANA のライブデータを参照する仕組み

SAP Lumira, discovery edition から SAP S/4HANA のライブデータを参照する仕組み

SAP Lumira, discovery edition から SAP S/4HANA のライブデータを参照する場合、データベーステーブルを直接参照するわけではありません。ここで重要な概念は、Virtual Data Model (VDM) と Core Data Services (CDS) です。まず、この VDM と CDS について説明します。

VDM は、SAP S/4HANA で利用されている、業務データを表現するための概念です。VDM は、SAP S/4HANA のデータベースモデルの上にセマンティックレイヤを構築して、利用者から物理テーブルの構造などの技術的な詳細を隠すことを目的としています。

CDS は、データモデルを意味的に豊富なかたちで定義、使用することによって生産性、利便性、パフォーマンス、相互運用性を改善するためのドメイン固有言語 (DSL) です。この CDS を利用して実装された VDM が、Core Data Services View (CDS View) と呼ばれるものです。

SAP が提供する CDS の実装には2つのタイプがあります。一つは ABAP CDS、もう一つは HANA CDS と呼ばれています。2つの CDS の大きな違いはサポートしているアノテーション (annotation) が異なることで、ABAP CDS はより多くのアノテーションをサポートします。SAP S/4HANA で使用されている CDS は、ABAP CDS です(以降、断りがない限り、本ブログ中の CDS は ABAP CDS とします)。アノテーションについては後述します。

ちなみに ABAP CDS は、Netweaver 7.4 SP5 以降でサポートされています。ABAP CDS はデータベースに依存しないため、Netweaver 7.4 SP5 以降で動作保証している SAP HANA 以外のデータベースでも利用可能です。

SAP S/4HANA 1610 FPS 01 では、トランザクションとマスタデータテーブルを含むオペレーショナルデータのモデルを表現するための 8,900 を超える CDS View を事前に定義して提供しています。SAP が提供する CDS View は拡張可能です。また、新しい CDS View を作成することも可能です。CDS View は、SAP S/4HANA の ABAP レイヤで開発され、メンテナンスされ、拡張されます。そのため、CDS View のシステム間の移送は SAP の標準のトランスポートプロセスとして管理されます。

CDS アノテーション (annotation)

アノテーション (annotation) は、注記、注釈といった意味の言葉です。CDS アノテーションは、データ定義の際に、データに対してメタデータを付与するために使用します。この CDS アノテーションを利用することによって、「この CDS View は、OData サービスとして外部に公開します」とか「この CDS View は、キューブ (Cube) タイプの View です」とか「この項目は通貨単位を表します」といったようにデータに意味付けをおこなうことができます。アノテーションを付与することは、CDS View を作成する上でとても重要です。

CDS View の作成方法

CDS View の作成は、統合開発環境 Eclipse のプラグインとして提供されている ABAP 開発ツール (ABAP Development Tools for Eclipse) でおこないます。CDS View を作成し、有効化すると ABAP ディクショナリに登録され、SAP HANA データベース上に SQL View が生成されます。

ABAP Development Tools for Eclipse の画面

ABAP Development Tools for Eclipse の画面

ABAP ディクショナリ:ビュー照会(トランザクションコード: SE11)

ABAP ディクショナリ:ビュー照会(トランザクションコード: SE11)

SAP HANA データベース上に作成された SQL View の定義と DDL

SAP HANA データベース上に作成された SQL View の定義と DDL

CDS View と SAP HANA Information View (Calculation View) の違い

「CDS View と Calculation View って同じものですか?」という質問をされることがあります。CDS View は、SAP HANA データベース上では SQL View で、SAP HANA の Calculation View とは異なるものです。CDS View は、アノテーションでセマンティックを付与します。ABAP CDS View のセマンティックは ABAP 上のエンジンで解釈、実行されます。一方、SAP HANA の Calculation View は、Calculation View 定義内でセマンティックを付与します。Calculation View のセマンティックは、SAP HANA 上で解釈、実行されます。

CDS のもう一つの実装である HANA CDS のセマンティックは、SAP HANA 上で解釈、実行されますが、こちらも Calculation View の場合とは異なります。

SAP HANA の Calculation View に、CDS View (の有効化により作成された SQL View) を含めることはできますが、2017 年 10 月時点では CDS View に Calculation View を含めることはできません。

CDS View のタイプを指定するアノテーション

CDS View には、用途に合わせた複数のタイプがあります。それぞれのタイプの View の特徴を紹介します。

Private View

エンドユーザが直接利用しないタイプの View です。変更や拡張は推奨されません。

Interface View

Interface View は、再利用可能な一貫性のある View です。Interface View には、Basic View と Composite View があります。Basic View は Customer や Sales Order といった重複しないコアエンティティを表すために使用します。Composite View は、複数の Basic View を組み合わせて構成された View です。集約や複雑な計算ロジックを含む場合もあります。

Consumption View

Interface View を組み合わせて作成する、外部公開のための View です。BI ツールなどの外部アプリケーションはこのタイプの View にアクセスすることになります。

上記の CDS View のタイプは VDM アノテーションを使用して定義します。

@VDM アノテーション

@VDM アノテーション

 

CDS View のタイプと各タイプの関係

CDS View のタイプと各タイプの関係

 

SAP Lumira, discovery edition から SAP S/4HANA のライブデータを参照する

CDS View を分析アプリケーションに公開するためのアノテーション

CDS View を SAP Lumira, discovery edition などの BI ツールから参照するためには、前述の @VDM アノテーションに加えて、@Analytics アノテーションを付与する必要があります。関連するアノテーションは下表のとおりです。

@Analytics アノテーション

@Analytics アノテーション

 

SAP Lumira, discovery edition から SAP S/4HANA のライブデータを参照するための仕組み

@Analytics.dataCategory アノテーションを付与した CDS View を作成して有効化すると、TransientProvider とよばれる InfoProvider が自動で作成されます。また、@Analytics.query アノテーションの値に true を設定して付与した CDS View を有効化すると、TransientQuery とよばれるクエリが自動で作成されます。SAP Lumira, discovery edition などの BI ツールは、この TransientProvider および TransientQuery にアクセスして、SAP S/4HANA のライブデータを参照することが可能です。

自動で作成された TransientProvider は、Display TransientProvider Preview for Operational Data Provider(トランザクションコード: rsrts_odp_dis)で確認することが可能です。

「ZIFLIGHTBYA」のTransientProvider「2CZIFLIGHTBYA」の定義(トランザクションコード: rsrts_odp_dis)

「ZIFLIGHTBYA」のTransientProvider「2CZIFLIGHTBYA」の定義(トランザクションコード: rsrts_odp_dis)

 

自動で作成された TransientQuery は、クエリモニタ(トランザクションコード: rsrt / rsrt2)で確認・実行することが可能です。また、Fiori Launchpad のクエリブラウザでも確認やクエリを実行してデータを表示することができます。

クエリブラウザの分析クエリの一覧画面

クエリブラウザの分析クエリの一覧画面

 

Z_C_FLIGHTBYAIRPORTQUERY 実行結果

Z_C_FLIGHTBYAIRPORTQUERY 実行結果

 

SAP Lumira, discovery edition から SAP S/4HANA のライブデータを参照してみる

SAP Lumira, discovery edition から、SAP S/4HANA のライブデータを参照してみましょう。SAP S/4HANA のライブデータを参照する場合、Data Source メニューの Databases から、「SAP BW Live Data」を選択します。

Lumira_Opening

SAP S/4HANA のアクセス情報(サーバ、クライアント ID、ユーザ名、パスワード、言語)を入力して接続します。接続すると、データソースを選択する画面が表示されます。データソース選択画面では、 TransientProvider および TransientQuery が選択できます。

接続情報の入力と、データソースの選択

接続情報の入力とデータソースの選択

分析したい TransientProvider または TransientQuery を選択して開いて、データのビジュアライゼーションや、ストーリーボードの作成や共有といった作業をおこないます。

データの視覚化

データのビジュアライゼーション

複数のチャートを組み合わせてストーリーボードを作成

複数のチャートを組み合わせてストーリーボードを作成

 


 

今回は、SAP が提供する BI ツールである SAP Lumira, discovery edition から SAP S/4HANA のライブデータを参照するための仕組みと方法をご紹介しました。

 

ご質問はチャットWebからも受け付けております。お気軽にお問い合わせください。

●お問い合わせ先
チャットで質問する
Web問い合わせフォーム
電話: 0120-554-881(受付時間:平日 9:00~18:00)