让品高工作流牛起来

做一个徘徊在牛A和牛C之间的产品也不错啊

导航

品高工作流Procez One使用介绍之流程设计(1)

Posted on 2010-08-03 14:34  Brian.KFC  阅读(974)  评论(0编辑  收藏  举报

前面介绍完了品高工作流的原理功能特点应用场景等,那如何使用品高工作流来解决实际业务需求呢?好,下面就来一一介绍。

(想要获取试用安装包,请到这里;想要知道如何快速入门,请看这里。)

从总体来说,由于品高工作流提供了完整的开发框架,使得用户只须把精力放在其业务实现上,其他方面有流程引擎和框架来支撑就好了,这样就大大地提高了用户的开发效率。那么业务上用户都要做些什么事情呢?作为工作流,当然业务流程的定制是不可少的;另一方面,在流程运转过程中,需要有业务表单来承载所需要处理的数据。除此之外,都交给工作流底层框架吧。那好,下面我们就分别从流程设计和表单制作上来说明如何使用品高工作流快速实现业务需求吧。

 

从前面品高工作流的原理介绍,我们知道流程中主要包括环节、参与者、迁移、条件等元素,通过这些元素来决定流程如何流转。

如下图所示,一个工作流管理系统就是要解决:“Who must do what when and how”。工作流定义就是由一系列基本的处理活动按照一定的逻辑顺序规则组成。

process

l 通过步骤(Activity)表达的就是需要做什么(What should be done), 步骤代表了流程中的一个处理环节,譬如:审批验证,发送邮件传真,或者是更新数据记录。

l 通过步骤迁移(Transition)表达了什么时候做(When should be done),体现了步骤之间的逻辑顺序。

l 每个步骤关联的数据和应用程序,表达怎么做(How to do)。通过应用程序,可以处理数据或者加工数据。

l 每个步骤关联的用户和角色,表达了谁去处理(Who to process)。通常,步骤的关联用户是由一个人或多个满足某些条件的一组人去完成的,譬如:级别为经理的用户,当然,也可能是计算机去执行。

从抽象的角度,工作流可以映射成环节和迁移连接组成的有向图,而流程数据则是运行时搭载在流程上的数据和信息。

 

那么品高工作流中都有哪些类型的环节、参与者、迁移、条件等,以支持灵活复杂的业务流程应用呢?

对于环节,有以下几种:

clip_image001 审批环节(最常用)

审批步骤,适用于流程环节中指定审批人和指定处理人的一些处理动作。

clip_image001[1] 代理环节

代理步骤,供外部调用和触发的环节 ,本身不做任何动作也不会在流转记录中被记录。可通过捕获Workflow的事件,来判断是否是代理环节,然后执行相应的代码,以触发其他业务运算。

clip_image001[2] 提醒环节

提醒环节,不参与流程运算,只用于提醒使用,某些工作流环节需要在执行后通过电子邮件或者短信提醒用户,但是这些用户的参与者又与本环节的参与者不一致的时候就可以使用本环节类型以进行特殊的提醒动作。

clip_image001[3] 分发部门环节

在常用的OA场景中,某份公文通常需要同时分发到多个部门同时进行会签。在工作流中这种情况属于并行子流程的启动。当你的业务出现这种会签的需求时可使用本环节进行流程设定。

clip_image001[4] 子流程环节

子流程环节,适用于流程流转过程中需要调用别的已经存在的流程的情况,有利于常用流程的复用。

clip_image001[5] 任务分发环节

任务分发步骤,常用于项目管理中。当任务需要逐层细分到各个部门,再细分到具体人员,并需要把执行情况自动反馈给分发者时,需要用到该环节。

clip_image001[6] 并行开始环节

并行流程开始步骤,适用于流程环节中存在并行流程的情况。

clip_image001[7] 并行结束环节

并行流程结束步骤。当运行到并行流程结束步骤时,通过其内部的逻辑运算规则,结束整个并行流程。

clip_image001[8] WebService环节

WebService环节,用于调用外部系统的WebService,并可根据返回结果进行分支判断。

clip_image001[8] 脚本环节

脚本环节,用于执行自定义的Python脚本,可调用内部的工作流变量乃至外部的DLL进行一些特别的处理。

clip_image001[8] 结束环节

结束步骤。当运行到结束步骤时,将结束整个工作流实例。并将工作流实例中其他尚未处理的步骤自动结束。

 

从以上各种各样的环节类型可见,品高工作流除了支持一般的办公类审批外,还支持部门会签、子流程、提醒等,甚至还能调用外部的方法、脚本或者WebService进行一些额外的处理。所以说,灵活性已经相当高了!那如果还不能满足需求怎么办?有办法!还可以通过扩展自定义环节来实现的。详情请看高级扩展篇