В BOT MS Teams у меня есть рабочий диалоговый код, чтобы задать ряд вопросов и вернуть отформатированный ответ пользователю в сеансе следующим образом:
session.send(`Details: <br/>Question1: ${session.dialogData.Question1} <br/>Question2: ${session.dialogData.Question2} <br/>Question3: ${session.dialogData.Question3}`);
Итак, я знаю, что мне нужны значения в переменных сеанса. Теперь я хочу передать переменные сеанса в функцию вставки SQL (executeStatement):
var session_username = session.dialogData.username
var session_yesterday = session.dialogData.yesterday
var session_today = session.dialogData.today
var session_obstacles = session.dialogData.obstacles
executeStatement(session_username, session_yesterday, session_today, session_obstacles)
Я могу передать строки, и функция работает нормально. Но когда я пытаюсь передать переменные сеанса, как указано выше, или просто передать session.dialogData.yesчера, например, прямо в функцию, весь код работает нормально - ошибок не выдается - но переменные сеанса не вставляются, и возвращаются 0 строк .
Как правильно передать переменную сеанса? Google не был добрым в этом отношении. :)
Заранее спасибо ...
Edit:
Так что я не мог уснуть, и у меня появилась (странная) идея. Используйте session.send при назначении значений переменной следующим образом:
session_username = session.send(`${session.dialogData.username}`)
или
session_username = session.send(session.dialogData.username)
Запись в базу данных, но это значение [объект]. Итак, как мне добраться до фактического значения? Хммм ... все еще смотрю
Редактировать 2:
Чтобы получить значение объекта, я попытался:
session_yesterday = session.dialogData.yesterday.text()
и
session_yesterday = session.dialogData.yesterday.value()
Для 1-й попытки .text () я получил следующую ошибку:
TypeError: Cannot read property 'text' of undefined
at Array.<anonymous> (C:\Developer\dailyStatus\index.js:96:56)
at C:\Developer\dailyStatus\node_modules\botbuilder\lib\dialogs\WaterfallDialog.js:67:39
at next (C:\Developer\dailyStatus\node_modules\botbuilder\lib\dialogs\WaterfallDialog.js:92:21)
at WaterfallDialog.beforeStep (C:\Developer\dailyStatus\node_modules\botbuilder\lib\dialogs\WaterfallDialog.js:99:9)
at WaterfallDialog.doStep (C:\Developer\dailyStatus\node_modules\botbuilder\lib\dialogs\WaterfallDialog.js:61:14)
at WaterfallDialog.dialogResumed (C:\Developer\dailyStatus\node_modules\botbuilder\lib\dialogs\WaterfallDialog.js:46:14)
at Session.endDialogWithResult (C:\Developer\dailyStatus\node_modules\botbuilder\lib\Session.js:358:28)
at PromptText.Prompt.invokeIntent (C:\Developer\dailyStatus\node_modules\botbuilder\lib\dialogs\Prompt.js:331:21)
at PromptText.Prompt.replyReceived (C:\Developer\dailyStatus\node_modules\botbuilder\lib\dialogs\Prompt.js:147:18)
at Session.routeToActiveDialog (C:\Developer\dailyStatus\node_modules\botbuilder\lib\Session.js:525:24)
/ - ERROR: Cannot read property 'text' of undefined
/ - Session.endConversation()