Автоматическая смена состояний и управление рассылкой

Материал из FrigatWiki

(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «Описание настройки автоматического смены состояний заказов и управлением рассылкой. П...»)
 
(3 промежуточные версии не показаны)
Строка 1: Строка 1:
-
Описание настройки автоматического смены состояний заказов и управлением рассылкой.
+
===Описание настройки автоматической смены состояний заказов и управления рассылкой.===
-
  Процесс занесения заказов в систему на базе Web -интерфейса и автоматической обработки заказов требует наличие работающего планировщика и настроечного xml-на сервере БД.
+
Процесс занесения заказов в систему на базе Web -интерфейса и автоматической обработки заказов требует наличие работающего Планировщика и настроечного xml на сервере БД.
-
  Перед настройкой данного файла необходимо выполнить во Фрегате следующие действия.
+
<br>Перед настройкой данного файла необходимо выполнить во Фрегате следующие действия.
-
  1) Завести Контрагентов -департаменты.
+
<ol>
-
  2) Завести пользователей системы на сервере БД и в программе, присоединив их к личным карточкам. Обязательно указать у пользователей адрес электронной почты.
+
<li>Завести Контрагентов - департаменты.
-
  3)Отнести пользователей к Контрагентам (департаментам).
+
<li>Завести пользователей системы на сервере БД и в программе, присоединив их к личным карточкам. Обязательно указать у пользователей адрес электронной почты.
-
  4)Завести группу  установленных состояний на документ 'Заказ'.
+
<li>Отнести пользователей к Контрагентам (департаментам).
-
  4)Завести системную аналитику Бюджет.  
+
<li>Завести группу  установленных состояний на документ 'Заказ'.
-
  5)Прописать учетную запись почтового клиента во Фрегате.
+
<li>Завести системную аналитику Бюджет.  
 +
<li>Прописать учетную запись почтового клиента во "Фрегат".
 +
</ol>
-
  При внесении заказов и их рассмотрении документ проходит через цепочки состояний, описанных и созданных во Фрегате. Все заказы оформляются через  Web -интерфейс и удаленные менеджеры не имеют доступ через клиентскую часть Фрегата к базе. Состояния заказов обрабатывается планировщиком, который переводит документы из одного состояние в другое по условиям, описанным в xml -файле. Однако доступ и управление к заказам настраивается во Фрегате. Документ 'Заказ клиента' в процессе обработки  имеет ряд состояний, доступных конкретным группам пользователей.
+
<br>При внесении заказов и их рассмотрении документ проходит через цепочки состояний, созданных и описанных во Фрегате. Все заказы оформляются через  Web-интерфейс и удаленные менеджеры не имеют доступ через клиентскую часть Фрегата к базе.  
 +
<br>Состояния заказов обрабатывается планировщиком, который переводит документы из одного состояние в другое по условиям, описанным в xml-файле. Однако доступ и управление к заказам настраивается во Фрегате. Документ '''Заказ клиента''' в процессе обработки  имеет ряд состояний, доступных конкретным группам пользователей.
 +
<br>'''Состояния'''
 +
<table border="1" width="55%" style="border-collapse: collapse" bordercolor="#000000">
 +
<tr>
 +
<td width="121">'''&#1050;&#1086;&#1076;'''</td>
 +
<td>'''&#1053;&#1072;&#1080;&#1084;&#1077;&#1085;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077;'''</td>
 +
</tr>
 +
<tr>
 +
<td width="121">&#1055;&#1043;&#1058;</td>
 +
<td>&#1055;&#1086;&#1076;&#1075;&#1086;&#1090;&#1086;&#1074;&#1082;&#1072;</td>
 +
</tr>
 +
<tr>
 +
<td width="121">&#1054;&#1046;&#1044;_&#1054;&#1044;&#1041;&#1056;_&#1057;</td>
 +
