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; |