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

Материал из Меасофт
Перейти к: навигация, поиск
(Примеры использования)
 
(не показано 13 промежуточных версий 5 участников)
Строка 1: Строка 1:
== Подход в выборе алгоритма для построения автоматической e-mail/смс рассылки ==
+
Модуль автоматизации (интеграции с внешними системами) предназначен для выполнения периодических заданий импорта, экспорта, обработки данных. Модуль представляет из себя службу Windows, которая каждые 10 секунд проверяет наличие заданий в таблице scheduler.jobs с прошедшим временем следующего выполнения и выполняет эти задания.
  
В этой статье будут рассмотрены общие рекомендательные принципы и подходы для эффективного выбора алгоритма настройки автоматической рассылки в системе КС2008. Перед формированием заявки для настройки автоматической e-mail или смс рассылки пользователю системы крайне желательно ознакомиться с данной инструкцией.
+
Заданиями для модуля интеграции (модуля автоматизации) могут быть:
 +
* оборудование: автопечать продажных/возвратных чеков, автоматическое ежедневное формирование Z-отчета для фискальных регистраторов;
 +
* отчеты: всевозможные email-оповещения в формате Excel (например, отчет о доставке);
 +
* SMS-оповещения: автоматические SMS рассылки для клиентов/курьеров;
 +
* интеграция: процесс обмена заказами и их статусами с другими компаниями (например, курьерскими службами, интернет магазинами);
 +
* автоматический экспорт-импорт информации с БД систем других производителей (например, WMS-системами — «системами управления складом»).
  
1. Не рассылать одновременно e-mail и смс уведомление.
+
'''Документация ниже не предлагает всем пользователям системы самостоятельно настраивать задания данного модуля. Наоборот, мы рекомендуем обращаться за настройкой к нам. Однако документация ПОЗВОЛЯЕТ при желании и наличии специалистов выполнить настройку самостоятельно.'''
  
Массовая автоматическая рассылка в системе может быть реализована двумя способами – e-mail или смс информирование. Для каждого нового задания рекомендуется выбирать лишь один и из этих способов. Не следует перегружать клиента избыточной или регулярно повторяющейся информацией. По нашей практике:  смс уведомления наиболее востребованы для уведомления получателя, что к нему едет курьер. Можно в этом же сообщении отправить телефон курьера, чтобы получатель мог напрямую в течение дня у курьера уточнить - когда именно тот планирует приехать. E-mail уведомления более востребованы для рассылки клиентам информации с вложениями в виде прикрепляемых файлов с отчетами.
+
== Рекомендации для создания автоматической e-mail/смс рассылки ==
 +
Перед формированием заявки для настройки автоматической email- или смс-рассылки пользователю системы крайне желательно ознакомиться с этой инструкцией.
  
2. Предусмотреть набор типов рассылки в карточке клиента (пользовательские поля для клиентов).
+
# Не рассылайте одновременно e-mail и смс-уведомление. Массовая автоматическая рассылка в системе может быть реализована двумя способами:
 +
#* e-mail-уведомление — более востребованы для рассылки клиентам информации с вложениями в виде прикрепляемых файлов с отчетами;
 +
#* смс-информирование — подходят для сообщения получателю, что к нему едет курьер. Можно в этом же сообщении отправить телефон курьера, чтобы получатель мог напрямую в течение дня у курьера уточнить, когда именно тот планирует приехать.<br>Для каждого нового задания рекомендуется выбирать один из этих способов. Не следует перегружать клиента избыточной или регулярно повторяющейся информацией.
 +
# Предусмотрите набор типов рассылки в карточке клиента (пользовательские поля для клиентов). Вы можете создать список рассылок в карточке клиента в виде флажков. Этот функционал позволяет включить клиента в рассылку или отключить от нее, а также настроить тарификацию необходимых рассылок в виде дополнительных услуг, предоставляемых клиенту.
 +