<td>&#1054;&#1078;&#1080;&#1076;<span lang="ru">&#1072;&#1077;&#1090;</span> &#1086;&#1076;&#1086;&#1073;&#1088;&#1077;&#1085;&#1080;&#1103; &#1084;&#1077;&#1085;&#1077;&#1076;&#1078;&#1077;&#1088;&#1072; &#1087;&#1086;&#1076;&#1088;&#1072;&#1079;&#1076;<span lang="ru">&#1077;&#1083;&#1077;&#1085;&#1080;&#1103;</span></td>
 +
</tr>
 +
<tr>
 +
<td width="121">&#1054;&#1044;&#1041;&#1056;_&#1057;</td>
 +
<td>&#1054;&#1076;&#1086;&#1073;&#1088;&#1077;&#1085; &#1084;&#1077;&#1085;&#1077;&#1076;&#1078;&#1077;&#1088;&#1086;&#1084; &#1087;&#1086;&#1076;&#1088;&#1072;&#1079;&#1076;&#1077;&#1083;&#1077;&#1085;&#1080;&#1103;</td>
 +
</tr>
 +
<tr>
 +
<td width="121">&#1054;&#1058;&#1042;&#1056;&#1043;_&#1057;</td>
 +
<td>&#1054;&#1090;&#1074;&#1077;&#1088;&#1075;&#1085;&#1091;&#1090; &#1084;&#1077;&#1085;&#1077;&#1076;&#1078;&#1077;&#1088;&#1086;&#1084; &#1087;&#1086;&#1076;&#1088;&#1072;&#1079;&#1076;&#1077;&#1083;&#1077;&#1085;&#1080;&#1103;</td>
 +
</tr>
 +
<tr>
 +
<td width="121">&#1054;&#1046;&#1044;_&#1054;&#1044;&#1041;&#1056;_&#1053;</td>
 +
<td>&#1054;&#1078;&#1080;&#1076;<span lang="ru">&#1072;&#1077;&#1090;</span> &#1086;&#1076;&#1086;&#1073;&#1088;&#1077;&#1085;&#1080;&#1103; &#1085;&#1072;&#1095;<span lang="ru">&#1072;&#1083;&#1100;&#1085;&#1080;&#1082;&#1072;
 +
</span>&#1087;&#1086;&#1076;&#1088;&#1072;&#1079;&#1076;<span lang="ru">&#1077;&#1083;&#1077;&#1085;&#1080;&#1103;</span></td>
 +
</tr>
 +
<tr>
 +
<td width="121">&#1054;&#1044;&#1041;&#1056;_&#1053;</td>
 +
<td>&#1054;&#1076;&#1086;&#1073;&#1088;&#1077;&#1085; &#1085;&#1072;&#1095;&#1072;&#1083;&#1100;&#1085;&#1080;&#1082;&#1086;&#1084; &#1087;&#1086;&#1076;&#1088;&#1072;&#1079;&#1076;&#1077;&#1083;&#1077;&#1085;&#1080;&#1103;</td>
 +
</tr>
 +
<tr>
 +
<td width="121">&#1054;&#1058;&#1042;&#1056;&#1043;_&#1053;</td>
 +
<td>&#1054;&#1090;&#1074;&#1077;&#1088;&#1075;&#1085;&#1091;&#1090; &#1085;&#1072;&#1095;<span lang="ru">&#1072;&#1083;&#1100;&#1085;&#1080;&#1082;&#1086;&#1084; </span>&#1087;&#1086;&#1076;&#1088;&#1072;&#1079;&#1076;&#1077;&#1083;&#1077;&#1085;&#1080;&#1103;</td>
 +
</tr>
 +
<tr>
 +
<td width="121">&#1054;&#1046;&#1044;_&#1054;&#1044;&#1041;&#1056;_&#1042;&#1055;</td>
 +
<td>&#1054;&#1078;&#1080;&#1076;<span lang="ru">&#1072;&#1077;&#1090; </span>&#1086;&#1076;&#1086;&#1073;&#1088;&#1077;&#1085;&#1080;&#1103; &#1074;&#1080;&#1094;&#1077;&#1087;&#1088;&#1080;&#1079;&#1077;&#1076;&#1077;&#1085;&#1090;&#1072;</td>
 +
