无法使用CSOM启动List Sharepoint 2010平台工作流



我正在使用CSOM启动与List关联的SharePoint 2010平台工作流。由于这是在SharePoint 2013 Online中创建的SharePoint 2010工作流,我使用的是工作流InteropService StartWorkflow方法。

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 FilesnsoftwareSharePoint Integrator V4 .NET Editiondemos - winformSPCSOMTestSPCSOMTestProgram.cs:line 243
       at SPCSOMTest.Program.Main(String[] args) in c:Program FilesnsoftwareSharePoint Integrator V4 .NET Editiondemos - winformSPCSOMTestSPCSOMTestProgram.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: 

我最近遇到了同样的问题。您使用了错误的ID,而不是

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

您应该使用:

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

最新更新