自定义 Dynamics 365 CRM 服务
以下部分提供了有关如何上载 Dynamics 365 CRM 自定义文件的详细说明。
先决条件
确保您的系统上已安装 ThingWorx Flow 工具。
ThingWorx Flow 工具会随您的安装自动安装。有关 ThingWorx Flow 工具的详细信息,请参阅部署连接器
您需要以 ThingWorx 管理员身份登录才能完成此操作。
步骤
可通过以下方式之一自定义 Dynamics 365 CRM 服务:
更新 OData 元数据 - Dynamics 365 CRM 服务包含 OData 元数据 9.0 版本。您可能需要处理其他版本,或者可能已将自定义内容添加到您的版本中。在这种情况下,需要更新 Dynamics 365 CRM 元数据文件。您可以下载 Dynamics 365 CRM 元数据文件的打包版本以供参考,并将您的版本或已更新的版本上载到您的 ThingWorx Flow 实例。
ThingWorx Flow OOTB 仅支持 Dynamics 365 CRM 模型中的几个实体。OOTB settings.json 仅包含这些受支持的实体。但是,打包的 OData 元数据具有 Microsoft 支持的所有实体、关联以及任何其他内容。您可能希望测试 Dynamics 365 CRM 以获取其他实体,并通过更新 settings.json 文件将其包括在实体、属性和相关项列表中。然后,将其上载到您的 ThingWorx Flow 实例。编辑此文件时要小心,因为任何语法错误都可能会使 Dynamics 365 CRM 在 ThingWorx Flow 中呈现为不可用。要了解如何更新此文件,请下载打包文件,然后将其与正在使用的 OData 元数据文件进行比较。
对于可通过在 Dynamics 365 CRM settings.json 文件中进行更新来自定义 Dynamics 365 CRM 的属性,下表中提供了其相关信息:
属性
说明
DynamicsApiVersion
指定 Dynamics 365 CRM API 版本。默认情况下,此首选项设置为 9.0
EntitySetDefinitions
propertyDefinitions
定义想要在 ThingWorx Flow 用户界面上显示的 Dynamics 365 CRM 实体集。
例如:要在用户界面上包括 accounts 实体集,请在 EntitySetDefinitions 属性下指定以下内容:
"name": "accounts",
"include": true,
"label": "Account",
其中,name 用于指定 Dynamics 365 CRM 实体集名称。
include 设置为 true 将在用户界面上显示实体集。
label 属性用于定义要在用户界面上显示的实体集名称。
每个实体集都具有属性。定义要在用户界面上 propertyDefinitions 属性下显示的实体集中的属性。可通过提供属性的 namelabel 数组来限制要在用户界面上显示的任何实体集中的属性数。
例如:要显示 accountid 属性,请在 accounts EntitySetDefinitions 属性的 propertyDefinitions 属性下指定以下内容:
{
"name": "accountid",
"label": "Account ID"
}
其中,name 用于指定属性名称。
label 属性用于定义要在用户界面上显示的属性名称。
如果要包括某个实体集的所有属性,则将 propertyDefinitions 的值设置为空数组,即 "propertyDefinitions": []
* 
propertyDefinitions 不适用于“执行操作”“执行函数”操作。
relatedItems
如果添加相关项,则返回的实体集数据会包含该特定实体集的相关项。
例如:要显示 attachments 属性,请在 accounts EntitySetDefinitions 属性的 relatedItems 属性下指定以下内容:
{
"name": "attachments",
"label": "Attachments"
}
其中 name 指定了相关项名称。
label 属性用于定义要在用户界面上显示的相关项名称。
如果不希望包括任何实体集的任何相关项,则将 relatedItems 的值设置为空数组,即 relatedItems: []
上载 OData 元数据文件
1. 通过从 Dynamics 365 CRM 实例访问元数据文件来下载您所需的版本。例如:https://host.dynamics.com/api/data/v9.0/$metadata。请注意,版本号必须与您的实例版本相匹配。
或者,您也可以通过运行以下命令来下载与 ThingWorx Flow 一起打包的版本:
flow-deploy settings file-download -t <ThingWorx_Base_URL> -u <ThingWorx_Administrator_Username> -p '<ThingWorx_Administrator_Password>' -f <Path_to_Metadata_XML_File> -s default -c dynamics365 --fileId DynamicsMetadata --contentType application/xml
* 
必须将参数 fileId 的值设置为 DynamicsMetadata
2. 打开 XML 文件,并确保下载的 XML 文件中存在所需的自定义 (如果适用)。如有必要,可编辑文件以添加您的自定义。
3. 运行以下命令以将自定义 OData 元数据文件上载到 ThingWorx Flow 实例:
flow-deploy settings file-upload -t <ThingWorx_Base_URL> -u <ThingWorx_Administrator_Username> -p '<ThingWorx_Administrator_Password>' -f <Path_to_Metadata_XML_File> -s default -c dynamics365 --fileId DynamicsMetadata --contentType application/xml
* 
必须将参数 fileId 的值设置为 DynamicsMetadata
上载 settings.json 文件
1. 运行以下命令,以下载与 ThingWorx Flow 一起打包的 settings.json 文件:
flow-deploy settings download -t <ThingWorx_Base_URL> -u <ThingWorx_Administrator_Username> -p '<ThingWorx_Administrator_Password>' -f <Path_to_Dynamics365_Settings_File> -s default -c dynamics365
2. 编辑 settings.json 文件,并确保它与您计划使用的 OData 元数据文件兼容。
确保 settings.json 文件中的 DynamicsApiVersion 值与先前上载的 OData 元数据文件中的版本相匹配。
3. 运行以下命令上载 Dynamics 365 CRM settings.json 文件:
flow-deploy settings upload -t <ThingWorx_Base_URL> -u <ThingWorx_Administrator_Username> -p '<ThingWorx_Administrator_Password>' -f <Path_to_Dynamics365_Settings_File> -s default -c dynamics365
待所有上载成功完成后,重新启动所有 ThingWorx Flow 服务。您的自定义现已显示在所有 Dynamics 365 CRM 操作中。
这对您有帮助吗?