# Периодичность рассылки и ее рабочее время. Задания рассылки могут выполняться с заданной периодичностью. Заданий для рассылки в системе может быть несколько, поэтому нужно оптимально распределить время их выполнения. ОПределите, будете ли вы отправлять e-mail-уведомление по каждому событию или разово, единым реестром в конце дня, недели и т. д. Например, e-mail-рассылка отчета о доставках выполняется утром в 9:00 за предыдущий день.<br>Выбор периодичности обязательно должен учитывать и интересы клиента: будет клиент просматривать множество писем с информацией или одно письмо с итоговой информацией в виде реестра.<br>Настройка рабочего времени рассылки (или часовой диапазон) больше применимы для смс-информирования. Эта настройка призвана разделять рабочее время и время отдыха. Таким образом, клиент не получит смс в 6 часов утра или в 11 часов вечера. Стандартно в системе принято условие для смс-рассылки с 8 до 10 вечера (по местному времени), но по желанию клиента этот диапазон может быть изменен.
 +
# Продумайте текст рассылки, ее алгоритм, способ, а затем обращайтесь для настройки. Специальные теги в системе позволят добавить информацию, например о номере документа или периоде его формирования.
 +
# Узнать у клиента, какие рассылки ему требуются. Хорошей практикой перед запросом для настройки рассылки может стать предварительный опрос клиентов — какая рассылка действительно необходима клиенту? необходима ли она ему вообще? сколько для клиента будет стоить эта услуга? Как и при каких условиях клиент сможет отписаться от рассылки?
 +
# Длина и кодировка смс-рассылки (ссылка). Известно, что длина смс сообщения влияет на его стоимость. Уменьшить длину поможет выбор типа кодировки сообщения: кириллица или транслитерация. Перед планированием смс-рассылки проанализируйте предполагаемые расходы в сутки/месяц. Это поможет сразу построить эффективную модель задания и избавит от последующих изменений и корректировок в скрипте задания. Более подробно этот вопрос рассмотрен в статье [[Модуль отправки SMS-сообщений#Почему мои сообщения не доставлены?|Почему мои сообщения не доставлены? Почему уходит много денег?]].
 +
# Подготовительная работа в системе перед настройкой рассылки. Заранее выберите и настройте [[Настройка глобальных параметров#Настройка подключения к почтовому серверу|почтовый адрес]] для отправки писем. Для смс-рассылки выберите [[Модуль отправки SMS-сообщений#Провайдеры|провайдера услуг]], настройте подключение к системе и протестируйте отправку сообщений в ручном режиме.
 +
# Используйте статусную модель для заказов в ЛК как альтернативу рассылке отчета о доставках. Любой клиент MeaSoft может отслеживать свои заказы в [[Личный кабинет курьерской службы#Отслеживание заказа по номеру|личном кабинете]] и в режиме реального времени узнать статус их выполнения, что, несомненно, является весомым преимуществом по сравнению с почтовым уведомлением.
 +
# Спам-фильтры и блокировка уведомлений на стороне клиента. Для email-рассылки с большими объемами всегда существует проблема — большинство почтовых серверов могут начать воспринимать сообщения из рассылки как спам, и бОльшая часть почты будет проигнорирована получателем или же попадет в соответствующие папки. Нередко получателю надоедает регулярно повторяющаяся информация, и он самостоятельно блокирует нежелательную почту как спам. Со временем почтовый адрес компании, отправляющей письма, может попасть в глобальный черный список антиспам-систем и заработать глобальную блокировку.
  
Система предусматривает возможность создания списка рассылок в карточке клиента в виде галок. Этот функционал позволяет включить клиента в рассылку или отключить от нее, а также настроить тарификацию необходимых рассылок в виде дополнительных услуг, предоставляемых клиенту.
+
== Установка ==
 
 
3. Периодичность рассылки и ее рабочее время.
 
 
 
Алгоритм выполнения определенного задания рассылки может быть организован с заданной периодичностью. В связи с тем, что заданий для рассылки в системе может быть несколько – необходимо оптимально распределить время их выполнения. Принципиально необходимо решить – отправлять e-mail уведомление по каждому событию или разово, единым реестром в конце дня, недели и т.д. Пример: e-mail рассылка отчета о доставках выполняется утром в 9:00 за предыдущий день. Выбор периодичности обязательно должен учитывать и интересы клиента – будет клиент просматривать множество писем с информацией или одно письмо с итоговой информацией в виде реестра.
 
Настройка рабочего времени рассылки (или часовой диапазон) больше применимы  для смс информирования. Эта настройка призвана разделять рабочее время и время отдыха. Таким образом, клиент не получит смс в 6 часов утра или в 11 часов вечера. Стандартно в системе принято условие для смс-рассылки с 8 до 10 вечера (по местному времени), но по желанию клиента этот диапазон может быть изменен.
 
 
 
