データの集計モデル

このチュートリアルでは、集計データをモデリングするプロセスについて説明します。

前提条件

このチュートリアルでは、リモート デスクトップを使用して環境にアクセスし、管理者としてプロビジョニングする必要があります。 詳細については、 開発環境の配置とアクセスという記事を参照してください。

重要な概念

  • 集計の測定は、以前のバージョンの分析視点およびキューブと同様に、集計データをモデル化して使用することができます。
  • 主要業績評価指標 (KPI) は、現在の状態と照らし合わせて組織のパフォーマンスを追跡する分析コントロールの形式です。 KPI は、ワークスペースまたはダッシュボードでタイルとして表されます。 このチュートリアルでは、Visual Studio で KPI をモデル化します。
  • Visual Studio でモデル化される KPI は、クライアントで変更できます。 また、ユーザーは、クライアントを使用して新しい KPI をモデル化することもできます。
  • ワークスペースは、特定のサブジェクト領域固有の概要ページです。 ワークスペースはすべてのユーザーに共通です。
  • ダッシュボードは、ユーザーごとの既定のホーム ページです。
  • タイルワークスペースまたはダッシュ ボードに固定できる、セキュリティ保護可能なオブジェクトです。 ダッシュボードまたはワークスペースに表示される KPI と集計データは、メニュー項目を使用してセキュリティで保護することができます。
  • 集計データはグラフやその他のコントロールの作成に使用できます。 モデル駆動方式を使用して、集計の測定と集計分析コードを直接参照することによって、データ エンティティを作成できます。 これらのエンティティは、データ エンティティの集計と呼ばれます。 集計データ エンティティはレポート用に使用される読み取り専用データ エンティティです。
  • 集計のプログラミング モデルにより、開発者は、X++ または C# コードのいずれかを使用してプログラムを使用して集計データを使用できます。 集計プログラミング モデルを使用して取得されたデータは、フォーム内のデータ ソースとして使用できます。
  • メソッドの式は、開発者が集計データを使用して豊富な式を構築できるようにします。 メソッドの式は、X++ クラスです。 KPI はメソッドの式によってモデル化でき、MDX 式を構築する必要がなくなります。
  • コンテキスト BI は、ユーザー体験の一部として必要な洞察を提供することを指します。ユーザーは、当面のタスクを達成するだけでなく、1 日の間に非常に生産的な洞察を得ることができます。
  • 組み込み型 BI は、ユーザー エクスペリエンス内に埋め込まれた分析コンテンツを示します。 コンテキスト BI および組み込み BI チームは密接に関連しています。 コンテキスト BI は、分析コンテキストのコンテキストがデータまたはタスクを中心に展開する追加された概念を意味します。
  • セルフ サービス BI ユーザーが既存のものを微調整したり、または新しくレポート、KPI、ダッシュボードなどの分析コンテンツを作成できるように参照します。

設定

これが作業している最初のチュートリアルである場合は、ローカル VM で実行している場合、管理者ユーザーを構成していることを確認します。

チュートリアル プロジェクトのインポート

フリート管理チュートリアル プロジェクトを既にインポートした場合は、次のセクションに進みます。 Visual Studio の Dynamics 365 メニューで、プロジェクトのインポートをクリックします。

  1. フリート管理のサンプルを https://github.com/Microsoft/FMLab からダウンロードし、c:\ に保存してから解凍します。
  2. プロジェクトのインポート ウィンドウで、ファイル名テキスト ボックスの隣にある、省略記号ボタンをクリックします。
  3. インポートするファイルの選択ウィンドウで、FMLab フォルダーの場所を参照して FMTutorialDataModel.axpp をクリックしてから開くをクリックします。
  4. プロジェクト ファイルの場所テキスト ボックスに、C:\FMLab と入力します。
  5. 要素の上書き チェック ボックスをオンにし、OK をクリックします。

チュートリアル プロジェクトを開く

  1. Visual Studio で、FMTutorial プロジェクトを開きます。 ファイルメニューで、開くをポイントし、プロジェクト/ソリューションをクリックします。
  2. プロジェクトを開くダイアログ ボックスで、C:\FMLab\FMTutorial を参照してから FMTutorial をクリックします。 開く をクリックします。 FMTutorial プロジェクトがソリューション エクスプローラーに表示されます。
  3. フリート管理チュートリアルのデータを読み込むには、FMTDataHelper クラスを使用します。 ソリューション エクスプローラーの FMTutorial プロジェクトでクラスを展開します。 FMTDataHelper を右クリックし、スタートアップ オブジェクトとして設定 をクリックします。
  4. ビルドメニューで、ソリューションの再構築をクリックします。 インポートされたアーティファクトのタイムスタンプを更新するには、リビルドを使用します。 出力 ウィンドウでビルドの進行状況を表示できます。
  5. Ctrl+F5 キーを押してプロジェクトを実行し、データを読み込みます。

