Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
product:triggers:about [13.11.2020 12:38] – ↷ Страница перемещена и переименована из service:triggers в product:triggers:about maynproduct:triggers:about [17.12.2024 08:30] (текущий) – ↷ Операцией перемещения обновлены ссылки Белугин Александр
Строка 1: Строка 1:
-====== Триггеры ======+====== Что такое Триггеры ======
  
 Триггеры -- это отдельный модуль, который общается с системой по интеграционной шине. Триггеры -- это отдельный модуль, который общается с системой по интеграционной шине.
Строка 5: Строка 5:
 Цель триггеров как инструмента -- **автоматизация бизнес-процессов**. Возможность сделать так, чтобы пользователю приходилось делать меньше действий в системе и не совершать ошибок на уровне "забыл проставить нужный реквизит". Цель триггеров как инструмента -- **автоматизация бизнес-процессов**. Возможность сделать так, чтобы пользователю приходилось делать меньше действий в системе и не совершать ошибок на уровне "забыл проставить нужный реквизит".
  
-{{ service:integration:trigger_1.png?direct&700 |}}+{{ corporative:service:integration:trigger_1.png?direct&700 |}}
  
 ===== Как именно триггеры покрывают бизнес-процессы ===== ===== Как именно триггеры покрывают бизнес-процессы =====
-{{ service:integration:если-то.png?direct&600|}}+{{ corporative:service:integration:если-то.png?direct&600|}}
  
 **Идеальная картина:** нажал одну кнопочку -- и готово. Система магическим образом узнала, чего от неё хотел пользователь. Всё заполнилось-настроилось-появилось как надо. **Идеальная картина:** нажал одну кнопочку -- и готово. Система магическим образом узнала, чего от неё хотел пользователь. Всё заполнилось-настроилось-появилось как надо.
Строка 67: Строка 67:
 {{:product:tables:admin:eye.png?direct&150 }} Триггер -- это мощный инструмент в руках человека, понимающего настроенные в ADVANTA процессы и знающего, как они работают.  {{:product:tables:admin:eye.png?direct&150 }} Триггер -- это мощный инструмент в руках человека, понимающего настроенные в ADVANTA процессы и знающего, как они работают. 
  
-В руках же малоквалифицированного сотрудника с большим доступом -- это страшная дубина, которой можно разнести весь настроенный порядок+В руках сотрудника не совсем понимающего как все работает, но имеющего права доступа -- этот инструмент может принести больше вреда, чем пользы
  
 Триггер это микроавтомат (робот), выполняющий набор рутинных действий при наступлении определенного события в бизнес-процессе, и поэтому чувствителен к изменению условий в которых он работает. Если изменились условия или процесс, то триггер, выполняющий рутину под старый процесс, скорее всего станет выполнять неадекватные новому процессу действия, или сломается.  Триггер это микроавтомат (робот), выполняющий набор рутинных действий при наступлении определенного события в бизнес-процессе, и поэтому чувствителен к изменению условий в которых он работает. Если изменились условия или процесс, то триггер, выполняющий рутину под старый процесс, скорее всего станет выполнять неадекватные новому процессу действия, или сломается. 
Строка 73: Строка 73:
 Соответственно самый верный способ "завалить" работу триггеров -- это создать хаос в настройках: забыть, зачем и что было настроено, смело добавлять, удалять и переименовывать реквизиты, объекты, справочники, менять ограничения по созданию дочерних объектов и т.п. Впрочем, такие действия обязательно создадут массу неадекватных данных и сломают отчетность, OLAP-кубы и прочие аналитические инструменты системы и без всяких триггеров. С ними же сломается все еще быстрее. Соответственно самый верный способ "завалить" работу триггеров -- это создать хаос в настройках: забыть, зачем и что было настроено, смело добавлять, удалять и переименовывать реквизиты, объекты, справочники, менять ограничения по созданию дочерних объектов и т.п. Впрочем, такие действия обязательно создадут массу неадекватных данных и сломают отчетность, OLAP-кубы и прочие аналитические инструменты системы и без всяких триггеров. С ними же сломается все еще быстрее.
  
-===== Как это работает =====+<callout type="warning" icon="true"> 
 +ВАЖНО! Для того, чтобы снизить все эти риски вам необходимо иметь: 
 +  * 2 системы 
 +  * 2 базы данных 
 +  * 2 инсталлированных модуля триггеров 
 +**И тогда у вас будут почти безграничные возможности автоматизации!**</callout>
  
