Редактор сценариев
Все сценарии настраиваются в модуле Редактор сценариев (scripteditor). Модуль предоставляет возможность с помощью графического интерфейса визуально программировать сценарии и имеет все требуемые компоненты для решения большинства задач.
Верхняя панель
Название | Описание |
---|---|
Имя сценария |
Отображается имя сценария |
Код сценария |
Отображается заданный код сценария |
Тип сценария |
|
Сохранить |
Сохранение сценария |
Для запуска сценария или отмены изменений в информационой панеле нажмите на image::scripteditor/scripteditorarrow.png[Editrow]
Затем выберите нужно действие в контекстном меню выбора.
Основное окно
Отображается последовательность выполнения компонентов сценария и условные переходы между ними.
Блок "Компоненты"
Отображаются доступные компоненты и действия с ними. Для размещения компонента в основном окне необходимо
-
выделить компонент в блоке компоненты
-
нажать на место его размещения в основном окне
Изменение свойств компонента
При выделении компонента в основном окне справа отображаются его свойства.
У каждого компонента свои свойства. Подробно они описаны в описании каждого компонента в главе Компоненты сценариев.
Блок действий
В блоке компонент в верхней строке располагается блок Действий.
В этот блок входят:
-
Выделение - дефолтное действие управления компонентами в основном окне
-
Связь - действие позволяет управлять связями между компонентами
-
Перемещение области - действие, позволяющее перемещать видимую область
-
Комментарий - позволяет создавать область под компонентами с дополнительным комментарием
Выделение и перемещение
Базовое действие при работе мышкой по Основному окну Используется для выделения и перемещения как одного объекта, так и группу выделенных объектов в основном окне редактора сценариев.
При необходимости выделить несколько компонент вне одной области можно использовать Shift+click |
Если во время перемещения нажать и удерживать Ctrl, то перемещение будет по вершинам скрытой сетки |
Для копирования выделенных компонент можно использовать контекстное меню (по правой кнопке мыши)
Все свойства и переходы будут скопированы, кроме переходов в выделенную группу и переходы из выделенной группы.
Также можно использовать горячие клавиши Ctrl+C (копировать), Ctrl+X (вырезать), Ctrl+V (вставить) |
Связи между компонентами
Каждый компонент, кроме финальных, имеет один или несколько Переходов.
Для создания связи между компонентами можно:
-
в свойства компонента выбрать другие компоненты в полях перехода
-
кликнуть на компоненте, зажать Ctrl и, удерживая кнопку мыши, вести к компоненту, на который будет переход
Кнопка | Результат |
---|---|
Сtrl + левая кнопка мыши |
image::scripteditor/ransitionblue.png[] |
Сtrl + правая кнопка мыши |
image::scripteditor/stransitionred.png[] |
Перемещение видимой области
Используется для горизонтального и вертикального скроллинга в основном окне редактора сценариев.
Применяется когда сценарий большой и не помещается на видимую область. Также можно использовать стандартные полосы горизонтальной и вертикальной прокрутки в Основном окне.
Для просмотра всей графической схемы нарисованного сценария можно использовать кнопку "уменьшения" в правом верхнем углу основного окна (появляется когда сценарий не помещается в видимую область) |
Управление переменными
Переменная сценария – это величина, хранящая свое значение на всем протяжении выполнения сценария, включая запуск вложенных синхронных и асинхронных сценариев в рамках одной цепочки выполнения.
Переменные используются в сценарии для переноса значения из одних компонентов в другие. Например, для обращения к определенному файлу или текущее количество завершенных шагов цикла.
Окно управления переменными
Посмотреть список всех переменных и управлять ими можно через кнопку переменные
, расположенную в правой части навигации
Для Создания переменной необходимо:
-
Задать Имя переменной. Допустимые символы:
-
буквы русского
-
буквы латинского алфавита цифры
-
часть спецсимволов _ , . ! ?. Остальные спецсимволы возможны, но не рекомендуются. Спецсимвол не должен первым и последним символом в названии переменной
-
-
Выбрать тип переменной:
-
строка. Обработка будет как со строковой переменной
-
число. Обработка будет как с числовым значением
-
дата/время. Обработка будет как с параметром Дата/Время
-
-
Выбрать уровень доступности переменной
Подробнее о переменных написано в Переменные сценариев
Можно в любом свойстве компонента, где требуется указать Переменную, ввести имя новой переменной и нажать на появившееся рядом "Создать" |
При работе с свойствами компонент и переменных необходимо присваивать им значения. Делается это через окно Аргумент
Закладка значение Аргумента
Возможность ввода Константы или выбора Переменной.
При вводе Константы можно выбрать тип значения - Строка, Число или Дата/время.
Закладка Выражение
На этой закладке с использованием Функции сценариев создаются Выражения.
После написания выражения необходимо кликнуть вне заны окна ввода Выражения и система проверит его орфографическую корректность. Если выражение содержит ошибку, то окно будет выделено красным цветом.
Иногда корректно написанное выражение дает ошибку при проверке, например, при len([some_string])-1 . Это вызвано тем, что все переменные при проверке корректности нелевые.
|
Закладка Шаблон
На этой закладке с использованием Функции сценариев создаются Шаблоны.
Шаблоны и выражения имеют встроенный механизм перевода между собой. Иногда удобнее использовать закладку Выражения, иногда закладку Шаблон
При сохранении и при клике вне области ввода Шаблона система проверяет корректность вычисления и орфографии. В случае ошибки окно становится красным.
Правила хорошего тона
Графический интерфейс создания сценариев предоставляет удобный и легкий в использовании инструментарий, отражающий концепцию Low-Code/No-Code. Но с другой стороны "некрасивое" рисование сценария приведет к сложностям дальнейшей модификации и понимания. Поэтому мы рекомендуем придерживаться следующих правил:
-
Разбивать сценарии по функциональному предназначению. Можно все активности свести в один громоздкий сценарий, но стоимость любого изменения и возможной ошибки будет пропорционально количеству компонент
-
Названия сценариев должны быть "говорящими"
-
Префикс должен отражать прямое предназначение, проект, другую классификацию
-
Основая часть имени должна нести смысловую нагрузку
-
Постфикс можно использовать на номер версии, дату последнего релиза и т.п.
-
-
Коды сценариев должны быть максимально сжатыми и отвечать единым правилам наименования. В пределе Код и Наименования могут совпадать, но обычно код меньше по количеству символов
-
Планарность самого рисунка. Пересекаемые линии переходов сильно усложняют чтение картинки. Рекомендуется избегать пересечений или минимизировать их смысловое влияние на чтение сценария
-
Использование Комментарий где можно выделить отдельно значимый блок. В описании указать что это за блок, какие функции он выполняет и в дальнейшем вести changeLog изменений в нем
-
Оптимизация количества компонент. Не рекомендуется более 100 компонент в одном сценарии. Рекомендация крайне условная, но ей можно придерживаться при формальной оценке сложности сценария
-
У компонент тоже должны быть "говорящие" названия. Не "Присвоение 3" (по пиктограмме видно что это Присвоение, а "i+1" или "увеличение счетчика i"
-
Названия переменных так же важны. Не рекомендуется плодить множество переменных, но и ограничений нет. Используйте переменные и их наименования чтобы облегчить восприятие сценария
-
После компонента Старт задать все начальные значения, которые являются константами и не получаются из Дефолтных значений объекта или из других переменных
-
Отладочные компоненты настроены не на константы, а на переменные, которые можно изменить в начале сценария. Например, пользователь у компонента Уведомление
-
Нет брошенных веток. Каждая ветка завершается компонентом Стоп или Отбой (Отправка SIP Bye пакета),Отбой или другим конечным компонентом
-
При необходимости отладочных данных в работающем сценарии записывать их в Лог-файлы через Уведомление. После можно будет собрать логи и проанализировать выпонение разных экземпляров
-
Использование компонента SQL-запрос только там, где данные принадлежат Oktell Studio (а не другой системе) или в случае, если сторонняя ИС не может предоставить WebService API доступ к данным
Рекомендации по этапам работы над сценариями
-
Этап проектирования архитектуры разбиения ответственности за реализацию по сценариям
-
Этап проектирования структуры сценария
-
входные - выходные данные
-
протоколы взаимодействия
-
основные блоки и алгоритмы внутри сценария
-
-
Этап разработки
-
Этап отладки
-
Этап приведения сценария в состояние релиза
-
Этап оценки качества. Рекомендуем на этот этап привлекать инженера, кто не задействован в текущем проекте. Цель этапа - оценить читаемость сценария и насколько сторонний инженер сможет в нем разобраться через месяц-год