与this question有些相似,但我们尚未确定我们是否会使用WF。
我正在设计一个需要在“工作对象”上进行一系列决策和活动的系统,所以我自然而然地开始考虑工作流程,特别是WF。我想知道的是,如果WF是一个很好的解决方案,如下所示(这个问题过于简化)的情况(请原谅糟糕的ascii艺术):
__________________
| Gather some info |
| (web page) |
|__________________|
|
|
/ \
/ \
/ \
/ \
/ cond \
\ 1 /
\ /
\ /
\ /
\ /
|
|
______________|_______________
| |
| |
| ______|______
______|________ / do some /
| Get more info | / process /
| (web page) | /____________/
|_______________|
|
|
/ \
/ \
/ \
/ cond. \
\ 2 /
\ /
\ /
\ /
|
|
|__________________
| |
| |
_____|_____ _____|_____
/ some / / another /
/ process / / process /
/__________/ /__________/
我正在努力的部分是get more info (web page)
步骤以及随后发生的事情,这意味着停止执行工作流运行时。我知道这是可能的,但我不确定WF是这类代码的最佳方法,因为在整个工作流程中许多不同的点可能需要用户交互,而工作流程将驱动哪些数据需要输入屏幕。我们正在使用用于UI的WinForms / ASP.NET Web表单包,这是自行开发且难以推送的部署,因此像SharePoint集成这样的东西是不可能的。我们的后端是DB2,工作流代码(无论是WF还是其他)也需要与之交互。
我想最重要的是,我们是否应该考虑使用WF,或者我们自己编写代码会更好吗? WF可以轻松集成数据输入屏幕以捕获可在工作流程中进一步使用的信息吗?
答案 0 :(得分:1)
使用WF长期运行的工作流功能,我相信它会起作用。您的工作流程可以随时保留在数据库中。如果要填写多个条件表单,请将它们的定义包含在工作流程中的步骤中(有很多方法可以解决此问题。)这样,工作流程不仅会驱动流程,还会驱动数据请求。
当工作流程保持不变时,用户可以“唤醒”该工作流程继续工作。应用程序(ASP.NET,Winforms,无论如何)可以查询工作流以找出要呈现的抽象“形式”。