用户定义的动态工作流程和用户输入

时间:2017-02-09 15:27:00

标签: asp.net-mvc workflow-foundation-4 workflow-foundation workflow-foundation-4.5

我最近的任务是调查Workflow Foundation。实际目标是实现一个系统,最终用户可以在已部署的应用程序中定义自定义工作流程(当然,也可以使用它们)。就个人而言,我以前从未使用过WF(并且在这里阅读,因此人们非常怀疑它 - 所以我正在阅读这些问题/答案),而且由于可用的学习资源稀少,我很难找到解决方法。

无论如何,有一些问题,例如this,它们提到了一些他们称之为动态或用户定义的工作流程的问题。他们指出,WF可以让他们重新拥有" rehost"设计人员,以便最终用户可以在部署应用程序后定义他们自己的新工作流程(没有开发人员干预(?),这是我不太确定的部分。)

我的同事告诉我,通过这种方式,我们可以实现一个应用程序,一旦实现此功能,我们将不再需要在每次实施新工作流程时继续修改应用程序。然而,他们也指出他们只是听说过,他们也没有亲身体验。

我一直在寻找在线样品,但我能找到的最好的东西是数字猜测应用程序 - 仅仅是一个简单的问候世界。因此,没有多少能够指出这个用户定义的工作流功能如何实际工作以及如何使用它的正确方向,它的局限性等等。

我主要关注的是:可以定义自定义工作流程,但没有工作流程值得一分钱,而不可能在整个过程中实际输入数据。例如,即使我唯一需要做的是在投诉管理系统中注册客户,我也需要客户的姓名,联系方式等。如果最终用户应该能够定义任何工作流程,当然,给定工具集成为可能,需要有一种方法为工作流消费者提供一种通过表单输入数据的方法。如果工作流程几乎可以是任何性质,则需要成为数据 - 否则如果我们需要自己实现UI,那么这个"最终用户将工作流程放在一起"功能有点无用,因为它们最终仍然需要为各个步骤实现表单或某种数据输入。

所以我想应该有一种方法来定义"形状"需要在工作流的任何给定用户交互阶段填充的数据,我可以调查并根据数据动态生成表单。例如,如果我发现所需数据由名称和出生日期组成,那么我需要在页面上呈现文本框和日期选择器。

我无法从Q& As那里得到什么。在这里和其他地方,这是否是可能的。我可以定义,然后再查询"在任何时候传递给工作流的数据结构?如果是这样,怎么样?如果没有,这个用户定义的工作流功能如何使用,它有什么用呢?

为了澄清它,我可以想象一些指定复杂类型的东西,它将是常规MVC应用程序中的视图模型(输入模型),然后我可以反思它,获取属性并渲染输入字段基于此。

1 个答案:

答案 0 :(得分:3)

Windows Workflow Foundation是关于机器工作流程,而不是业务工作流程。确实,它是Microsoft为构建业务工作流产品而创建的基础工具集。但是开箱即用的WWF没有快速轻松地构建业务工作流程所需的组件。如果要在工作流中发送电子邮件,则必须从头开始编写。从业务的角度来看,你可以想到的任何事情,你必须从头开始写。

如果您想使用Microsoft产品轻松创建业务工作流,请查看SharePoint中的工作流内容。根据我的经验,它是最容易使用的Microsoft产品。如果这不符合您的需求,还有其他产品,如BizTalk。

K2是另一家拥有业务工作流产品的公司,它使用WWF作为更轻松地构建业务工作流的基础,旧的K2产品实际上自动创建网页以从用户收集数据。

世界自然基金会的水平非常低,可以说在他们重新编写了4.0中的全部内容后失去了牵引力。虽然微软没有公开声明,但我个人认为Service Fabric(来自微软)实现了WWF最初试图解决的目标,这是一个“更强大的编程环境。”