4. Продумать текст рассылки, ее алгоритм, способ, а потом обращаться для настройки.
 
 
 
Необходимо тщательно продумать текст сообщения для рассылки, выбрать его тему (как правило, относится к e-mail рассылке). Специальные теги в системе позволят добавить в них информацию, например о номере документа или периоде его формирования.
 
 
 
5. Узнать у клиента, какие рассылки ему требуются.
 
 
 
Хорошей практикой перед запросом для настройки рассылки может стать предварительный опрос клиентов – какая рассылка действительно необходима клиенту? необходима ли она ему вообще? сколько для клиента будет стоить эта услуга ? Как и при каких условиях клиент сможет отписаться от рассылки?
 
 
 
6. Длина и кодировка смс рассылки (ссылка).
 
 
 
Известно, что длина смс сообщения влияет на его стоимость. Уменьшить длину поможет выбор типа кодировки сообщения: кириллица или транслитерация. Перед планированием смс-рассылки необходимо в системе выполнить примерный анализ предполагаемых расходов в сутки/месяц. Это поможет сразу построить эффективную модель задания и избавить от последующих изменений и корректировок в скрипте задания.
 
Более подробно этот вопрос рассмотрен в статье по ссылке: Почему мои сообщения не доставлены? Почему уходит много денег? http://wiki.courierexe.ru/index.php?title=Модуль_отправки_SMS-сообщений
 
 
 
7. Подготовительная работа в системе перед настройкой e-mail или смс-рассылки.
 
 
 
Необходимо заранее выбрать и настроить в системе почтовый адрес, от лица которого, будет производиться отправка писем. Для смс-рассылки необходимо выбрать провайдера услуг, выполнить настройку его подключения к системе и произвести тестовую отправку сообщения в ручном режиме.
 
 
 
8. Статусная модель для заказов в ЛК – как альтернатива рассылке отчета о доставках.
 
 
 
Любой клиент КС2008 сможет воспользоваться отслеживанием своих заказов посредством личного кабинета (этот функционал доступен в пакете “Премиум” ) [ссылка на ЛК клиента]. Статусная модель позволяет клиенту в режиме реального времени узнать состояние (статус) выполнения заказа, что, несомненно, является весомым преимуществом по сравнению с почтовым уведомлением.
 
 
9. Спам фильтры и блокировка уведомлений на стороне клиента.
 
 
 
Для e-mail рассылки с большими объемами всегда существует проблема. Большинство почтовых серверов могут начать воспринимать сообщения из рассылки как спам, и бОльшая часть почты будет проигнорирована получателем или же попадать в соответствующие папки. Не редкость, когда получателю надоедает регулярно повторяющаяся информация, и он самостоятельно блокирует нежелательную почту как спам. Со временем, почтовый адрес компании, являющийся отправителем писем, может попасть в глобальный черный список антиспам систем и заработать глобальную блокировку.
 
 
 
 
 
== Модуль автоматизации (интеграции) ==
 
 
 
Модуль автоматизации (интеграции с внешними системами) предназначен для выполнения периодических заданий импорта/экспорта/обработки данных. Модуль представляет из себя Службу Windows, которая каждые 10 секунд проверяет, наличие заданий в таблице scheduler.jobs с прошедшим временем следующего выполнения, и выполняет эти задания.
 
 
 
Заданиями для модуля интеграции (модуля автоматизации) могут быть примеры таких заданий, как:
 
 
 
- Оборудование: Автопечать продажных/возвратных чеков, автоматическое ежедневное формирование Z-отчета для фискальных регистраторов;
 
 
 
- Отчеты: Всевозможные e-mail оповещения в формате Excel (например, отчет о доставке);
 
 
 
- SMS оповещения: автоматические SMS рассылки для клиентов/курьеров;
 
 
 
- Интеграция: Процесс обмена заказами и их статусами с другими компаниями (например, курьерскими службами, интернет магазинами);
 
 
 
- Автоматический экспорт-импорт информации с БД систем других производителей (например, WMS-системами "системами управления складом").
 
  
== Установка ==
 
 
== Настройка ==
 
== Настройка ==
 
параметры ini файла:
 
параметры ini файла:
  
SMTPProtocol - тип протокола отправки почты: 0 - SMTP, 1 - SSL, 2 - TLS
+
SMTPProtocol — тип протокола отправки почты: 0 — SMTP, 1 — SSL, 2 — TLS.
  
 
== Создание заданий ==
 
