Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
breakoutModewide
если("{error} == 1").то(
   сообщениеПользователю.сШаблоном("Система не работает")    
) +
...

Блок операций может состоять из нескольких шагов. В этом случае различные шаги в блоке должны быть соединены знаком “+”, но последний шаг в блоке не должен содержать “+

Code Block
breakoutModewide
если("{when} == завтра").то(
   задатьПользователюВопрос("Ок! Введи пожалуйста нужное время").сохранитьРезультат("time") +
   вызвать.внешнийСервис("{url}", "GET").сПараметрами(("time","{time}")).сохранитьРезультатКакСтроку("result"))
) +
...

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

...

Code Block
breakoutModewide
если("{error} == 0").и("{connection_mistakes} == 0").то(
   сообщениеПользователю.сШаблоном("Система работает")
)+

.или(*условие)

Модификатор для указания дополнительного условия, объединененного с основным условием логической операцией ИЛИ. Итоговый набор шагов будет выполнен при выполнении одного из условий - основного или дополнительного.

Code Block
breakoutModewide
если("{error} == 1").или("{connection_mistakes} == 1").то(
   сообщениеПользователю.сШаблоном("Система не отвечает")
)+

...

установитьМетку(*название)

...

Code Block
breakoutModewide
установитьМетку("раз") +
...
перейтиНаМетку("раз")+

...

перейтиНаМетку(*метка)

Шаг перехода на установленную в коде сценария метку.

Code Block
breakoutModewide
если("{error} == 0").и("{connection_mistakes} == 0").то(
   // переход на метку без указания лимита переходов, используется значение по-умолчанию 30
   перейтиНаМетку("раз") 
) +
...        

Если указанной метки не существует - шаг перехода будет проигнорирован. Для ограничения бесконечного зацикливания сценария в шаге установлен лимит на количество переходов равный 30. Для установки другого ограничения количества переходов служит модификатор шага.

...

Code Block
breakoutModewide
комментарий("Сменил тематику чата на {newTheme}") +
...

...

выполнитьJs(*скрипт)

Шаг выполнения скрипта на JavaScript. Шаг позволяет реализовать произвольную логику вычислений или разбор сложных объектов. В качестве аргумета аргумента шаг принимает текст JS скрипта.

Info

Javascript VM соответствует ECMAScript 5.1ECMASript 2016+

Используйте обычный синтаксис callback function поскольку не поддерживается синтаксис lambda функций ES6

...

Code Block
breakoutModewide
запросВБазыЗнаний("Как купить слона", "botKnows")+
если("{botKnows} == true").то(
  сообщениеПользователю.сШаблоном("Ответ есть")
)+
Info

Если группа в диалоге не определена на момент выполнения шага (например, в интеграции на событие “поступление диалога в систему”), то запрос будет отправлен в базы знаний основной группы.

назначитьТематику(*идентификатор)

...