Чтобы создать метод веб-сервиса, определите метод Public класса сервиса и пометьте его атрибутом WebMethod.
Пример
''' <summary>
''' Сложение двух целочисленных значений.
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
<WebMethod>
Public Function HelloWorld() As WebServiceResponse(Of String)
Return WebServiceResponse(Of String).OK("HelloWorld")
End Function
Только для методов, помеченных атрибутом WebMethod, и их параметров будет сгенерировано WSDL-описание, поэтому только о них будет известно клиентскому приложению.
Методы сервиса могут принимать как параметры и возвращать результатом любые значимые типы данных, массивы этих типов, структуры и классы, состоящие из этих типов. Таким образом, веб-сервис умеет работать с любым типом данных, который может быть сериализован в XML или JSON.
Для работы с сервисами используется пространство имен WebAccess.services.
Функции WebAccess.services представлены в таблице:
Имя функции |
Возвращаемое значение |
Описание |
---|---|---|
call(service_method, opt_params, opt_spinnerText, opt_onCompleteSpinnerText, opt_hideError, opt_hideWarning) |
deferred-объект |
Вызвать метод веб-сервисов |
callSync(service_method, opt_params, opt_spinnerText, opt_onCompleteSpinnerText, opt_hideError, opt_hideWarning) |
deferred-объект |
Выполнить синхронный вызов методов веб-сервисов, т.е. пока не закончится выполнение веб-сервиса, метод не запустится |
В обеих функциях в методы done и error можно передать функции обратного вызова, которые выполняются тогда, когда будет получен ответ от сервиса. Если операции веб-сервиса прошли без сбоев, то будет вызвана функция, переданная в метод done данного deffered-объекта. Иначе будет вызвана функция, переданная в метод еrror. Полный ответ от сервиса можно получить, обратившись к переменной this внутри функции обратного вызова.
Вызов метода веб-сервиса
WA.SRV.call('Planning.asmx/HelloWorld').done(function(response) { alert(response)});
WA.SRV.call('/Planning.asmx/SendForExecution', {RecordID: 146336}).done(function( response) {alert(response)})
Вызов сценария DIRECTUM
WA.services.call("/Script.asmx/Run",{Name:"WADemoTest","Params": {"id": 10} }).error(function(errorText) { ShowDialog(errorText); } );
Вызов сценария
WA.services.script.run()
© Компания DIRECTUM, 2018 | Сообщество пользователей DIRECTUM |