Редактор сценариев

Все сценарии настраиваются в модуле Редактор сценариев (scripteditor). Модуль предоставляет возможность с помощью графического интерфейса визуально программировать сценарии и имеет все требуемые компоненты для решения большинства задач.

svcscript
Рис. 1. Общий вид раздела

Верхняя панель

svcscript
Рис. 2. Верхняя панель
Название Описание

Имя сценария

Отображается имя сценария

Код сценария

Отображается заданный код сценария

Тип сценария

scripteditorser
  • Служебный сценарий

scripteditorivr
  • IVR сценарий

Сохранить

Сохранение сценария

Для запуска сценария или отмены изменений в информационой панеле нажмите на Editrow

Затем выберите нужно действие в контекстном меню выбора.

scripteditorsave
Рис. 3. Меню выбора действия

Основное окно

Отображается последовательность выполнения компонентов сценария и условные переходы между ними.

scripteditormain
Рис. 4. Компоненты

Блок "Компоненты"

scripteditorcom
Рис. 5. Компоненты

Отображаются доступные компоненты и действия с ними. Для размещения компонента в основном окне необходимо

  1. выделить компонент в блоке компоненты

  2. нажать на место его размещения в основном окне

Изменение свойств компонента

При выделении компонента в основном окне справа отображаются его свойства.

У каждого компонента свои свойства. Подробно они описаны в описании каждого компонента в главе Компоненты сценариев.

scripteditorcap
Рис. 6. Свойства

Блок действий

В блоке компонент в верхней строке располагается блок Действий.

components visual

В этот блок входят:

  • Выделение - дефолтное действие управления компонентами в основном окне

  • Связь - действие позволяет управлять связями между компонентами

  • Перемещение области - действие, позволяющее перемещать видимую область

  • Комментарий - позволяет создавать область под компонентами с дополнительным комментарием

Выделение и перемещение

selection

Базовое действие при работе мышкой по Основному окну Используется для выделения и перемещения как одного объекта, так и группу выделенных объектов в основном окне редактора сценариев.

selectioncap
Рис. 7. Выделение объектов
При необходимости выделить несколько компонент вне одной области можно использовать Shift+click
Если во время перемещения нажать и удерживать Ctrl, то перемещение будет по вершинам скрытой сетки

Для копирования выделенных компонент можно использовать контекстное меню (по правой кнопке мыши)

scripteditorcon
Рис. 8. Контекстное меню

Все свойства и переходы будут скопированы, кроме переходов в выделенную группу и переходы из выделенной группы.

Также можно использовать горячие клавиши Ctrl+C (копировать), Ctrl+X (вырезать), Ctrl+V (вставить)

Связи между компонентами

Связи между компонентами

Каждый компонент, кроме финальных, имеет один или несколько Переходов.
Для создания связи между компонентами можно:

  • в свойства компонента выбрать другие компоненты в полях перехода

  • кликнуть на компоненте, зажать Ctrl и, удерживая кнопку мыши, вести к компоненту, на который будет переход

Кнопка Результат

Сtrl + левая кнопка мыши

image::scripteditor/ransitionblue.png[]
Переход в случае успешного завершения операции.

Сtrl + правая кнопка мыши

image::scripteditor/stransitionred.png[]
Переход в случае ошибки выполнения операции.

Перемещение видимой области

Перемещение

Используется для горизонтального и вертикального скроллинга в основном окне редактора сценариев.
Применяется когда сценарий большой и не помещается на видимую область. Также можно использовать стандартные полосы горизонтальной и вертикальной прокрутки в Основном окне.

Для просмотра всей графической схемы нарисованного сценария можно использовать кнопку "уменьшения" в правом верхнем углу основного окна (появляется когда сценарий не помещается в видимую область)

Комментарий

Комментарий

Используется для выделения подложки под компонентами.

Свойства компонента:

commentcom
Рис. 9. Комментарий
Название Описание

Цвет текста

Цвет текста

Цвет фона

Цвет фона выделенной зоны

Текст

Комментарий, который будет выводится на выделенной зоне

Управление переменными

Переменная сценария – это величина, хранящая свое значение на всем протяжении выполнения сценария, включая запуск вложенных синхронных и асинхронных сценариев в рамках одной цепочки выполнения.

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

Окно управления переменными

Посмотреть список всех переменных и управлять ими можно через кнопку переменные, расположенную в правой части навигации

variablecom
Рис. 10. Переменные

