Настройка модуля автоматизации
Модуль автоматизации (интеграции с внешними системами) предназначен для выполнения периодических заданий импорта, экспорта, обработки данных. Модуль представляет из себя службу Windows, которая каждые 10 секунд проверяет наличие заданий в таблице scheduler.jobs с прошедшим временем следующего выполнения и выполняет эти задания.
Заданиями для модуля интеграции (модуля автоматизации) могут быть:
- оборудование: автопечать продажных/возвратных чеков, автоматическое ежедневное формирование Z-отчета для фискальных регистраторов;
- отчеты: всевозможные email-оповещения в формате Excel (например, отчет о доставке);
- SMS-оповещения: автоматические SMS рассылки для клиентов/курьеров;
- интеграция: процесс обмена заказами и их статусами с другими компаниями (например, курьерскими службами, интернет магазинами);
- автоматический экспорт-импорт информации с БД систем других производителей (например, WMS-системами — «системами управления складом»).
Документация ниже не предлагает всем пользователям системы самостоятельно настраивать задания данного модуля. Наоборот, мы рекомендуем обращаться за настройкой к нам. Однако документация ПОЗВОЛЯЕТ при желании и наличии специалистов выполнить настройку самостоятельно.
Рекомендации для создания автоматической e-mail/смс рассылки
Перед формированием заявки для настройки автоматической email- или смс-рассылки пользователю системы крайне желательно ознакомиться с этой инструкцией.
- Не рассылайте одновременно e-mail и смс-уведомление. Массовая автоматическая рассылка в системе может быть реализована двумя способами:
- e-mail-уведомление — более востребованы для рассылки клиентам информации с вложениями в виде прикрепляемых файлов с отчетами;
- смс-информирование — подходят для сообщения получателю, что к нему едет курьер. Можно в этом же сообщении отправить телефон курьера, чтобы получатель мог напрямую в течение дня у курьера уточнить, когда именно тот планирует приехать.
Для каждого нового задания рекомендуется выбирать один из этих способов. Не следует перегружать клиента избыточной или регулярно повторяющейся информацией.
- Предусмотрите набор типов рассылки в карточке клиента (пользовательские поля для клиентов). Вы можете создать список рассылок в карточке клиента в виде флажков. Этот функционал позволяет включить клиента в рассылку или отключить от нее, а также настроить тарификацию необходимых рассылок в виде дополнительных услуг, предоставляемых клиенту.
- Периодичность рассылки и ее рабочее время. Задания рассылки могут выполняться с заданной периодичностью. Заданий для рассылки в системе может быть несколько, поэтому нужно оптимально распределить время их выполнения. ОПределите, будете ли вы отправлять e-mail-уведомление по каждому событию или разово, единым реестром в конце дня, недели и т. д. Например, e-mail-рассылка отчета о доставках выполняется утром в 9:00 за предыдущий день.
Выбор периодичности обязательно должен учитывать и интересы клиента: будет клиент просматривать множество писем с информацией или одно письмо с итоговой информацией в виде реестра.
Настройка рабочего времени рассылки (или часовой диапазон) больше применимы для смс-информирования. Эта настройка призвана разделять рабочее время и время отдыха. Таким образом, клиент не получит смс в 6 часов утра или в 11 часов вечера. Стандартно в системе принято условие для смс-рассылки с 8 до 10 вечера (по местному времени), но по желанию клиента этот диапазон может быть изменен. - Продумайте текст рассылки, ее алгоритм, способ, а затем обращайтесь для настройки. Специальные теги в системе позволят добавить информацию, например о номере документа или периоде его формирования.
- Узнать у клиента, какие рассылки ему требуются. Хорошей практикой перед запросом для настройки рассылки может стать предварительный опрос клиентов — какая рассылка действительно необходима клиенту? необходима ли она ему вообще? сколько для клиента будет стоить эта услуга? Как и при каких условиях клиент сможет отписаться от рассылки?
- Длина и кодировка смс-рассылки (ссылка). Известно, что длина смс сообщения влияет на его стоимость. Уменьшить длину поможет выбор типа кодировки сообщения: кириллица или транслитерация. Перед планированием смс-рассылки проанализируйте предполагаемые расходы в сутки/месяц. Это поможет сразу построить эффективную модель задания и избавит от последующих изменений и корректировок в скрипте задания. Более подробно этот вопрос рассмотрен в статье Почему мои сообщения не доставлены? Почему уходит много денег?.
- Подготовительная работа в системе перед настройкой рассылки. Заранее выберите и настройте почтовый адрес для отправки писем. Для смс-рассылки выберите провайдера услуг, настройте подключение к системе и протестируйте отправку сообщений в ручном режиме.
- Используйте статусную модель для заказов в ЛК как альтернативу рассылке отчета о доставках. Любой клиент MeaSoft может отслеживать свои заказы в личном кабинете и в режиме реального времени узнать статус их выполнения, что, несомненно, является весомым преимуществом по сравнению с почтовым уведомлением.
- Спам-фильтры и блокировка уведомлений на стороне клиента. Для email-рассылки с большими объемами всегда существует проблема — большинство почтовых серверов могут начать воспринимать сообщения из рассылки как спам, и бОльшая часть почты будет проигнорирована получателем или же попадет в соответствующие папки. Нередко получателю надоедает регулярно повторяющаяся информация, и он самостоятельно блокирует нежелательную почту как спам. Со временем почтовый адрес компании, отправляющей письма, может попасть в глобальный черный список антиспам-систем и заработать глобальную блокировку.
Установка
Настройка
параметры ini файла:
SMTPProtocol — тип протокола отправки почты: 0 — SMTP, 1 — SSL, 2 — TLS.
Создание заданий
Задания описываются в текстовом виде в поле TEXT таблицы jobs.
В одном тексте может быть несколько заданий, разделенных пустой строкой, за исключением случая, когда текст начинается с префикса интерпретатора («<?>»).
Задание может быть следующих видов: «Интерпретируемый код», «Импорт данных», «Выполнение запроса» (возможно, с экспортом результата).
Интерпретируемый код
Если задание начинается с префикса интерпретатора, то весь последующий код обрабатывается им.
Импорт данных
input, OperNo, FileType, Param1, Param2, Param3, Param4, Param5, Param6
Параметр | Описание |
---|---|
input | Признак типа задания — импорт данных |
OperNo | Номер действия. Значения: 0 — загрузка по FTP, SFTP. 1 — Получение почты. 2 - FIAS. 3 - Скриптовая обработка почты |
FileType | Тип файла либо код аккаунта (для OperNo=3). Принимает значения:
0 — Формат «Йота» 1 — Формат «Сони» 2 — Формат «Омни» 3 — Стандартный формат заказов 4 — Стандартный формат отчетов 5 — Пользовательская процедура импорта 6 — Пользовательская процедура импорта, без загрузки файла |
Param1 | Полный путь к папке на FTP-сервере (вместе с именем сервера) (для SFTP используйте sftp://имя_сервера) |
Param2 | Имя пользователя FTP-сервера |
Param3 | Пароль FTP-сервера |
Param4 | Маска имен файлов, подлежащих загрузке |
Param5 | Код клиента (поле courier.clients.code), для привязки загруженных заказов |
Param6 | Активное соединение FTP. Для использования активного режима укажите active |
При задании «1» — Импорт почты система получает почту по всем аккаунтам из таблицы Accounts с AccType = 1 и загружает их в таблицы messages и attachment
Экспорт данных
query, OperNo, FileType, Param1, Param2, Param3, Param4, Param5, Param6 QueryText
Модуль выполняет запрос QueryText, и передает результат его выполнения функции отправки, описанной в первой строке задания.
Параметр | Описание |
---|---|
query | Признак типа задания — экспорт данных |
OperNo |
Номер действия. Значения: 0 - Только выполнение запроса. 1 - Отправка по электронной почте 2 - Выгрузка файла на FTP, SFTP-сервер 7 - Отправка сообщений из тикетов Параметры |
FileType |
Тип файла. Принимает значения: 1 - Формат CSV 2 - Формат «Сони» 3 - Формат XLS 4 - формат CSV (с заголовками) 5 - загрузка файла и запуск скрипта 6 - запуск скрипта (без загрузки файла) |
Значения параметров 1-6 зависят от типа операции:
Тип операции — 0: Не используются.
Тип операции — 1:
Параметр | Описание |
---|---|
Param1 | Адрес e-mail для отправки |
Param2 | Тема сообщения. Если пусто — «CourierAutoReport» |
Param3 | Текст сообщения. Если пусто — «see attachment» |
Param4 | Маска имени файла. Доступны шаблоны %DT%, %D%, %T% — Дата/время в форматах YYYYMMDDHHMMSS, YYYYMMDD, HHMMSS соответственно. Если пусто — используется ДатаВремя |
Param5 | Не используется |
Param6 | Не используется |
Тип операции — 2:
Параметр | Описание |
---|---|
Param1 | Полный путь к папке на FTP-сервере (вместе с именем сервера) (для SFTP используйте "sftp://имя_сервера...») |
Param2 | Имя пользователя FTP-сервера |
Param3 | Пароль FTP-сервера |
Param4 | Маска имен файла. Доступны шаблоны %DT%, %D%, %T% — Дата/время в форматах YYYYMMDDHHMMSS, YYYYMMDD, HHMMSS соответственно. Если пусто — используется ДатаВремя |
Param5 | Активное соединение FTP. Для использования активного режима укажите active |
Param6 | Не обязательный параметр, полный путь к папке на FTP-сервере для сохранения копии |
Примеры использования
Импорт заказов в стандартном формате с FTP-сервера
input, 0, 4, myftphost.ru/upload/folder/, 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-сервер. В последнем подзадании запрос отмечает всю корреспонденцию отправленной. Если на втором этапе при отправке файла произойдет ошибка, то третий запрос не будет выполнен, заказы останутся в состоянии «не отправлен», и в следующий раз будет предпринята повторная попытка их отправки.
Сохранение текста письма в таблицу algocom.sample_messsage от аккаунта с кодом 2
Input, 3, 2 <?> New('TSelfADO', 'db'); db.Query('INSERT INTO algocom.sample_messsage (MessageText) VALUE ('+QUOTEDSTR(Message.Text)+')');