jbpm4 running mechanism 运行机制

1.  start a process instance 后,before doing anything :

(1)jbpm4_execution 表中: 会有一条记录,而且每个process instance只有一条记录,
表中字段ACTIVITYNAME_ 始终记录当前节点(运行到达的那个节点)的名字;
表中字段PROCDEFID_是表jbpm4_deployprop中值为“pdid”的KEY_ 字段对应的字段STRINGVAL_ 的值;
该表中的字段KEY_ 是发起该流程时设定的业务键;
表中的字段ID_(例如ask_for_leave.ask_sick_leave2)唯一地标识该流程;
字段HISACTINST_ 和表jbpm4_hist_actinst中的某条记录的字段DBID_ 值完全一样,表明该活动节点已经在活动的历史表中记录了;
字段INSTANCE_和表jbpm4_hist_procinst 中的某条记录的字段DBID_  值完全一样,表明该execution属于该instance,而且该process instance已经在历史表中记录了;

(2)jbpm4_hist_procinst 表中也会增加一条记录,可以看到它的ID_值和jbpm4_execution 表中的ID_ 值都是完全一样的(例如都是ask_for_leave.ask_sick_leave2:其中.号之前的部分ask_for_leave是流程定义文件*.jpdl.xml中的process根节点的name属性值,也是jbpm4_deployprop表中的OBJNAME_ 字段值;而.号之后的部分ask_sick_leave2是start流程时设定的业务键,也即jbpm4_execution表中的KEY_ 值)

(3)表jbpm4_hist_actinst中也会增加一条记录,表明该流程运行到此活动节点了,而且该活动已经在历史中记录了

(4)表jbpm4_task中也会增加一条记录,其字段DBVERSION_则为1(该活动虽然尚未结束:STATE_ 为open),表明


2. 关于process instance的运行

(1)流程实例的运行,以表jbpm4_hist_procinst为中心,
其它实例运行相关表(包括表jbpm4_execution、jbpm4_job、jbpm4_participation、jbpm4_swimlane、jbpm4_task、jbpm4_variable以及以jbpm4_hist_开头的表)都要直接或间接地以它为中心(即有外键指向它):
jbpm4_execution   表的主键DBID_总是等同于它的主键DBID_ 字段!!!
jbpm4_hist_actinst 表的HPROCI_ 字段指向它的主键DBID_ 字段
jbpm4_task            表的EXECUTION_ 字段指向它的主键DBID_ 字段
更有jbpm4_execution表中的ID_字段、jbpm4_hist_actinst表和jbpm4_hist_task表的EXECUTION_字段、
jbpm4_task表的EXECUTION_ID_ 字段均和它的ID_字段完全一样

(2)表  jbpm4_hist_actinst 的字段HTASK_ 指向表jbpm4_hist_task的主键DBID_


3. 关于executionId(例如ask_for_leave.ask_sick_leave2):
   executionId其实就是procInstId_(在表 : jbpm4_hist_var中 ) ,它来源于表jbpm4_hist_procinst: 当设置了业务键的时候,procInstId_就是OBJNAME_(jbpm4_deployprop中的)+“.”+业务键,如ask_for_leave.ask_sick_leave2c;当没有设置业务键时,procInstId_就是OBJNAME_(jbpm4_deployprop中的)+“.”+dbid_(表jbpm4_hist_procinst)

    executionId唯一地标识一个流程实例,它在许多表中以不同的名称存在着,值却完全一样:
jbpm4_execution      表的ID_ 字段
jbpm4_hist_procinst 表的ID_字段
jbpm4_hist_actinst    表的EXECUTION_ 字段
jbpm4_hist_task        表的EXECUTION_ 字段
jbpm4_task                表的EXECUTION_ID_ 字段

4. 关于DBVERSION_
在对应节点活动结束后,同一记录中的对应该字段均被置为1,但decision字段对应的同一记录的DBVERSION_ 字段例外

5.关于


5、实例运行相关表
包括表jbpm4_execution、jbpm4_job、jbpm4_participation、jbpm4_swimlane、jbpm4_task、jbpm4_variable以及以jbpm4_hist_开头的表。
(1)除了以jbpm4_hist_开头的表外的其它实例运行相关表:
仅仅记录当前运行到达而且尚未结束的活动,一旦该活动结束,这些表中和已经结束了的该活动的所有相关记录均被删除。

你可能感兴趣的:(xml,活动)