我在MS CRM 4.0中创建了一个自定义实体,并尝试通过.Net中的自定义worflow更新一些属性。我已经阅读了几个论坛和博客文章,我仍然对如何访问自定义实体并更新其某些属性感到困惑。
我创建了一个自定义实体来取代CRM如何进行分配,因为我们公司有一些CRM没有做的具体业务规则。当事件完成任务时,我想用任务持续时间更新自定义实体中的属性。任何帮助将不胜感激。
由于
答案 0 :(得分:5)
在自定义工作流程中使用CRM Web服务时,您需要使用DynamicEntity对象。工作流上下文webservice只是一个ICrmService,因此它不知道您的特定自定义。这里有一个漂亮的样本:http://www.stunnware.com/crm2/topic.aspx?id=CustomWorkflowActivity
我想您也可以将CRM Web服务添加为工作流项目的Web引用。然后,您将拥有自定义实体的强类型对象。我从未为自定义工作流程执行此操作,但它适用于访问CRM的其他自定义应用程序。
答案 1 :(得分:1)
选择动态实体而不是WSDL总是更好的选择。 开发一段代码时,您可以更灵活地使用类。您可以在不同的环境中使用您的软件来处理不同的系统。这就是动态实体被发明的原因。
答案 2 :(得分: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);
答案 3 :(得分:0)
也许你真正的意思是Custom Workflow Activity ?这涉及编写您自己的.NET类,以新的步骤类型的形式向标准CRM WF添加功能。如果你想要做的只是更新属性,你真的不需要这个,即使它是在自定义实体上。 更新记录步骤就是这样做,并允许指定动态值(来自其他实体)。
希望有所帮助
丹尼尔