2011-12-16 4 views
2

Я создал пользовательскую CRM-активность, которую я использую в рабочем процессе. Я использую это действие как InArgument для пользовательского действия рабочего процесса. В методе Execute() я пытаюсь установить OwnerId экземпляра пользовательской CRM-активности системному пользователю и вызывать объект UpdateObject (entity) в объекте контекста, который я создал с помощью CrmSvcUtil.Настройка OwnerId пользовательского действия

[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

Любая помощь будет высоко ценится.

ответ

6

Владелец не может быть изменен путем обновления. Вы должны использовать AssignRequest (или встроенный Присвоить-шаг, см скриншот)

Смотрите этот ответ https://stackoverflow.com/a/7746205/315862

enter image description here

+0

Спасибо за ваши response.Is правопреемником шаг только для плагинов или также для пользовательские действия в рабочих процессах CRM? Я попробую AssignRequest и отчитаюсь здесь. Кроме того, при получении «операций crm», таких как задача или любое пользовательское действие в рабочем процессе, параметр типа InArgument должен быть «EntityReference» правильным? т. е. [ReferenceEntity («mycustomactivity»)] [Обязательный] public InArgument MyCustomActivity {get; set;} –

+0

@AbhijeetPatel Я имею в виду шаг, который доступен в дизайнере рабочих процессов. – ccellar

+0

Вам нужно было завершить перезагрузку службы песочницы или асинхронной обработки? Я заметил, что мой код изменился на активность для изменения права собственности только после того, как они переработали эти службы. –

Смежные вопросы