Powershell Ошибка создания записи через соединение WSDL SOAP - PullRequest
0 голосов
/ 29 мая 2018

Итак, я получаю ошибку преобразования при отправке чего-либо через WSDL SOAP в PowerShell.Я пытаюсь создать записи в системе, называемой Kablink, однако, хотя запись имеет все значения и т. Д. В переменной $ soapData, при попытке фактического создания я получаю ошибку о невозможности преобразования записи аргумента из одного значения в другое, даже если обауказанные значения одинаковы.

    Cannot convert argument "entry", with value: "folder_addEntry.FolderEntry", for "folder_addEntry" to type "folder_addEntry.FolderEntry": "Cannot convert the "folder_addEntry.FolderEntry" value of type
    "folder_addEntry.FolderEntry" to type "folder_addEntry.FolderEntry"."

Любые идеи будут высоко оценены, так как это сейчас сводит меня с ума.

Ниже приведен скрипт, который я использую

    $kablinkSoapUrl  = "http://servername/ssr/secure/ws/TeamingServiceV1?wsdl"
    $kablinkConnector = New-WebServiceProxy -Uri $kablinkSoapUrl -Credential $Credential -namespace "folder_addEntry"
    #Set Binder ID to Shift Rota entries folder
    $binderID = 155
    #write-host $soapData


    #Import Objects and Populate Default Values
    $soapDescription = New-Object ("folder_addEntry.Description")
    $soapDescription.text = "Some Description"
    $soapDescription.format = 0
    $soapAttachment = New-Object("folder_addEntry.attachmentsField")
    $soapAttachment.name = ""
    $soapAttachment.type = ""
    $soapAttachment.attachments = @()
    $soapCreate = New-Object ("folder_addEntry.Timestamp")
    $soapCreate.date = get-date
    $soapCreate.principal = ""
    $soapCreate.principalId = 2
    $soapModify = New-Object ("folder_addEntry.Timestamp")
    $soapModify.date = get-date
    $soapModify.principal = ""
    $soapModify.principalId = 2
    $soapRating = New-Object ("folder_addEntry.AverageRating")
    $soapRating.averageRating = ""
    $soapRating.ratingCount = ""
    $soapCustBool = New-Object ("folder_addEntry.CustomBooleanField")
    $soapCustBool = @()
    $soapCustDate = New-Object ("folder_addEntry.CustomDateField")
    $soapCustDate = @()
    $soapCustEven = New-Object ("folder_addEntry.CustomEventField")
    $soapCustEven = @()
    $soapCustLong = New-Object ("folder_addEntry.CustomLongArrayField")
    $soapCustLong = @()
    $soapCustStriArr = New-Object ("folder_addEntry.CustomStringArrayField")
    $soapCustStriArr = @()
    $soapCustStr = New-Object ("folder_addEntry.CustomStringField")
    $soapCustStr = @()

    #Construct Entry

    $soapData = New-Object -TypeName folder_addEntry.FolderEntry
    $soapData.attachmentsField = $soapAttachment
    $soapData.averageRating = $soapRating
    $soapData.creation = $soapCreate
    $soapData.customBooleanFields = $soapCustBool
    $soapData.customDateFields = $soapCustDate
    $soapData.customEventFields = $soapCustEven
    $soapData.customLongArrayFields = $soapCustLong
    $soapData.customStringArrayFields = $soapCustStriArr
    $soapData.customStringFields = $soapCustStr
    $soapData.definitionId = "8a8ab38c62d40d5c0162fc8330eb01ad"
    $soapData.description = $soapDescription
    $soapData.entityType = "fileEntry"
    $soapData.eventAsIcalString = 0
    $soapData.family = "file"
    $soapData.id = ""
    $soapData.modification = $soapModify
    $soapData.parentBinderId = 155
    $soapData.permaLink = ""
    $soapData.title = "PowerShell Entry"
    $soapData.docLevel = 1
    $soapData.docNumber = ""
    $soapData.href = ""
    $soapData.preDeleted = 0
    $soapData.preDeletedBy = ""
    $soapData.preDeletedWhen = ""
    $soapData.reservedBy = ""
    $soapData.workflows = @()

    # Print Soap Data
    $soapData
    # Submit Entry
    $kablinkConnector.folder_addEntry("",$soapData,"")

Заранее спасибо.

1 Ответ

0 голосов
/ 29 мая 2018

Добавлен -class "folder_getEntry" при создании переменной $ kablinkConnector, делающей строку

    $kablinkConnector = New-WebServiceProxy -Uri $kablinkSoapUrl -Credential $Credential -namespace "folder_addEntry" -class "folder_getEntry"

И теперь она работает

...