レンタル料金の集計の測定をモデルします。

ユーザーが追加情報を求める場合、1 つまたは複数の新しいレポートを要求されます。 レンタカー会社の管理者が電話をかけ、レポートを依頼した場合を考えてみましょう。 マネージャーは、レンタル業務を行う方法に関心を持っています。 マネージャーは、月別のレンタル収益を示すレポートを必要としています。 マネージャーがレンタル収益の詳細に関心を持っていることがすぐ分かるでしょう。 マネージャーは、基本レンタル料ではなく、追加サービス (車のシート、GPS、燃料補給など) を販売した場合に、レンタル収益高くなるかどうかを知りたいと思っています。 結論からいうと、マネージャーが最初のレポートを望んだのは、特定の顧客グループが収益を上げていると思っていたからです。 マネージャーは、レポートに顧客グループを追加すると主張しています。 収益はレンタル数と関連して考慮する必要があるため、いくつかの大規模な法人レンタルの解析を歪曲させたくはありません。 両者は収益とともにレンタル数を表示する必要があることに同意します。 この要件を行列を使用して業務上の質問のセットとして表現することができます。 行は、メジャー (または数値) を示し、列は分析コード (またはスライサー) を示します。 測定および分析コード間で交差する「X」は、測定が分析コードによって「グループ化」される必要があることを示します。

項目 レンタル日付 顧客グループ レンタル料金のタイプ
収益 X X X
レンタルの数 x x x

次に、この業務上の質問に回答する集計の測定をモデル化します。

既存のビューを使用してレンタル料金のメジャー グループを追加します。

このセクションでは、既存の集計測定に新しいメジャー グループを追加します。

  1. ソリューション エクスプローラーでプロジェクトの分析フォルダーを展開してから、集計の測定 FMTAggregateMeasurement をダブルクリックします。 集計の測定はデザイナーで起動されます。 既存の集計の測定に、車両の在庫やレンタルの詳細に関連する 2 つのメジャー グループが含まれていることを確認します。 レンタル料金に関連する新しいメジャー グループを作成します。

    AOT の集計メジャー。

  2. ソリューション エクスプローラーでプロジェクトの表示フォルダーを展開してから、FMTRentalChargeExtendedView の表示を選択します。

  3. FMTRentalChargeExtendedView をデザイナーの FMTAggregateMeasurement 集計測定のルート ノードにドラッグ アンド ドロップします。 新しいメジャー グループが作成され、プロパティの値が次のように適用されたことに注意します。

    プロパティ 先頭値
    氏名 FMRentalChargeExtendedView
    テーブル FMRentalChargeExtendedView
  4. ソリューション エクスプローラーで、FMRentalChargeExtendedView の表示をダブルクリックします。 デザイナー フォームが開いたら、フィールド ノードを展開します。

  5. ExtendedAmount および RentalID フィールドを選択した後、2 つのフィールドを FMRentalChargeExtendedView と呼ばれる新たに作成された FMAggregateMeasurement メジャー グループの Measures ノードにドラッグ アンド ドロップします。 フィールドをドラッグする際、FMAggregateMeasurement タブにカーソルを置き、メジャー ノードにアクセスします。 既定では、フィールドをドラッグ アンド ドロップするときに、メジャーのカウントが必要と見なされます。 この場合、次のように ExtendedAmount および RentalId 測定値の既定のプロパティを変更する必要があります。

    プロパティ (ExtendedAmount) 先頭値
    既定の集計 SUM
    フィールド ExtendedAmount (変更の必要なし)
    氏名 収益
    プロパティ (RentalId) 先頭値
    既定の集計 DistinctCount
    フィールド RentalId (変更の必要なし)
    氏名 NumRentals
  6. 次に、既存の測定単位をコピーして、レンタルあたりの収益を計算する別の測定単位を作成してみましょう。 TotalRevenue 測定を選択します。 右クリックし、コンテキスト メニューから コピー を選択します。

  7. FMRentalDetails メジャー グループを選択します。 右クリックし、貼り付けを選択します。 新たに作成された測定の名前を RevenuePerRental に変更します。 集計関数を Average に変更します。

