Настройка модуля автоматизации — различия между версиями
Johny (обсуждение | вклад) |
Johny (обсуждение | вклад) |
||
Строка 52: | Строка 52: | ||
== Экспорт данных == | == Экспорт данных == | ||
query, OperNo, FileType, Param1, Param2, Param3, Param4, Param5, Param6 | query, OperNo, FileType, Param1, Param2, Param3, Param4, Param5, Param6 | ||
+ | QueryText | ||
+ | |||
+ | Модуль выполняет запрос QueryText, и передает результат его выполнения функции отправки, описанной в первой строке задания. | ||
{| | {| | ||
Строка 82: | Строка 85: | ||
Тип операции - 1: | Тип операции - 1: | ||
{| | {| | ||
+ | !Параметр | ||
+ | !Описание | ||
+ | |- | ||
|Param1 | |Param1 | ||
|Адрес e-mail для отправки | |Адрес e-mail для отправки | ||
Строка 103: | Строка 109: | ||
Тип операции - 2: | Тип операции - 2: | ||
{| | {| | ||
+ | !Параметр | ||
+ | !Описание | ||
+ | |- | ||
|Param1 | |Param1 | ||
|Полный путь к папке на FTP-сервере (вместе с именем сервера) | |Полный путь к папке на FTP-сервере (вместе с именем сервера) | ||
Строка 124: | Строка 133: | ||
Типы операции - 3, 4: | Типы операции - 3, 4: | ||
{| | {| | ||
+ | !Параметр | ||
+ | !Описание | ||
+ | |- | ||
|Param1 | |Param1 | ||
|Имя пользователя системы "Аксиомус" | |Имя пользователя системы "Аксиомус" | ||
Строка 145: | Строка 157: | ||
Тип операции - 5: | Тип операции - 5: | ||
{| | {| | ||
+ | !Параметр | ||
+ | !Описание | ||
+ | |- | ||
|Param1 | |Param1 | ||
|Адрес сервера системы "Эмпрана" | |Адрес сервера системы "Эмпрана" | ||
Строка 163: | Строка 178: | ||
|Не используется | |Не используется | ||
|} | |} | ||
+ | |||
+ | |||
+ | == Примеры использования == | ||
+ | |||
+ | |||
+ | === Импорт заказов в стандартном формате с 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-сервер. В последнем подзадании запрос отмечает всю корреспонденцию отправленной. Если на втором этапе, при отправке файла произойдет ошибка, то этот, третий запрос не будет выполнен, заказы останутся в состоянии "не отправлен", и в следующий раз будет предпринята повторная попытка их отправки. |
Версия 12:29, 19 сентября 2012
Модуль интеграции с внешними системами предназначен для выполнения периодических заданий импорта/экспорта/обработки данных. Модуль представляет из себя Службу 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-сервер. В последнем подзадании запрос отмечает всю корреспонденцию отправленной. Если на втором этапе, при отправке файла произойдет ошибка, то этот, третий запрос не будет выполнен, заказы останутся в состоянии "не отправлен", и в следующий раз будет предпринята повторная попытка их отправки.