zoukankan      html  css  js  c++  java
  • 业务系统如何集成工作流系统

    常常有人会问业务系统如何集成工作流系统,在最初接触工作流系统的时候,确实会有些困惑,下面就从几个方面说明集成的过程。

    业务表的准备:
    流程的每个节点上办理的业务,通常是用业务表来记录办理的数据,先按业务表新建业务字段。

    额外增加一个流程实例id字段(wf_id),存流程实例id,用于和建模好的业务流程关联上。
    额外增加流程轨迹id字段(trace_id),存流程运行的轨迹id,这个字段是可选增加的,有需要显示流程的每个执行步骤上办理的业务记录才需要增加这个字段。

    主业务表的界定:
    通常一个业务流程会有一个主要办理的事项,然后下面的所有流转步骤都是针对这个主要事项来处理,为这个主要事项创建的业务表通常就是主业务表,我们的新创建的流程实例id字段就需要增加到主业务表中。
    如:请假申请流程,请假单就是主业务表,流程实例id就需要创建到请假单主表中。
        用车申请流程,用车申请单就是主业务表,需要增加流程实例id字段。
        费用报销流程,费用报销单通常是一个主子关联的表,主表是报销单主体信息,子表是报销明细项,流程实例id字段需要建立到报销单主表中。
       
    业务流程的创建:
    在流程设计器中将业务按照流转的顺序建模好,如一个需要二级审核的采购流程:

    采购单申请《--》一审--》二审--》结束

    业务模块的创建:
    根据业务表创建业务表单,将业务办理的过程数据记录下来。如采购申请单,就需要创建一个能填写采购申请的业务表单,供用户填写,表单可以通过自定义的表单工具来做,也可以是定制的模块(如表单页面aspx或jsp等)。

    不论是定制的模块,还是可视化的表单工具,都需要将启动流程,执行流程的流转等过程集成到表单中,通常是调用流程引擎提供的api来达到启动流程和执行流程的流转。
    用可视化的自定义表单工具,集成工作流引擎api的过程通常是已经集成好了,只需要可视化的设置一下按钮功能等就能完成。
    如果集成定制的表单页面如aspx或jsp,就需要在定制模块中去调用流程引擎的api来达到启动指定的业务流程或执行指定流程的流转。

    将创建好的业务模块挂接到业务流程的节点上,就完成了流程和业务模块的关联了。


    业务的办理过程:
    没有挂接工作流系统的业务系统,通常是做好一个一个的模块,挂接到菜单上,供用户点击打开办理业务,业务数据的流转用状态标志来控制。
    如创建一审状态标志字段,二审状态标志字段;
    一审模块挂接到菜单上,列出一审状态标志为未审核的记录,做一审通过或拒绝操作;
    二审模块挂接到菜单上,列出二审状态标志为未审核的记录,做二审通过或拒绝操作;

    当集成了工作流系统后,启动业务流程,可以放到一个菜单模块中,例如,在制定采购单,填写完成后,点击提交,就启动了采购流程。
    下一步的流转则通过我的待办任务列表,办理任务来执行。

    如:一审是采购主任来审核的,那么采购主任的待办任务列表中,就有审核采购员提交来的采购单的任务列表了。采购主任通过办理任务,审核完成后,就提交二审了。
    二审人员也是通过办理任务来完成二审的过程。
    这样就不需要为每级的审核增加一个菜单,当流程的步骤发生变化后,也不需要调整菜单了。

    业务过程的监督:
    通过列出流程运行轨迹,可以监督到每个流程的流转执行情况。集成了工作流系统后,每条业务的办理过程变的有迹可寻,工作流系统会记录每个流程的运行轨迹,可以列表或图形的方式将这个运行轨迹展现出来。这是用状态位来控制流程的流转办不到的。

    每个运行轨迹上办理的业务,也可以通过业务表和流程的关联展现出来,前面说的业务表中增加轨迹id字段,就是用于将业务表的记录和轨迹更紧密的关联在一起的。

    通过上面这些过程,就能将业务系统集成工作流系统了。

  • 相关阅读:
    涉猎
    linq to sql中的自动缓存(对象跟踪)
    Java的起源和发展
    Java为什么需要保留基本数据类型
    JDK各版本新增的主要特性
    【转】整理:著名软件是使用什么语言写的?
    Struts2框架学习
    json格式
    sqlserver开窗函数改造样例
    说一下这次的求职经历。
  • 原文地址:https://www.cnblogs.com/webreport/p/2607870.html
Copyright © 2011-2022 走看看