问题标签 [formflow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
102 浏览

c# - 如何解决 FormFlow 中值之间的依赖冲突

我正在使用带有 FormFlow 的 Microsoft Bot Framework 来让用户填写表格。假设我的表单有两个字段:

  • 国家
  • 城市

所以我有两个枚举:

字段City总是依赖于字段Country,因为一个城市属于一个国家。这意味着用户应该只能填写France+ParisGermany+Berlin

我的表格:

我的建设者:

我不知道RemoveValue的用法在这里是否正确,感觉有点被黑了,但到目前为止它仍然有效。

用户第一次填写表格时一切正常,用户只能根据之前选择的国家/地区选择巴黎柏林。但是,当用户用No回答确认问题时,可以更改CountryCity。当用户然后将国家法国更改为德国时,FormFlow 将询问:

你选择了德国和巴黎,对吗?

这显然是不正确的,但仍然可以回答

我想实现的是,每当通过确认对话框更改国家/地区时,用户也必须根据国家/地区字段中的更改来更改城市选择。

我在玩SetNext方法,但我想不出任何有用的东西。

我在这里走错了吗?如果不破解整个 FormFlow 实现,这是否可能?

我将不胜感激任何帮助!

提前致谢!

更新(附加信息):我尝试了微软在此处找到的 Sandwich Bot 示例,它似乎具有相同的(错误)行为。订购一英尺长的三明治时,您将获得额外的(免费饼干/饮料) 。确认后将长度更改为六英寸,您仍然有多余的,但只需支付六英寸

0 投票
1 回答
301 浏览

c# - 从表单流中获取数据并将其输入到 api 调用中

我一直无法从使用表单流创建的表单中获取变量值。我想要用户的这四个过滤器,以便我可以将它们插入到我的 API 调用中并返回一个 JSON 对象。

在此代码中,过滤器是在 URL 中手动指定的,仅用于说明目的。

当我运行此代码时,API 调用首先执行,然后表单出现在 Bot-framework Emulator 上。

这是 Enquiry.cs

0 投票
2 回答
227 浏览

enums - 带有枚举的机器人构建器表单流

我有一个使用表单流对话框的机器人构建器项目,它工作正常,除了识别对枚举选择的响应的问题。

和枚举

当我选择女士、小姐或博士时,机器人会将此视为有效选项并移至下一个提示。但是,当我选择 Mr 或 Mrs 时,我被要求在 Mr 和 Mrs 之间进行选择,而我选择的任何结果都会导致 Mr(或 Mrs)不是标题选项 - 发生了什么?

显示枚举的机器人图像:

展示

机器人对枚举选择的响应图像:

机器人对枚举选择的响应

0 投票
1 回答
202 浏览

c# - Bot Framework 中的高级 FormFlow - 通过代码设置模板

我正在使用 Formflow 生成必要的问题,以便从用户那里获取所有数据。由于我支持多种语言,我不能只使用属性。所以我阅读了它并注意到 RView 可用于生成资源文件。但是,由于我已经对资源文件进行了拆分和排序,因此我正在尝试重用它们。

使用 FieldReflector,我可以很容易地做到这一点

很好。但我不知道在哪里为 TemplateUsage.NotUnderstood 或 TemplateUsage.DateTimeHelp 定义模板。在参考文献中,Field 上有一个可用的方法 ReplaceTemplate(),但是这个反射器返回一个 IField,无法弄清楚如何让它工作。

任何人都有最好的选择(我真的不想使用 RView ;))

0 投票
1 回答
64 浏览

c# - 如何移动到最后一个表单域以结束表单流并开始新的意图

在协助用户后的表单流程中,假设 Bot 在表单字段中询问我的用户,“还有什么我可以协助的,说是或否”。如果用户说是,我必须重新开始新的意图,即问候对话。表单流可以吗?

BuildForm方法中,我不想设置UserWantToCompleteEndOption为下一个方法来执行,而是要完成表单流程,并寻找新的 luis 意图,即问候对话。

0 投票
1 回答
115 浏览

c# - 表单流的动态返回类型

