Механизм обмена данными в Mobile SMARTS


Для организации обмена данными между учетной системой пользователя и Mobile SMARTS применяется специальная COM компонента.

После ее установки и регистрации в ОС Windows становится возможным создание и операции с объектами компоненты, непосредственно в процедурах учетной системы.

Все средства доступа к серверу Mobile SMARTS сосредоточены в одном единственном COM- компоненте Cleverence.Warehouse.StorageConnector.

Операция создания объектов, описанных в COM, специфична для каждой системы:

Псевдокод:

«1С:Предприятие 7»:

«1С:Предприятие 8»:

Microsoft Dynamics AX (Axapta):

StorageConnector содержит функции для выгрузки/загрузки справочников и документов, а также для работы со специальными возможностями системы (управление терминалами, редактирование и печать этикеток и так далее). Все объекты метаданных Mobile SMARTS и прочие объекты Mobile SMARTS в рамках компоненты доступа к серверу Mobile SMARTS также представлены в виде COM-компонентов.

После создания, к COM-объекту могут применяться операции чтения и записи свойств и вызов его функций, в соответствии с синтаксисом языка разработки применяемой учетной системы.

Посмотреть все установленные в системе COM компоненты, их свойства и функции, возможно с помощью утилиты oleview.exe компании Microsoft.

Сервер Mobile SMARTS принимает обращения и возвращает результаты только в виде XML- документов. Формат этих документов может меняться от версии к версии, и нигде не документирован. StorageConnector облегчает работу прикладного программиста, автоматически транслируя графы объектов Mobile SMARTS в XML-документ и наоборот.

В процессе интеграции, разработчик создает код учетной системы, который создает и заполняет некоторый объект Mobile SMARTS, иногда достаточно сложный, в соответствии с данными учетной системы, и отправляет его на сервер Mobile SMARTS при помощи вызова StorageConnector. При загрузке данных происходит обратная операция – анализ объекта Mobile SMARTS и модифицирование на его основе данных учетной системы.

Доступ к серверу

После создания StorageConnector в обязательном порядке требуется провести его инициализацию с помощью функции InitializeServerConnection.

C#:

Строка соединения connectionString представляет собой url к Web-сервису сервера Mobile SMARTS и имеет следующий формат:

http://DNS-имя-сервера[:порт для доступа]/путь-к-странице/DataStorage.asmx

Самый первый шаг на пути к интеграции – это попытка выполнить следующий код:

C#:

«1С:Предприятие 7»:

«1С:Предприятие 8»:

Microsoft Dynamics AX (Axapta):

Если доступ к серверу возможен только через прокси, следует использовать второй вариант этой  функции.

Если объект создан успешно и InitializeServerConnection выполнилась без ошибок, можно переходить к попытке выгрузить некоторые справочники.

Что могло случиться, если экземпляр StorageConnector создать не удалось:

Ошибка
Возможная
причина
Диагностика Решение
Создание экземпляра Cleverence.Warehouse.StorageConnector завершилось с ошибкой
«Cleverence.Warehouse.StorageComConnector were not registered» («COM-компонент не зарегистрирован») или какой-то
подобной.
На компьютере не
установлена
компонента
доступа.
В «Установке и удалении программ» нет записи
о «Mobile SMARTS 2.x — Компонента доступа».
Найти дистрибутив Mobile SMARTS и
произвести установку компоненты доступа.
Компонента
установлена, но
часть файлов
отсутствует.
Папка установки компоненты доступа
отсутствует либо пуста (и в ней нет файла
Cleverence.Warehouse.StorageComConnector.dll).
Найти дистрибутив Mobile SMARTS, через
«Установку и удаление программ» удалить
компоненту доступа и установить ее
заново.
Компонента
установлена, но
регистрация COM
не произошла.
А) В Oleview нет компонента
«Cleverence.Warehouse.StorageComConnector»,
либо
Б) В системном реестре (regedit.exe) нет ни
одной записи, содержащей строку
«Cleverence.Warehouse.StorageComConnector».
Произвести регистрацию вручную, запустив
из папки компоненты доступа файл
«Зарегистрировать COM-компонент
StorageComConnector.bat».Если файл регистрации не может найти
путь «Framework. v1.1.4322» или файл
«RegAsm.exe», необходимо переустановить
.NET Framework 1.1.
Создание экземпляра Cleverence.Warehouse.StorageConnector завершилось с ошибкой «Cannot resolve
Cleverence.Warehouse.StorageComConnector assembly or one of it’s references» («Немогунайтисборку
Cleverence.Warehouse.StorageComConnector или одну из используемых ею») или какой-то подобной.
Компонента
установлена, но
часть файлов
отсутствует.
Папка установки компоненты доступа
отсутствует, либо заполнена только на
половину (и в ней нет главного файла —
Cleverence.Warehouse.StorageComConnector.dll).
Найти дистрибутив Mobile SMARTS, через
«Установку и удаление программ» удалить
компоненту доступа и установить ее
заново.
Вызов метода InitializeServerConnection завершилось с ошибкой «Сервер не найден» или какой-то подобной.
Неверно указана
строка
подключения.
Скопировать строку подключения в браузер и
дожидаться загрузки страницы Web-сервиса.
Браузер выдаст ошибку «The page cannot be
displayed» («Невозможно отобразить страницу»)
или «Server Error in ‘/’ Application. The resource
cannot be found» («Ошибка в приложении ‘/’,
ресурс не найден»).

