カスタマイズ Microsoft Dynamics 365 Power BI コンテンツ パック

 

公開日: 2017年1月

対象: Dynamics 365 (online)、Dynamics CRM Online

Microsoft Power BI は業務データをビジュアル化するのに使用するサービスとツールの総合コレクションです。 コンテンツ パックは標準データ モデルに基づいて Power BI を使用して、Dynamics 365 データを簡単にビジュアル化および分析するために用意されています。 コンテンツ パックは、多数の営業、サービス、またはマーケティング レポート シナリオに役立つ一連の Dynamics 365 エンティティとフィールドで構築されています。

Dynamics 365 のインスタンスの多くはカスタム フィールドを作成することで拡張されます。 これらのカスタム フィールドは自動的に Power BI モデルには表示されません。 このトピックでは、Power BI モデルのカスタム フィールドを含むコンテンツ パックに含まれているレポートを編集または拡張できる様々な方法について説明します。

このトピックの内容

Power BI レポートの Dynamics 365 のコンテンツ パックをカスタマイズする前にこれを実行する

Dynamics 365 のコンテンツ パックのカスタマイズ

Power BI サービスにレポートを公開する

Power BI レポートの Dynamics 365 のコンテンツ パックをカスタマイズする前にこれを実行する

コンテンツ パックをカスタマイズする前に、以下の情報を確認し、必要に応じて各手順を実行します。

要件

Dynamics 365 (オンライン) のコンテンツ パックは現在、英語 (米国) でしかサポートされていません。

コンテンツ パックのカスタマイズの作成

重要

OData フィードを Dynamics 365 (オンライン) インスタンスに接続するには、コンテンツ パックをカスタマイズする前に以下に説明されている手順に従う必要があります。

  1. Power BI Desktop を起動します。

    [ファイル] > [オープン] の順でクリックし、Sales Manager.bpix などのコンテンツ パックを開き、[オープン] をクリックします。

    コンテンツ パック内のレポートの複数ページは、Power BI Desktop で読み込まれおよび表示されます。

  2. Power BI Desktop リボンで [クエリの編集] をクリックします。

  3. [クエリの編集] ウィンドウの左側のナビゲーションにある [クエリ] で、[CRMServiceUrl] クエリをクリックし、リボンで [詳細エディター] をクリックします。 ソース定義で、[base.crm.dynamics.com] を Dynamics 365 (オンライン) インスタンス URL に置き換えます。 たとえば、組織名が Contoso である場合、URL は次のようになります:

    ソース = "https://contoso.crm.dynamics.com/api/data/v8.0/"

  4. [完了] をクリックし、クエリ エディターで [閉じる & 適用] をクリックします。

  5. [OData フィードへのアクセス] ダイアログが表示され、[組織のアカウント] をクリックし、[サインイン] をクリックします。

    Access an OData Feed dialog

  6. サインイン ページが表示される場合は、資格情報を入力し、Dynamics 365 (オンライン) インスタンスに対して認証します。

  7. [OData フィードへのアクセス] ダイアログで、[接続] をクリックします。

    コンテンツ パックのクエリが更新されます。 この処理には数分かかる可能性があります。

Dynamics 365 のコンテンツ パックのカスタマイズ

レポート用の日時フィールドを日付フィールドに変換する

カスタム フィールドをレポートに追加する

取引先企業エンティティのレポートにカスタム フィールドを追加する

カスタム オプション セット フィールドをレポートに追加する

クエリする行数を増やす

レポート用の日時フィールドを日付フィールドに変換する

Microsoft Dynamics 365 では、一部の日付が日付/時刻/時間帯の形式で保存されており、レポートにデータを収集する上で優先形式ではない可能性があります。 エンティティのフィールドでは、レポートに表示される日付を変換できます。 たとえば、[営業案件の作成日] フィールドは、作成された営業案件を日によってレポートするために、日付に変換できます。

  1. Power BI Desktop では、[クエリの編集] をクリックします

  2. クエリ エディターの左のナビゲーション ウィンドウにある [クエリ] で、[営業案件] エンティティ クエリの [推定クローズ日] などの変更する日付フィールドがあるクエリをクリックします。

  3. 推定クローズ日などの列見出しを右クリックし、[種類の変更] をポイントした後に、[日付] などの別のデータの種類を選択します。

    Change data type in Power BI Desktop

  4. [閉じる & 適用] をクリックしてクエリ エディターを閉じます。

  5. Power BI のメイン ページで、[変更の適用] をクリックし、関連するレポートを更新します。

