我在 MS CRM 4.0 中创建了一个自定义实体,并尝试通过 .Net 中的自定义工作流更新几个属性。我已经阅读了几个论坛和博客文章,但仍然对如何访问自定义实体和更新它们的一些属性感到困惑。
我创建了一个自定义实体来替代 CRM 进行分配的方式,因为我们公司有一些 CRM 没有执行的特定业务规则。当事件的任务完成时,我想用任务持续时间更新自定义实体中的属性。任何帮助将不胜感激。
谢谢
我在 MS CRM 4.0 中创建了一个自定义实体,并尝试通过 .Net 中的自定义工作流更新几个属性。我已经阅读了几个论坛和博客文章,但仍然对如何访问自定义实体和更新它们的一些属性感到困惑。
我创建了一个自定义实体来替代 CRM 进行分配的方式,因为我们公司有一些 CRM 没有执行的特定业务规则。当事件的任务完成时,我想用任务持续时间更新自定义实体中的属性。任何帮助将不胜感激。
谢谢
在自定义工作流中使用 CRM Web 服务时,您需要使用 DynamicEntity 对象。工作流上下文 Web 服务只是一个 ICrmService,因此它不知道您的特定自定义。这里有一个漂亮的示例:http: //www.stunnware.com/crm2/topic.aspx?id=CustomWorkflowActivity
我想您还可以将 CRM Web 服务添加为您的工作流项目的 Web 参考。然后,您将拥有自定义实体的强类型对象。我从来没有为我的自定义工作流程这样做过,但它适用于访问 CRM 的其他自定义应用程序。
选择动态实体而不是 WSDL 总是更好的选择。当您开发一段代码时,您的类会更加灵活。您可以在不同的环境中为不同的系统使用您的软件。这就是发明动态实体的原因。
这非常简单,您不必使用 DynamicEntity。您必须转到设置 -> 自定义 -> 下载 WSDL。获取 wsdl 并在您的项目中使用它。现在您拥有所有自定义实体的强类型。你所要做的就是写这样的东西:
Guid entityId = getEntityId();
new_yourCustomEntity entity = new new_yourCustomEntity();
entity.new_yourCustomEntityid = entityId;
entity.new_customProperty = "value";
CrmService crmService = new CrmService();
crmService.Update(entity);
也许您真正的意思是 Custom Workflow Activity?这涉及编写您自己的 .NET 类,以新步骤类型的形式向标准 CRM WF 添加功能。如果您想要做的只是更新您并不真正需要的属性,即使它位于自定义实体上。更新记录步骤就是这样做的,它允许指定动态值(来自其他实体)。
希望能帮助到你
丹尼尔