在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.yesterday时,所有的代码都运行良好--没有抛出错误--但是会话变量没有插入,而是返回了0行。
传递会话变量的正确方法是什么?谷歌在这方面并不友善。:)
谢谢你提前..。
编辑:
所以我睡不着,有个(奇怪的)主意。在将值赋值给变量时使用session.send,如下所示:
session_username = session.send(`${session.dialogData.username}`)或
session_username = session.send(session.dialogData.username)它写入数据库,但它是一个对象对象值。那么我怎样才能得到实际价值呢?Hmmm...Still查找
编辑2:
为了获得我尝试过的对象值:
session_yesterday = session.dialogData.yesterday.text()和
session_yesterday = session.dialogData.yesterday.value()对于第一次尝试,.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()发布于 2018-05-04 13:56:45
我固执地试图访问变量,因为我知道信息就在那里。
我测试了回到对话框results.response中,如下所示,它起了作用:
session.dialogData.yesterday = session_yesterday = results.response;老实说,对我来说,我不能直接访问变量,这对我来说还是有点奇怪的,但我想,哦,好吧,我从中吸取了教训。
谢谢
https://stackoverflow.com/questions/50164710
复制相似问题