== Создание заданий ==
 +
Задания описываются в текстовом виде в поле TEXT таблицы jobs.
  
Задания описываются в текстовом виде в поле TEXT таблицы jobs.
+
В одном тексте может быть несколько заданий, разделенных пустой строкой, за исключением случая, когда текст начинается с префикса интерпретатора («<?>»).
В одном тексте может быть несколько заданий, разделенных пустой строкой, за исключением случая, когда текст начинается с префикса интерпретатора ("<?>").
+
 
Задание может быть следующих видов: Интерпретируемый код, Импорт данных, Выполнение запроса (возможно, с экспортом результата).
+
Задание может быть следующих видов: «Интерпретируемый код», «Импорт данных», «Выполнение запроса» (возможно, с экспортом результата).
  
 
== Интерпретируемый код ==
 
== Интерпретируемый код ==
 
Если задание начинается с префикса интерпретатора, то весь последующий код обрабатывается им.
 
Если задание начинается с префикса интерпретатора, то весь последующий код обрабатывается им.
 
  
 
== Импорт данных ==
 
== Импорт данных ==
Строка 81: Строка 49:
 
!Описание
 
!Описание
 
|-
 
|-
|input  
+
|input
|Признак типа задания - импорт данных
+
|Признак типа задания — импорт данных
 
|-
 
|-
 
|OperNo
 
|OperNo
|Номер действия. Значения: 0 - загрузка по FTP, SFTP. 1 - Получение почты.
+
|Номер действия. Значения: 0 — загрузка по FTP, SFTP. 1 — Получение почты. 2 - FIAS. 3 - Скриптовая обработка почты
 
|-
 
|-
 
|FileType
 
|FileType
|Тип файла. Принимает значения:
+
|Тип файла либо код аккаунта (для OperNo=3). Принимает значения:
  
0 - Формат "Йота"
+
0 — Формат «Йота»
  
1 - Формат "Сони"
+
1 — Формат «Сони»
  
2 - Формат "Омни"
+
2 — Формат «Омни»
  
3 - [[Описание стандартного протокола интеграции|Стандартный формат заказов]]
+
3 — [[Описание стандартного протокола интеграции|Стандартный формат заказов]]
  
4 - [[Описание стандартного протокола интеграции|Стандартный формат отчетов]]
+
4 — [[Описание стандартного протокола интеграции|Стандартный формат отчетов]]
  
5 - Пользовательская процедура импорта
+
5 — Пользовательская процедура импорта
 +
 
 +
6 — Пользовательская процедура импорта, без загрузки файла
  
 
|-
 
|-
Строка 122: Строка 92:
 
|}
 
|}
  
При задании "1" - Импорт почты система получает почту по всем аккаунтам из таблицы Accounts и загружает их в таблицы messages и attachment
+
При задании «1» — Импорт почты система получает почту по всем аккаунтам из таблицы Accounts с AccType = 1 и загружает их в таблицы messages и attachment
  
 
== Экспорт данных ==
 
== Экспорт данных ==
Строка 135: Строка 105:
 
|-
 
|-
 
|query
 
|query
|Признак типа задания - экспорт данных
+
|Признак типа задания — экспорт данных
 
|-
 
|-
 
|OperNo
 
|OperNo
|Номер действия. Значения:  
+
|
0 - Только выполнение запроса.
+
Номер действия. Значения:  
1 - Отправка по электронной почте
+
0 - Только выполнение запроса.
2 - Выгрузка файла на FTP, SFTP-сервер
+
1 - Отправка по электронной почте
3 - Выгрузка заказов в систему "Аксиомус"
+
2 - Выгрузка файла на FTP, SFTP-сервер
4 - Проверка статусов с системе "Аксиомус"
+
<!-- 3 — Выгрузка заказов в систему «Аксиомус»
5 - Синхронизация с системой "Эмпрана"
+
4 — Проверка статусов с системе «Аксиомус»
6 - Отправка складских остатков в систему "Эмпрана"
+
5 — Синхронизация с системой «Эмпрана»
7 - Запрос координат курьеров в сервисе Google
+
6 — Отправка складских остатков в систему «Эмпрана» -->
 +
7 - Отправка сообщений из тикетов <spoiler text="Параметры">FileType=2 - отключает отправку писем на входящие сообщения.</spoiler>
 