Для Создания переменной необходимо:

  1. Задать Имя переменной. Допустимые символы:

    • буквы русского

    • буквы латинского алфавита цифры

    • часть спецсимволов _ , . ! ?. Остальные спецсимволы возможны, но не рекомендуются. Спецсимвол не должен первым и последним символом в названии переменной

  2. Выбрать тип переменной:

    • строка. Обработка будет как со строковой переменной

    • число. Обработка будет как с числовым значением

    • дата/время. Обработка будет как с параметром Дата/Время

  3. Выбрать уровень доступности переменной

variable
Рис. 11. Основное окно управления переменными

Подробнее о переменных написано в Переменные сценариев

Можно в любом свойстве компонента, где требуется указать Переменную, ввести имя новой переменной и нажать на появившееся рядом "Создать"

При работе с свойствами компонент и переменных необходимо присваивать им значения. Делается это через окно Аргумент

argument
Рис. 12. Основное окно управления аргументами

Закладка значение Аргумента

Возможность ввода Константы или выбора Переменной.

При вводе Константы можно выбрать тип значения - Строка, Число или Дата/время.

Закладка Выражение

expressions
Рис. 13. Закладка управления Выражением

На этой закладке с использованием Функции сценариев создаются Выражения.

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

Иногда корректно написанное выражение дает ошибку при проверке, например, при len([some_string])-1. Это вызвано тем, что все переменные при проверке корректности нелевые.

Закладка Шаблон

expr template
Рис. 14. Закладка управления Шаблоном выражения

На этой закладке с использованием Функции сценариев создаются Шаблоны.

Шаблоны и выражения имеют встроенный механизм перевода между собой. Иногда удобнее использовать закладку Выражения, иногда закладку Шаблон

При сохранении и при клике вне области ввода Шаблона система проверяет корректность вычисления и орфографии. В случае ошибки окно становится красным.

Правила хорошего тона

Графический интерфейс создания сценариев предоставляет удобный и легкий в использовании инструментарий, отражающий концепцию Low-Code/No-Code. Но с другой стороны "некрасивое" рисование сценария приведет к сложностям дальнейшей модификации и понимания. Поэтому мы рекомендуем придерживаться следующих правил:

  1. Разбивать сценарии по функциональному предназначению. Можно все активности свести в один громоздкий сценарий, но стоимость любого изменения и возможной ошибки будет пропорционально количеству компонент

  2. Названия сценариев должны быть "говорящими"

    1. Префикс должен отражать прямое предназначение, проект, другую классификацию

    2. Основая часть имени должна нести смысловую нагрузку

    3. Постфикс можно использовать на номер версии, дату последнего релиза и т.п.

  3. Коды сценариев должны быть максимально сжатыми и отвечать единым правилам наименования. В пределе Код и Наименования могут совпадать, но обычно код меньше по количеству символов

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

  5. Использование Комментарий где можно выделить отдельно значимый блок. В описании указать что это за блок, какие функции он выполняет и в дальнейшем вести changeLog изменений в нем

  6. Оптимизация количества компонент. Не рекомендуется более 100 компонент в одном сценарии. Рекомендация крайне условная, но ей можно придерживаться при формальной оценке сложности сценария

  7. У компонент тоже должны быть "говорящие" названия. Не "Присвоение 3" (по пиктограмме видно что это Присвоение, а "i+1" или "увеличение счетчика i"

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

  9. После компонента Старт задать все начальные значения, которые являются константами и не получаются из Дефолтных значений объекта или из других переменных

  10. Отладочные компоненты настроены не на константы, а на переменные, которые можно изменить в начале сценария. Например, пользователь у компонента Уведомление

  11. Нет брошенных веток. Каждая ветка завершается компонентом Стоп или Отбой (Отправка SIP Bye пакета),Отбой или другим конечным компонентом

  12. При необходимости отладочных данных в работающем сценарии записывать их в Лог-файлы через Уведомление. После можно будет собрать логи и проанализировать выпонение разных экземпляров

  13. Использование компонента SQL-запрос только там, где данные принадлежат Oktell Studio (а не другой системе) или в случае, если сторонняя ИС не может предоставить WebService API доступ к данным

Рекомендации по этапам работы над сценариями

  • Этап проектирования архитектуры разбиения ответственности за реализацию по сценариям

  • Этап проектирования структуры сценария

    • входные - выходные данные

    • протоколы взаимодействия

    • основные блоки и алгоритмы внутри сценария

  • Этап разработки

  • Этап отладки

  • Этап приведения сценария в состояние релиза

  • Этап оценки качества. Рекомендуем на этот этап привлекать инженера, кто не задействован в текущем проекте. Цель этапа - оценить читаемость сценария и насколько сторонний инженер сможет в нем разобраться через месяц-год