</tr>
 +
<tr>
 +
<td width="121">&#1054;&#1044;&#1041;&#1056;_&#1042;&#1055;</td>
 +
<td>&#1054;&#1076;&#1086;&#1073;&#1088;&#1077;&#1085; &#1074;&#1080;&#1094;&#1077;&#1087;&#1088;&#1077;&#1079;&#1080;&#1076;&#1077;&#1085;&#1090;&#1086;&#1084;</td>
 +
</tr>
 +
<tr>
 +
<td width="121">&#1054;&#1058;&#1042;&#1056;&#1043;_&#1042;&#1055;</td>
 +
<td>&#1054;&#1090;&#1074;&#1077;&#1088;&#1075;&#1085;&#1091;&#1090; &#1074;&#1080;&#1094;&#1077;&#1087;&#1088;&#1077;&#1079;&#1080;&#1076;&#1077;&#1085;&#1090;&#1086;&#1084;</td>
 +
</tr>
 +
<tr>
 +
<td width="121">&#1054;&#1046;&#1044;_&#1054;&#1044;&#1041;&#1056;_&#1055;</td>
 +
<td>&#1054;&#1078;&#1080;&#1076;&#1072;&#1077;&#1090; &#1086;&#1076;&#1086;&#1073;&#1088;&#1077;&#1085;&#1080;&#1103; &#1087;&#1088;&#1077;&#1079;&#1080;&#1076;&#1077;&#1085;&#1090;&#1072;</td>
 +
</tr>
 +
<tr>
 +
<td width="121">&#1047;&#1040;&#1050;&#1040;&#1047;</td>
 +
<td>&#1047;&#1072;&#1082;&#1072;&#1079;</td>
 +
</tr>
 +
<tr>
 +
<td width="121">&#1047;&#1040;&#1050;&#1056;</td>
 +
<td>&#1047;&#1072;&#1082;&#1088;&#1099;&#1090;</td>
 +
</tr>
 +
<tr>
 +
<td width="121">&#1054;&#1058;&#1050;&#1051;</td>
 +
<td>&#1054;&#1090;&#1082;&#1083;&#1086;&#1085;&#1077;&#1085;</td>
 +
</tr>
 +
</table>
 +
<br>Часть из этих состояний назначается планировщиком автоматически, как например '''ЗАКАЗ''' и '''ОТКЛ''', или обрабатываются по условию суммы заказа.  
-
Состояния
+
<br>При подтверждении заказа в зависимости от его суммы, он может быть  подтвержден последовательно всей цепочкой людей, отвечающих за подтверждение заказа: менеджером, нач. подразделения, вице-президентом, президентом. Иначе, если например, сумма заказа менее установленной суммы, например менее 25000, и менеджер уже одобрил заказ, документ переходит автоматически в состояние заказ.
-
Код
+
<br>Состояния, в которых может находится заказ, могут быть настроены и ограничены во Фрегате также с помощью системы доступа.
-
Наименование
+
<br>Так, менеджер должен видеть только те заказы, которые находятся в состоянии '''ОЖД_ОДБР_С''' (т.е ожидают его одобрения). Т.е. не подтвержденные документы менеджеру недоступны, как и те документы,  которые уже им одобрены и требуют одобрения начальника  подразделения.  
-
ПГТ
+
<br>На рис. 5 показана последовательность смены состояний по условиям суммы заказов. Молнией показаны переходы, обрабатываемые автоматом.
-
Подготовка
+
-
ОЖД_ОДБР_С
+
-
Ожид. одобрения менеджера подразд
+
-
ОДБР_С
+
-
Одобрен менеджером подразделения
+
-
ОТВРГ_С
+
-
Отвергнут менеджером подразделения
+
-
ОЖД_ОДБР_Н
+
-
Ожид. одобрения нач. подразд
+
-
ОДБР_Н
+
-
Одобрен начальником подразделения
+
-
ОТВРГ_Н
+
-
Отвергнут нач.подразделения
+
-
ОЖД_ОДБР_ВП
+
-
Ожид.одобрения вице призедента
+
-
ОДБР_ВП
+
-
Одобрен вице президентом
+
-
ОТВРГ_ВП
+
-
Отвергнут вице президентом
+
-
ОЖД_ОДБР_П
+
-
Ожидает одобрения президента
+
-
ЗАКАЗ
+
-
Заказ
+
-
ЗАКР
+
-
Закрыт
+
-
ОТКЛ
+
-
Отклонен
+
-
  Часть из этих состояний назначается планировщиком автоматически, как например ЗАКАЗ и ОТКЛ, или обрабатываются по условию суммы заказа. При подтверждении заказа в зависимости от его суммы, он может быть  подтвержден последовательно всей цепочкой людей, отвечающих за подтверждение заказа: менеджером, нач. подразделения, вице-  президентом, президентом. Иначе ,если например, сумма заказа менее установленной суммы, например менее 25000, и менеджер уже одобрил заказ, то документ переходит автоматически в состояние заказ.
