在业务系统中调用Jbpm的过程

    Jbpm推出来时,我自己曾经写过一个基于关系数据库的工作流引擎,并且应用与几个中、小型项目,效果尚算不错。后来发现一个开源的轻量级工作流引擎--Jbpm工作流引擎,看过相关资料后,觉得Jbpm可以满足许多项目对流程的要求,于是尝试在项目中使用。

 

    Jbpm是一个目前应用非常广泛的开源工作流引擎,但是如何把他应用到我们的具体业务系统呢?

    业务系统与Jbpm结合大抵有两大部分工作要做:第一是设计流程并把该流程与实际的业务模块进行关联,第二业务流转时根据流程与业务模块的关联信息进行流转。

 

一、流程设计及其与业务模块的关联

1、录入并保存流程的基本信息,包括:流程名称、流程标识、对应的业务模块、业务模块表单的字段等。

2、使用流程设计器(公司同事用Flex编写了一个图形化流程设计器)绘制流程图(最终保存为JPDL语言的xml文件)。

3、为流程图相应的节点设置属性,例如:设置节点的表单字段读写控制、处理者的选择范围等信息。

4、验证并发布流程。

 

二、业务流转

1、新增业务数据保存时,启动流程的过程:

    1)根据流程设计时设置的流程与业务模块的关联标识,获取最新的流程定义ID;

    2)根据流程定义ID获取流程定义对象,然后根据流程定义对象创建新的流程实例;

    3)创建流程实例与业务数据的关联;

    4)创建开始节点的任务实例;

    5)为新创建的任务实例设置任务处理者以及设置流程相关变量;

    6)创建流转轨迹;

    7)触发离开节点的动作。

 

2、业务数据编辑后流转的过程:

    1)解析页面传入的流转配置参数,例如:当前Jbpm任务实例ID,下一个Transition名、处理者等;

    2)根据Jbpm任务实例ID,获取任务实例;

    3)判断该任务实例对应节点的一些处理规则并做相应的逻辑处理,例如:节点的处理规则为“其中一个处理者完成任务后,其他任务处理者不需要处理即可流转”,则需要做的逻辑处理是更新流转轨迹并运行到下一步;

    4)把下一个节点的处理者设置到流程变量中,以便流转进入下一个任务节点时触发为创建新任务;

    5)为新任务节点创建任务以及更新流转轨迹;

    6)调用任务实例的方法,触发流转流转。

 

三、业务流程回收 

    很多单位(特别是政府机关单位)在使用业务流程时,流程回收是不可避免的必需功能。例如:某位工作人员在分发一份文件后,发现分发给不应该分发的人员,这时工作人员需要对这份文件进行回收,然后再重新分发。我们的流程回收功能是通过流转轨迹(我们扩展了一些功能),手工的把Jbpm的Token回拨到对应的节点。

 

 

    总的来说,调用Jbpm工作流引擎来进行任务流转并不复杂,复杂的是如何与具体的业务需求相关联,因为许多业务系统的最终用户的需求千差万别,灵活多变。

 

 

流程设计

 

流程设计

 

流程设计器

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值