论坛首页 Java企业应用论坛

流程数据和业务数据的交互

浏览 1423 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-09-21   最后修改:2011-09-21

首先,业务表要和流程关联起来,必需在业务主表中增加wf_id字段,存流程实例id.
例如,请假流程,请假单就是业务主表。报销流程,报销单主表,就是业务主表,报销明细子表,只要和报销单主表关联。

其次,在给业务流程建模的时候,需要知道此业务流程操作的主业务表,业务表的id主键。
流程实例启动的时候,将此信息生成到流程实例表中。

这样在业务表中,有流程实例id;在流程实例表中,有业务主表和主表的id字段。

当从业务表记录列表中,需要执行流程的时候,就可以通过 业务表的wf_id字段,来获取到流程的相关信息,执行流程引擎的api函数,达到流程的递进。
当从流程实例列表中,需要执行业务操作时,就可以通过,流程实例表中的业务主表和主表id字段,获取到业务表的记录,达到办理业务的过程。

这是最基本的流程数据与业务数据的交互。

有了这层的交互,往往是不够的。

当流程建模的时候,通常需要获取到业务关键字段的值,做一些相关的判断或者显示使用。例如报销金额,经理审核的结果等等。
这些就需要将表单中的业务数据做为变量传递到流程上下文中。

当流程建模的时候,通常还有一些系统的环境变量等需要获取到,例如,当前执行人id,当前执行人名称,历史步骤的执行人。甚至指定步骤执行人的上级等。

表单挂接到流程中,需要和流程交互,也需要获得流程的相关信息。
在表单中需要获得,流程实例id,当前步骤id,当前可执行动作id,当前步骤的轨迹id,动态分支实例id 等等。通过这些信息达到和流程的交互。


总结一下,流程数据和业务数据的交互,
表字段的建立:业务表中加流程实例id,轨迹id(可选),分支实例id(可选)
              流程实例表中加业务主表的表名和主键字段
             
变量的关联:表单中的业务数据作为变量传递到流程中
            系统运行的一些环境变量送到流程中使用
            表单中也需要获得一些流程的相关变量
            变量又分持久化变量和临时变量
           
如下面这个请假流程

审核拒绝时,需要返回重新修改请假单
经理做的审核拒绝,就作为变量,传递到流程中,作为条件判断依据。

 

返回的时候,谁填写的就返回给谁继续修改,用了临时变量mostRecentCaller,获取到填写步骤的填写人,存到mostRecentCaller变量。

 

 

审核表单中,审核子表增加了trace_id字段,存入流程的轨迹id
当查看历史步骤的时候,打开关联的表单,可以将审核的结果关联出来,作为显示查看用。

 

 

如上面在查看流程关联的表单时,可根据轨迹id关联出当时的审批记录。

 

<script type="text/javascript"></script>

标签: web开发平台, java工作流, 流程设计器, 自定义工作流, 自定义表单, 工作流软件, 工作流软件系统, java电子表单
  • 大小: 10.8 KB
  • 大小: 46.8 KB
  • 大小: 58.6 KB
  • 大小: 33.2 KB
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics