WF工作流是微软的工作流基础架构,很多公司采用WF技术实现工作流需求。 WF功能非常强大。可是它的技术细节和架构原理对于管理类应用系统流程需求的实现存在一些误区。
因为管理类应用系统(OA CRM ERP 客户服务系统。。。)的工作流需求与WF工作流的原理是存在一些区别的,主要体现在以下几个方面
1、WF 是宿主型的工作流,是工作流引擎依据流程定义(XOML)的逻辑进行检测并执行,是在同一个运行空间里,而管理应用中的流程需求则是一个夸时空的协作需求,可能需要一段时间(一周 甚至 一年)不同运行空间的执行
2、WF中的 Actively(活动)之间的交互主要的体现是 输入和输出,是输入的条件和对输出产生的流程运行逻辑的影响,而管理应用中的流程需求主要体现的交互是人机交互,主要是用户的行为产生对流程运行逻辑的影响
3、WF 的价值体现主要是提高开发人员处理流程变化时的便利性降低开发成本,从技术的角度去调整流程,而管理应用中的流程价值主要是业务流程发生变化的时候对系统开发的依赖,从业务的角度去调整流程
.......
看一个E8.Net的范例:
这是变更管理业务流程需求的一个典型的范例,流程体现的需求是一个夸运行空间的协作需求,很多角色 部门 用户的参与,有人机交互的选择,有条件路径的判断。。。一旦业务流程发生变化的时候业务人员可以在流程设计器上去制定新的业务流程。
WF功能强大,但管理类应用的流程需求不一定适合用WF去实现,因为原理上存在一些差异,WF更多适合状态机的工作流 和 数据集成、智能处理、自动化控制,这些领域其它工作流却不一定适合。
选择合适的才是正确的。