カスタム フィールドをレポートに追加する

次の手順では、日付、文字列、または数字であるカスタム フィールドを、取引先企業エンティティを除くすべてのエンティティのレポートに追加する方法を説明します。

注意

取引先企業エンティティにフィールドを追加するには、「取引先企業エンティティのレポートにカスタム フィールドを追加する」を参照してください。 オプション セット型のフィールドを追加するには、「カスタム オプション セット フィールドをレポートに追加する」を参照してください。

  1. Power BI Desktop では、[クエリの編集] をクリックします

  2. クエリ エディターの左のナビゲーション ウィンドウにある [クエリ] で、[営業案件] エンティティ クエリなど、レポート上で使用できるようにするカスタム フィールドがあるクエリをクリックします。

  3. 右側のウィンドウの、[APPLIED STEPS] で、[その他の列の削除] の横にある設定ボタン Dynamics 365 Web クライアントの [設定] ボタン をクリックします。

  4. [列の選択] リストは、カスタム フィールドを含むエンティティのすべてのフィールドを表示します。 追加するカスタム フィールドを選択し、[OK] をクリックします。

    エンティティのクエリは更新され、列は、選択したカスタム フィールドのエンティティ テーブルに追加されます。

  5. 右側のウィンドウの [APPLIED STEPS] では、[Lang – 列の名前を変更する] をクリックし、[詳細エディター] をクリックした後に、フィールドのマッピングをエンティティ クエリに追加します。 たとえば、営業案件エンティティのカスタム フィールドの名前が int_forecast であり、表示名が予測情報である場合は、エンティティは次のように表示されます。

    {"int_forecast","Forecast"}
    

    Add mapping for a custom field on a report

  6. フィールド マッピングを追加した後、[詳細エディター] の下に構文エラーが表示されていないことを確認します。 また、大文字と小文字の区別を含め、フィールド名が列見出しに表示されている通りに正確に表示されていることを確認します。 構文エラーまた表エラーが検出されないときは、[完了] をクリックします。

  7. クエリ エディターで、[閉じる & 適用] をクリックします。

    カスタム フィールドは、右側のウィンドウのエンティティの [フィールド] で表示され、新規または既存のレコードに追加できます。

取引先企業エンティティのレポートにカスタム フィールドを追加する