+
<br>В настройках состояния документа 'Заказ' выставлен список состояния заказа (рис.1 ). Эти настройки доступны для расширения. Кроме этого необходимо поставить доступ для конкретных пользователей к конкретным состояниям (рис. 2). Для этого надо нажать '''Правка''' документа состояний и далее '''Настройка'''. Откроется правка на доступ определенных пользователей к состояниям (рис. 3).
-
  Состояния, в которых может находится заказ могут быть настроены и ограничены во Фрегате также с помощью системы доступа. Так менеджер должен видеть только те заказы, которые находятся в состоянии ОЖД_ОДБР_С (т.е ожидают его одобрения).Те не подтвержденные документы менеджеру недоступны, как и те документы  которые уже им одобрены и требуют одобрения начальника  подразделения. На рис. 5 показана последовательность смены состояний по условиям суммы заказов. Молнией показаны переходы, обрабатываемые автоматом.
+
<br>Рис. 1
 +
<br>Рис. 2
 +
<br>Так на рис. 4 показано, что из состояния ''Ожид. одобрения менеджера'' можно перейти в состояние ''Одобрен менеджером подразделения'' и в ''Отвергнут менеджером подразделения''.
-
В настройках состояния документа 'Заказ' выставлен список состояния заказа (рис.1 ).Эти настройки доступны для расширения. Кроме этого необходимо поставить доступ для конкретных пользователей к конкретным состояниям (рис. 2).Для этого надо нажать 'Правка' документа состояний и далее настройка. Откроется правка на доступ определенных пользователей к состояниям(рис. 3).
+
<br>Рис4.
-
Рис. 1
+
<br>Кроме этого, можно ограничить доступ на операцию с этими состояниями только менеджерами (на вкладке '''Доступ''').
-
Рис.2
+
<br>Рис.5
-
Так на рис. 4 показано, что из состояния Ожид одобрения менеджера можно перейти в состояние Одобрен менеджером подразделений и в Отвергнут менеджером подразделения.
+
-
Рис4.
+
<br>Рис 5.
-
  Кроме этого ,можно ограничить доступ на операцию с этими состояниями только менеджерами (на вкладке доступ).
+
<br>Пользовательская настройка состояний происходит в специальном  xml файле. Данный файл представляет собой xml-файл, логически решающий две задачи: управление автоматической сменой состояний и автоматической рассылкой. Ниже указываются описание тегов в xml настроечного файла.
-
Рис.5
+
-
Рис 5.
+
====Настройка автомата смены состояний====
-
  Пользовательская настройка состояний происходит в специальном  xml файле. Данный файл представляет собой xml-файл ,логически решающий две задачи: управление автоматической смены состояний и автоматической рассылкой. Ниже указываются описание тегов в xml настроечного -файла.
+
<ul>
-
 
+
<li>Секция '''state_monitor''' - в теге описывается все состояния автомата
-
Настройка автомата смены состояний.
+
<li>Секция '''state''' - в теге описывается  состояние. А его атрибуте - ''''code'''' описывается код состояния, имеющегося во "Фрегат". Например- "ПГТ"
-
 