我目前正在寻找一种方法来动态创建FormDialog数据库中预定义的值。换句话说,我的字段类型、提示和设置都存储在数据库中,我想要实现的是读取这些设置并动态构建适当的表单。

到目前为止,我尝试的是类似于以下内容。假设我有一个带有Name ( string) 和Age ( int) 字段的表单(FieldDefinition是我创建的用于存储字段参数的类,假设它们是从数据库中获取的)(代码被剥离只是为了说明这个想法)

所以这里有问题:

  1. 我想我可以使用一种dynamic类型。但是一个方法不能返回一个dynamic对象,因为它是在运行时确定的。因此,当我尝试使用以下内容构建表单时出现错误:

    /li>
  2. 我需要动态创建对象的属性,因此我寻找了一种Type在运行时创建的方法。我最终得到了一个叫做的东西,TypeBuilder但我有点怀疑它是否能解决我的问题。

因此,我想最终的开始是使用,FieldReflector但我不知道如何实现这一点。我正在寻找与上述类似的东西,但这确实有效。

0 投票
1 回答
188 浏览

botframework - Bot Framework 更改表单提示信息

我目前正在尝试使用 bot 框架在 C# 中创建一个表单流,这是我的代码:

如您所见,表单将是西班牙语,问题是表单顶部显示的提示始终显示“请选择一个体育场”,我尝试按照此文档更改它但无济于事,我该如何更改表单的属性以显示类似“Seleccione un estadio por喜爱”之类的内容

如果需要,我会上传更多代码。

0 投票
1 回答
274 浏览

c# - 将带有 Luis 的实体传递给 FormFlow

我正在使用 Luis 来识别用户是否从某些实体开始流程,例如:他可以说“报告”或“我想在伦敦报告”或“我想在伦敦报告地点 x

这是类和构建形式:

如果添加ActiveDelegate hasLocation我可以控制字段LocationId是否必须显示。这可行,但在那之后机器人会出现“抱歉,我的机器人代码有问题

文本错误的示例 文本错误的示例

带有正确文本的示例 带有正确文本的示例

编辑

表单中使用的类:

类 BaseModel

类城

班级职位

0 投票
1 回答
74 浏览

c# - 当用户提交字段名称作为值时,FormFlow 禁用字段之间的切换

我们在机器人中使用 FormFlow。FormFlow 具有允许用户键入字段名称并切换到给定字段的功能。假设我们有一个像这样的模型类

当要求用户输入 FirstField 时,用户可能实际上可以键入“第一个字段”,这会导致再次询问 FirstField 的问题。有什么办法可以禁用它并将“第一个字段”作为 FirstField 的值?重命名 FirstField 会起作用,但我们正在寻找更好的解决方案

0 投票
1 回答
5331 浏览

c# - FormFlow 中的条件字段

我目前正在使用 Azure Bot Framework 开发一个简单的聊天机器人应用程序,使用 C# 和 formflow 实现,并在 Bot Emulator V4 中进行测试。

到目前为止,我一直很好,主要使用直觉和一些在线资源,但我最近遇到了一些障碍,发现 FormFlow 中条件字段的文档相当稀疏。

简而言之,场景如下:

  • 该表格询问个人
  • 倒数第二个问题是关于用户是否有任何问题的“是”或“否”
  • 最后一个问题,他们详细说明他们的问题,如果他们有任何问题

实际上,只有当用户对倒数第二个问题的回答是“是”时,后者才应该可见。如果用户对有任何问题回答“否”,则机器人应忽略“问题描述”字段。

目前,我有:

选项。

提示,以及可供选择的“是”和“否”选项。

最后一个问题只是一个字符串输入:

此刻,如您所见,我一直在使用“[可选]”标签,因为它是最接近条件字段的替代品。我正在努力寻找涵盖如何创建字段的文档,该字段的外观取决于另一个字段值。

有没有一种方法可以使问题描述字段可见/可回答,当对“HadProblem”的响应为“是”时?

如果答案是“否”,那么必须手动跳过问题真的很不整洁。

提前致谢。