Настройка модуля автоматизации

Материал из Меасофт
Перейти к: навигация, поиск

Модуль интеграции с внешними системами предназначен для выполнения периодических заданий импорта/экспорта/обработки данных. Модуль представляет из себя Службу Windows, которая каждые 10 секунд проверяет, наличие заданий в таблице scheduler.jobs с прошедшим временем следующего выполнения, и выполняет эти задания.


Установка

Настройка

Создание заданий

Задания описываются в текстовом виде в поле TEXT таблицы jobs. В одном тексте может быть несколько заданий, разделенных пустой строкой, за исключением случая, когда текст начинается с префикса интерпретатора ("<?>"). Задание может быть следующих видов: Интерпретируемый код, Импорт данных, Выполнение запроса (возможно, с экспортом результата).

Интерпретируемый код

Если задание начинается с префикса интерпретатора, то весь последующий код обрабатывается им.


Импорт данных

input, OperNo, FileType, Param1, Param2, Param3, Param4, Param5, Param6

Параметр Описание
input Признак типа задания - импорт данных
OperNo Номер действия. Значения: 0 - загрузка по FTP.
FileType Тип файла. Принимает значения:

0 - Формат "Йота" 1 - Формат "Сони" 2 - Формат "Омни" 3 - Стандартный формат заказов 4 - Стандартный формат отчетов

Param1 Полный путь к папке на FTP-сервере (вместе с именем сервера)
Param2 Имя пользователя FTP-сервера
Param3 Пароль FTP-сервера
Param4 Маска имен файлов, подлежащих загрузке
Param5 Код клиента (поле courier.clients.code), для привязки загруженных заказов
Param6 Активное соединение FTP. Для использования активного режима укажите active


Экспорт данных

query, OperNo, FileType, Param1, Param2, Param3, Param4, Param5, Param6 QueryText

Модуль выполняет запрос QueryText, и передает результат его выполнения функции отправки, описанной в первой строке задания.

Параметр Описание
query Признак типа задания - экспорт данных
OperNo Номер действия. Значения:

0 - Только выполнение запроса. 1 - Отправка по электронной почте 2 - Выгрузка файла на FTP-сервер 3 - Выгрузка заказов в систему "Аксиомус" 4 - Проверка статусов с системе "Аксиомус" 5 - Синхронизация с системой "Эмпрана"

FileType Тип файла. Принимает значения:

1 - Формат CSV 2 - Формат "Сони"

Значения параметров 1-6 зависят от типа операции:

Тип операции - 0: Не используются.

Тип операции - 1:

Параметр Описание
Param1 Адрес e-mail для отправки
Param2 Не используется
Param3 Не используется
Param4 Маска имени файла
Param5 Не используется
Param6 Не используется

Тип операции - 2:

Параметр Описание
Param1 Полный путь к папке на FTP-сервере (вместе с именем сервера)
Param2 Имя пользователя FTP-сервера
Param3 Пароль FTP-сервера
Param4 Маска имен файла
Param5 Активное соединение FTP. Для использования активного режима укажите active
Param6 Не используется

Типы операции - 3, 4:

Параметр Описание
Param1 Имя пользователя системы "Аксиомус"
Param2 Пароль системы "Аксиомус"
Param3 Не используется
Param4 Не используется
Param5 Не используется
Param6 Не используется

Тип операции - 5:

Параметр Описание
Param1 Адрес сервера системы "Эмпрана"
Param2 Имя пользователя системы "Эмпрана"
Param3 Пароль системы "Эмпрана"
Param4 Код клиента (поле courier.clients.code), для привязки загруженных заказов
Param5 Символьный код города системы "Эмпрана"
Param6 Не используется


Примеры использования

Импорт заказов в стандартном формате с FTP-сервера

input, 0, 4, myftphost.ru/upload/foulder/, MyUserName, MyPassword, *_orders.csv, 123, active


Экспорт заказов в CSV-файле на FTP-сервер

query 0, 
replace scheduler.sent (code, sent, source, rectype)
select a.code, 'F', b.source, 2 
from 
courier.address a join zakaz b on a.zakaz=b.code left join scheduler.sent s on s.code=a.code and s.source=b.source and s.rectype=2
where a.ldtime>=date_sub(now(), interval 7 day)
and s.code is null
and b.source=123

query, 2, 1, myftphost.ru/upload/foulder/, MyUserName, MyPassword, MY-ORD-%DT%
select a.code, a.strbarcode, a.target, a.name, a.address, a.phone, a.rur
from scheduler.sent s join courier.address a on s.code=a.code 
where s.sent='F' and s.source=123 and s.rectype=2

query, 0
update scheduler.sent set sent='T' where sent='F' and source=123 and rectype=2

Данное задание состоит из 3-х подзаданий. В первом - запрос собирает коды корреспонденции, измененной за последние 7 дней, но не добавленных в очередь отправки в таблице sent. Во втором происходит формирование CSV-файла с заказами, у которых стоит отметка, что они не отправлены (sent.sent='F'), и отправка файла на FTP-сервер. В последнем подзадании запрос отмечает всю корреспонденцию отправленной. Если на втором этапе, при отправке файла произойдет ошибка, то этот, третий запрос не будет выполнен, заказы останутся в состоянии "не отправлен", и в следующий раз будет предпринята повторная попытка их отправки.