В некоторых случаях может потребоваться пропустить вопрос, если клиент уже дал ответ на него преждевременно.
Пример фрагмента сценария
Параметры блоков и стрелок
1) В самом начале сценария нам потребуется добавить блок результата, и в нем задать переменные, значения которых могут быть получены преждевременно, и не присваивать им значения. В данном примере задана переменная name с пустым значением, куда далее будет записано имя клиента.
2) Далее установим блок вопроса. В этом примере это вопрос с текстом "Здравствуйте!", и ответ клиента на него не важен, но если клиент решит поздороваться и назовет свое имя, нужно будет сохранить его, для того чтобы потом не спрашивать как его зовут. Для этого в стрелке после блока вопроса используем НЛУ - выбираем агента, в данном случае базового агента Base, добавляем Любое намерение, и добавляем сущность, переменная и тип которой соответсвуют необходимой нам информации - в данном случае это будет переменная name, и тип human-name. Необходимо убрать галочку "Обязательная" рядом с типом сущности - в таком случае робот сможет продолжить двигаться по данной стрелке, даже если не получит информацию, соответствующую сущности.
3) Затем добавим блок условия с двумя ветками, одна из которых идет на уточняющий вопрос, а другая его пропускает и идет далее по сценарию. В ветке, которая пропускает вопрос, нам необходимо узнать, было ли получено значение переменной уточняющего вопроса ранее, для этого нужно установить Условие "И", и добавить условие, в котором мы сравним значение переменной с пустой строкой с помощью операции !=. В данном случае получается условие {name} != .
4) В стрелке, которая идет на уточняющий вопрос, укажем тип "По умолчанию".
5) Параметры стрелки после блока уточняющего вопроса аналогичны параметрам стрелки из шага №2, за исключением галочки Обязательная, она должна быть активна.
Таким образом можно пропустить вопрос, если ответ на него был дан ранее.
Пример работы фрагмента сценария