取引先企業クエリは Fetch XML を使用してクエリをフィルター処理するため、フィールドを追加するステップは、OData を使用する他のエンティティ クエリとは異なります。 カスタム フィールドを OData でクエリされたエンティティへ追加するには、「カスタム フィールドをレポートに追加する」を参照してください。

  1. エンコードされた Fetch XML クエリを取引先企業エンティティにコピーします。 これを行うには、次の手順を実行します。

    1. Power BI Desktop では、[クエリの編集] をクリックします

    2. [クエリ エディター] ウィンドウの左のナビゲーションにある [クエリ] で、[取引先企業] エンティティ クエリをクリックし、リボンで [詳細エディター] をクリックします。

    3. %3 Cfetch で始まる最初の行から fetch%3E で終わるエンコードされた FetchXML 全体をコピーします。

    4. コピーするエンコード済み FetchXML はこのような内容です:

      %3Cfetch%20version%3D%221.0%22%20output-format%3D%22xml-platform%22%20mapping%3D%22logical%22%20distinct%3D%22true%22%3E%3Centity%20name%3D%22account%22%3E%3Cattribute%20name%3D%22territorycode%22%20%2F%3E%3Cattribute%20name%3D%22customersizecode%22%20%2F%3E%3Cattribute%20name%3D%22owningbusinessunit%22%20%2F%3E%3Cattribute%20name%3D%22ownerid%22%20%2F%3E%3Cattribute%20name%3D%22originatingleadid%22%20%2F%3E%3Cattribute%20name%3D%22revenue%22%20%2F%3E%3Cattribute%20name%3D%22sic%22%20%2F%3E%3Cattribute%20name%3D%22marketcap%22%20%2F%3E%20%3Cattribute%20name%3D%22parentaccountid%22%20%2F%3E%3Cattribute%20name%3D%22owninguser%22%20%2F%3E%3Cattribute%20name%3D%22accountcategorycode%22%20%2F%3E%3Cattribute%20name%3D%22marketcap\_base%22%20%2F%3E%3Cattribute%20name%3D%22customertypecode%22%20%2F%3E%3Cattribute%20name%3D%22address1\_postalcode%22%20%2F%3E%3Cattribute%20name%3D%22numberofemployees%22%20%2F%3E%3Cattribute%20name%3D%22accountratingcode%22%20%2F%3E%3Cattribute%20name%3D%22address1\_longitude%22%20%2F%3E%3Cattribute%20name%3D%22revenue\_base%22%20%2F%3E%3Cattribute%20name%3D%22createdon%22%20%2F%3E%3Cattribute%20name%3D%22name%22%20%2F%3E%3Cattribute%20name%3D%22address1\_stateorprovince%22%20%2F%3E%3Cattribute%20name%3D%22territoryid%22%20%2F%3E%3Cattribute%20name%3D%22accountclassificationcode%22%20%2F%3E%3Cattribute%20name%3D%22businesstypecode%22%20%2F%3E%3Cattribute%20name%3D%22address1\_country%22%20%2F%3E%3Cattribute%20name%3D%22accountid%22%20%2F%3E%3Cattribute%20name%3D%22address1\_latitude%22%20%2F%3E%3Cattribute%20name%3D%22modifiedon%22%20%2F%3E%3Cattribute%20name%3D%22industrycode%22%20%2F%3E%3Clink-entity%20name%3D%22opportunity%22%20from%3D%22parentaccountid%22%20to%3D%22accountid%22%20alias%3D%22ab%22%3E%3Cfilter%20type%3D%22and%22%3E%3Ccondition%20attribute%3D%22opportunityid%22%20operator%3D%22not-null%22%20%2F%3E%3Ccondition%20attribute%3D%22modifiedon%22%20operator%3D%22last-x-days%22%20value%3D%22365%22%20%2F%3E%3C%2Ffilter%3E%3C%2Flink-entity%3E%3C%2Fentity%3E%3C%2Ffetch%3E
      
  2. エンコードされた FetchXML をデコードします。 有効なエンコードされた FetchXML である必要があり、いったんデコードされるとこれと類似する必要があります:

    \<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true"\> \<entity name="account"\> \<attribute name="territorycode" /\> \<attribute name="customersizecode" /\> \<attribute name="owningbusinessunit" /\> \<attribute name="ownerid" /\> \<attribute name="originatingleadid" /\> \<attribute name="revenue" /\> \<attribute name="sic" /\> \<attribute name="marketcap" /\> \<attribute name="parentaccountid" /\> \<attribute name="owninguser" /\> \<attribute name="accountcategorycode" /\> \<attribute name="marketcap\_base" /\> \<attribute name="customertypecode" /\> \<attribute name="address1\_postalcode" /\> \<attribute name="numberofemployees" /\> \<attribute name="accountratingcode" /\> \<attribute name="address1\_longitude" /\> \<attribute name="revenue\_base" /\> \<attribute name="createdon" /\> \<attribute name="name" /\> \<attribute name="address1\_stateorprovince" /\> \<attribute name="territoryid" /\> \<attribute name="accountclassificationcode" /\> \<attribute name="businesstypecode" /\> \<attribute name="address1\_country" /\> \<attribute name="accountid" /\> \<attribute name="address1\_latitude" /\> \<attribute name="modifiedon" /\> \<attribute name="industrycode" /\> \<link-entity name="opportunity" from="parentaccountid" to="accountid" alias="ab"\> \<filter type="and"\> \<condition attribute="opportunityid" operator="not-null" /\> \<condition attribute="modifiedon" operator="last-x-days" value="365" /\> \</filter\> \</link-entity\> \</entity\> \</fetch\>
    

    ヒント

    多くの URL エンコーダーとデコーダー ツールは Web で入手可能です。

  3. FetchXML では、<entity> ノード間の属性ノードとして、カスタム エンティティを追加します。 たとえば、customclassificationcode という名前のカスタム フィールドを追加するには、[industrycode] などの別の属性ノードの後にノードを追加します。

    <attribute name="industrycode" />
    <attribute name=" customclassificationcode "/>
    <link-entity name="opportunity" from="parentaccountid" to="accountid" alias="ab">
    
  4. 更新された Fetch XML を URL エンコードします。 新しいカスタム属性を含む Fetch XML は、エンコードする必要があり、コンテント パックで用意されている既存の OData フィード クエリを置き換えるのに使用される必要があります。 これを実行するには、更新された FetchXML をクリップボードにコピーし、URL エンコーダーに貼り付けます。

  5. エンコードされた FetchXML URL を OData フィードに貼り付けます。 これを実行するには、既存のエンコード済み FetchXML を置き換える [Query= [fetchXml=] テキストの後の引用符の間に、エンコードされた URL を貼り付け、[完了] をクリックします。

    下記のスクリーン ショットは、左端の引用語句がある場所を示しています。

    Paste encoded URL into OData feed

  6. 右側のウィンドウの、[APPLIED STEPS] で、[その他の列の削除] の横にある設定ボタン Dynamics 365 Web クライアントの [設定] ボタン をクリックします。

  7. [列の選択] リストは、カスタム フィールドを含むエンティティのすべてのフィールドを表示します。 先ほど Fetch XML クエリに追加した customclassificationcode などのカスタム フィールドを選択し、[OK] をクリックします。

    注意

    [列の選択] で選択するフィールド名と FetchXML クエリに追加するフィールド名は一致する必要があります。

    エンティティのクエリは更新され、列は、選択したカスタム フィールドのエンティティ テーブルに追加されます。

  8. クエリ エディターで、[閉じる & 適用] をクリックします。

    カスタム フィールドは、右側のウィンドウのエンティティの [フィールド] で表示され、新規または既存のレコードに追加できます。

カスタム オプション セット フィールドをレポートに追加する

オプション セット フィールドは複数の値から選択することができます。 標準オプション セット フィールドの例として、営業案件における [評価] および [Sales Stage] フィールドがあります。 次の値とラベルが含まれている営業案件のメイン フォームにカスタム オプション セット フィールドがあるとします。

カスタム オプション セットの例

レポートにカスタム オプション セット フィールドを追加するには、これらの手順に従います。

  1. カスタム フィールドの列を追加します。

    • [クエリ エディター] の左のナビゲーション ウィンドウにある [クエリ] では、[営業案件] などの関連するカスタム オプション セットを持つエンティティをクリックします。

    • 右側のウィンドウの、[APPLIED STEPS] で、[その他の列の削除] の横にある設定ボタン Dynamics 365 Web クライアントの [設定] ボタン をクリックします。

    • [列の選択] リストは、カスタム フィールドを含むエンティティのすべてのフィールドを表示します。new_customoptionset などのカスタム フィールドを選択し、次に、[OK] をクリックします。

    • [保存] をクリックし、確認メッセージが表示されたら、[適用] をクリックします。

      カスタム フィールドの列は、エンティティ テーブルに表示されます。

  2. オプション セット クエリを作成します。

    1. Power BI Desktop では、[クエリの編集] をクリックします。

    2. クエリ エディターにある左側のナビゲーション ウィンドウの [クエリ] で、 レポートに追加するオプション セットと最も類似しているオプション セット フィールドを持つ [表の作成] グループのクエリをクリックします。 この例では、[SalesStageOptionSet] クエリには 4 つのオプションがあるため、良い選択です。

    3. [詳細エディター] をクリックします。

      オプション セットのクエリが表示されます。

      Create an option set query

    4. クエリ全体をクリップボードにコピーします。 後に参照するためにメモ帳などのテキスト エディターに貼り付けることができます。

    5. クエリ エディターで、[表の作成] グループを右クリックし、[新しいクエリ] をクリックし、次に [空白のクエリ] をクリックします。

    6. 右側のウィンドウの [名前] タブで、CustomOptionSet などの名前を入力し、Enter キーを押します。

    7. [詳細エディター] をクリックします。

    8. 詳細エディターで先ほどコピーしたクエリを貼り付けます。

    9. 既存値とオプションをユーザー定義値とオプションに置き換えます。 この例では、これを変更します。

      let
          Source = #table({"Value","Option"},{{0,"Qualify"},{1,"Develop"},{2,"Propose"},{3,"Close"}})
      in
          Source
      

      結果として、次を実現します。

      let
          Source = #table({"Value","Option"},{{0,"A"},{1,"B"},{2,"C"},{3,"D"},{4,"E"}})
      in
          Source
      
    10. 構文エラーがないことを確認し、[完了] をクリックし、詳細エディターを閉じます。 値とオプションの表が [クエリ エディター] に表示されます。

      新しいオプション セット クエリ

    11. [保存] をクリックし、確認メッセージが表示されたら、[適用] をクリックします。

  3. エンティティおよびカスタム オプション セットの表に対して、統合クエリを挿入します。

    1. クエリ エディターの左側のウィンドウにある [エンティティ] で、カスタム オプション セットを含むエンティティをクリックします。 この例では、[営業案件] エンティティ クエリが選択されています。

    2. リボンで [クエリの統合] をクリックし、ステップを挿入するように要求されたら、[挿入] をクリックします。

    3. 統合ダイアログで、new_optionset などのカスタム オプション セットの列見出しをクリックします。 ドロップダウン リストで、先ほど作成したオプション セット クエリから該当するものを選択します。 オプション セットの表が表示されたら、[] 列見出しをクリックし、選択します。

      テーブル マージの選択項目

    4. バインディングの種類を [左外部 (最初からすべて、2 番目からマッチング)] のままにし、[OK] をクリックします。

      ヒント

      統合クエリの名前を変更します。 [APPLIED STEPS] で作成した統合クエリを右クリックし、[名前の変更] をクリックし、Merge CustomOptionSet などのわかりやすい名前を入力します。

  4. ラベルのみが表示されるように列を定義します。

    1. クエリ エディターの左側のウィンドウにある [エンティティ] で、カスタム オプション セットを含むエンティティをクリックします。 この例では、[営業案件] エンティティ クエリが選択されています。

    2. 右側のウィンドウの [APPLIED STEPS] で、[Expanded SalesStage] などの展開されたクエリの 1 つをクリックし、統合された列を明白にします。

    3. 先ほど実行したクエリ統合の段階で作成された新しい列の列見出しを見つけ、クリックします。

    4. [変換] タブで [展開] をクリックします。

    5. [新しい列の展開] ダイアログで、値に対応している列をクリアします (ラベルのみを列に表示する必要があるため)。[完了] をクリックします。

      Choose the column that represents the label

    6. [保存] をクリックし、確認メッセージが表示されたら、[適用] をクリックします。

  5. レポート作成のために列名を変更します。

    1. クエリ エディターの左側のウィンドウにある [エンティティ] で、カスタム オプション セットを含むエンティティをクリックします。 この例では、[営業案件] エンティティ クエリが選択されています。

    2. [詳細エディター] をクリックします。

    3. 名前を変更した列品目に構文エラーがないか確認し、[完了] をクリックします。 この例では、先ほど作成したカスタム オプション セットの列名は、[NewColumn] であり、カスタム オプション セットに変更されました。

      Rename a column to display in reports

    4. [保存] をクリックし、確認メッセージが表示されたら、[適用] をクリックします。

  6. [閉じる & 適用] をクリックしてクエリ エディターを閉じます。

    カスタム オプション セットは、Power BI レポートの作成に使用できるようになりました。

クエリする行数を増やす

既定では、Microsoft Dynamics 365 コンテンツ パックのすべての Power BI エンティティ クエリは 100,000 行を超えることはできません。 クエリできる行数を増やすには、次の手順に従います。

重要

行数の制限を増やすことは、レポートの更新時間に多大な影響を及ぼす可能性があります。 また、Power BI サービスはクエリの実行に 30 分間の制限を設けています。 行数の制限を増やすときは注意してください。

  1. Power BI Desktop で、クエリの編集をクリックします。

  2. クエリ エディターの左側のナビゲーション ウィンドウの [クエリ] で、潜在顧客エンティティなど、行数の制限を増やすエンティティをクリックします。

  3. 右側のウィンドウの [APPLIED STEPS] で、1 行目をキープをクリックします。

  4. フィルターされた行数を増やします。 たとえば、150,000 まで増やすには、Table.FirstN を ("フィルターされた行番号"、100001) Table.FirstN ("フィルターされた行番号"、150000) に変更します。

  5. 右側のウィンドウの [APPLIED STEPS] で、行数の確認をクリックします。

  6. 手順の 1 つとして >100,000 を見つけます。

    Increase row count value

  7. 150,000 などのさらに大きい値に増やします。

  8. クエリ エディターで、[閉じる & 適用] をクリックします。

Power BI サービスにレポートを公開する

組織内での共有を目的とした、ほとんどのデバイスからでもアクセス可能なレポートを公開します。

  1. Power BI Desktop メイン ページの [Home] タブ リボンで、[公開​​] をクリックします。

  2. Power BI サービスにサインインするように要求されたら、[サインイン] をクリックします。

  3. 複数の公開先がある場合は、該当するものを選択し、[公開​​] をクリックします。

関連項目

Microsoft Dynamics 365 での Power BI の使用

© 2017 Microsoft. All rights reserved. 著作権