Workflow. Ошибка Error when starting a SWITCH branch
Workflow. Ошибка Error when starting a SWITCH branch.
Пояснение к вопросу
Ошибка, про которую я хочу написать в этой заметке относится к неправильному использованию некоторых типов шагов, используемых при настройке потоков операций. В частности, речь пойдет о шаге типа
Допустим, что вы настроили поток, в котором используете шаг типа множественное условие. На этом шаге потока операций вы проверяете какие значение принимают элементы контейнера вашего потока. Для этого вы используете конструкцию типа
Далее выполняете запуск потока операций, и получаете сообщение об ошибке **Error when starting a SWITCH branch **аккурат на таком множественном условии
Решение вопроса
Такая ошибка возникает вследствие неправильного использования шага типа Multiple Condition (множественное условие). Данный тип шага в потоке операций рассчитан на проверку значения только одного элемента контейнера, а не двух, как представлено на Рисунке #2. Настроенный поток операций не может определиться по какой ветке продолжить выполнение, и в результате останавливается с ошибкой.
Для исправления возникшей ошибки необходимо всегда следовать правилу, которое описано выше. Повторюсь: шаг типа Multiple Condition (множественное условие) должен быть настроен на проверку только одного элемента контейнера. Исправляю ситуацию следующим образом
N.B. Обратите внимание на то, что тип шага был изменен на **Case, **а проверка выполнена только для одного элемента контейнера потока операций (PROCSTATE).
Если на данном этапе выполнить тестирование такого потока операций, ошибка более не должна возникнуть. На следующем видеофрагменте представлены результаты выполнения двух потоков операций с разными значениями элемента контейнера PROCSTATE
Осталось проверить значение другого элемента контейнера, которое может принимать несколько значений. Для этого необходимо использовать следующий подход
N.B. Обратите внимание на то, что я добавил шаг Multiple Condition с типом Switch, который также настроен на отслеживание значения одного элемента контейнера (ANOTHER_VARIABLE). Для тестирования, в моем примере элементу ANOTHER_VARIABLE было присвоено начальное значение D.
После выполненного запуска потока операция, картина будет выглядеть следующим образом