2011-12-16 4 views
2

워크 플로에서 사용중인 사용자 지정 CRM 작업을 만들었습니다. 이 활동을 사용자 지정 워크 플로 활동에 대한 InArgument로 사용하고 있습니다. Execute() 메서드에서 사용자 지정 CRM 작업 인스턴스의 OwnerId를 시스템 사용자로 설정하고 CrmSvcUtil을 사용하여 생성 한 컨텍스트 개체에서 UpdateObject (엔터티)를 호출하려고합니다.사용자 지정 활동의 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를 사용할 필요가 당신의 response.Is 할당 단계에서만 플러그인 또는도에 대한 https://stackoverflow.com/a/7746205/315862

enter image description here

+0

감사합니다 CRM 워크 플로우의 맞춤형 기능 나는 AssignRequest를 시험해보고 여기에 다시보고 할 것이다. 또한 워크 플로에서 작업 또는 사용자 지정 활동과 같은 "crm 활동"을 수신하면 InArgument 에 대한 형식 매개 변수가 "EntityReference"이어야합니다. 즉, [ReferenceEntity ("mycustomactivity")] [필수] public InArgument MyCustomActivity {get; set;} –

+0

@AbhijeetPatel 워크 플로 디자이너에서 사용할 수있는 단계를 의미합니다. – ccellar

+0

샌드 박스 서비스 또는 비동기 처리 서비스를 다시 시작해야합니까? 나는 소유권 변경을위한 코드 변경이 이러한 서비스를 재활용 한 후에 만 ​​변경되었음을 확인했습니다. –

관련 문제