2009-01-28 79 views
2

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

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

感谢

回答

5

当一个自定义工作流使用CRM Web服务,您需要使用DynamicEntity对象。工作流上下文webservice只是一个ICrmService,因此它不知道您的特定定制。这里有一个漂亮的示例:http://www.stunnware.com/crm2/topic.aspx?id=CustomWorkflowActivity

我想你也可以添加CRM Web服务作为Web工作流程项目的Web引用。然后你会为你的自定义实体强制输入对象。我从来没有为我的自定义工作流程做过这件事,但它适用于访问CRM的其他自定义应用程序。

+0

This Works。我在实践中已经做到了。您必须具有Web引用才能检索(并更新)动态数据,但要将静态实体用于输入和输出参数。 – 2009-12-23 14:15:22

0

这很容易,你不要使用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); 
0

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

希望它可以帮助

丹尼尔

1

赞成在WSDL选择的动态实体始终是更好的选择。 当你开发一段代码时,你的类更灵活。你可以在不同的环境下使用你的软件来处理不同的系统。这就是动态实体发明的原因。

相关问题