集計分析コード料金のタイプをモデル化します。

さまざまな料金のタイプによってレンタル収益を分析するには、料金タイプごとに収益をスライスする必要があります。 このためには、最初に管理タイプ分析コードをモデル化します。

  1. ソリューション エクスプローラーFMTutorial分析を右クリックして、追加をポイントしてから新しい項目をクリックします。

  2. 項目の一覧から Dynamics 365 コンポーネント>分析>分析コードの集計を選択します。

  3. 名前プロパティで、FMTChargeType と入力します。 これは、作成される集計分析コードの名前です。 この名前は一意でなければなりません。 追加 をクリックします。 新しい分析コードは、Visual Studio に表示されます。

  4. アプリケーション エクスプローラーで、AOT を展開してデータ モデル>テーブルとクリックします。 FMTChargeType テーブルを Application Explorer からデザイナーで新しく作成された FMTChargeType 分析コードのルート ノードにドラッグ アンド ドロップします。 分析コードの属性と対応するキーがテーブルの AutoReport フィールド グループを使用して追加されたことに注意します。

  5. 新しい分析コードの属性ノードを展開します。 いくつかの属性は既定で作成されていることに注意します。 また、テーブルの一意のインデックスに基づいて分析コード キーが作成されました。 フィールド ノードにドラッグ アンド ドロップすることにより、さらにフィールドを追加することができます。

    FMTChargeType の属性リスト。

  6. 新しい分析コードを保存します。

  7. MDX 予約ワードを回避するためにフィールド名の説明を変更するように求める警告が表示される場合があります。 集約分析コードは、集計測定で SSAS に配置されない場合がありますが、今後 SSAS に配置される集計測定でこの分析コードが使用される可能性があります。 将来の潜在的な問題を避けるために、フィールド名 Description の名前を ChargeDescription に変更します。

顧客プロファイルの分析コードの参照と料金のタイプの分析コードのモデル化

次に、新規および既存の分析コードに分析コードの参照を作成して、収益を顧客および料金のタイプでスライスできるようにします。

  1. ソリューション エクスプローラーで、FMTAggregateMeasurement をダブルクリックするか、開いている場合はデザイナーに移動します。

  2. ソリューション エクスプローラーで、分析コード FMTChargeType および FMTCustomerProfile を選択します。

  3. FMTRentalChargeExtendedView 測定グループの分析コードノードにドラッグ アンド ドロップします。 分析コードの参照が関係とともに作成されていることに注意します。

  4. FMTAggregateMeasurement の変更を保存します。 分析コードの関係のプロパティ シートを確認して、テーブル関係の使用 プロパティが はい に設定されていることを確認します。 ドラッグ アンド ドロップ操作によって、メジャー グループ分析コード FMTRentalChargeExtendedView および FMTChargeTypeFMTCustomerProfile の間に関係が作成されたことに注意します。 分析コードの関係のプロパティ シートを確認して、テーブル関係の使用 プロパティが はい に設定されていることを確認します。

    分析コード FMTChargeType のプロパティ ウィンドウ。

    メモ

    プラットフォーム更新プログラム 1611 以降では、UseTableRelations プロパティが削除されました。 新しい分析コード参照が作成されるとき、既存のリレーションシップが既定値に設定されます。 既定に設定されているリレーションシップ フィールドを変更することにより、明示的リレーションシップの提供を継続することができます。 明示的な関係を提供することは、UseTableRelationshipNo に設定することと同じです。

  5. FMTCustomerProfile 分析コードの分析コード関係ノードを展開します。 UseTableRelations プロパティがいいえに設定されていることに注意します。 この場合、システムはメジャー グループおよび分析コードの間に適切な関係を発見できませんでした。 手動で指定する必要があります。

  6. 未処理の場合は、FMTCustomerProfile 分析コードの参照を展開します。 ノード FMTCustomerExtendedView を選択します。 右クリックし、プロパティ シートを参照してください。

  7. プロパティ DimensionAttribute の値として CustomerID を選択します。 以下に表示された関係を選択します。 プロパティ値 RelatedField顧客 を選択します。

  8. FMTAggregateMeasurement の変更を保存します。

    DimensionRelationConstraint のプロパティ ウィンドウ。

  9. このシナリオでは、システムが関係を検出できなかったため、関係を指定しました。 テーブル関係プロパティを使用するいいえ に設定してシステムの選択をオーバーライドする場合、異なるリレーションシップを指定することもできました。

