先说点题外话:如果各位哪位转载我的文章,非常欢迎,但请把出处写上!谢谢!
欢迎讨论:msn:yun15291li@hotmail.com
Osworkflow内置表结构(以mysql的表结构为例),具体需要参看其建表的sql语句,如字段类型、长度等,我在这里做一些必要的分析说明,如果你能够认真看,相信你可以看得懂。经过自己的实践摸索,认为各个表以及表中字段含义如下,从简单的说起:
1、 OS_GROUP:组结构表,如例子中分了bars、bazs、foos三个组。存储在该表的GROUPNAME字段内。
2、 OS_USER:用户表,USERNAME字段存储用户名,PASSWORDHASH是经过加密过的密码。
3、 OS_MEMBERSHIP:用户与组的关系表,USERNAME字段存储用户名,GROUPNAME字段存储组名,表示用户与组之间的关系。
4、 表名:OS_CURRENTSTEP(正在执行的流程信息)
列名 |
说明 |
约束 |
ID |
|
主键 |
ENTRY_ID |
当前执行的工作流的ENTRYID,即如约束所写 |
OS_WFENTRY表的ID为其外键 |
STEP_ID |
当前执行的STEPID |
|
ACTION_ID |
当前执行的ACTIONID |
|
OWNER |
需要执行的用户 |
OS_USER表的USERNAME为其外键 |
START_DATE |
开始时间精确到秒,在初始化工作时候此值被设置。 |
|
FINISH_DATE |
结束时间 |
|
DUE_DATE |
这个还不清楚,(猜测是trigger设置的日期,有谁知道请告诉我谢谢!) |
|
STATUS |
当前正在实现的step中的具体status |
|
CALLER |
实际执行的用户 |
OS_USER表的USERNAME为其外键 |
5、 表名:OS_CURRENTSTEP_PREV(合成主键)
如split过程,ID为2,3。PREVIOUS_ID都记录为1。则表示是由1分出2,3;此表实时变化,如一2分支执行完毕,那么就将此条记录删除。
列名 |
说明 |
约束 |
ID |
记录当前正在执行的ID |
OS_CURRENTSTEP的ID为其外键 |
PREVIOUS_ID |
记录由哪个ID产生的当前正正在执行的信息 |
OS_HISTORYSTEP的ID为其外键 |
6、 表名:OS_HISTORYSTEP(此表结构与OS_CURRENTSTEP相同,说明也相同)只是这个表代表的已经被执行过的。
列名 |
说明 |
约束 |
ID |
主键 |
|
ENTRY_ID |
|
OS_WFENTRY表的ID为其外键 |
STEP_ID |
|
|
ACTION_ID |
|
|
OWNER |
|
OS_USER表的USERNAME为其外键 |
START_DATE |
|
|
FINISH_DATE |
|
|
DUE_DATE |
|
|
STATUS |
|
|
CALLER |
|
OS_USER表的USERNAME为其外键 |
7、 表名:OS_HISTORYSTEP_PREV(联合主键)(记录历史记录表OS_HISTORYSTEP之间的关系,如都执行的1,2。但是2是由1引起发生的。那么ID为2,PREVIOUS_ID为1)
列名 |
说明 |
约束 |
ID |
历史记录中的被引发的ID |
OS_HISTORYSTEP(ID) |
PREVIOUS_ID |
历史记录中的主引发的ID |
OS_HISTORYSTEP(ID) |
8、 表名:OS_PROPERTYENTRY(GLOBAL_KEY, ITEM_KEY联合主键)存储propertyset的值
列名 |
说明 |
GLOBAL_KEY |
这个值是在JDBCWorkflowStore类的public PropertySet getPropertySet(long entryId) { HashMap args = new HashMap(1); args.put("globalKey", "osff_" + entryId);
return PropertySetManager.getInstance("jdbc", args); }赋值的。 规则如上面代码。Osff+entryid。
|
ITEM_KEY |
Key值,propertyset(“即为key”,……) |
ITEM_TYPE |
具体参见com.opensymphony.module.propertyset包内properties里的各种value-type。存储对应的数字 |
STRING_VALUE |
String值 |
DATE_VALUE |
Date |
DATA_VALUE |
Data |
FLOAT_VALUE |
Float |
NUMBER_VALUE |
number |
9、 表名:OS_STEPIDS
列名 |
说明 |
ID |
主键,自动增量 |
10、 名:OS_WFENTRY
列名 |
说明 |
|
ID |
主键标志 |
|
NAME |