Начать рабочий процесс с помощью веб-служб Sharepoint 2010

Я пытаюсь запустить последовательный рабочий процесс визуальной студии для элементов в библиотеке, но наткнулся на стену. поскольку объектная модель клиента, похоже, не поддерживает запуск рабочих процессов, я пытаюсь использовать вызов веб-службы для веб-службы "../_vti_bin/workflow.asmx".

Все вроде нормально до того момента, когда он звонит

StartWorkflow(item, templateid, workflowParameters)

Я получаю сообщение об ошибке parameters can't be null. Мой рабочий процесс не имеет формы инициализации, поэтому я не уверен, какие параметры передать. может кто-нибудь помочь мне здесь?

вот мой код:

Private Sub LoadDataFromSite()

    Try

        Dim frm As New DateForm
        frm.ShowDialog()

        fromDate = frm.DateTimePicker1.Value.Date
        toDate = frm.DateTimePicker2.Value.Date

        Dim siteUrl As String = "http://host.dom.local/payroll/"

        Dim clientContext As New ClientOM.ClientContext(siteUrl)
        Dim oList As ClientOM.List = clientContext.Web.Lists.GetByTitle("Timesheets")
        Dim oListItem As ListItem

        Dim camlQuery As New ClientOM.CamlQuery()
        camlQuery.ViewXml = "<View/>"

        Dim collListItem As ClientOM.ListItemCollection = oList.GetItems(camlQuery)
        clientContext.Load(collListItem)
        clientContext.ExecuteQuery()

        For Each oListItem In collListItem

            Console.WriteLine("ID: {0} " & vbCrLf & "Title: {1} " & vbCrLf & "", oListItem.Id, oListItem("Title"))

            If CDate(oListItem("Timesheet_x0020_Date")).Date >= fromDate And _
                CDate(oListItem("Timesheet_x0020_Date")).Date <= toDate Then

                MsgBox("found a timesheet in the specified date range = " & oListItem("Timesheet_x0020_Date"))

                Dim sguid As String = "{2009B982-3A49-4217-99AC-7E52C0EE44EF}"
                Dim workflowTemplateGuid As New Guid(sguid)
                Dim _itemURI As String = "http://host.dom.local/payroll/" & oListItem("Title")

                Dim workflow As WSWorkflow.Workflow = New WSWorkflow.Workflow

                workflow.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials

                workflow.StartWorkflow(_itemURI, workflowTemplateGuid, Nothing)

            End If

        Next oListItem

    Catch exs As Microsoft.SharePoint.Client.ServerException
        MsgBox("Error starting export workflow on list items.  It may not be finished yet, and you may need to export the timesheets manually." & exs.Message)
    Catch exss As Microsoft.SharePoint.Client.ClientRequestException
        MsgBox("Error starting export workflow on list items.  It may not be finished yet, and you may need to export the timesheets manually." & exss.Message)
    Catch ext As Microsoft.SharePoint.SoapServer.SoapServerException
        MsgBox("Error starting export workflow on list items.  Soap exception. " & ext.Message)

    End Try

End Sub

поэтому я не могу НИЧЕГО передать вызову функции, так что же здесь делать?




Ответы (1)


Есть две проблемы с вашим кодом.

1) URI/URL элемента — это должен быть ows_EncodedAbsUrl элемента, вы можете получить его из Lists.asmx

2) данные ассоциации - не может быть нулевым.

вы можете найти подробное объяснение на.

http://sharepointbuzzer.com/2013/10/15/start-workflow-using-client-object-model/

Я надеюсь, что это решит вашу ошибку.

person Manish    schedule 15.10.2013