ダッシュボードを作成する
公開日: 2017年1月
対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online
組織所有のダッシュボードは、Microsoft Dynamics 365 SDK を使用するか、customizations.xml ファイルを編集して Microsoft Dynamics 365 でエンティティ フォームをカスタマイズすることで作成できます。
注意
SDK を使用して、またはエンティティ フォームをカスタマイズして作成される一部のダッシュボードは、Web アプリケーションのダッシュボード デザイナーではサポートされません。 詳細については、このトピックの後半の「制限事項: SDK を使用してまたはフォームのカスタマイズを使用してダッシュボードを作成すること」を参照してください。
ダッシュボードを作成する前に、次の項目を検討します。
ダッシュボードの種類: ダッシュボードを組織全体で利用できるようにし、より詳細なレベルでのアクセス レベル管理を行わない場合は、通常、組織所有のダッシュボードを作成します。 ただし、ダッシュボードのアクセス特権やセキュリティについて考慮する必要がある場合は、アクセスするユーザーをより厳密に制御できる、ユーザー所有のダッシュボードの作成を検討してください。
組織所有のダッシュボードを作成するには、システム管理者ロールまたはシステム カスタマイザー ロールが必要です。
ダッシュボードのレイアウト: ダッシュボードを作成する場合は、FormXML を使用して、ダッシュボード コンポーネントとレイアウトを定義する必要があります。 ダッシュボードを定義するための FormXML の操作については、「ダッシュボード コンポーネントと FormXML 要素」を参照してください。 さまざまな種類のダッシュボードの FormXML の例については、「サンプル ダッシュボード」を参照してください。
このトピックの内容
SDK を使用したダッシュボードの作成
エンティティ フォームのカスタマイズによる組織所有のダッシュボードの作成
制限事項: SDK を使用してまたはフォームのカスタマイズを使用してダッシュボードを作成すること
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);
'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.
Dim languageCode As Integer = 1033
'We set up our dashboard and specify the FormXml. Refer to the
'FormXml schema in the Microsoft Dynamics CRM SDK for more information.
Dim dashboard As SystemForm =
New SystemForm With {
.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)
完全なサンプルについては、「サンプル: ダッシュボードの作成、取得、更新および削除」を参照してください。 ユーザー所有のダッシュボードを作成して別のユーザーに割り当てる例については、「サンプル: ユーザー所有のダッシュボードの別のユーザーへの割り当て」を参照してください。
エンティティ フォームのカスタマイズによる組織所有のダッシュボードの作成
アンマネージド ソリューションと共にエクスポートされた customizations.xml ファイルには、エンティティ フォームとダッシュボードの定義が含まれています。customizations.xml ファイルを追加または変更して、ダッシュボードを追加または更新できます。
エンティティ フォームをカスタマイズしたダッシュボードの作成
Microsoft Dynamics 365 にログオンします。
ソリューションをエクスポートします。 詳細については、「リボンのエクスポート、編集の準備、およびインポート」を参照してください。
エクスポートしたソリューション フォルダーで customizations.xml ファイルを参照し、編集用に開きます。
</Dashboards> タグを検索することで、customizations.xml ファイル内のダッシュボード領域の終わりを参照します。
</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>
customizations.xml ファイルを保存します。
.zip ファイルを Microsoft Dynamics 365 にソリューションとしてインポートします。詳細:リボンのエクスポート、編集の準備、およびインポート。
制限事項: SDK を使用してまたはフォームのカスタマイズを使用してダッシュボードを作成すること
Microsoft Dynamics 365 SDK を使用して、またはフォームのカスタマイズを通じて作成または変更された特定のダッシュボードは、Web アプリケーションのダッシュボード デザイナーではサポートされません。 SDK を使用するかフォーム カスタマイズを通じてダッシュボードを作成または変更する場合は、次の操作を避けてください。
全般
問題: FormXML で定義されたセクションのないタブを含むダッシュボードを作成できます。
解決方法: FormXML の各タブに対して定義されたセクションが少なくとも 1 つあるダッシュボードを作成してください。
問題: あるセクションの <row> (FormXml) 要素の数が、FormXML のそのセクションの <cell> (FormXml) 要素の rowspan プロパティで指定された数と同じではないダッシュボードを作成できます。 理想としては、1 つのセクション内の <cell> (FormXml) 要素の rowspan プロパティ値と <row> (FormXml) 要素の数が同じである必要があります。
解決方法: あるセクションの <row> (FormXml) 要素の数が、そのセクションの <cell> (FormXml) 要素の rowspan プロパティで指定された数と同じであるダッシュボードを作成してください。
グリッド
問題: グリッドの <AutoExpand> (FormXml) パラメーター値が Auto に設定されたグリッドを含むダッシュボードを作成できます。
解決方法: ダッシュボードの作成時に、FormXML でグリッドの <AutoExpand> (FormXml) パラメーター値を Fixed として指定してください。
IFRAME
問題: IFRAME を含むダッシュボードを作成できます。 この状況は、FormXML で IFRAME コントロールの <Url> (FormXml) パラメーターの値を指定しない場合に発生します。
解決方法: FormXML で IFRAME を作成する場合は、<Url> (FormXml) パラメーターの値を必ず指定してください。
関連項目
ダッシュボードによるデータの分析
ダッシュボードについて: ダッシュボード コンポーネントと FormXML
ダッシュボードに対するアクション
サンプル ダッシュボード
サンプル: ダッシュボードの作成、取得、更新および削除
エンティティ フォームのカスタマイズ
Microsoft Dynamics 365
© 2017 Microsoft. All rights reserved. 著作権