| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия |
| product:triggers:about [13.11.2020 12:38] – ↷ Страница перемещена и переименована из service:triggers в product:triggers:about mayn | product:triggers:about [17.12.2024 08:30] (текущий) – ↷ Операцией перемещения обновлены ссылки Белугин Александр |
|---|
| ====== Триггеры ====== | ====== Что такое Триггеры ====== |
| |
| Триггеры -- это отдельный модуль, который общается с системой по интеграционной шине. | Триггеры -- это отдельный модуль, который общается с системой по интеграционной шине. |
| Цель триггеров как инструмента -- **автоматизация бизнес-процессов**. Возможность сделать так, чтобы пользователю приходилось делать меньше действий в системе и не совершать ошибок на уровне "забыл проставить нужный реквизит". | Цель триггеров как инструмента -- **автоматизация бизнес-процессов**. Возможность сделать так, чтобы пользователю приходилось делать меньше действий в системе и не совершать ошибок на уровне "забыл проставить нужный реквизит". |
| |
| {{ 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|}} |
| |
| **Идеальная картина:** нажал одну кнопочку -- и готово. Система магическим образом узнала, чего от неё хотел пользователь. Всё заполнилось-настроилось-появилось как надо. | **Идеальная картина:** нажал одну кнопочку -- и готово. Система магическим образом узнала, чего от неё хотел пользователь. Всё заполнилось-настроилось-появилось как надо. |
| {{:product:tables:admin:eye.png?direct&150 }} Триггер -- это мощный инструмент в руках человека, понимающего настроенные в ADVANTA процессы и знающего, как они работают. | {{:product:tables:admin:eye.png?direct&150 }} Триггер -- это мощный инструмент в руках человека, понимающего настроенные в ADVANTA процессы и знающего, как они работают. |
| |
| В руках же малоквалифицированного сотрудника с большим доступом -- это страшная дубина, которой можно разнести весь настроенный порядок. | В руках сотрудника не совсем понимающего как все работает, но имеющего права доступа -- этот инструмент может принести больше вреда, чем пользы. |
| |
| Триггер это микроавтомат (робот), выполняющий набор рутинных действий при наступлении определенного события в бизнес-процессе, и поэтому чувствителен к изменению условий в которых он работает. Если изменились условия или процесс, то триггер, выполняющий рутину под старый процесс, скорее всего станет выполнять неадекватные новому процессу действия, или сломается. | Триггер это микроавтомат (робот), выполняющий набор рутинных действий при наступлении определенного события в бизнес-процессе, и поэтому чувствителен к изменению условий в которых он работает. Если изменились условия или процесс, то триггер, выполняющий рутину под старый процесс, скорее всего станет выполнять неадекватные новому процессу действия, или сломается. |
| Соответственно самый верный способ "завалить" работу триггеров -- это создать хаос в настройках: забыть, зачем и что было настроено, смело добавлять, удалять и переименовывать реквизиты, объекты, справочники, менять ограничения по созданию дочерних объектов и т.п. Впрочем, такие действия обязательно создадут массу неадекватных данных и сломают отчетность, 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> | |
| |
| ===== Кейсы и сценарии ===== | ===== Кейсы и сценарии ===== |
| </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> |
| </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> | |