2015-07-08 2 views
0

Я пытаюсь подключиться к веб-сервису. Документации (или отсутствие) здесь:Отправка массива строки в конечную точку WSDL?

http://portal.smartertools.com/services2/

http://portal.smartertools.com/Services2/svcTickets.asmx

Я пытаюсь вызвать GetTicketsBySearch. Args SearchCriteria - это String(), и он говорит «список пар« ключ = значение », указывающий параметры поиска. Чтобы выполнить поиск по пользовательским полям, введите идентификатор поля в качестве ключа и условия поиска как значение (то есть: 1 = 'значение')

Мой код:..

 Dim args As New ST.ArrayOfString 
     args.Add("IsOpen='true'") 
     Dim CallWebService As New ST.svcTicketsSoapClient 
     Dim sGetValue As ST.TicketInfoArrayResult = CallWebService.GetTicketsBySearch(userName, Password, args) 

Я не могу получить какие-либо результаты, чтобы вернуться Ive пытался переходящая в строке много различных способов, а именно: 'IsOpen =' true, 'IsOpen' = 'true' и т. д.

ответ

0

Надеюсь, это поможет кому-то другому, столкнувшись с этой конкретной проблемой.

  • Учетная запись пользователя, обращаясь к конечной точке smartertools , должна иметь. Если он просто назначен роли администратора или менеджера, он не будет работать. Это глупо с их стороны, поскольку роль агента требует использования лицензии, поэтому вам действительно необходимо использовать лицензию для доступа к их веб-службе.
  • Если учетная запись пользователя не имеет разрешений, вы не получите ошибку, просто никаких результатов.
  • Правильное форматирование не является примером: isOpen = true
  • Вы не можете получить описание или «тело» билета из GetTickets. Их документация неверна. Вы можете использовать мой пример кода ниже, чтобы получить тело.

    '// Loop through your ticket results, or similar 
        Dim _ticket As ST.TicketInfo 
        _ticket = CType(e.Item.DataItem, ST.TicketInfo) 
        Dim CallWebService As New ST.svcTicketsSoapClient 
        Dim sGetValue As ST.TicketPartInfoArrayResult = CallWebService.GetTicketConversationPartList(userName, Password, _ticket.ID.tostring()) 
    
        '// Just grab the first, if that is all you need 
        For Each p In sGetValue.Parts.ToList() 
         Dim PVal As ST.TicketMessageBodyResult = CallWebService.GetTicketMessagePlainText(userName, Password, p.PartId) 
         Result(PVal.messageBody) 
        Next 
    
Смежные вопросы