本ブログは、S/4HANAと連携したSAP Datasphereでのモデリングのポイント解説 STEP1の続編になります。
ステップごとに全3回のシリーズでご紹介しています。
このブログは、STEP2についてです。
分析モデル構築までの3ステップ
STEP1:ファクトとなる 会計伝票明細データ の連携
STEP2:ディメンションとなるGL勘定階層データ の連携
STEP3:換算レートの連携 と 通貨換算ビューの有効化
STEP2では、GL勘定階層データ を付加することによって、SAP Analytics Cloudのストーリー上でSTEP1で連携した会計データが階層を使って集計されていることが確認できるようにします。併せて、GL勘定コードがテキスト表示されるようテキストデータを連携し、定義していきます。
S/4HANAからGL勘定階層データとテキストデータを連携し、SAP Datasphere上で階層を定義する際に、S/4HANAの階層を表現するデータの持ち方 とSAP Datasphereの階層を表現するデータの持ち方が異なるため考慮が必要です。
S/4HANAから3つの標準CDS View GL勘定階層ノード、GL勘定階層ノード - テキスト、GL勘定 - テキストを連携し、SAP Datasphere上にディメンションビュー(親子階層)とテキストビューを作成します。SAP Datasphere階層を表現するデータの持ち方に合わてデータのレイアウトを変換する処理は、SAP DatasphereのGL勘定階層ビューとGL勘定階層テキストビューの中でそれぞれ行います。
実際のビューの作成内容については作業の流れの中で記載しています。
分析モデル概要
STEP2構成図
使用するCDS Viewの定義のリストを以下に示します。
作業の流れ
1.GL勘定ディメンションビューの作成 と 親子階層定義
2.GL勘定テキストビューの作成 と ディメンションビューへアソシエーション
3.分析モデルへの反映
4.SAP Analytics Cloudストーリーからデータを取得
1.GL勘定ディメンションビューの作成 と 親子階層定義
ディメンジョンビュー(親子階層)を作成し、ソースにGL勘定階層ノードを設定します。
①使用する財務諸表バージョンを抽出
②GL勘定コードの内部書式変換
GL勘定コードは、内部書式(前0ゼロあり)で連携されるため、ABAP_ALPHANUM関数を使用して外部書式(前0ゼロなし)に変換します。
式:
CASE WHEN "NODETYPE" = 'L'
THEN
ABAP_ALPHANUM("HIERARCHYNODEVAL",8)
ELSE "HIERARCHYNODE"
END
ディメンションビュー上で親子階層を設定します。
プレビュー
ファクトビュー GL勘定明細 から GL勘定ディメンションビュー を指定しアソシエーションします。
2. GL勘定階層テキストビューの作成 と ディメンションビューへアソシエーション
次に、1.で定義したGL勘定階層をテキストで表示するために、GL勘定階層テキストビューを作成します。
①上位ノード(最下層のGL勘定コード以外)のテキスト情報を取得
GL勘定階層ノード の 全階層ノードに 左結合で GL勘定階層ノード - テキストから、上位ノードのテキスト情報(最下層のGL勘定コード以外)を取得します。結合前に、特定の財務諸表バージョンをフィルタで抽出しておきます。
次に、②のGL勘定コードと結合するための前処理として、計算(fx)で階層ノードに以下の計算式を作成します。階層ノードタイプが「L」の最下層の階層ノードにGL勘定コードを設定します。GL勘定コードを設定する際に内部書式で前ゼロ埋めされているので、文字列をALPHANUM型に変換して8桁の文字列に戻します。 その後、不要な項目を削除します。
式:
CASE WHEN "NODETYPE" = 'L'
THEN
ABAP_ALPHANUM("HIERARCHYNODEVAL",8)
ELSE "HIERARCHYNODE"
END
プレビュー
GL勘定コードのテキストは②で取得します。
②GL勘定コードのテキストを取得
GL勘定階層ノード-テキストには最下層のGL勘定のテキストを持っていないので、GL勘定テキストから取得します。特定の財務諸表バージョンのGL勘定階層を抽出し、計算(fx)でGL勘定テキストのGL勘定を内部書式のままで0埋めされているので、文字列をALPHANUM型に変換して8桁の文字列に戻します。
式:ABAP_ALPHANUM("GLACCOUNT",'8')
プレビュー
③ ①、②を統合
①と② をGL勘定コードで結合し、テキストを取得します。このとき、言語キーとGL勘定テキストは項目が分かれてしまうため以下の計算(fx)で1つの項目に統合する計算を設定します。
・計算前
テキスト、言語キーがそれぞれ2列に分かれている。
GL勘定階層テキスト と GL勘定テキストの統合
式:IFNULL(HIERARCHYNODETEXT,GLACCOUNTNAME)
言語キーの統合
式:IFNULL(LANGUAGE, LANGUAGE_2)
・計算後
それぞれの項目が統合された。
ビューの定義が完了したら属性のセマンティックタイプを以下のように設定します。言語キーを設定することによってテキストの言語切替が可能になります。
階層ノードテキスト:テキスト
言語キー:言語
GL勘定マスタ階層と紐づくGL勘定マスタ階層テキストの作成ができました。
最後に、ディメンションビューからアソシエーションします。
3.分析モデルへの反映
STEP1で作成した分析モデルを開き、ファクトソース「GL勘定明細」を選択すると、関連ディメンジョンに「勘定コード表」が表示されているので、チェックボックスにチェックを入れると有効になります。
デプロイを実行します。
4.SAP Analytics Cloudストーリーからデータを取得
階層をドリルダウンして最下位のGL勘定のテキストが正しく表示されているのが確認できます。
・ログオン言語:JA
また、ログイン言語によってテキストが切り替わっていることも確認できます。
・ログオン言語:EN
最後に
本ブログでは、S/4HANAで設定したGL勘定階層、階層テキストをSAP Datasphereに取り込む方法をご紹介しました。現時点では、ご紹介した方法で階層とテキストを定義していますが、
ロードマップ上は2023年第3四半期には、S/4HANA 上でディレクトリを使用しモデル化された階層をインポートで使用できるようになることが予定されています。公開後、ブログでご紹介できればと思います。