пример запроса на SQL
Из всех возможных вариантов взаимодействия с нашей КИС подходит вариант Коннектор с SQL Server. Можно ли увидеть примеры запросов к SQL. К примеру как результаты инвентаризации загружаются в КИС и как справочник ТМЦ загружается из КИС в вашу систему. Кстати имеется ли какой нибудь коннектор позволяющий отсылать запросы через http к web серверу
Сервис поддержки клиентов работает на платформе UserEcho
Для работы с базой SQL Server в конфигурацию Mobile SMARTS нужно добавить коннектор к SQL Server и настроить подключение к базе:
Для получения данных из базы можно использовать действие Вызов внешней системы http://www.cleverence.ru/support/%D0%94%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5+%C2%AB%D0%92%D1%8B%D0%B7%D0%BE%D0%B2+%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B0+%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B5%D0%B9+%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B%C2%BB/
Пример обычного запроса:
Также есть возможность обрабатывать с помощью коннектора события сервера Mobile SMARTS (http://www.cleverence.ru/support/%D0%A1%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BD%D1%8B%D0%B5+%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F/).
Для получения номенклатуры он-лайн по запросу с терминала используется событие ТоварНеНайден (http://www.cleverence.ru/support/%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%D0%9D%D0%B5%D0%9D%D0%B0%D0%B9%D0%B4%D0%B5%D0%BD/)
Создайте в базе SQL хранимую процедуру
CREATE PROCEDURE [dbo].[GetProduct]
(
@productId varchar(50),
@packingId varchar(50),
@userId varchar(50),
@mode int,
@resultXml xml OUTPUT
)
AS
BEGIN
...
END
В обработчике события ТоварНеНайден укажите SqlServerConnector: serverEvent_GetProduct (SqlServerConnector - ид. коннектора, serverEvent_ - указание на обработчик серверного события). Процедура должна возвращать через параметр @resultXml xml особого вида, который представляет собой сериализованные объекты Mobile SMARTS, в случае режима 1 (поиск по ШК или другим атрибутам товара) - это объекты Cleverence.Warehouse.PackedProduct (если найден один товара) или Cleverence.Warehouse.PackedProductCollection (несколько объектов). См. http://www.cleverence.ru/devlib/TerminalConnector_v3/index.html. В процедуре нужно создать соответствующие COM-объекты, получить xml с помощью вызова ToXml объекта StorageConnector, можно также самим сформировать нужный xml, пример:
IF @mode = 1 00" quantity="1" registrationDate="0001-01- 01T00:00:00"><Fields /> 00112f43529a" marking="Х-1234" name="BOSCH"> Packings>
BEGIN
SET @resultXml = '<?xml version="1.0" encoding="windows-1251"?>
<PackedProduct expiredDate="0001-01-01T00:00:
<Product barcode="" basePackingId="шт" id="cbcf492a-55bc-11d9-848a-
<Packings><Packing barcode="888999" id="шт" marking="" Int32_qty="0" Int32_price="27960" currency="RUB"></Packing></
</Product>
<Packing barcode="888999" id="шт" marking="" Int32_qty="0" Int32_price="27960" currency="RUB"></Packing>
<Quantities />
</PackedProduct>'
END
При попадании завершенного документа с ТСД на сервер Mobile SMARTS вызывается событие ДокументЗавершен, с помощью обработчика этого события можно загрузить документ в базу SQL, есть два варианта обработчика для sql, первый (SqlServerConnector: serverEvent_DocumentCompleted):
(
@documentId varchar(50),
@resultXml xml OUTPUT
)
AS
BEGIN
/*
SET @resultXml = '';
END
Второй (SqlServerConnector: serverEvent_DocumentCompletedXml):
CREATE PROCEDURE [dbo].[DocumentCompletedXml]
(
@documentXml xml,
@result int OUTPUT
)
AS
BEGIN
SET @result = 1;
END
documentXml содержит xml документа Mobile SMARTS, который можно разобрать внутри процедуры.
Если через result возвращается 1, коннектор удалит документ с сервера.
Для получения списка документов для работы на терминале и выгрузке из базы SQL используются события ПолучитьСписокДокументов и ПолучитьДокумент:
В Панеле управления укажите обработчики таким образом:
Примеры процедур:
cleverence.ru/clr"> 00" distributeByBarcode="True" documentTypeName=" Инвентаризация" id="123" name="Инвентаризация 123" warehouseId="1"><Fields /> DocumentDescriptionCollection> ';
CREATE PROCEDURE [dbo].[GetDocumentsList]
(
@userId varchar(50),
@documentTypeName varchar(50),
@resultXml xml OUTPUT
)
AS
BEGIN
SET @resultXml = '<?xml version="1.0" encoding="windows-1251"?>
<DocumentDescriptionCollection xmlns:clr="http://schemas.
<DocumentDescription barcode="123" createDate="0001-01-01T00:00:
</DocumentDescription>
</
END
CREATE PROCEDURE [dbo].[GetDocument]
(
@userId varchar(50),
@documentTypeName varchar(50),
@documentId varchar(50),
@mode int,
@resultXml xml OUTPUT
)
AS
BEGIN
SET @resultXml = '<?xml version="1.0" encoding="windows-1251"?>
<Document xmlns:clr="http://schemas.
<DeclaredItems>
<DocumentItem declaredQuantity="8" expiredDate="0001-01-01T00:00:
<DocumentItem declaredQuantity="20" expiredDate="0001-01-01T00:00:
<DocumentItem declaredQuantity="9" expiredDate="0001-01-01T00:00:
<DocumentItem declaredQuantity="20" expiredDate="0001-01-01T00:00:
</DeclaredItems><CurrentItems capacity="0" />
<ClassificatorIds capacity="0" />
<Classificators capacity="0" />
<ClassificatorUsings capacity="0" /><Errors capacity="0" />
<Fields capacity="4"><FieldValue fieldName="КонтрольКолва"><
</Fields>
<Tables capacity="0" />
</Document>'
END
Также не обязательно формировать xml вручную, можно использовать COM-объекты Mobile SMARTS.