+
<li>Секция '''new_state''' - вложенный тег в теге '''state''' описывает новое состояние, в которое может перейти автомат из состояния '''state'''. Также имеет атрибут '''code'''.
-
Секция state_monitor -в теге описывается все состояния автомата
+
<li>Секция '''conditions''' - вложенный тег, описывающий условия перехода в новое состояние. Имеет следующие атрибуты:  
-
Секция state- в теге описывается  состояние. А его атрибуте-'code' описывается код состояния, имеющегося во Фрегате. Например- "ПГТ"
+
<ul>
-
  Секция new_state -вложенный тег, в теге state,описывает новое состояние в которое может перейти автомат из состояния state.Также имеет атрибут code.
+
<li>'''field''' - тип поля, по которому идет сравнения условия;  
-
  Секция conditions-вложенный тег, описывающий условия перехода в новое состояние. Имеет следующие атрибуты:field -тип поля по которому идет сравнения условия;cmp-атрибут, отвечающий за условия сравнения- больше-'G' или меньше-'LE',value-атрибут, отвечающий за величину поля, сравниваемого по условию. Например:
+
<li>'''cmp''' - атрибут, отвечающий за условия сравнения - больше - '''G''' или меньше- '''LE''', <li>'''value''' - атрибут, отвечающий за величину поля, сравниваемого по условию.  
 +
</ul>
 +
</ul>
 +
<br>Например:
     <state code="ОДБР_Н">
     <state code="ОДБР_Н">
Строка 77: Строка 121:
         </new_state>
         </new_state>
     </state>
     </state>
-
Данный фрагмент описывает следующее условие- из состояния  ОДБР_Н (одобрение начальника) автомат  переведет  в одно из двух состояний:
 
-
    -либо  ОЖД_ОДБР_ВП (ожидание  одобрение вице-президента) ,если сумма документа больше чем 125000.
 
-
    -либо ЗАКАЗ (товар заказан),если сумма меньше 125000.
 
-
Конечное состояние для автомата является либо ЗАКАЗ, либо ОТКЛ.
 
-
  Схема автоматической рассылки оповещений при изменении состояний документа
+
Данный фрагмент описывает следующее условие - из состояния '''ОДБР_Н''' (одобрение начальника) автомат переведет  в одно из двух состояний:
-
Секция  state_remainder -в теге описывается все состояния автоматический рассылки.
+
<ul>
-
Секция  templates-в теге описывается шаблоны рассылки. В шаблоне описываются макросы и  
+
<li>либо  '''ОЖД_ОДБР_ВП''' (ожидание  одобрение вице-президента), если сумма документа больше, чем 125000.
-
тексты письма .Макросы представляют собой заначение полей, подставляемых из базы данных имеют описание вида %<имя макроса>%.Макросы не расширяются и описаны в настроечном xml файле. Шаблоны имеют обязательный атрибут -code,в котором описывается название шаблона.
+
<li>либо '''ЗАКАЗ''' (товар заказан), если сумма меньше 125000.
-
Секция  subject-описывает темe письма
+
<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>
+
      <subject><![CDATA[Ваш %doc_infostr% одобрен %prev_editer_name%]]></subject>
-
          <message>
+
      <message>
-
                    <![CDATA[Уважаемый, %recipient_name%!  %prev_editer_name% одобрил Ваш %doc_infostr%]]>
+
                <![CDATA[Уважаемый %recipient_name%!  %prev_editer_name% одобрил Ваш %doc_infostr%]]>
-
          </message>
+
      </message>
-
  Далее указываются список тегов ,описавающих получателей:
+
Далее указываются список тегов, описывающих получателей:
-
Пример секции:
+
<br>Пример секции:
-
<managers>
+
    <managers>
-
<manager>kirill.maevskiy</manager>
+
    <manager>kirill.maevskiy</manager>
