设置自定义活动的OwnerId

时间:2011-12-16 03:46:32

标签: dynamics-crm-2011

我创建了一个我在工作流程中使用的自定义CRM活动。 我将此活动用作自定义工作流活动的InArgument。 在Execute()方法中,我试图将自定义CRM活动实例的OwnerId设置为系统用户,并在我使用CrmSvcUtil生成的上下文对象上调用UpdateObject(实体)。

[Input("Some name")]
[ReferenceEntity("mycustomactivity")]
[Required]
public InArgument<EntityReference> MyCustomActivity{get;set;}


void Execute(CodeActivityContext context)
{
IOrganizationService svc = context.GetExtension<IOrganizationService>();
var customActivityReference = MyCustomActivity.GetValue(MyCustomActivity);

//MyServiceContext is an OrganizationServiceContext generated using CrmSvcUtil
MyServiceContext servicecontext = new MyServiceContext(svc); 

//GetCutomActivityInstance uses the Id to get an instance of the custom activity) 
MyCustomCRMActivity activityInstance = GetCutomActivityInstance (servicecontext,customActivityReference.Id);

activityInstance.OwnerId = new EntityReference("systemuser",<SomeGUID>);
context.UpdateObject(activityInstance);
context.SaveChanges();
}

以上操作不起作用,活动所有者默认为我的crm用户帐户,并且未更新以反映我在activityInstance.OwnerId中设置的所有者

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:6)

无法通过更新更改所有者。您必须使用AssignRequest(或内置的分配步骤,请参见屏幕截图)

请参阅此回答https://stackoverflow.com/a/7746205/315862

enter image description here