使用 CRM 自定义检索 RecordId 和 OwnerId Activity

Retrieve RecordId and OwnerId with CRM Custom Activity

我对 CRM 还很陌生,现在我已经建立了一个自定义 Activity。 Activity 是全局的,未绑定到实体。

Activity 由放置在 CRM 中的表单(实体)上的按钮触发。

现在我需要在上下文中检索 RecordId 和 OwnerId。

在客户端这很容易,而且还需要一个插件。但直到现在我才弄清楚如何在我的自定义 Activity.

中获取这些 Guids

编辑: 我试过这个,但 Guid 总是“000-00-000-000....”

IWorkflowContext context = executionContext.GetExtension<IWorkflowContext>();
Guid recordId = context.PrimaryEntityId;

可能是因为我的代码Activity是全球性的,我没有"PrimaryEntity"?

非常感谢任何帮助!

如果您的操作是全局的,那么根据定义它不会绑定到任何实体,因此您不会有任何 "context" 信息 - 您甚至可以从 CRM 外部调用此操作,系统不会通过在基于您当前所用表格的任何信息中。

你的全局动作应该有一些输入参数,你应该在调用动作时传递它们(据我正确理解来自 JavaScript)。这可以是实体 ID、实体类型或您需要的任何其他内容。然后您应该将它们传递到您的自定义工作流 Activity 中(使用自定义 Activity 的输入参数)。或者您可以简单地将此操作重新创建为绑定操作(但在这种情况下,您仍然需要在调用操作时传递绑定实体,系统不会神奇地为您注入上下文信息)