ダッシュボードを作成する

組織所有のダッシュボードは、Dynamics 365 Customer Engagement Web サービスを使用するか、customizations.xml ファイルを編集して Dynamics 365 for Customer Engagement でエンティティ フォームをカスタマイズすることで作成できます。

Note

SDK を使用して、またはエンティティ フォームをカスタマイズして作成される一部のダッシュボードは、Web アプリケーションのダッシュボード デザイナーではサポートされません。 詳細については、このトピックの後半の 制限: SDKを使用するかまたはフォーム カスタマイズによってダッシュボードを作成 を参照してください。

ダッシュボードを作成する前に、次の項目を検討します。

  • ダッシュボードの種類: ダッシュボードを組織全体で利用できるようにし、より詳細なレベルでのアクセス レベル管理を行わない場合は、通常、組織所有のダッシュボードを作成します。 ただし、ダッシュボードのアクセス特権やセキュリティについて考慮する必要がある場合は、アクセスするユーザーをより厳密に制御できる、ユーザー所有のダッシュボードの作成を検討してください。

    組織所有のダッシュボードを作成するには、システム管理者ロールまたはシステム カスタマイザー ロールが必要です。

  • ダッシュボードのレイアウト: ダッシュボードを作成する場合は、FormXML を使用して、ダッシュボード コンポーネントとレイアウトを定義する必要があります。 ダッシュボードを定義するための FormXML の操作については、「ダッシュボードコンポーネントおよび FormXML要素」を参照してください。 さまざまな種類のダッシュボードの FormXML の例については、Sample Dashboards を参照してください。

SDK を使用したダッシュボードの作成

ダッシュボードを作成するには、組織所有のダッシュボードの SystemForm のインスタンス、またはユーザー所有のダッシュボードの UserForm のインスタンスを作成します。 次の例は、組織所有のダッシュボードを作成する方法を示しています。



//This is the language code for U.S. English. If you are running this code
//in a different locale, you will need to modify this value.
int languageCode = 1033;

//We set up our dashboard and specify the FormXml. Refer to the
//FormXml schema in the Microsoft Dynamics CRM SDK for more information.
SystemForm dashboard = new SystemForm
{
    Name = "Sample Dashboard",
    Description = "Sample organization-owned dashboard.",
    FormXml = String.Format(@"<form>
            <tabs>
                <tab name='Test Dashboard' verticallayout='true'>
                    <labels>
                        <label description='Sample Dashboard' languagecode='{0}' />
                    </labels>
                    <columns>
                        <column width='100%'>
                            <sections>
                                <section name='Information Section'
                                    showlabel='false' showbar='false'
                                    columns='111'>
                                    <labels>
                                        <label description='Information Section'
                                            languagecode='{0}' />
                                    </labels>
                                    <rows>
                                        <row>
                                            <cell colspan='1' rowspan='10' 
                                                showlabel='false'>
                                                <labels>
                                                    <label description='Top Opportunitiess - 1'
                                                    languagecode='{0}' />
                                                </labels>
                                                <control id='TopOpportunities'
                                                    classid='{{E7A81278-8635-4d9e-8D4D-59480B391C5B}}'>
                                                    <parameters>
                                                        <ViewId>{1}</ViewId>
                                                        <IsUserView>false</IsUserView>
                                                        <RelationshipName />
                                                        <TargetEntityType>opportunity</TargetEntityType>
                                                        <AutoExpand>Fixed</AutoExpand>
                                                        <EnableQuickFind>false</EnableQuickFind>
                                                        <EnableViewPicker>false</EnableViewPicker>
                                                        <EnableJumpBar>false</EnableJumpBar>
                                                        <ChartGridMode>Chart</ChartGridMode>
                                                        <VisualizationId>{2}</VisualizationId>
                                                        <EnableChartPicker>false</EnableChartPicker>
                                                        <RecordsPerPage>10</RecordsPerPage>
                                                    </parameters>
                                                </control>
                                            </cell>
                                            <cell colspan='1' rowspan='10' 
                                                showlabel='false'>
                                                <labels>
                                                    <label description='Top Opportunities - 2'
                                                    languagecode='{0}' />
                                                </labels>
                                                <control id='TopOpportunities2'
                                                    classid='{{E7A81278-8635-4d9e-8D4D-59480B391C5B}}'>
                                                    <parameters>
                                                        <ViewId>{1}</ViewId>
                                                        <IsUserView>false</IsUserView>
                                                        <RelationshipName />
                                                        <TargetEntityType>opportunity</TargetEntityType>
                                                        <AutoExpand>Fixed</AutoExpand>
                                                        <EnableQuickFind>false</EnableQuickFind>
                                                        <EnableViewPicker>false</EnableViewPicker>
                                                        <EnableJumpBar>false</EnableJumpBar>
                                                        <ChartGridMode>Grid</ChartGridMode>
                                                        <VisualizationId>{2}</VisualizationId>
                                                        <EnableChartPicker>false</EnableChartPicker>
                                                        <RecordsPerPage>10</RecordsPerPage>
                                                    </parameters>
                                                </control>
                                            </cell>
                                        </row>
                                        <row />
                                        <row />
                                        <row />
                                        <row />
                                        <row />
                                        <row />
                                        <row />
                                        <row />
                                        <row />
                                    </rows>
                                </section>
                            </sections>
                        </column>
                    </columns>
                </tab>
            </tabs>
        </form>",
    languageCode,
    defaultOpportunityQuery.SavedQueryId.Value.ToString("B"),
    visualization.SavedQueryVisualizationId.Value.ToString("B")),
    IsDefault = false
};
_dashboardId = _serviceProxy.Create(dashboard);

