Dynamics crm 通过自定义工作流更新MS CRM 4.0中的自定义实体

Dynamics crm 通过自定义工作流更新MS CRM 4.0中的自定义实体,dynamics-crm,dynamics-crm-4,Dynamics Crm,Dynamics Crm 4,我已经在MS CRM 4.0中创建了一个自定义实体,并且正在尝试通过.Net中的自定义工作流更新几个属性。我已经阅读了一些论坛和博客文章,仍然对如何访问自定义实体和更新它们的一些属性感到困惑 我创建了一个自定义实体来替换CRM如何分配,因为我们公司有一些CRM没有执行的特定业务规则。在事件上完成任务时,我希望使用任务持续时间更新自定义实体中的属性。任何帮助都将不胜感激 谢谢在自定义工作流中使用CRM web服务时,您需要使用DynamicEntity对象。工作流上下文Web服务只是一个ICrmS

我已经在MS CRM 4.0中创建了一个自定义实体,并且正在尝试通过.Net中的自定义工作流更新几个属性。我已经阅读了一些论坛和博客文章,仍然对如何访问自定义实体和更新它们的一些属性感到困惑

我创建了一个自定义实体来替换CRM如何分配,因为我们公司有一些CRM没有执行的特定业务规则。在事件上完成任务时,我希望使用任务持续时间更新自定义实体中的属性。任何帮助都将不胜感激


谢谢

在自定义工作流中使用CRM web服务时,您需要使用DynamicEntity对象。工作流上下文Web服务只是一个ICrmService,因此它不知道您的特定定制。这里有一个很好的例子:


我想您也可以将CRM web服务作为web引用添加到您的工作流项目中。然后,您将拥有自定义实体的强类型对象。我从来没有为我的自定义工作流这样做过,但它适用于访问CRM的其他自定义应用程序。

这非常简单,您不必使用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);

也许你真正的意思是自定义工作流活动?这涉及到编写自己的.NET类,以新步骤类型的形式向标准CRM WF添加功能。如果您只想更新一个属性,那么实际上并不需要它,即使它位于自定义实体上。更新记录步骤就是这样做的,并允许指定动态值(来自其他实体)

希望能有帮助


Daniel

选择动态实体而不是支持WSDL总是更好的选择。
当您开发一段代码时,您可以更灵活地使用您的类。您可以在不同的环境中为不同的系统使用您的软件。这就是动态实体被发明的原因。

这是可行的。我已经在实践中做到了。您必须具有web引用才能检索(和更新)动态数据,但输入和输出参数使用静态实体。