日付分析コードのレンタルの開始日とトランザクションの日付の分析コードの参照のモデル化

分析の目的で、レンタルの開始日までにスライスを有効にすると仮定しますが、会計処理のために、各請求のトランザクションの日付にスライスを有効にする必要があります。 これを行うには、レンタル料金測定値グループを 2つ の日付の分析コードに関連付ける必要があります。 BI では、このパターンはロール プレイの分析コードと知られています。 既定では、メジャー グループに日付分析コードが追加されます。 必要に応じて、既定の名前を適切に変更して新しい日付分析コードを追加することができます。

  1. FMTRentalChargeExtendedView 測定グループの分析コードノードを展開します。 Date_ 分析コードが既に分析コードのスライサーとして含まれていることに注意します。

    メモ

    メジャー グループをモデル化するために使用されるテーブルまたはビューが会社固有のテーブル、たとえば、キーの一部として DATAAREAID を含む場合、既定では、会社分析コードの関係が作成されます。 この場合、使用したビューは会社固有のものではありません。

    AOT の分析コードの一覧。

  2. 日付 分析コードを選択し、次のプロパティを指定します。

    プロパティ 先頭値
    氏名 RentalStartDate
    テーブル リレーションの使用 いいえ (これは既定値です – 変更する必要はありません)
  3. テーブル関係を定義します。 RentalStartDate を展開し、その後日付ノードを展開します。

  4. 表示された関係を選択します。 右クリックし、プロパティ シートを選択します。 Related field プロパティの値として StartDate を選択します。

  5. 定義した関係は、次のスクリーン ショットのようになります。

    BIDateDimensionsView.Date==FMTRentalChargeExtendedView.StartDate.

  6. 次に、TransactionDate 分析コード別のメジャーのスライスを有効にします。 TransactionDate は日付分析コードでもあるため、日付分析コードに別の参照を追加し、トランザクション日付を含む対応するフィールドに関連付けます。 複数の日付分析コードがスライサーとして使用されるとき、各日付分析コードは ロールプレイング日付分析コード と呼ばれます。

  7. FMTRentalChargeExtendedView メジャー グループで、分析コード ノードを右クリックし、新しい分析コード をクリックします。 新しい分析コードが分析コード参照のリストに追加されます。

  8. 新しい分析コード参照の次のプロパティを指定します。

    プロパティ 金額
    分析コード名 Date_ 注: 間違った順序で分析コードの名前を選択した場合は、既に設定したその他の値がリセットされます。
    氏名 TransactionDate
    テーブル リレーションの使用 いいえ
    タグ RolePlayingDate。フリート

    Tags と呼ばれる新しいプロパティに注目してください。 このプロパティを使用すると、Visual studio 環境内のコードとメタデータ内のパターンを検出できます。 任意のタグの番号を入力することができます。これらはホット キーまたは Visual Studio の Dynamics 365 メニューを使用して検索することができます。

  9. テーブル関係を定義します。 TransactionDate を右クリックし、新しい関係 をクリックします。 この時点で、DimensionsRelation のプロパティを指定する必要はありません。

  10. BIDateDimensionValue を展開し、次にリレーションシップ制約を選びます。 右クリックし、プロパティ シートを選択します。

  11. BIDateDimensionsView 関係制約の次のプロパティを指定します。

    プロパティ 先頭値
    フィールド
    関連フィールド TranDate

    定義した関係は、次のスクリーン ショットのようになります。

    FMTRentalChargeExtendedView のリレーションシップ。

  12. 集計測定を保存します。

新たに生成され集計の測定を配置する

集計の測定のモデリングが完了したので、集計の測定を配置して KPI の構築と視覚化を続行できます。 以下のように配置には 2 つの選択肢があります。

オプション 注意事項
メモリ内リアルタイム このオプションは、SQL Server データベースのメモリ内縦棒ストア インデックスを利用して、集計の測定を展開します。 このオプションは、リアルタイム分析が必要なクライアント内の埋め込み分析に集計の測定を使用する場合に推奨されます。 リアルタイム分析の概念の概要については、分析、集計測定、および KPI モデリング を参照してください。
エンティティ格納のステージ このオプションは、near real-time PowerBI reporting を有効にする運用データストアであるエンティティ ストアを利用します。 このオプションを選択する場合は、集計測定をエンティティ店舗に配置でき、データを定期的に更新するためにスケジューリングできます。 このアプローチの概要については、このブログ投稿を参照してください: https://blogs.msdn.microsoft.com/dynamicsaxbi/2016/06/09/power-bi-integration-with-entity-store-in-dynamics-ax-7-may-update/

