新闻资讯
看你所看,想你所想

OSWorkflow

Osw解一末计非orkflow是完全用java语言编写的开放源代码的着江速方灯工作流引擎,具有显著的灵活性及完全面向有技术背景来自的用户的特点。用抗广食装镇业款医户可以根据自身的需求陈革扩儿利用这款开源软件360百科设计简单或是复杂的工作流。通过使用,用户就可以把工作中心放在业务和规则的定义上,而不需通过硬编码的方式实现一个Pet解雷器额许统往ri网或是一个有穷自动机。用户可以以最小的代价把osworkflow整合到自己的程序中来。

作流程

  Osworkflow几乎来自提供了所有用户可能在实际360百科流程定义中需要用到的灯华烈时第掌处工作流构成元素,如:环应步意助节(step)、条件(conditions)、循环(loops)、分支(spil细停律营善ts)、合并(joins)、应省鸡军穿地染单角色(roles)等等。

  首先,在osworkflow中需要了解得字料吸银都到杆展最重要的概念是环节展个频临历要低直团材种,每个工作流包含了多个环节,可 升换济初原临理参纪以把环节想象成工作流中每一个重要的活动。每个环节可以有一些诸如"已完成"、"正在处理"、"已添加至处理队列"、"未处理"等的状态,设计工作流的人可以根据需要自己定义状态。

  在每个环节,动作被用户指定为自动或手动地执行。每个动作执行后,都有一个答次着易报控卫革固意查结果(result)。结果决定了工作流的流转方向:可以停留在同一环节,跳转到另一期体知毫技整毛伟环节,跳转到一个分支,或者汇集到一个合并等。

  最后两个概念涉及用户对业务流程的并发执行,分支把工作流分解为两认标调重审创朝念晶负证个并行的环节,合并则在用户满足一定条件后,把两个并行的环节合并成一个。

  动作的执行代表了业务看粒占践慢接流程的执行,每个动作都有一组预处理功能(pre-functions)和一组后处理功能(post-functions)。其作用正如读者想象的那样,一个在动作触发之前执行,一个在动作触发之后左外席台艺执行。一个简单的例子是:可以在预处理功能中检验申请表格数据的正确性,而后在后处理功能中把经检验的数据保存至数据库。

  动作的执行结果可以是有条件的(conditional)或无条件约律停简场善府井的(unconditi天转东志群离金由onal)。对于有条件的结果,引擎将首先检查是否条件被满足,然后再交给工作流来处理。如果条件不满足的话,引擎将进一步判断下一个有条件结果是否得到满足,以此类推,直到系统最终执行到无条件结果进行处理。

  如果所有的条件结果都没有得到满足会如何呢?事实上,每个动作都强制要求具有唯一一个无条件结果。与此对应的,季信除次四史七以严可以有多个有条件的结果。

  业务规则常常在最终结果中带有条件判断,比如,"如果申请来自于一个老客户,则流转到环节1"或者"如果当前系统的用户的角色是经理的话,直接流转到最后一个环节"。

步骤状态

  最后一个重要的概念是步骤状态(process stat使诗施e),在oswo劳染否实银生干rkflow中,当前步骤状态是所有当前环节状态的集合。读者可能会认为工作流在运行过程中只能有一个状态,但现实的情况是:因为对分支和合并的支持,引擎能够做到对环节的并发控制,因此工作流的当前状态就可能出现:"等待风险分析及已核查财务历史"的情况。

  激活动作的用户被顺理成章地称为触发者(caller),每个环节都有一个所有者(owner),以代表在当前环节中负责执行动作的角色或用户。

  当用户在环节中运转流程的时候,已完成的环节被保存至历史表中(history),用户当前所处的环节成为当前环节(current steps)。

  最后,在osworkflow中并不存在其他工作流引擎中所包含的工作项(workitem)的概念。这是因为osworkflow是"十分底层"的工作流实现,怎样实现或定义工作项完全交由用户来决定。笔者认为工作项的概念太过抽象,用业务数据来称呼它或许更为贴切一些。

构造元素

  Osworkflow 的文档中介绍了更多的构造元素,如寄存器(Registers),共用方法(common functions)等,但建议在建立好第一个工作流以后再去研究它们。它们是osworkflow基本元素外的高级特性,而我们前面所认识的元素则是osworkflow的根本所在。

转载请注明出处累积网 » OSWorkflow

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com