完成サンプルについては、サンプル: ダッシュボードを作成、取得、更新、および削除 (CRUD) する方法 を参照してください。 ユーザー所有のダッシュボードを作成して別のユーザーに割り当てるサンプルについては、 サンプル: 他のユーザーにユーザー所有のダッシュボードを割り当てるを参照してください。

エンティティ フォームのカスタマイズによる組織所有のダッシュボードの作成

アンマネージド ソリューションと共にエクスポートされた customizations.xml ファイルには、エンティティ フォームとダッシュボードの定義が含まれています。 customizations.xml ファイルを追加または変更して、ダッシュボードを追加または更新できます。

エンティティ フォームをカスタマイズしたダッシュボードの作成

  1. Dynamics 365 for Customer Engagement にログオンします。

  2. ソリューションをエクスポートします。 これを行う際の詳細については、" エクスポート、編集の準備、およびリボンのインポートを参照してください。

  3. エクスポートしたソリューション フォルダーで customizations.xml ファイルを参照し、編集用に開きます。

  4. </Dashboards> タグを検索することで、customizations.xml ファイル内のダッシュボード領域の終わりを参照します。

  5. </Dashboards> タグの前に、次のコードを追加して新しいダッシュボードを定義します。

    <Dashboard>  
       <LocalizedNames>  
          <LocalizedName description="Dashboard_Name" languagecode="1033" />  
       </LocalizedNames>     
       <IsCustomizable>1</IsCustomizable>  
       <IsDefault>0</IsDefault>  
       <FormXml>  
          <forms type="dashboard">  
    *** Dashboard definition goes here. *** // See “Sample Dashboards” topic for the FormXML content to be used here.  
          </forms>  
       </FormXml>  
    </Dashboard>  
    
  6. customizations.xml ファイルを保存します。

  7. .zip ファイルを Dynamics 365 for Customer Engagement にソリューションとしてインポートします。 詳細: Eリボンのエクスポート、編集の準備、およびインポート

制限事項: SDK を使用してまたはフォームのカスタマイズを使用してダッシュボードを作成すること

Dynamics 365 Customer Engagement Web サービスを使用して、またはフォームのカスタマイズを通じて作成または変更された特定のダッシュボードは、Web アプリケーションのダッシュボード デザイナーではサポートされません。 SDK を使用するかフォーム カスタマイズを通じてダッシュボードを作成または変更する場合は、次の操作を避けてください。

全般

  • 問題: FormXML で定義されたセクションのないタブを含むダッシュボードを作成できます。

    解決方法: FormXML の各タブに対して定義されたセクションが少なくとも 1 つあるダッシュボードを作成してください。

  • 問題: あるセクションの <row> 要素の数が、FormXML のそのセクションの <cell> 要素の rowspan プロパティで指定された数と同じではないダッシュボードを作成できます。 理想としては、1 つのセクション内の <cell> 要素の rowspan プロパティ値と <row> 要素の数が同じである必要があります。

    解決方法: あるセクションの <row> 要素の数が、そのセクションの <cell> 要素の rowspan プロパティで指定された数と同じであるダッシュボードを作成してください。

グリッド

問題: グリッドの <AutoExpand> パラメーター値が Auto に設定されたグリッドを含むダッシュボードを作成できます。

解決方法: ダッシュボードの作成時に、FormXML でグリッドの <AutoExpand> パラメーター値を Fixed として指定してください。

IFRAME

問題: IFRAME を含むダッシュボードを作成できます。 この状況は、FormXML で IFRAME コントロールの <Url> パラメーターの値を指定しない場合に発生します。

解決方法: FormXML で IFRAME を作成する場合は、<Url> パラメーターの値を必ず指定してください。

関連項目

Microsoft Dynamics 365 Customer Engagement のダッシュボード
ダッシュボード用 FormXML を使用
ダッシュボードに対するアクション
サンプル ダッシュボード
サンプル: ダッシュボードの作成、取得、更新および削除 (CRUD)
Microsoft Dynamics 365 Customer Engagement でのエンティティ フォームのカスタマイズ