如何在 CRM 2016 中更改字段类型

How to change a field's type in CRM 2016

我们是 运行 CRM 2016 SP1 内部部署。我们有 DEV、QA、Staging 和 Production 环境。我们的 DEV、QA 和 Staging 中的解决方案是非托管的,但在生产中是托管的。

我们需要在生产环境中将某些字段的数据类型从单行文本更改为多行文本。

我一直在研究这个并找到了以下链接:

https://debajmecrm.com/2014/04/12/change-field-data-type-in-mscrm-without-dropping-and-recreating-the-field/

https://community.dynamics.com/crm/b/workandstudybook/archive/2014/07/28/converting-single-line-text-to-multi-line-text-using-crm-sdk-s-configuration-migration-tool

根据我对这些页面的了解,我的选择如下:

  1. 直接在数据库中更改字段类型
  2. 使用 Configuration Manager 或 Attribute Manager (XrmToolbox) 等工具导出数据、删除字段、创建新字段以及为新字段导回数据。

选项 1 要求直接更改数据库,我们宁愿不这样做,因为它会导致 Microsoft 许可问题。

选项 2 需要删除旧字段并在每个环境中创建一个同名的新字段。这意味着新字段在每个环境中将具有相同的名称但具有不同的 GUID 值。

我假设选项 2 会在未来因为新字段的 GUID 不同而将解决方案从一个环境部署到另一个环境时导致错误,我的假设是否正确?

此外,选项 2 要求解决方案在所有环境中都是非托管的。但是,在我们的例子中,它是在生产中管理的。 考虑到所有这些,我的选择是什么?实现此目标的最佳方法是什么?

非常感谢您的评论。

亲切的问候

最简单的方法:

  1. 从表单、视图、报告等中隐藏原始字段

  2. 可选 - 将原始字段设置为不可搜索(因此它不会出现在高级查找中)。

  3. 可选 - 重命名原始字段以明确不应使用它,有些人喜欢使用 'z' 作为前缀以便它出现在列表底部。

  4. 创建你的新字段,把它放在和原来一样的地方。

  5. 将数据从原始字段迁移到新字段。可以批量执行工作流,或者导出、编辑、导入。

  6. 可选 - 删除原始字段。

根据您的上述选择; 1,这是不受支持的(不太可能弄乱您的许可,但很有可能破坏 CRM 且无法有效恢复)。 2,看起来和我上面的建议差不多。