メモ

集計測定をモデル化する場合、SSAS キューブ オプションは、サポートされなくなりました。

  1. FMTAggregateMeasurement ノードを選択します。 右クリックし、プロパティ を選択します。 プロパティ Usage の値として InMemoryRealTime を選択します。

    プロパティ ウィンドウで選択された使用状況と SSASCube。

  2. InMemoryRealTime 集計モデルは、非集合縦棒ストア インデックス (NCCI) 技術を使用して SQL Server に配置されます。 NCCI は、分析および運用のワークロードを SQL Server データベースから供給できるメモリ内テクノロジーです。 NCCI インデックスは、他のインデックスのようなテーブルで定義することができます。 NCCI インデックスは手動で定義することができますが、フレームワークにはインデックスの要件を分析して必要に応じて基になるテーブルに追加する機能があります。

  3. ソリューション エクスプローラーで FMAggregateMeasurement を右クリックし、列ストア インデックス オプション をクリックします。 複数の新しいインデックスがシステムによって追加されていることが分かります。

  4. プロジェクトを保存してビルドします。

  5. InMemoryRealTime 集計モデルは、モデルがリアルタイムで照会されるためデータの処理を必要としません。 ビルドと共にデータベースの同期が無効の場合は手動でデータベースを同期します。

KPI をモデル化してレンタルあたりの収益を表示する

Visual Studio での KPI のモデル化

上で定義した集計の測定を使用して Visual Studio で KPI の定義をモデル化します。

  1. ソリューション エクスプローラーで、FMTutorial を右クリックして追加をポイントしてから新しい項目をクリックします。

  2. Dynamics 365 コンポーネント>分析>主要業績評価指標を選択します。 KPI の名前として FMTRevenuePerRental と入力し、追加をクリックします。 名前は、KPI 間で一意でなければなりません。 KPI が作成されます。

  3. FMTRevenuePerRental を選択し、測定 を指定します。その他のプロパティは既定値のままにします。

    プロパティ 先頭値
    測定 FMTAggregateMeasurement
    無効なしきい値 0
    有効なしきい値 0
    スコアリング パターン MoreIsBetter
    目標の表示 はい
    ステータスと傾向を表示 はい
    しきい値タイプ 先頭値
  4. KPI 値の式を定義します。 FMTRevenuePerRental を選択し、次のプロパティを指定します。

    メモ

    値はテーブルに表示されている順序で入力する必要があります。

    プロパティ 先頭値
    Value タイプ BasedOnMeasure
    メジャー グループ FMTRentalChargeExtendedView
    基準 RevenuePerRental
  5. KPI 目標の式を定義します。 目標 を選択し、次のプロパティを指定します。

    プロパティ Value
    目標タイプ BasedOnValue
    Value 250

    メモ

    集計測定に基づく目標を定義することもできます。 この場合、目標として番号を定義します。

  6. KPI 定義を保存します。

クライアントで KPI をプレビュー

次に、クライアントで KPI 定義をプレビューします。

  1. FMTutorial を右クリックし、再ビルド をクリックします。 ビルドの完了時に、同期...データベースオプションを選択します。

  2. Microsoft Edge を開き、Rainier インスタンスの基本 URL に移動します。

  3. アプリのリンク>フリート管理>ワークスペース>予約管理予約管理ワークスペースに移動します。

  4. 総収益 KPI タイルを選択します。 収益合計 KPI の KPI に関する詳細ページが表示されます。

  5. 新しく定義した KPI に移動するには、左上の リストを表示 アイコンを選択します。 表示される KPI のリストから FMTRevenuePerRental を選択します

    新しい KPI の KPI に関する詳細ページ FMTRevenuePerRental が表示されることに注意します。 トレン グラフは定義しませんでしたが、開発者が定義した限定されたメタデータに基づいて一連のグラフが作成されました。 ユーザーは、KPI 定義を変更して、クライアントに新しい定義を作成することができます。 次に、新たに定義された KPI を変更します。

  6. この機能を示すために、KPI 目標を変更することができます。 左上の編集ボタンをクリックし、目標値として 900 を入力します。

  7. 次のようにしきい値のプロパティを変更します。

    プロパティ 先頭値
    しきい値タイプ パーセンテージ
    次の値未満の場合に赤 90
    次の値を超えた場合に緑 110
  8. 変更を保存するには、左下の保存をクリックします。 KPI の状態の色が表示される KPI タイルで変更されたことに注意します。