Maximo工作流程相关表结构分析与工作流迁移脚本
2010-07-28 08:25
871 查看
Maximo版本号:V7110
下面整理的资料是参考网上不知哪位仁兄的《浅谈maximo工作流数据迁移》,结合V7版的特点整理的。
工作流有关的数据表共有18张,以WF开头,下面是各表的简单说明:
1.wfaction 记录工作流中每个结点的正向与负向操作,actionid为该动作ID编号,ownernodeid为该结点的ID号,membernodeid为流向结点的ID号
2.wfapptoolbar 记录应用程序中添加的发送工作流的按钮,点击“编制工作流至按钮”就可以添加记录到本表中了,
点击“添加工作流程至应用程序”,则可以在应用程序的菜单中添加“发送工作流程”的菜单;
3.wfassignment 记录工作流的所有任务分配 assigned不等于0表示实例的,为0表示设置分派人 assignstatus 任务分配状态 (1)inactive 非活动状态 (2)complete完成状态 (3) active 活动状态 (4)forwarded 转发状态 其中只有(3)状态下,用户才能在分配栏查看到单据
4.wfcallstack 就是存放工作流引擎调用的工作流步骤的堆,有什么意义:
其中wfID:工作流实例标识;NODEID:调用堆栈的当前结点
5.wfcondition 记录判定条件
6.wfinput 记录手动录入信息
7.wfinstance 记录流程实例 active状态为Y表示在工作流中 wfid表示工作流实例标记 recordkey为相关单据号码
8.wfinteraction 交互节点属性定义表
9.wfnode 记录工作流程图的图标信息 nodeid为该流程中的图标流水号
10.wfnotification 记录通知信息,目前无使用
11.wfprocess 工作流程定义基础表,所有定义信息表中都有processname、processrev,用来唯一识别一个流程定义
12.wfrevision 记录工作流同步的基础信息,revision为同步版本号
13.wfstart 记录开始标记
14.wfstop 记录结束标记
15.wfsubprocess 记录父子流程关系
16.wftask 和任务有关的,wfnode.nodetype='TASK'在此表中有记录,作用不详
17.wftransaction 记录工作流实例流转信息,recordkey表示工单、采购订单或申请单号
18.wfwaitlist 等待事件表,是等待节点属性设置的明细表
工作流迁移相关的定义表是:
wfaction、wfapptoolbar、wfassignment、wfcondition、wfinput、wfinteraction、wfnode、
wfnotification、wfprocess、wfrevision、wfstart、wfstop、wfsubprocess、wftask、wfwaitlist
工作流实例相关的表是:
wfcallstack、wfinstance、wftransaction、wfassignment
其中所有任务分配信息都在wfassignment表中,wfid是流程实例ID,
如果值为“0”,表示是节点分配信息定义记录,需要迁移。
--创建DBLNK
--create database link "orcl57" connect to maximo identified by maximo using '10.100.2.57:1521/erppmdb';
--把下面的代码拷贝到PL/SQL工具的Test Window界面中执行
declare
--注意下面的过滤条件wfprocessid确保,查询出来的工作流程是需要迁移的流程
cursor process_cursor is(
select processname, processrev from wfprocess where
enabled = 1 and active = 1 and wfprocessid > 32);
pc_row process_cursor%rowtype;
begin
open process_cursor;
loop
fetch process_cursor into pc_row;
EXIT WHEN process_cursor%NOTFOUND;
insert into wfprocess@orcl57
select * from wfprocess t where t.wfid = 0 and t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfprocess@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfapptoolbar@orcl57
select * from wfapptoolbar where processname=pc_row.processname;
insert into wfassignment@orcl57 select * from wfassignment t where t.wfid = 0 and t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfassignment@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfcondition@orcl57 select * from wfcondition t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfcondition@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfinput@orcl57 select * from wfinput t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfinput@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfaction@orcl57 select * from wfaction t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfaction@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfnode@orcl57 select * from wfnode t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfnode@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfnotification@orcl57 select * from wfnotification t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfnotification@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wftask@orcl57 select * from wftask t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wftask@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfstart@orcl57 select * from wfstart t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfstart@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfstop@orcl57 select * from wfstop t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfstop@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfsubprocess@orcl57 select * from wfsubprocess t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfsubprocess@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfrevision@orcl57 select * from wfrevision t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfrevision@orcl57 set processrev=1, revision=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfinteraction@orcl57 select * from wfinteraction t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfinteraction@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
end loop;
close process_cursor;
commit;
--最后要处理select * from wfrevision中的processrev, revision都为1,把重复的记录删除。
--最后在Maximo系统中选择迁移的流程都验证一次,如果出现验证不通过,则需要在软件中打开流程配置检查是否有信息没有导入过来。
--检查wfaction表中相关action操作在目标库的action表中是否存在,需要移植过去。
--检查maxrole表中的角色是否迁移到目标库中,还有person、persongroup等工作流相关授权信息。
end;
下面整理的资料是参考网上不知哪位仁兄的《浅谈maximo工作流数据迁移》,结合V7版的特点整理的。
工作流有关的数据表共有18张,以WF开头,下面是各表的简单说明:
1.wfaction 记录工作流中每个结点的正向与负向操作,actionid为该动作ID编号,ownernodeid为该结点的ID号,membernodeid为流向结点的ID号
2.wfapptoolbar 记录应用程序中添加的发送工作流的按钮,点击“编制工作流至按钮”就可以添加记录到本表中了,
点击“添加工作流程至应用程序”,则可以在应用程序的菜单中添加“发送工作流程”的菜单;
3.wfassignment 记录工作流的所有任务分配 assigned不等于0表示实例的,为0表示设置分派人 assignstatus 任务分配状态 (1)inactive 非活动状态 (2)complete完成状态 (3) active 活动状态 (4)forwarded 转发状态 其中只有(3)状态下,用户才能在分配栏查看到单据
4.wfcallstack 就是存放工作流引擎调用的工作流步骤的堆,有什么意义:
其中wfID:工作流实例标识;NODEID:调用堆栈的当前结点
5.wfcondition 记录判定条件
6.wfinput 记录手动录入信息
7.wfinstance 记录流程实例 active状态为Y表示在工作流中 wfid表示工作流实例标记 recordkey为相关单据号码
8.wfinteraction 交互节点属性定义表
9.wfnode 记录工作流程图的图标信息 nodeid为该流程中的图标流水号
10.wfnotification 记录通知信息,目前无使用
11.wfprocess 工作流程定义基础表,所有定义信息表中都有processname、processrev,用来唯一识别一个流程定义
12.wfrevision 记录工作流同步的基础信息,revision为同步版本号
13.wfstart 记录开始标记
14.wfstop 记录结束标记
15.wfsubprocess 记录父子流程关系
16.wftask 和任务有关的,wfnode.nodetype='TASK'在此表中有记录,作用不详
17.wftransaction 记录工作流实例流转信息,recordkey表示工单、采购订单或申请单号
18.wfwaitlist 等待事件表,是等待节点属性设置的明细表
工作流迁移相关的定义表是:
wfaction、wfapptoolbar、wfassignment、wfcondition、wfinput、wfinteraction、wfnode、
wfnotification、wfprocess、wfrevision、wfstart、wfstop、wfsubprocess、wftask、wfwaitlist
工作流实例相关的表是:
wfcallstack、wfinstance、wftransaction、wfassignment
其中所有任务分配信息都在wfassignment表中,wfid是流程实例ID,
如果值为“0”,表示是节点分配信息定义记录,需要迁移。
--创建DBLNK
--create database link "orcl57" connect to maximo identified by maximo using '10.100.2.57:1521/erppmdb';
--把下面的代码拷贝到PL/SQL工具的Test Window界面中执行
declare
--注意下面的过滤条件wfprocessid确保,查询出来的工作流程是需要迁移的流程
cursor process_cursor is(
select processname, processrev from wfprocess where
enabled = 1 and active = 1 and wfprocessid > 32);
pc_row process_cursor%rowtype;
begin
open process_cursor;
loop
fetch process_cursor into pc_row;
EXIT WHEN process_cursor%NOTFOUND;
insert into wfprocess@orcl57
select * from wfprocess t where t.wfid = 0 and t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfprocess@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfapptoolbar@orcl57
select * from wfapptoolbar where processname=pc_row.processname;
insert into wfassignment@orcl57 select * from wfassignment t where t.wfid = 0 and t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfassignment@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfcondition@orcl57 select * from wfcondition t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfcondition@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfinput@orcl57 select * from wfinput t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfinput@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfaction@orcl57 select * from wfaction t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfaction@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfnode@orcl57 select * from wfnode t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfnode@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfnotification@orcl57 select * from wfnotification t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfnotification@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wftask@orcl57 select * from wftask t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wftask@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfstart@orcl57 select * from wfstart t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfstart@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfstop@orcl57 select * from wfstop t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfstop@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfsubprocess@orcl57 select * from wfsubprocess t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfsubprocess@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfrevision@orcl57 select * from wfrevision t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfrevision@orcl57 set processrev=1, revision=1 where processname=pc_row.processname and processrev=pc_row.processrev;
insert into wfinteraction@orcl57 select * from wfinteraction t where t.processname=pc_row.processname and t.processrev=pc_row.processrev;
update wfinteraction@orcl57 set processrev=1 where processname=pc_row.processname and processrev=pc_row.processrev;
end loop;
close process_cursor;
commit;
--最后要处理select * from wfrevision中的processrev, revision都为1,把重复的记录删除。
--最后在Maximo系统中选择迁移的流程都验证一次,如果出现验证不通过,则需要在软件中打开流程配置检查是否有信息没有导入过来。
--检查wfaction表中相关action操作在目标库的action表中是否存在,需要移植过去。
--检查maxrole表中的角色是否迁移到目标库中,还有person、persongroup等工作流相关授权信息。
end;
相关文章推荐
- Android 4.4 Kitkat Phone工作流程浅析(二)__UI结构分析
- Android 4.4 Kitkat Phone工作流程浅析(二)__UI结构分析
- Android 4.4 Kitkat Phone工作流程浅析(二)__UI结构分析
- git相关工作流。利用git开发软件工作流程
- 转(Android 4.4 Kitkat Phone工作流程浅析(二)__UI结构分析)
- Android 4.4 Kitkat Phone工作流程浅析(二)__UI结构分析
- netlink监听网络变化代码(转载)+流程分析(原创+转载)+数据结构以及相关宏的解析(原创)
- Android 4.4 Kitkat Phone工作流程浅析(二)__UI结构分析
- FFMPEG-0.11.1分析之ffmpeg结构(简单涉及)与代码流程(主要涉及前部分的准备工作)
- Android 4.4 Kitkat Phone工作流程浅析(二)__UI结构分析
- Android 4.4 Kitkat Phone工作流程浅析(二)__UI结构分析
- Android 4.4 Kitkat Phone工作流程浅析(二)__UI结构分析
- Android中View绘制流程以及invalidate()等相关方法分析
- Phalcon Framework的Mvc结构及启动流程(部分源码分析)
- Android 4.4 Kitkat Phone工作流程浅析(五)__MT(来电)流程分析
- 【军哥谈CI框架】之入门教程之第二讲:分析CI结构和CI是怎么工作的
- Android系统Recovery工作原理之使用update.zip升级过程分析(九)---updater-script脚本语法简介以及执行流程
- WordCount工作流程分析与总结
- java在线支付---02_分析易宝支付的工作流程
- java实现网上在线支付--02_分析易宝支付的工作流程