首页 > 解决方案 > 如何在不破坏 Web UI 的情况下编辑 CRM 工作流 xaml

问题描述

我有一个使用 CRM 工作流 UI 创建的工作流。不知何故,UI 允许我使用以 SystemUserRole 作为输入实体的自定义活动来创建工作流。您不能将其用作输入实体,因为它是多对多关系实体。因此,尽管 UI 最初允许它,但尝试打开工作流以稍后对其进行编辑会导致异常,指出 CRM 无法“检索” SystemUserRole 实体。

因此,由于我无法在 UI 中打开工作流来解决此问题,因此我导出了工作流并使用我导出的另一个工作流中的一些示例 xaml 编辑了 xaml,该工作流引用了正确/预期的输入实体类型“角色”。

但是,现在当我将工作流重新导入 CRM 时,UI 显示:

Processes designed outside the Microsoft Dynamics CRM web application 
cannot be viewed or edited in the web application.

我对此有几个问题:

  1. crm 如何知道工作流程已被编辑?我使用 CRM 生成的 xaml 来解决问题,而其他一切都保持不变。
  2. 我在导出的工作流程中的某处存储了哈希或 md5?
  3. 我能否生成一个新的哈希值来欺骗 CRM,让其认为工作流源自 Web UI?

标签: dynamics-crm-2011sharepoint-workflow

解决方案


大家好消息!CRM 2011 不知道您是否编辑了 xaml,没有隐藏的哈希或其他机制确保导入的 xaml 仅由 CRM 生成。

但是,如果 xaml 中存在任何不一致,则会出现上述误导性消息。

在我的例子中,工作流中的每个变量都有一个唯一的 TypeArgument 名称。我没有将我从工作示例 xaml 复制的名称更新为已在损坏的工作流中使用的 TypeArgument 名称。

一旦我解决了这个问题,CRM 就会愉快地导入工作流,我可以对其进行编辑。


推荐阅读