2014-10-14 1 views
1

Я использую CSOM для запуска рабочего процесса платформы SharePoint 2010, связанного с List. Поскольку это SharePoint 2010 Workflow, созданный в SharePoint 2013 Online, я использую метод InteropService StartWorkflow рабочего процесса.Не удалось запустить List Sharepoint 2010 Рабочий процесс платформы с использованием CSOM

Web web = clientContext.Web; 
WorkflowServicesManager manager = new WorkflowServicesManager(clientContext, web); 
InteropService workflowInteropService = manager.GetWorkflowInteropService(); 
clientContext.Load(workflowInteropService); 
clientContext.ExecuteQuery(); 

List sharePointList = web.Lists.GetByTitle("Ronak"); 
ListItem sharePointListItem = sharePointList.GetItemById(1); 
clientContext.Load(sharePointList); 
clientContext.Load(sharePointListItem); 
clientContext.ExecuteQuery(); 

Guid itemGuid = Guid.Empty; 
if (sharePointListItem.FieldValues.ContainsKey("UniqueId")) 
{ 
     object temp = sharePointListItem.FieldValues["UniqueId"]; 
     if (temp != null) 
      itemGuid = (Guid)temp; 
} 


var initiationData = new Dictionary<string, object>(); 

//Start the Workflow 
ClientResult<Guid> resultGuid = workflowInteropService.StartWorkflow("MYWFD", new Guid(), sharePointList.Id, itemGuid, initiationData); 

clientContext.ExecuteQuery(); 

По какой-то причине это бросает мне это исключение, как будто мой ItemGuid неверен.

Microsoft.SharePoint.Client.ServerException was unhandled 
    HResult=-2146233088 
    Message=itemGuid 
    Source=Microsoft.SharePoint.Client.Runtime 
    ServerErrorCode=-2147024809 
    ServerErrorTraceCorrelationId=80d8c19c-b093-1000-8fbc-c2919fdf4284 
    ServerErrorTypeName=System.ArgumentException 
    ServerStackTrace="" 
    StackTrace: 
     at Microsoft.SharePoint.Client.ClientRequest.ProcessResponseStream(Stream responseStream) 
     at Microsoft.SharePoint.Client.ClientRequest.ProcessResponse() 
     at Microsoft.SharePoint.Client.ClientRequest.ExecuteQueryToServer(ChunkStringBuilder sb) 
     at Microsoft.SharePoint.Client.ClientRequest.ExecuteQuery() 
     at Microsoft.SharePoint.Client.ClientRuntimeContext.ExecuteQuery() 
     at Microsoft.SharePoint.Client.ClientContext.ExecuteQuery() 
     at SPCSOMTest.Program.StartListWorkflowAssociation(ClientContext clientContext) in c:\Program Files\nsoftware\SharePoint Integrator V4 .NET Edition\demos - winform\SPCSOMTest\SPCSOMTest\Program.cs:line 243 
     at SPCSOMTest.Program.Main(String[] args) in c:\Program Files\nsoftware\SharePoint Integrator V4 .NET Edition\demos - winform\SPCSOMTest\SPCSOMTest\Program.cs:line 63 
     at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) 
     at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 
     at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
     at System.Threading.ThreadHelper.ThreadStart() 
    InnerException: 

ответ

1

У меня такая же проблема в последнее время. Вы используете неправильный идентификатор, вместо

object temp = sharePointListItem.FieldValues["UniqueId"]; 

вы должны использовать:

object temp = sharePointListItem.FieldValues["GUID"]; 
Смежные вопросы