|-
 
|-
 
|FileType
 
|FileType
|Тип файла. Принимает значения:
+
|
1 - Формат CSV  
+
Тип файла. Принимает значения:
 
+
1 - Формат CSV  
2 - Формат "Сони"
+
2 - Формат «Сони»
 
+
3 - Формат XLS
3 - Формат XLS
+
4 - формат CSV (с заголовками)
 
+
5 - загрузка файла и запуск скрипта
4 - формат CSV (с заголовками)
+
6 - запуск скрипта (без загрузки файла)
 
 
 
|}
 
|}
  
 
Значения параметров 1-6 зависят от типа операции:
 
Значения параметров 1-6 зависят от типа операции:
  
'''Тип операции - 0:'''
+
'''Тип операции — 0:'''
 
Не используются.
 
Не используются.
  
'''Тип операции - 1:'''
+
'''Тип операции — 1:'''
 
{|
 
{|
 
!Параметр
 
!Параметр
Строка 171: Строка 141:
 
|-
 
|-
 
|Param1
 
|Param1
|Адрес e-mail для отправки  
+
|Адрес e-mail для отправки
 
|-
 
|-
 
|Param2
 
|Param2
|Тема сообщения. Если пусто - "CourierAutoReport"
+
|Тема сообщения. Если пусто — «CourierAutoReport»
 
|-
 
|-
 
|Param3
 
|Param3
|Текст сообщения. Если пусто - "see attachment"
+
|Текст сообщения. Если пусто — «see attachment»
 
|-
 
|-
 
|Param4
 
|Param4
|Маска имени файла. Доступны шаблоны %DT%, %D%, %T% - Дата/время в форматах YYYYMMDDHHMMSS, YYYYMMDD, HHMMSS соответственно. Если пусто - используется ДатаВремя
+
|Маска имени файла. Доступны шаблоны %DT%, %D%, %T% — Дата/время в форматах YYYYMMDDHHMMSS, YYYYMMDD, HHMMSS соответственно. Если пусто — используется ДатаВремя
 
|-
 
|-
 
|Param5
 
|Param5
Строка 189: Строка 159:
 
|}
 
|}
  
'''Тип операции - 2:'''
+
'''Тип операции — 2:'''
 