Выяснить точную строку подключения.

Например, на компьютере сервера
запустить Internet Information Services (IIS)
Manager (inetmgr.exe), найти виртуальную
папку Cleverence.Warehouse.DataService,
найти в ней файл DataStorage.asmx и
выбрать в контекстном меню команду
«Browse» («Просмотр»).

Расширения
ASP.NET 1.1 не
были
зарегистрированы
в MS IIS.
Microsoft Internet Information Services (IIS) был
установлен уже после установки .NET
Framework 1.1.Скопировать строку подключения в браузер и
дожидаться загрузки страницы Web-сервиса.
Браузер выдаст ошибку «The page cannot be
found» («Страница не найдена»).
Произвести регистрацию вручную, запустив
из папки сервера файл «Зарегистрировать
ASP.NET под MS IIS.bat».Например, на компьютере сервера
запустить Internet Information Services (IIS)
Manager (inetmgr.exe), найти виртуальную
папку Cleverence.Warehouse.DataService и
выяснить, где она расположена физически,
выбрав в контекстном меню команду
«Properties…» («Свойства…»). Если путь к
папке выглядит как
«\Cleverence.Warehouse.DataService», ее
следует искать в папке «Inetpub\wwwroot»
диска, на котором установлена
операционная система (чаще всего, это
диск C:, но может быть и по-другому).
В локальной сети
установлен
прокси-сервер
для доступа к
HTTP, а
разработчик об
этом не знает.
В настройке Internet Explorer, Opera, Firefox и
других браузерах указаны настройки прокси.Например, в IE в закладке «Tools\Internet
Options…\Connections\LAN Settings…»
(«Сервис\Свойства
обозревателя…\Подключения\Настройка LAN…»)
что-то сказано про «Use a proxy server for…»
(«Использовать прокси-сервер для…»).
Выяснить настройки прокси-сервера и
внести их в вызов метода
InitializeServerConnection.
Настройки
безопасности
доступа к папке с
Web-сервисом
Mobile SMARTS
настроены
неверно.
Скопировать строку подключения в браузер и
дожидаться загрузки страницы Web-сервиса.
Браузер выдаст ошибку «You are not authorized
to view this page» («Доступ к странице
запрещен»).
На компьютере сервера запустить Internet
Information Services (IIS) Manager
(inetmgr.exe) и убедиться в правильности
политики доступа к виртуальной папке
Cleverence.Warehouse.DataService.На компьютере сервера найти физическую
папку Cleverence.Warehouse.DataService
(например,
Inetpub\wwwroot\Cleverence…Dataservice) и
настроить политику доступа для локальных
и удаленных пользователей по всем
файлам и подпапкам.
На компьютере
установлен ISA-
клиент.
В трее видны значки ISA-клиента. Временно отключить Firewall Client, чтобы
более точно диагностировать ошибку:Если c выключенным Firewall Client
вызов работает, выяснить настройки
прокси-сервера и локальных политик и
внести их в вызов метода
InitializeServerConnection.Если нет – искать другую причину.

 

Выгрузка и загрузка данных

Рассмотрим небольшой пример выгрузки данных с использованием компоненты доступа, в котором мы выгрузим на сервер Mobile SMARTS одну-единственную позицию номенклатуры «Товар1»:

C#:

«1С:Предприятие 7»:

«1С:Предприятие 8»:

Microsoft Dynamics AX (Axapta):

 

Код в примере простой, но он содержит основные элементы любой выгрузки, а именно создание коллекции под выгрузку, ее наполнение, и отправка на сервер.

Если все было сделано правильно, сервер Mobile SMARTS доступен и работает, а вызов SetProduct прошел без ошибок, поздравляем! Можно зайти в папку «C:\Program Files\Cleverence Soft\Mobile SMARTS 2008\Server\Documents\» на физическом сервере Mobile SMARTS и поискать там файл «Cleverence.Warehouse.ProductsBook.xml». Если открыть его с помошью Internet Explorer или какого-нибудь редактора XML-файлов, можно будет поближе познакомиться со структурой хранения данных Mobile SMARTS.

Что могло случиться, если функция завершилась с ошибкой:

Ошибка
Возможная
причина
Диагностика Решение
Создание экземпляра Cleverence.Warehouse.StorageConnector завершилось с ошибкой.
Со времен чтения
раздела «Доступ
к серверу»
конфигурация
вашего
компьютера
изменилась, либо
это уже другой
компьютер.
Вернуться к разделу «Доступ к серверу» и
ошибкам подключения.