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

У меня есть один родительский узел, на основе пользовательского ввода. Я устанавливаю контекстную переменную на уровне моего приложения: да или нет и возвращаю обратно. А для моего родительского узла у меня есть два дочерних узла для условий $ eligibility = = "yes" и $ eligibility=="no". Итак, после того, как пользователи вводят данные из проверки родительского узла, и переменная контекста передается обратно, мне нужно прыгнуть и найти условие приемлемости. Если да, мне нужно перейти на один узел, если нет, то на другой .Как я могу сделать?

введите здесь описание изображения

Я попытался указать true для узла, добавил эти два узла и перешел к истине. Но это не сработало. Как мы можем этого добиться?


person user7350714    schedule 19.07.2017    source источник
comment
Вы установили eligibility в качестве переменной контекста в родительском узле? Такая вложенная обработка возможна. У меня есть пример здесь github.com/IBM-Bluemix /   -  person data_henrik    schedule 19.07.2017
comment
@data_henrik Я не устанавливал .. Но зачем нам это нужно?   -  person user7350714    schedule 19.07.2017
comment
Где он установлен? Я предполагаю, что вы хотите проверить это в дочерних узлах.   -  person data_henrik    schedule 19.07.2017


Ответы (2)


то, что упомянул @data_henrik, - это хороший способ установить значение контекста, а затем переключиться на разные потоки в зависимости от установленного значения. Но когда вам нужно выполнить некоторую логику перед установкой этого значения в контексте вашего приложения, это не будет подходящим способом.

У меня было такое требование, поэтому мы отправляли фиктивный текст из нашего приложения после того, как мы закончили установку значения в контексте после выполнения родительского узла. Проверьте изображения и объяснение после этого.

Диалог

Дочерний узел

Мы не использовали Jump, потому что нам нужно было выполнить некоторую проверку в службе Conversation после родительского узла, прежде чем двигаться дальше. Использование переходов позволило бы диалогу перейти к следующему узлу до того, как мы смогли бы установить значение в контексте.

Сценарий использования. как только пользователь вводит текст для намерения родительского узла, для моего случая намерения "#send-mail" я показываю родительский ответ и после этого выполняю некоторую функциональную проверку в своем приложении и добавляю значение для контекста. Теперь мы отправляем фиктивный текст «valid», который удовлетворяет намерению «#Valid», и, следовательно, переходим к следующему узлу в потоке. В этом узле мы проверяем значение в контексте (который уже установлен) и показываем соответствующий ответ пользователю.

person Mrutyunjaya Jena    schedule 20.07.2017
comment
Спасибо за объяснение... Но мне нужно иметь некоторый набор диалоговых узлов для любого из случаев.. Из вашего примера, если у нас есть $testMe==true, мне нужен некоторый набор узлов для потока, и аналогично, если $testMe== false. Мне нужно иметь некоторый набор диалоговых узлов, а не просто отображать вывод.. Как я могу это сделать? Цените любые входные данные на этом - person user7350714; 20.07.2017

Вы можете установить в первых двух тестовых узлах $testMe==true и $testMe==false временную выходную переменную в выходном json-пакете, т. е. output{"temp":"true"} или "false". Затем вы можете перейти к новому набору узлов и проверить значение output.temp, то есть output.temp == 'true', затем сделать что-то, или output.temp == 'false', а затем что-то сделать.

Приятным побочным эффектом этого действия является то, что переменная output.temp имеет жизнь только для текущего ввода диалога. В отличие от переменных контекста, которые нужно удалить/удалить.

person timd    schedule 31.07.2017