{|
 
{|
 
!Параметр
 
!Параметр
Строка 195: Строка 165:
 
|-
 
|-
 
|Param1
 
|Param1
|Полный путь к папке на FTP-сервере (вместе с именем сервера) (для SFTP используйте "sftp://имя_сервера...")
+
|Полный путь к папке на FTP-сервере (вместе с именем сервера) (для SFTP используйте "sftp://имя_сервера...»)
 
|-
 
|-
 
|Param2
 
|Param2
Строка 204: Строка 174:
 
|-
 
|-
 
|Param4
 
|Param4
|Маска имен файла. Доступны шаблоны %DT%, %D%, %T% - Дата/время в форматах YYYYMMDDHHMMSS, YYYYMMDD, HHMMSS соответственно. Если пусто - используется ДатаВремя
+
|Маска имен файла. Доступны шаблоны %DT%, %D%, %T% — Дата/время в форматах YYYYMMDDHHMMSS, YYYYMMDD, HHMMSS соответственно. Если пусто — используется ДатаВремя
 
|-
 
|-
 
|Param5
 
|Param5
Строка 210: Строка 180:
 
|-
 
|-
 
|Param6
 
|Param6
|Не используется
+
|Не обязательный параметр, полный путь к папке на FTP-сервере для сохранения копии
 
|}
 
|}
  
'''Типы операции - 3, 4:'''
+
<!--
 +
'''Типы операции — 3, 4:'''
 
{|
 
{|
 
!Параметр
 
!Параметр
Строка 219: Строка 190:
 
|-
 
|-
 
|Param1
 
|Param1
|Имя пользователя системы "Аксиомус"
+
|Имя пользователя системы «Аксиомус»
 
|-
 
|-
 
|Param2
 
|Param2
|Пароль системы "Аксиомус"
+
|Пароль системы «Аксиомус»
 
|-
 
|-
 
|Param3
 
|Param3
Строка 237: Строка 208:
 
|}
 
|}
  
'''Тип операции - 5:'''
+
'''Тип операции — 5:'''
 
{|
 
{|
 
!Параметр
 
!Параметр
Строка 243: Строка 214:
 
|-
 
|-
 
|Param1
 
|Param1
|Адрес сервера системы "Эмпрана"
+
|Адрес сервера системы «Эмпрана»
 
|-
 
|-
 
|Param2
 
|Param2
|Имя пользователя системы "Эмпрана"
+
|Имя пользователя системы «Эмпрана»
 
|-
 
|-
 
|Param3
 
|Param3
|Пароль системы "Эмпрана"
+
|Пароль системы «Эмпрана»
 
|-
 
|-
 
|Param4
 
|Param4
Строка 255: Строка 226:
 
|-
 
|-
 
|Param5
 
|Param5
|Символьный код города системы "Эмпрана"
+
|Символьный код города системы «Эмпрана»
 
|-
 
|-
 
|Param6
 
|Param6
Строка 261: Строка 232:
 
|}
 
|}
  
'''Тип операции - 6:'''
+
'''Тип операции — 6:'''
 
{|
 
{|
 
!Параметр
 
!Параметр
Строка 267: Строка 238:
 
|-
 
|-
 
|Param1
 
|Param1
|Адрес сервера системы "Эмпрана"
+
|Адрес сервера системы «Эмпрана»
 
|-
 
|-
 
|Param2
 
|Param2
|Имя пользователя системы "Эмпрана"
+
|Имя пользователя системы «Эмпрана»
 
|-
 
|-
 
|Param3
 
|Param3
|Пароль системы "Эмпрана"
+
|Пароль системы «Эмпрана»
 
|-
 
|-
 
|Param4
 
|Param4
Строка 279: Строка 250:
 
|-
 
|-
 
|Param5
 
|Param5
|Символьный код города системы "Эмпрана"
+
|Символьный код города системы «Эмпрана»
 
|-
 
|-
 
|Param6
 
|Param6
Строка 287: Строка 258:
 
Обязательно указать запрос! Например, select 1!
 
Обязательно указать запрос! Например, select 1!
  
'''Тип операции - 7:'''
+
'''Тип операции — 7:'''
  
 
Параметры не используются!
 
Параметры не используются!
  
Обязательно указать запрос! Например, select 1!
+
Обязательно указать запрос! Например, select 1! -->
  
 
== Примеры использования ==
 
== Примеры использования ==
 
  
 
=== Импорт заказов в стандартном формате с FTP-сервера ===
 
=== Импорт заказов в стандартном формате с FTP-сервера ===
 
+
  input, 0, 4, myftphost.ru/upload/folder/, MyUserName, MyPassword, *_orders.csv, 123, active
 
 
  input, 0, 4, myftphost.ru/upload/foulder/, MyUserName, MyPassword, *_orders.csv, 123, active
 
 
 
  
 
=== Экспорт заказов в CSV-файле на FTP-сервер ===
 
=== Экспорт заказов в CSV-файле на FTP-сервер ===
 
 
  query, 0
 
  query, 0
 
  replace scheduler.sent (code, sent, source, rectype)
 
  replace scheduler.sent (code, sent, source, rectype)
Строка 321: Строка 287:
 
  update scheduler.sent set sent='T' where sent='F' and source=123 and rectype=2
 
  update scheduler.sent set sent='T' where sent='F' and source=123 and rectype=2
  
Данное задание состоит из 3подзаданий. В первом - запрос собирает коды корреспонденции, измененной за последние 7 дней, но не добавленных в очередь отправки в таблице sent. Во втором происходит формирование CSV-файла с заказами, у которых стоит отметка, что они не отправлены (sent.sent='F'), и отправка файла на FTP-сервер. В последнем подзадании запрос отмечает всю корреспонденцию отправленной. Если на втором этапе, при отправке файла произойдет ошибка, то этот, третий запрос не будет выполнен, заказы останутся в состоянии "не отправлен", и в следующий раз будет предпринята повторная попытка их отправки.
+
Это задание состоит из 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)+')');

Текущая версия на 15:25, 16 февраля 2023

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

Заданиями для модуля интеграции (модуля автоматизации) могут быть:

  • оборудование: автопечать продажных/возвратных чеков, автоматическое ежедневное формирование Z-отчета для фискальных регистраторов;
  • отчеты: всевозможные email-оповещения в формате Excel (например, отчет о доставке);
  • SMS-оповещения: автоматические SMS рассылки для клиентов/курьеров;
  • интеграция: процесс обмена заказами и их статусами с другими компаниями (например, курьерскими службами, интернет магазинами);
  • автоматический экспорт-импорт информации с БД систем других производителей (например, WMS-системами — «системами управления складом»).

Документация ниже не предлагает всем пользователям системы самостоятельно настраивать задания данного модуля. Наоборот, мы рекомендуем обращаться за настройкой к нам. Однако документация ПОЗВОЛЯЕТ при желании и наличии специалистов выполнить настройку самостоятельно.

Рекомендации для создания автоматической e-mail/смс рассылки

Перед формированием заявки для настройки автоматической email- или смс-рассылки пользователю системы крайне желательно ознакомиться с этой инструкцией.

  1. Не рассылайте одновременно e-mail и смс-уведомление. Массовая автоматическая рассылка в системе может быть реализована двумя способами:
    • e-mail-уведомление — более востребованы для рассылки клиентам информации с вложениями в виде прикрепляемых файлов с отчетами;
    • смс-информирование — подходят для сообщения получателю, что к нему едет курьер. Можно в этом же сообщении отправить телефон курьера, чтобы получатель мог напрямую в течение дня у курьера уточнить, когда именно тот планирует приехать.
      Для каждого нового задания рекомендуется выбирать один из этих способов. Не следует перегружать клиента избыточной или регулярно повторяющейся информацией.
  2. Предусмотрите набор типов рассылки в карточке клиента (пользовательские поля для клиентов). Вы можете создать список рассылок в карточке клиента в виде флажков. Этот функционал позволяет включить клиента в рассылку или отключить от нее, а также настроить тарификацию необходимых рассылок в виде дополнительных услуг, предоставляемых клиенту.
  3. Периодичность рассылки и ее рабочее время. Задания рассылки могут выполняться с заданной периодичностью. Заданий для рассылки в системе может быть несколько, поэтому нужно оптимально распределить время их выполнения. ОПределите, будете ли вы отправлять e-mail-уведомление по каждому событию или разово, единым реестром в конце дня, недели и т. д. Например, e-mail-рассылка отчета о доставках выполняется утром в 9:00 за предыдущий день.
    Выбор периодичности обязательно должен учитывать и интересы клиента: будет клиент просматривать множество писем с информацией или одно письмо с итоговой информацией в виде реестра.
    Настройка рабочего времени рассылки (или часовой диапазон) больше применимы для смс-информирования. Эта настройка призвана разделять рабочее время и время отдыха. Таким образом, клиент не получит смс в 6 часов утра или в 11 часов вечера. Стандартно в системе принято условие для смс-рассылки с 8 до 10 вечера (по местному времени), но по желанию клиента этот диапазон может быть изменен.
  4. Продумайте текст рассылки, ее алгоритм, способ, а затем обращайтесь для настройки. Специальные теги в системе позволят добавить информацию, например о номере документа или периоде его формирования.
  5. Узнать у клиента, какие рассылки ему требуются. Хорошей практикой перед запросом для настройки рассылки может стать предварительный опрос клиентов — какая рассылка действительно необходима клиенту? необходима ли она ему вообще? сколько для клиента будет стоить эта услуга? Как и при каких условиях клиент сможет отписаться от рассылки?
  6. Длина и кодировка смс-рассылки (ссылка). Известно, что длина смс сообщения влияет на его стоимость. Уменьшить длину поможет выбор типа кодировки сообщения: кириллица или транслитерация. Перед планированием смс-рассылки проанализируйте предполагаемые расходы в сутки/месяц. Это поможет сразу построить эффективную модель задания и избавит от последующих изменений и корректировок в скрипте задания. Более подробно этот вопрос рассмотрен в статье Почему мои сообщения не доставлены? Почему уходит много денег?.
  7. Подготовительная работа в системе перед настройкой рассылки. Заранее выберите и настройте почтовый адрес для отправки писем. Для смс-рассылки выберите провайдера услуг, настройте подключение к системе и протестируйте отправку сообщений в ручном режиме.
  8. Используйте статусную модель для заказов в ЛК как альтернативу рассылке отчета о доставках. Любой клиент MeaSoft может отслеживать свои заказы в личном кабинете и в режиме реального времени узнать статус их выполнения, что, несомненно, является весомым преимуществом по сравнению с почтовым уведомлением.
  9. Спам-фильтры и блокировка уведомлений на стороне клиента. Для 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)+')');