可以使用 Dynamics 365 Customer Engagement Web 服务创建组织负责的仪表板,也可以通过编辑 customizations.xml 文件在 Dynamics 365 for Customer Engagement 中自定义实体窗体来创建。
注释
Web 应用程序中的仪表板设计器不支持使用 SDK 或通过自定义实体表单创建的某些仪表板。 有关更多信息,请参阅本主题后面的限制 :使用 SDK 或通过表单自定义创建控制面板 。
在创建控制面板之前,请考虑以下事项:
控制面板类型:如果您希望控制面板在整个组织中可用,并且不想在更详细的级别管理访问级别,则可能需要创建组织拥有的控制面板。 但是,如果您担心控制面板的访问权限和安全性,请考虑创建一个用户拥有的控制面板,以便您可以更好地控制谁可以访问它。
要创建组织负责的控制面板,您必须具有 System Administrator (系统管理员) 或 System Customizer (系统定制员) 角色。
仪表板布局:在创建仪表板时,您必须使用 FormXML 来定义仪表板组件和布局。 有关使用 FormXML 定义仪表板的信息,请参阅 仪表板组件和 FormXML 元素。 有关一些不同类型仪表板的 FormXML 示例,请参阅 示例仪表板。
使用 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) 控制面板。 有关创建用户负责的控制面板并将其分配给其他用户的示例,请参阅 示例:将 User-Owned 控制面板分配给其他用户。
通过自定义实体窗体创建组织负责的仪表板
使用非托管解决方案导出的 customizations.xml 文件包含实体窗体和仪表板的定义。 您可以添加或修改 customizations.xml 文件以添加或更新控制面板。
通过自定义实体表单创建仪表板
登录到 Dynamics 365 for Customer Engagement。
导出解决方案。 有关进行这些操作的信息,请参阅导出、准备编辑和导入功能区。
浏览到导出的解决方案文件夹中的 customizations.xml 文件,然后将其打开进行编辑。
通过搜索以下标签,在 customizations.xml 文件中浏览到仪表板区域的末尾:
</Dashboards>在标签
</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 文件作为解决方案导入 Dynamics 365 for Customer Engagement。 详细信息:导出、准备编辑和导入功能区。
限制:使用 SDK 或通过表单自定义创建控制面板
Web 应用程序中的仪表板设计器不支持使用 Dynamics 365 Customer Engagement Web 服务或通过表单自定义创建或修改的某些仪表板。 使用 SDK 或通过表单自定义创建或修改控制面板时,请避免以下情况。
概况
问题: 您可以创建一个仪表板,其中包含一个选项卡,而 FormXML 中没有定义任何部分。
解决方案:确保创建一个仪表板,其中至少为 FormXML 中的每个选项卡定义了一个部分。
问题:您可以创建一个仪表板,该仪表板一个部分的
<row>元素数量与 FormXML 中该部分rowspan元素的<cell>属性中指定的数量不同。 理想情况下,rowspan元素的属性<cell>值和部分中的<row>元素数必须相同。解决方案:确保创建的仪表板的元素数与该部分元素的属性
<row>中指定的rowspan元素数<cell>相同。
网格
问题:您可以创建一个包含网格的仪表板,并将<AutoExpand>网格的参数值设置为 。Auto
解决方案:确保在创建功能板时为 FormXML 中的网格指定 <AutoExpand> 参数值 Fixed 。
IFRAME
问题:您可以创建包含 IFRAME 的仪表板。 当您没有为 <Url> FormXML 中的 IFRAME 控件的参数指定任何值时,会发生这种情况。
解决方案:确保在 FormXML 中创建 IFRAME 时为参数指定值 <Url> 。
另请参阅
Microsoft Dynamics 365 Customer Engagement 仪表板
将 FormXML 用于仪表板
控制面板上的操作
示例仪表板
示例:创建、检索、更新和删除 (CRUD) 仪表板
在 Microsoft Dynamics 365 Customer Engagement 中自定义实体表单