-
<manager>marina.tkach</manager>
+
    <manager>marina.tkach</manager>
-
</managers>
+
    </managers>
-
Означает, что если поступит заказ от Департамента (Контрагента), к которому привязан соответствующий manager, то он получит письмо, см. ниже.
+
<br>Это означает, что если поступит заказ от Департамента (Контрагента), к которому привязан соответствующий '''manager''', то он получит письмо, см. ниже.
-
Настройка автоматической рассылки по смене состояний.
+
====Настройка автоматической рассылки по смене состояний====
-
 
+
Далее следует описание собственно механизма рассылки по изменению состояний.
-
  Далее следует описание собствено механизма рассылки по изменению состояний.
+
<ul>
-
Секция  state -тег описывает  состояние,по переходу в которое происходит рассылка писем.
+
<li>Секция  '''state''' - тег описывает  состояние, по переходу в которое происходит рассылка писем.
-
Секция  recipient-тег описывает  получателя.
+
<li>Секция  '''recipient''' - тег описывает  получателя.
-
 
+
</ul>
-
  Например фрагмент :
+
<br>Например фрагмент:
-
<state code="ОЖД_ОДБР_С">
+
  <state code="ОЖД_ОДБР_С">
           <recipient template="t1" flags="4096">manager</recipient>
           <recipient template="t1" flags="4096">manager</recipient>
-
</state>
+
  </state>
-
означает, что при переходе состояния документа в   ОЖД_ОДБР_С ,будет отправляться письмо с шаблоном   t1 ,менеджеру привязанному к департаменту, на который оформлялся заказ, причем flags="4096" означает, что сообщение будет отправляться раз в день пока документ не перейдет в другое состояние. Так же может быть несколько получателей письма при изменения состояния,например:
+
означает, что при переходе состояния документа в '''ОЖД_ОДБР_С''' , будет отправляться письмо с шаблоном ''' t1'''  менеджеру, привязанному к департаменту, на который оформлялся заказ, причем '''flags="4096"''' означает, что сообщение будет отправляться раз в день, пока документ не перейдет в другое состояние.  
 +
<br>Также может быть несколько получателей письма при изменения состояния, например:
 +
<br>
   <state code="ЗАКАЗ">
   <state code="ЗАКАЗ">
       <recipient template="accept">creator</recipient>
       <recipient template="accept">creator</recipient>
Строка 119: Строка 170:
       <recipient template="accept_query">prod_manager</recipient>
       <recipient template="accept_query">prod_manager</recipient>
   </state>
   </state>
-
В этом случае при срабатывания состояния ЗАКАЗ, произойдет рассылка письма создателю, менеджер по закупкам и менеджеру, оформившему заказ.
+
В этом случае при срабатывания состояния '''ЗАКАЗ''', произойдет рассылка письма создателю, менеджеру по закупкам и менеджеру, оформившему заказ.
 +
 
 +
[[Категория:Планировщик]]

Текущая версия на 13:27, 19 марта 2019

Содержание

Описание настройки автоматической смены состояний заказов и управления рассылкой.

Процесс занесения заказов в систему на базе Web -интерфейса и автоматической обработки заказов требует наличие работающего Планировщика и настроечного xml на сервере БД.
Перед настройкой данного файла необходимо выполнить во Фрегате следующие действия.

  1. Завести Контрагентов - департаменты.
  2. Завести пользователей системы на сервере БД и в программе, присоединив их к личным карточкам. Обязательно указать у пользователей адрес электронной почты.
  3. Отнести пользователей к Контрагентам (департаментам).
  4. Завести группу установленных состояний на документ 'Заказ'.
  5. Завести системную аналитику Бюджет.
  6. Прописать учетную запись почтового клиента во "Фрегат".


При внесении заказов и их рассмотрении документ проходит через цепочки состояний, созданных и описанных во Фрегате. Все заказы оформляются через 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>

В этом случае при срабатывания состояния ЗАКАЗ, произойдет рассылка письма создателю, менеджеру по закупкам и менеджеру, оформившему заказ.

Личные инструменты