Варианты в сценариях IVR
Компонент "Варианты" используется для сравнения аргумента с заранее заданным набором значений.
Ранее мы описали компонент "Условие", который является аналогом оператора сравнения if, который позволяет сценарию выполнять переходы на ту или иную ветвь по логическому значению условия. Используя несколько компонентов "Условие", можно производить ветвление по последовательности условий – сравнения аргумента на совпадение с набором значений. Вы уже, наверное, представили, насколько этот способ однообразен и утомителен. Редактор сценариев предоставляет для этих целей другую управляющую структуру компонент "Варианты", который позволяет построить ветвление по ряду условий в форме, более удобной для чтения сценария.
Компонент "Варианты" позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит аргумент. Аргументом компонента "Варианты" может быть переменная, константа, функция, математическая операция или выражение любого типа.
Компонент "Варианты" работает следующим образом. Сначала вычисляется значение выражения аргумента, а затем выполняется сравнение значения аргумента с предложенными значениями на совпадение. Каждому заданному значению аргумента соответствует собственный выход из компонента по соответствующей ему ветке.
Сравниваемым значением может быть переменная, константа, функция, математическая операция или выражение любого типа.
Выбор аргумента компонента "Варианты", как набора значений производится посредством редактора выражений.
Может случиться, что в списке выбора не окажется значения, равному значению аргумента. В этом случае выход из компонента происходит по красной ветке вниз.
Для корректной работы операторы "Варианты" тип значений должен принадлежать тому же типу, что и аргумент.
Компонент "Варианты" эквивалентен оператору "switch" или "case".
Из компонента ведут один и более переходов
Переход - задается компонент, который будет выполнен следом же за компонентом "Варианты", если нет совпадения ни с одним из вариантов;
Переходы - задаются компоненты, переход на которые будет произведен при совпадении аргумента с одним из предложенных вариантов;