以编程方式更改 EnforceStateTransitions EntityMetadata

Programmatically changing EnforceStateTransitions EntityMetadata

有没有办法通过当前版本 (9.x) 中的 API 更改实体的 EnforceStateTransitions(也就是 UI 上的启用状态原因转换复选框) Dynamics365 CRM 在线?

我需要禁用它并在多个实体上重新启用它以进行批量导入。

EntityMetadata.EnforceStateTransitions 是只读的,因此无法通过 UpdateEntityRequest.

完成

我能想到的唯一其他方法是在打开和关闭设置的情况下导出两个版本的解决方案,然后导入正确的版本,但这太过分了,而且可能比手动更改要慢。

不幸的是,这似乎是不可能的。我希望在 Microsoft.Xrm.Sdk.Messages or Microsoft.Crm.Sdk.Messages 命名空间中找到执行此操作的消息,但似乎没有这样的消息。

Microsoft 在 EntityMetadata.EnforceStateTransitions 页面上确认了这一点:

This property can only be set using the application.

您可以更改批量导入作业以符合状态原因转换。或者,您可以导入一个解决方案,其中 EnforceStateTransitions 已设置为正确的值,如您所述。