我的应用程序的基本用例是允许用户通过拖动一些特定的流程图控件来可视化地定义他们自己的工作流,这些控件将涉及请求用户输入并执行某些操作的步骤。
例如,考虑以下流程图是由用户构建的,它将询问一些提示并将几段文本组合成一封信或文档。
我想我可以使用 Windows Workflow Foundation 来定义这个流程图。在我的想法中,我想定义两个自定义事件;一个用于向用户询问我称之为提示事件的东西(在上图中编号为 2、5 和 7),另一个用于附加文档 block (在上图中编号为 4、9、10 和 11)基于前一个提示的输入响应。这些提示自定义提示将有一些“in”属性,如要显示的提示文本、提示类型以指示它是单选按钮、下拉列表还是复选框、说明它必须在这些控件中显示哪些项目的集合和一个“out”变量,它基本上是用户做出的选择。这个选择可以在流程图中用来决定执行路径。
作为上面的示例,假设我按上面的方式设置属性,那么它们将是这样的:
有了这个,当我从 Web 应用程序调用工作流时,我希望看到以下内容:
然后,如果我选择了“否”,则下拉列表显示为:
如果我选择了第三项,那么它应该显示:
在这里,我主要是尝试让应用程序询问工作流中定义的内容,并根据给定的输入继续工作流并执行一些任务。
我正在尝试使用 Windows Workflow Foundation 并定义这些自定义事件。我还创建了必要的 JavaScript 函数,这些函数将接受输入并创建这些单选按钮并动态显示它们。我想念的是连接工作流程,但我不确定该怎么做。
我不限于 WWF,我也可以使用任何第 3 方解决方案。我在许多论坛和 YouTube 视频中进行了搜索,但找不到丢失的链接。
非常感谢任何帮助。谢谢。
更新: 偶然发现了一个叫做 Bookmarks 的东西并且可能会暂停工作流程并执行上述操作 - 需要验证,但如果有这方面知识的人可以阐明一些信息,那就太好了。谢谢。
最佳答案
WWF 现在已经很老了,你可以考虑 CoreWF(实验性的):
https://github.com/UiPath-Open/corewf
相关:考虑到您正在规划的应用程序具有设计您自己的视觉领域特定语言的所有属性,因此我建议通过 DSL 镜头而不是重量级工作流系统来看待这个问题。
DSL 在业务逻辑需要在正常软件开发流程之外更改的系统中非常常见。
如果你在网上找不到东西,我会推荐 https://martinfowler.com/books/dsl.html
您的应用程序是可视化编程的事实不会改变它仍在编程的事实,您将不得不处理常规 DSL 的所有解析、语法、语法检查和运行时错误处理,在除了视觉设计师的复杂性。
关于webforms - 如何在 ASP .Net 中开发将遵循工作流中定义的过程的 Web 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62429688/