Автоматическая смена состояний и управление рассылкой
Материал из FrigatWiki
WikiSysop (Обсуждение | вклад) |
WikiSysop (Обсуждение | вклад) |
||
(2 промежуточные версии не показаны) | |||
Строка 1: | Строка 1: | ||
- | ===Описание настройки | + | ===Описание настройки автоматической смены состояний заказов и управления рассылкой.=== |
Процесс занесения заказов в систему на базе Web -интерфейса и автоматической обработки заказов требует наличие работающего Планировщика и настроечного xml на сервере БД. | Процесс занесения заказов в систему на базе Web -интерфейса и автоматической обработки заказов требует наличие работающего Планировщика и настроечного xml на сервере БД. | ||
<br>Перед настройкой данного файла необходимо выполнить во Фрегате следующие действия. | <br>Перед настройкой данного файла необходимо выполнить во Фрегате следующие действия. | ||
Строка 8: | Строка 8: | ||
<li>Завести группу установленных состояний на документ 'Заказ'. | <li>Завести группу установленных состояний на документ 'Заказ'. | ||
<li>Завести системную аналитику Бюджет. | <li>Завести системную аналитику Бюджет. | ||
- | <li>Прописать учетную запись почтового клиента во | + | <li>Прописать учетную запись почтового клиента во "Фрегат". |
</ol> | </ol> | ||
Строка 14: | Строка 14: | ||
<br>Состояния заказов обрабатывается планировщиком, который переводит документы из одного состояние в другое по условиям, описанным в xml-файле. Однако доступ и управление к заказам настраивается во Фрегате. Документ '''Заказ клиента''' в процессе обработки имеет ряд состояний, доступных конкретным группам пользователей. | <br>Состояния заказов обрабатывается планировщиком, который переводит документы из одного состояние в другое по условиям, описанным в xml-файле. Однако доступ и управление к заказам настраивается во Фрегате. Документ '''Заказ клиента''' в процессе обработки имеет ряд состояний, доступных конкретным группам пользователей. | ||
<br>'''Состояния''' | <br>'''Состояния''' | ||
- | <table border="1" width=" | + | <table border="1" width="55%" style="border-collapse: collapse" bordercolor="#000000"> |
<tr> | <tr> | ||
<td width="121">'''Код'''</td> | <td width="121">'''Код'''</td> | ||
Строка 81: | Строка 81: | ||
<br>При подтверждении заказа в зависимости от его суммы, он может быть подтвержден последовательно всей цепочкой людей, отвечающих за подтверждение заказа: менеджером, нач. подразделения, вице-президентом, президентом. Иначе, если например, сумма заказа менее установленной суммы, например менее 25000, и менеджер уже одобрил заказ, документ переходит автоматически в состояние заказ. | <br>При подтверждении заказа в зависимости от его суммы, он может быть подтвержден последовательно всей цепочкой людей, отвечающих за подтверждение заказа: менеджером, нач. подразделения, вице-президентом, президентом. Иначе, если например, сумма заказа менее установленной суммы, например менее 25000, и менеджер уже одобрил заказ, документ переходит автоматически в состояние заказ. | ||
<br>Состояния, в которых может находится заказ, могут быть настроены и ограничены во Фрегате также с помощью системы доступа. | <br>Состояния, в которых может находится заказ, могут быть настроены и ограничены во Фрегате также с помощью системы доступа. | ||
- | <br>Так, менеджер должен видеть только те заказы, которые находятся в состоянии ОЖД_ОДБР_С (т.е ожидают его одобрения). Т.е. не подтвержденные документы менеджеру недоступны, как и те документы, которые уже им одобрены и требуют одобрения начальника подразделения. | + | <br>Так, менеджер должен видеть только те заказы, которые находятся в состоянии '''ОЖД_ОДБР_С''' (т.е ожидают его одобрения). Т.е. не подтвержденные документы менеджеру недоступны, как и те документы, которые уже им одобрены и требуют одобрения начальника подразделения. |
<br>На рис. 5 показана последовательность смены состояний по условиям суммы заказов. Молнией показаны переходы, обрабатываемые автоматом. | <br>На рис. 5 показана последовательность смены состояний по условиям суммы заказов. Молнией показаны переходы, обрабатываемые автоматом. | ||
- | <br>В настройках состояния документа 'Заказ' выставлен список состояния заказа (рис.1 ).Эти настройки доступны для расширения. Кроме этого необходимо поставить доступ для конкретных пользователей к конкретным состояниям (рис. 2).Для этого надо нажать 'Правка' документа состояний и далее | + | <br>В настройках состояния документа 'Заказ' выставлен список состояния заказа (рис.1 ). Эти настройки доступны для расширения. Кроме этого необходимо поставить доступ для конкретных пользователей к конкретным состояниям (рис. 2). Для этого надо нажать '''Правка''' документа состояний и далее '''Настройка'''. Откроется правка на доступ определенных пользователей к состояниям (рис. 3). |
- | Рис. 1 | + | <br>Рис. 1 |
- | Рис.2 | + | <br>Рис. 2 |
- | + | <br>Так на рис. 4 показано, что из состояния ''Ожид. одобрения менеджера'' можно перейти в состояние ''Одобрен менеджером подразделения'' и в ''Отвергнут менеджером подразделения''. | |
- | Рис4. | + | <br>Рис4. |
- | + | <br>Кроме этого, можно ограничить доступ на операцию с этими состояниями только менеджерами (на вкладке '''Доступ'''). | |
- | Рис.5 | + | <br>Рис.5 |
- | Рис 5. | + | <br>Рис 5. |
- | + | <br>Пользовательская настройка состояний происходит в специальном xml файле. Данный файл представляет собой xml-файл, логически решающий две задачи: управление автоматической сменой состояний и автоматической рассылкой. Ниже указываются описание тегов в xml настроечного файла. | |
- | Настройка автомата смены состояний | + | ====Настройка автомата смены состояний==== |
- | + | <ul> | |
- | + | <li>Секция '''state_monitor''' - в теге описывается все состояния автомата | |
- | + | <li>Секция '''state''' - в теге описывается состояние. А его атрибуте - ''''code'''' описывается код состояния, имеющегося во "Фрегат". Например- "ПГТ" | |
- | + | <li>Секция '''new_state''' - вложенный тег в теге '''state''' описывает новое состояние, в которое может перейти автомат из состояния '''state'''. Также имеет атрибут '''code'''. | |
- | + | <li>Секция '''conditions''' - вложенный тег, описывающий условия перехода в новое состояние. Имеет следующие атрибуты: | |
+ | <ul> | ||
+ | <li>'''field''' - тип поля, по которому идет сравнения условия; | ||
+ | <li>'''cmp''' - атрибут, отвечающий за условия сравнения - больше - '''G''' или меньше- '''LE''', <li>'''value''' - атрибут, отвечающий за величину поля, сравниваемого по условию. | ||
+ | </ul> | ||
+ | </ul> | ||
+ | <br>Например: | ||
<state code="ОДБР_Н"> | <state code="ОДБР_Н"> | ||
Строка 115: | Строка 121: | ||
</new_state> | </new_state> | ||
</state> | </state> | ||
- | |||
- | |||
- | |||
- | |||
- | Схема автоматической рассылки оповещений при изменении состояний документа | + | Данный фрагмент описывает следующее условие - из состояния '''ОДБР_Н''' (одобрение начальника) автомат переведет в одно из двух состояний: |
- | Секция state_remainder -в теге описывается все состояния автоматический рассылки. | + | <ul> |
- | Секция templates-в теге описывается шаблоны рассылки. В шаблоне описываются макросы и | + | <li>либо '''ОЖД_ОДБР_ВП''' (ожидание одобрение вице-президента), если сумма документа больше, чем 125000. |
- | тексты письма .Макросы представляют собой | + | <li>либо '''ЗАКАЗ''' (товар заказан), если сумма меньше 125000. |
- | Секция subject- | + | <br>Конечным состоянием для автомата является либо '''ЗАКАЗ''', либо '''ОТКЛ'''. |
- | Секция message- | + | </ul> |
+ | |||
+ | ====Схема автоматической рассылки оповещений при изменении состояний документа==== | ||
+ | <ul> | ||
+ | <li>Секция '''state_remainder''' - в теге описывается все состояния автоматический рассылки. | ||
+ | <li>Секция '''templates''' - в теге описывается шаблоны рассылки. В шаблоне описываются макросы и | ||
+ | тексты письма. Макросы представляют собой значение полей, подставляемых из базы данных имеют описание вида ''%<имя макроса>%''. Макросы не расширяются и описаны в настроечном xml файле. Шаблоны имеют обязательный атрибут - '''code''', в котором описывается название шаблона. | ||
+ | <li>Секция '''subject''' - содержит тему письма | ||
+ | <li>Секция '''message''' - содержит собственно сообщение письма. | ||
+ | </ul> | ||
Пример шаблона: | Пример шаблона: | ||
<template code="accept"> | <template code="accept"> | ||
- | + | <subject><![CDATA[Ваш %doc_infostr% одобрен %prev_editer_name%]]></subject> | |
- | + | <message> | |
- | + | <![CDATA[Уважаемый %recipient_name%! %prev_editer_name% одобрил Ваш %doc_infostr%]]> | |
- | + | </message> | |
- | + | Далее указываются список тегов, описывающих получателей: | |
- | Пример секции: | + | <br>Пример секции: |
- | <managers> | + | <managers> |
- | <manager>kirill.maevskiy</manager> | + | <manager>kirill.maevskiy</manager> |
- | <manager>marina.tkach</manager> | + | <manager>marina.tkach</manager> |
- | </managers> | + | </managers> |
- | + | <br>Это означает, что если поступит заказ от Департамента (Контрагента), к которому привязан соответствующий '''manager''', то он получит письмо, см. ниже. | |
- | Настройка автоматической рассылки по смене состояний | + | ====Настройка автоматической рассылки по смене состояний==== |
- | + | Далее следует описание собственно механизма рассылки по изменению состояний. | |
- | + | <ul> | |
- | Секция state -тег описывает состояние,по переходу в которое происходит рассылка писем. | + | <li>Секция '''state''' - тег описывает состояние, по переходу в которое происходит рассылка писем. |
- | Секция recipient-тег описывает получателя. | + | <li>Секция '''recipient''' - тег описывает получателя. |
- | + | </ul> | |
- | + | <br>Например фрагмент: | |
- | + | <state code="ОЖД_ОДБР_С"> | |
<recipient template="t1" flags="4096">manager</recipient> | <recipient template="t1" flags="4096">manager</recipient> | ||
- | + | </state> | |
- | означает, что при переходе состояния документа в | + | означает, что при переходе состояния документа в '''ОЖД_ОДБР_С''' , будет отправляться письмо с шаблоном ''' t1''' менеджеру, привязанному к департаменту, на который оформлялся заказ, причем '''flags="4096"''' означает, что сообщение будет отправляться раз в день, пока документ не перейдет в другое состояние. |
+ | <br>Также может быть несколько получателей письма при изменения состояния, например: | ||
+ | <br> | ||
<state code="ЗАКАЗ"> | <state code="ЗАКАЗ"> | ||
<recipient template="accept">creator</recipient> | <recipient template="accept">creator</recipient> | ||
Строка 157: | Строка 170: | ||
<recipient template="accept_query">prod_manager</recipient> | <recipient template="accept_query">prod_manager</recipient> | ||
</state> | </state> | ||
- | + | В этом случае при срабатывания состояния '''ЗАКАЗ''', произойдет рассылка письма создателю, менеджеру по закупкам и менеджеру, оформившему заказ. | |
+ | |||
+ | [[Категория:Планировщик]] |
Текущая версия на 13:27, 19 марта 2019
Содержание |
Описание настройки автоматической смены состояний заказов и управления рассылкой.
Процесс занесения заказов в систему на базе Web -интерфейса и автоматической обработки заказов требует наличие работающего Планировщика и настроечного xml на сервере БД.
Перед настройкой данного файла необходимо выполнить во Фрегате следующие действия.
- Завести Контрагентов - департаменты.
- Завести пользователей системы на сервере БД и в программе, присоединив их к личным карточкам. Обязательно указать у пользователей адрес электронной почты.
- Отнести пользователей к Контрагентам (департаментам).
- Завести группу установленных состояний на документ 'Заказ'.
- Завести системную аналитику Бюджет.
- Прописать учетную запись почтового клиента во "Фрегат".
При внесении заказов и их рассмотрении документ проходит через цепочки состояний, созданных и описанных во Фрегате. Все заказы оформляются через Web-интерфейс и удаленные менеджеры не имеют доступ через клиентскую часть Фрегата к базе.
Состояния заказов обрабатывается планировщиком, который переводит документы из одного состояние в другое по условиям, описанным в xml-файле. Однако доступ и управление к заказам настраивается во Фрегате. Документ Заказ клиента в процессе обработки имеет ряд состояний, доступных конкретным группам пользователей.
Состояния
Код | Наименование |
ПГТ | Подготовка |
ОЖД_ОДБР_С | Ожидает одобрения менеджера подразделения |
ОДБР_С | Одобрен менеджером подразделения |
ОТВРГ_С | Отвергнут менеджером подразделения |
ОЖД_ОДБР_Н | Ожидает одобрения начальника подразделения |
ОДБР_Н | Одобрен начальником подразделения |
ОТВРГ_Н | Отвергнут начальником подразделения |
ОЖД_ОДБР_ВП | Ожидает одобрения вицепризедента |
ОДБР_ВП | Одобрен вицепрезидентом |
ОТВРГ_ВП | Отвергнут вицепрезидентом |
ОЖД_ОДБР_П | Ожидает одобрения президента |
ЗАКАЗ | Заказ |
ЗАКР | Закрыт |
ОТКЛ | Отклонен |
Часть из этих состояний назначается планировщиком автоматически, как например ЗАКАЗ и ОТКЛ, или обрабатываются по условию суммы заказа.
При подтверждении заказа в зависимости от его суммы, он может быть подтвержден последовательно всей цепочкой людей, отвечающих за подтверждение заказа: менеджером, нач. подразделения, вице-президентом, президентом. Иначе, если например, сумма заказа менее установленной суммы, например менее 25000, и менеджер уже одобрил заказ, документ переходит автоматически в состояние заказ.
Состояния, в которых может находится заказ, могут быть настроены и ограничены во Фрегате также с помощью системы доступа.
Так, менеджер должен видеть только те заказы, которые находятся в состоянии ОЖД_ОДБР_С (т.е ожидают его одобрения). Т.е. не подтвержденные документы менеджеру недоступны, как и те документы, которые уже им одобрены и требуют одобрения начальника подразделения.
На рис. 5 показана последовательность смены состояний по условиям суммы заказов. Молнией показаны переходы, обрабатываемые автоматом.
В настройках состояния документа 'Заказ' выставлен список состояния заказа (рис.1 ). Эти настройки доступны для расширения. Кроме этого необходимо поставить доступ для конкретных пользователей к конкретным состояниям (рис. 2). Для этого надо нажать Правка документа состояний и далее Настройка. Откроется правка на доступ определенных пользователей к состояниям (рис. 3).
Рис. 1
Рис. 2
Так на рис. 4 показано, что из состояния Ожид. одобрения менеджера можно перейти в состояние Одобрен менеджером подразделения и в Отвергнут менеджером подразделения.
Рис4.
Кроме этого, можно ограничить доступ на операцию с этими состояниями только менеджерами (на вкладке Доступ).
Рис.5
Рис 5.
Пользовательская настройка состояний происходит в специальном xml файле. Данный файл представляет собой xml-файл, логически решающий две задачи: управление автоматической сменой состояний и автоматической рассылкой. Ниже указываются описание тегов в xml настроечного файла.
Настройка автомата смены состояний
- Секция state_monitor - в теге описывается все состояния автомата
- Секция state - в теге описывается состояние. А его атрибуте - 'code' описывается код состояния, имеющегося во "Фрегат". Например- "ПГТ"
- Секция new_state - вложенный тег в теге state описывает новое состояние, в которое может перейти автомат из состояния state. Также имеет атрибут code.
- Секция conditions - вложенный тег, описывающий условия перехода в новое состояние. Имеет следующие атрибуты:
- field - тип поля, по которому идет сравнения условия;
- cmp - атрибут, отвечающий за условия сравнения - больше - G или меньше- LE,
- value - атрибут, отвечающий за величину поля, сравниваемого по условию.
Например:
<state code="ОДБР_Н"> <new_state code="ОЖД_ОДБР_ВП"> <conditions> <condition field="SUM_I" cmp="G" value="125000" /> </conditions> </new_state> <new_state code="ЗАКАЗ"> <conditions> <condition field="SUM_I" cmp="LE" value="125000" /> </conditions> </new_state> </state>
Данный фрагмент описывает следующее условие - из состояния ОДБР_Н (одобрение начальника) автомат переведет в одно из двух состояний:
- либо ОЖД_ОДБР_ВП (ожидание одобрение вице-президента), если сумма документа больше, чем 125000.
- либо ЗАКАЗ (товар заказан), если сумма меньше 125000.
Конечным состоянием для автомата является либо ЗАКАЗ, либо ОТКЛ.
Схема автоматической рассылки оповещений при изменении состояний документа
- Секция state_remainder - в теге описывается все состояния автоматический рассылки.
- Секция templates - в теге описывается шаблоны рассылки. В шаблоне описываются макросы и тексты письма. Макросы представляют собой значение полей, подставляемых из базы данных имеют описание вида %<имя макроса>%. Макросы не расширяются и описаны в настроечном xml файле. Шаблоны имеют обязательный атрибут - code, в котором описывается название шаблона.
- Секция subject - содержит тему письма
- Секция message - содержит собственно сообщение письма.
Пример шаблона:
<template code="accept"> <subject><![CDATA[Ваш %doc_infostr% одобрен %prev_editer_name%]]></subject> <message> <![CDATA[Уважаемый %recipient_name%! %prev_editer_name% одобрил Ваш %doc_infostr%]]> </message>
Далее указываются список тегов, описывающих получателей:
Пример секции:
<managers> <manager>kirill.maevskiy</manager> <manager>marina.tkach</manager> </managers>
Это означает, что если поступит заказ от Департамента (Контрагента), к которому привязан соответствующий manager, то он получит письмо, см. ниже.
Настройка автоматической рассылки по смене состояний
Далее следует описание собственно механизма рассылки по изменению состояний.
- Секция state - тег описывает состояние, по переходу в которое происходит рассылка писем.
- Секция recipient - тег описывает получателя.
Например фрагмент:
<state code="ОЖД_ОДБР_С"> <recipient template="t1" flags="4096">manager</recipient> </state>
означает, что при переходе состояния документа в ОЖД_ОДБР_С , будет отправляться письмо с шаблоном t1 менеджеру, привязанному к департаменту, на который оформлялся заказ, причем flags="4096" означает, что сообщение будет отправляться раз в день, пока документ не перейдет в другое состояние.
Также может быть несколько получателей письма при изменения состояния, например:
<state code="ЗАКАЗ"> <recipient template="accept">creator</recipient> <recipient template="accept_man">manager</recipient> <recipient template="accept_query">prod_manager</recipient> </state>
В этом случае при срабатывания состояния ЗАКАЗ, произойдет рассылка письма создателю, менеджеру по закупкам и менеджеру, оформившему заказ.