Автоматическая смена состояний и управление рассылкой
Материал из FrigatWiki
WikiSysop (Обсуждение | вклад) (Новая страница: «Описание настройки автоматического смены состояний заказов и управлением рассылкой. П...») |
WikiSysop (Обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
- | Описание настройки автоматического смены состояний заказов и управлением рассылкой. | + | ===Описание настройки автоматического смены состояний заказов и управлением рассылкой.=== |
- | + | Процесс занесения заказов в систему на базе Web -интерфейса и автоматической обработки заказов требует наличие работающего Планировщика и настроечного xml на сервере БД. | |
- | + | <br>Перед настройкой данного файла необходимо выполнить во Фрегате следующие действия. | |
- | + | <ol> | |
- | + | <li>Завести Контрагентов - департаменты. | |
- | + | <li>Завести пользователей системы на сервере БД и в программе, присоединив их к личным карточкам. Обязательно указать у пользователей адрес электронной почты. | |
- | + | <li>Отнести пользователей к Контрагентам (департаментам). | |
- | + | <li>Завести группу установленных состояний на документ 'Заказ'. | |
- | + | <li>Завести системную аналитику Бюджет. | |
+ | <li>Прописать учетную запись почтового клиента во Фрегате. | ||
+ | </ol> | ||
- | + | <br>При внесении заказов и их рассмотрении документ проходит через цепочки состояний, созданных и описанных во Фрегате. Все заказы оформляются через Web-интерфейс и удаленные менеджеры не имеют доступ через клиентскую часть Фрегата к базе. | |
+ | <br>Состояния заказов обрабатывается планировщиком, который переводит документы из одного состояние в другое по условиям, описанным в xml-файле. Однако доступ и управление к заказам настраивается во Фрегате. Документ '''Заказ клиента''' в процессе обработки имеет ряд состояний, доступных конкретным группам пользователей. | ||
+ | <br>'''Состояния''' | ||
+ | <table border="1" width="50%" style="border-collapse: collapse" bordercolor="#000000"> | ||
+ | <tr> | ||
+ | <td width="121">'''Код'''</td> | ||
+ | <td>'''Наименование'''</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td width="121">ПГТ</td> | ||
+ | <td>Подготовка</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td width="121">ОЖД_ОДБР_С</td> | ||
+ | <td>Ожид<span lang="ru">ает</span> одобрения менеджера подразд<span lang="ru">еления</span></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td width="121">ОДБР_С</td> | ||
+ | <td>Одобрен менеджером подразделения</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td width="121">ОТВРГ_С</td> | ||
+ | <td>Отвергнут менеджером подразделения</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td width="121">ОЖД_ОДБР_Н</td> | ||
+ | <td>Ожид<span lang="ru">ает</span> одобрения нач<span lang="ru">альника | ||
+ | </span>подразд<span lang="ru">еления</span></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td width="121">ОДБР_Н</td> | ||
+ | <td>Одобрен начальником подразделения</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td width="121">ОТВРГ_Н</td> | ||
+ | <td>Отвергнут нач<span lang="ru">альником </span>подразделения</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td width="121">ОЖД_ОДБР_ВП</td> | ||
+ | <td>Ожид<span lang="ru">ает </span>одобрения вицепризедента</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td width="121">ОДБР_ВП</td> | ||
+ | <td>Одобрен вицепрезидентом</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td width="121">ОТВРГ_ВП</td> | ||
+ | <td>Отвергнут вицепрезидентом</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td width="121">ОЖД_ОДБР_П</td> | ||
+ | <td>Ожидает одобрения президента</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td width="121">ЗАКАЗ</td> | ||
+ | <td>Заказ</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td width="121">ЗАКР</td> | ||
+ | <td>Закрыт</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td width="121">ОТКЛ</td> | ||
+ | <td>Отклонен</td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <br>Часть из этих состояний назначается планировщиком автоматически, как например '''ЗАКАЗ''' и '''ОТКЛ''', или обрабатываются по условию суммы заказа. | ||
- | Состояния | + | <br>При подтверждении заказа в зависимости от его суммы, он может быть подтвержден последовательно всей цепочкой людей, отвечающих за подтверждение заказа: менеджером, нач. подразделения, вице-президентом, президентом. Иначе, если например, сумма заказа менее установленной суммы, например менее 25000, и менеджер уже одобрил заказ, документ переходит автоматически в состояние заказ. |
- | + | <br>Состояния, в которых может находится заказ, могут быть настроены и ограничены во Фрегате также с помощью системы доступа. | |
- | + | <br>Так, менеджер должен видеть только те заказы, которые находятся в состоянии ОЖД_ОДБР_С (т.е ожидают его одобрения). Т.е. не подтвержденные документы менеджеру недоступны, как и те документы, которые уже им одобрены и требуют одобрения начальника подразделения. | |
- | + | <br>На рис. 5 показана последовательность смены состояний по условиям суммы заказов. Молнией показаны переходы, обрабатываемые автоматом. | |
- | + | ||
- | ОЖД_ОДБР_С | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | <br>В настройках состояния документа 'Заказ' выставлен список состояния заказа (рис.1 ).Эти настройки доступны для расширения. Кроме этого необходимо поставить доступ для конкретных пользователей к конкретным состояниям (рис. 2).Для этого надо нажать 'Правка' документа состояний и далее настройка. Откроется правка на доступ определенных пользователей к состояниям(рис. 3). | |
- | + | ||
- | + | ||
- | + | ||
Рис. 1 | Рис. 1 | ||
Рис.2 | Рис.2 |
Версия 14:02, 31 октября 2011
Описание настройки автоматического смены состояний заказов и управлением рассылкой.
Процесс занесения заказов в систему на базе 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-описывает темe письма Секция 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> В этом случае при срабатывания состояния ЗАКАЗ, произойдет рассылка письма создателю, менеджер по закупкам и менеджеру, оформившему заказ.