rssql
1 Описание
Назначение | MS SQL Server (RK ReportServer) |
Тип запроса | Асинхронный |
Настройка агента для выполнения запроса
2 Формат запросов
2.1 Формат запроса
<RQ cmd="rssql" tasktype="any_call" callback="http://ya.ru"> <PARAM name="object_id" val="000000000"/> <Query> <Command TYPE="SP" Text="Func1" ExpectedResultSet="1> <Param Id="Param1" Type="Int" Value="1" /> <Param Id="Param2" Type="DateTime" Value="2015-01-01" /> </Command> </Query> </RQ>
Описание параметров
Параметр | Тип | Обязательный | Описание | Значение по умолчанию |
---|---|---|---|---|
object_id | int | + | Код ресторана в системе лицензирования | |
groupguid | guid | - | Необязательный guid для группировки запросов в рамках одного пользовательского сценария. Если создаётся серия запросов (создан заказ, сохранён, оплачен), то лучше группировать их в один сценарий для упрощения диагностики проблем. | |
callback | string | + | HTTP адрес, по которому WhiteServer отправит запрос после выполнения команды | |
Command TYPE | sp - stored procedure, f - function | + | Тип команды | |
Command text | string | + | Название хранимой процедуры или функции | |
Command ExpectedResultSet | int | + | Флаг, означающий, что от процедуры или функции ожидается возвращаемый набор данных. |
TYPE=«SP» ExpectedResultSet=«1» - хранимая процедура, возвращающая набор данных
TYPE=«SP» ExpectedResultSet=«0» - хранимая процедура, ничего не возвращает. Получить возможно только returnResult
TYPE=«F» ExpectedResultSet=«1» - функция, возвращаемая набор данных
TYPE=«F» ExpectedResultSet=«0» - скалярная функция. Возвращает скалярное значение
2.2 Формат ответа
<?xml version="1.0" encoding="utf-8"?> <RP taskguid="6774b0bc-dd5e-4eca-a1f9-d982607feb2e" code="0" version="1.5.0.7155" />
Описание параметров
Параметр | Тип | Описание |
---|---|---|
taskguid | guid | Уникальный код этой задачи. При отправке callback будет использован этот код, чтобы вызывающий сервис мог сопоставить запрос и ответ |
2.3 Формат callback (асинхронного ответа)
<RP cmdguid="d87eb27c-6220-4ff4-9d1b-0951b50447a7" posid="4D7B18F2-58CE-4F0F-A2B6-2D90A6BFCF67"> <QueryResult status="0" message=""> <returnResult>0</returnResult> <resultSet>сериализованный результат команды</resultSet> </QueryResult> </RP>
Описание параметров
Параметр | Тип | Описание |
---|---|---|
cmdguid | guid | Совпадает с taskguid в ответе |
posid | guid | POS id кассового сервера (можно игнорировать) |
status | 0 - ОК, 1 - Ошибка при выполнении запроса | Статус выполнения |
message | string | Текстовое сообщение статуса |
returnResult | int | Результат выполнения |
resultSet | string | Сериализованный результат выполнения команды |
3 Примеры
Обратите внимание, что в 3.1.Х.3 taskguid и 3.1.Х.4 cmdguid совпадают.
3.1 Функция, возвращающая одно значение
3.1.1 Листинг процедуры
Create function [dbo].[FUNC_SUM](@param1 INT, @param2 int) RETURNS Int AS begin return (@param1 + @param2) end
3.1.2 Запрос
<?xml version="1.0" encoding="utf-8"?> <RQ cmd="rssql" tasktype="any_call" callback="http://ya.ru"> <PARAM name="object_id" val="199990106"/> <Query> <Command TYPE="F" Text="FUNC_SUM" ExpectedResultSet="0"> <Param Id="Param1" Type="Int" Value="1" /> <Param Id="Param2" Type="Int" Value="5" /> </Command> </Query> </RQ>
3.1.3 Ответ
<?xml version="1.0" encoding="utf-8"?> <RP taskguid="0a85447e-f4da-4424-8c36-d20c63fe6b89" code="0" version="1.7.0.8215" />
3.1.4 Callback (асинхронный ответ)
<RP cmdguid="0a85447e-f4da-4424-8c36-d20c63fe6b89" posid="797C3E3B-3C33-4D97-87F8-25578FE48BE6"> <QueryResult status="0" message=""> <returnResult>0</returnResult> <resultSet> <row COLUMN1="6"/> </resultSet> </QueryResult> </RP>
3.2 Процедура, возвращающая одно значение
3.2.1 Листинг процедуры
ALTER PROCEDURE [dbo].[Proc_First]( @param1 INT, @outInt int OUTPUT ) AS BEGIN set nocount on; set @outInt = @outInt + 10; return @outint - @param1; end
3.2.2 Запрос
<?xml version="1.0" encoding="utf-8"?> <RQ cmd="rssql" tasktype="any_call" callback="http://ya.ru"> <PARAM name="object_id" val="199990106"/> <Query> <Command TYPE="SP" Text="Proc_First" ExpectedResultSet="0"> <Param Id="Param1" Type="int" Value="1" /> <Param Id="OutInt" Type="int" Value="7" /> </Command> </Query> </RQ>
3.2.3 Ответ
<?xml version="1.0" encoding="utf-8"?> <RP taskguid="0a85447e-f4da-4424-8c36-d20c63fe6b89" code="0" version="1.7.0.8215" />
3.2.4 Callback (асинхронный ответ)
<RP cmdguid="0a85447e-f4da-4424-8c36-d20c63fe6b89" posid="797C3E3B-3C33-4D97-87F8-25578FE48BE6"> <QueryResult status="0" message=""> <returnResult>0</returnResult> <resultSet> <row COLUMN1="6"/> </resultSet> </QueryResult> </RP>
3.3 Функция, возвращающая несколько значений
3.3.1 Листинг процедуры
Create function [dbo].[FUNC_SUM2](@param1 INT, @param2 int) RETURNS table AS return ( select @param1 as param1, @param2 as param2, @param1 + @param2 as summ )
3.3.2 Запрос
<?xml version="1.0" encoding="utf-8"?> <RQ cmd="rssql" tasktype="any_call" callback="http://ya.ru"> <PARAM name="object_id" val="199990106"/> <Query> <Command TYPE="F" Text="FUNC_SUM2" ExpectedResultSet="1"> <Param Id="Param1" Type="Int" Value="1" /> <Param Id="Param2" Type="Int" Value="5" /> </Command> </Command> </Query> </RQ>
3.3.3 Ответ
<?xml version="1.0" encoding="utf-8"?> <RP taskguid="0a85447e-f4da-4424-8c36-d20c63fe6b89" code="0" version="1.7.0.8215" />
3.3.4 Callback (асинхронный ответ)
<RP cmdguid="0a85447e-f4da-4424-8c36-d20c63fe6b89" posid="797C3E3B-3C33-4D97-87F8-25578FE48BE6"> <QueryResult status="0" message=""> <returnResult>0</returnResult> <resultSet> <row param1="1" param2="5" summ="6"/> </resultSet> </QueryResult> </RP>