-<callout icon="fa fa-cog" color="#9954BB"> 
-Триггеры пишутся на языке C Sharp. 
-</callout> 
- 
-{{ service:integration:trigger_0.png?direct&800 |}} 
- 
- 
-==== Отфильтровать ==== 
-<callout type="primary" icon="true">Половина работы триггера: это понять, на какие события он должен реагировать.</callout> 
- 
-Фильтрация событий проходит в несколько этапов с помощью 3 инструментов, которые дополняют друг друга. 
- 
-  - Простой фильтр на события, который есть прямо в интерфейсе модуля триггеров. 
-  - LINQ-запрос(ы). Может как использоваться, так и не использоваться. Удобно, чтобы выбрать из большой базы данных какие-то специфичные объекты. 
-  - В рамках написания прописываются дополнительные условия -- как раз здесь используется настроенный LINQ-запрос для последней тонкой фильтрации событий. 
- 
-**Как это выглядит в интерфейсе модуля триггеров:** 
- 
-<well> 
-Фильтрация на уровне интерфейса модуля триггеров: 
-{{ service:integration:photo_2020-05-19_22-38-53.jpg?direct |}} 
- 
-Тонкая фильтрация в коде триггера: 
-{{ service:integration:photo_2020-05-19_22-39-16.jpg?direct |}} 
- 
-</well> 
- 
-==== Отреагировать ==== 
-События, которые попали под условия фильтров, запускают написанный скрипт. Результатом работы скрипта могут быть небольшие вычисления, создание новых записей в справочнике, новых объектов, изменение статусов, изменение значений реквизитов, их блокировка и т.д. 
- 
-Триггеры работают через [[product/api/list|интеграционное API]] ADVANTA. => Всё, что можно сделать через API, триггер может запустить в системе. 
- 
-**Как это выглядит в интерфейсе модуля триггеров:** 
-<well> 
-{{ service:integration:photo_2020-05-19_22-40-39.jpg?direct |}} 
-</well> 
  
 ===== Кейсы и сценарии ===== ===== Кейсы и сценарии =====
Строка 142: Строка 111:
 </col> </col>
 <col xs="12" sm="7"> <col xs="12" sm="7">
-{{ service:integration:trigger_case_1.png?direct&450 |}}+{{ corporative:service:integration:trigger_case_1.png?direct&450 |}}
 </col> </col>
 </grid> </grid>
Строка 160: Строка 129:
 </col> </col>
 <col xs="12" sm="7"> <col xs="12" sm="7">
-{{ service:integration:trigger_case_2.png?direct&450 |}}+{{ corporative:service:integration:trigger_case_2.png?direct&450 |}}
 </col> </col>
 </grid> </grid>
  
-===== Технические требования ===== +<grid> 
-Триггеры -- это кроссплатформенный модуль. Можно поставить на Windows Server или на Linux. Может использовать как базу MS SQL или PostgreSQL. \\  +<col sm="6"> 
- +<btn block="true">[[product/triggers/start|← К оглавлению]]</btn> 
-Всё зависит от количества событий в системе и того, насколько много скриптов в этом модуле работают. +</col> 
- +<col sm="6"> 
-Триггеры состоят из 2 частей: +<btn block="true">[[/product/triggers/how_it_works|Как работают триггеры →]]</btn> 
-  - Веб интерфейс +</col> 
-  - База данных +</grid>
- +
-^ ^ Веб интерфейс ^ База данных ^ +
-^Требования к месту на жестком диске100мб | Зависит от количества триггеров, частоты их использования. \\ От 100мб| +
-^Требования к оперативной памяти| 1Гб | 1Гб | +
-^Требования к процессору| 1-2 ядра | 1-2 ядра | +
-^Где может быть запущено| IIS (windows 2012r2) | Windows, Linux  \\  mssql версии не ниже 2012  \\  postgresql версии не ниже 10+  \\  Версия SQLServer, на которой должна быть запущена ADVANTA – 2008R2 с последним сервис паком обновлений. Без обновлений может не работать. | +
-^Минимальные требования|Windows server 2012r2|Windows, Linux (работоспособность проверялась на Ubuntu 18)| +
- +
-Исходя из текущего опыта эксплуатации((май 2020)), оптимальный вариант: +
-  - Веб-интерфейс запускается на том же сервере, где и стоит ADVANTA. В этом случае не понадобится никаких изменений в инфраструктуре. +
-  - База данных на том же сервере, где расположена основная база данных системы<callout type="primary">Если версия SQL не соответствует минимальной необходимой для триггеров (2012), то оптимальным вариантом будет установка на сервер баз данных PostgreSQL. В отдельном сервере нет необходимости.</callout>+