Сценарные инструменты

Триггеры

В платформе предусмотрена система отслеживания событий (events), которые являются триггерами для того или иного действия. Так, например, сценарий, срабатывающий на появление нового объекта в структуре, будет запущен только тогда, когда в платформе появится событие об этом.

Работу триггеров можно посмотреть в счетчиках сценариев. Они доступны в меню сценариев и отображают количество вошедших объектов и количество вышедших. Если эти значения равны, то сценарий отрабатывает последовательность корректно.

Счетчики на кубиках также содержат количество принятых к обработке и обработанных объектов. Равенство значений указывает на отсутствие логических ошибок в условиях и производимых операциях.

Как создаются события

События генерируются при создании объекта, либо при его изменении. Такая возможность предусмотрена в разных инструментах плафтормы. Рассмотрим каждый из них:

При создании объекта через интерфейс платформы

Новый или существующий объект можно сохранить как с событием, так и без него. Две кнопки справа подскажут нужное действие.

Шаги в сценарии

В некоторых кубиках, таких как: редактирование, создание, поиск объекта и других есть переключатель "Создавать событие". При этом, если в кубике "создание объекта" событие генерируется по умолчанию, то в "изменение объекта" эту опцию необходимо включать.

JS SDK

Стоит выделить кубик JS SDK, т.к. в нём генерация событий настраивается гибко в зависимости от каждого конкретного метода (например saveObject). Обращайте внимание на документацию.

API

Механизм сохранения объектов через точки доступа API подразумевает параметр changeEventForRealChangedData По умолчанию он принимает значение true и событие создаётся только в случае фактического изменения объекта. Используйте этот параметр в ваших POST запросах.

Пример Есть сценарий, который реагирует на изменение поля. Как работает changeEventForRealChangedData=true: Существует объект с полем а = 1, вы пересохранили объект, а = 1 так и остался. Событие не будет создано, сценарий не запустится. Если поле а приняло значение 2 — эвент сгенерируется.

Если параметр changeEventForRealChangedData=false, то событие будет создано в любом случае, был объект изменён, или нет. Сценарий запустится.

У механизма точек доступа API предусмотрен режим запуска сценария. Так сценарий может быть запущен одновременно с созданием объекта. В таком случае, генерируется только один эвент, хотя совершено два действия!

Внешние интеграции

При получении объектов через слушателя баз данных, либо сообщения от Telegram-бота (в структуру TMessageIn) события создаются по умолчанию.

Тестирование сценариев

Для тестирования разрабатываемого решения при работе с платформой Directual представлено несколько инструментов тестирования работоспособности сценариев и их элементов:

Проверка выражения

Проверка выражения позволяет получить его значение при подстановке ID объекта структуры, обрабатываемой сценарием. Проверка доступна в кубиках "Условие на поле", "Изменение полей", "Поиск", "Создание объекта" (при присвоении не автоматически сгенерированного ID).

Для того, чтобы проверить обрабатываемое выражение, необходимо подставить ID объекта структуры, обрабатываемой сценарием, и нажать кнопку “GO”.

Результат проверки демонстрируется в интерфейсе и не записывается в объект.

Testing step

Testing step позволяет протестировать шаг в процессе редактирования. Доступно в кубиках "Изменение полей", "Поиск", "Условие на поле", "Создание объекта" и "Удалить объект".

Для проверки необходимо внести ID объекта структуры, обрабатываемой сценарием, и нажать кнопку “GO”.

Результат проверки появится чуть ниже и запишется в объект (во всех кубиках, кроме "Условие на поле"). В кубике "Удалить объект" результатом тестирования будет удаление этого объекта из структуры.

При тестировании будут применены значения, которые вы установили в полях кубика здесь и сейчас, нет необходимости сохранять их при помощи кнопки Save.

Проверка сценария

Проверка запускает обработку объекта, направленного в сценарий, и производит все заданные сравнения и преобразования над обрабатываемым объектом.

Для этого необходимо передать значение ID тестируемого объекта, находящегося в структуре.

Записываются все производимые в рамках сценария изменения, запускаются связанные сценарии.

Зацикленные сценарии

Случаются ситуации, при которых разработчик по ошибке соединил кубики таким образом, что объект переходит от кубику к кубику "по кругу", а сценарий попадает в бесконечный цикл. В результате объект не может выйти из сценария, а платформа нагружается генерацией событий.

Чтобы избежать подобного поведения, предусмотрен механизм отслеживания зацикленных сценариев. Платформа отслеживает, что события генерируются в цикле и, при достижении тысячной итерации, выдаёт ошибку к кубике.

Если логикой вашего приложения предусмотрены циклы в сценарии более чем на 1000 итераций, параметр ограничения можно изменить в настройках окружения платформы.

Обратитесь к вашему системному администратору.