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
|
工作流名称,如例子中即为example
|
STATE
|
CREATED = 0;ACTIVATED = 1;SUSPENDED = 2;KILLED = 3;COMPLETED = 4;UNKNOWN = -1;
|