标准存储过程实例

/*==============================================================*/
/* DBMS name: ORACLE */
/* Version: sp3-patch20130531(WF1.1.21) (V1.1.21) */
/* Created on: Tue May 28 20:00:05 CST 2013 */
/* Comment: 工作流数据库初始化脚本-ORACLE版 */
/*==============================================================*/
DECLARE
V_COUNT INT;
V_SQL VARCHAR(8000);
V_INFO VARCHAR(4000);
V_ERROR VARCHAR(4000);
V_VERSION VARCHAR(40);
V_SIZE INT;
V_DATE DATE;
V_STR VARCHAR(2000);
BEGIN
V_VERSION:=null;
dbms_output.put_line('工作流数据库初始化');
/*==============================================================*/
/* 初始化-检查用户是否有权限建表 */
/*==============================================================*/
dbms_output.put_line('检查用户权限');
select COUNT(1) INTO V_COUNT FROM USER_SYS_PRIVS WHERE PRIVILEGE LIKE 'CREATE%TABLE';
IF V_COUNT = 0 THEN
RAISE_APPLICATION_ERROR
(-20001, '用户没有建表权限,请使用GRANT CREATE TABLE TO <USERID>;');
return;
END IF;

select COUNT(1) INTO V_COUNT FROM USER_SYS_PRIVS WHERE PRIVILEGE LIKE 'CREATE%VIEW';
IF V_COUNT = 0 THEN
RAISE_APPLICATION_ERROR
(-20002, '用户没有建视图权限,请使用GRANT CREATE VIEW TO <USERID>;');
return;
END IF;

/*==============================================================*/
/* Procedure: 初始化-检查建表存储过程是否存在, 如果没有则创建 */
/*==============================================================*/
dbms_output.put_line('创建建表存储过程');
V_SQL:='CREATE OR REPLACE PROCEDURE WF_SP_CREATETABLE(p_table_name varchar2,p_create_table_sql varchar,p_create_pk varchar2,p_table_comment varchar2) is
v_l_rowcount number(10);
v_vc_table_name varchar(255); /* 创建表名 */
v_vc_create_sql varchar(16000);/* 创建表SQL语句*/
v_vc_create_pk varchar(500); /* 创建主键语句*/
begin
begin
v_vc_table_name := p_table_name;
v_vc_create_sql := p_create_table_sql;
v_vc_create_pk := p_create_pk;
if trim(v_vc_table_name) is null
then
dbms_output.put_line(''新建表名参数 v_vc_create_sql 不能为空!'');
return;
end if;
if trim(v_vc_create_sql) is null
then
dbms_output.put_line(''创建表SQL语句参数 v_vc_create_sql 不能为空!'');
return;
end if;

/*判断表是否已经存在*/
select count(1) into v_l_rowcount from sys.user_objects where object_name = upper(p_table_name);
if v_l_rowcount = 0 then
begin
Execute immediate v_vc_create_sql;
if trim(v_vc_create_pk) is not null then
Execute immediate v_vc_create_pk;
end if;
if trim(p_table_comment) is not null then
Execute immediate ''comment on table '' || p_table_name || '' is '''''' || p_table_comment || '''''''';
end if;

exception
when others then
dbms_output.put_line(''新增表 ''||p_table_name||'' 失败!'');
return;
end;
dbms_output.put_line(''新增表 ''||p_table_name||'' 成功!'');
end if;
end;
end WF_SP_createTable;';

execute immediate V_SQL;
commit; /*无需回退*/

/*==============================================================*/
/* Procedure: 初始化-检查加字段存储过程是否存在, 如果没有则创建 */
/*==============================================================*/
dbms_output.put_line('创建建列存储过程');
V_SQL:='CREATE OR REPLACE PROCEDURE WF_SP_ADDCOLUMN(p_vc_table_name varchar2, /*要修改的表名*/
p_vc_column_name varchar2, /*要增加的列名*/
p_vc_column_prop varchar2, /*增加的列的属性*/
p_vc_defalut_value varchar2, /*字段缺省值*/
p_vc_column_comments varchar2, /*字段说明*/
p_l_action_in int) as
/* 操作类型,0表里原有记录行不添加默认值,允许为空值,添加的默认值是一个数值
1直接添加默认值,不允许字段为空,添加的默认值是一个数值
2表里原有记录行不添加默认值,允许为空值,添加的默认值是一个函数
3直接添加默认值,不允许字段为空,添加的默认值是一个函数
*/
v_l_count int;
v_vc_table_name varchar2(64); --要修改的表名
v_vc_column_name varchar2(64); --要增加的列名
v_vc_column_prop varchar2(64); --增加的列的属性
v_vc_defalut_value varchar2(1000); --字段缺省值,字符型的和数值型的都可以
v_vc_column_comments varchar2(1000); -- 字段说明
v_l_action_in int; --操作类型
v_sql varchar2(1000);
begin
v_vc_table_name := nvl(p_vc_table_name, '' '');
v_vc_column_name := nvl(p_vc_column_name, '' '');
v_vc_column_prop := nvl(p_vc_column_prop, '' '');
v_vc_defalut_value := nvl(p_vc_defalut_value, ''0''); --字符型的和数值型的都可以
v_vc_column_comments := nvl(p_vc_column_comments, '' '');
v_l_action_in := nvl(p_l_action_in, 0);

if v_l_action_in not in (0, 1,2,3) then
/*直接返回,不做处理*/
return;
end if;

/*判断表是否存在*/
select count(1)
into v_l_count
from user_tables
where table_name = upper(v_vc_table_name);
if v_l_count = 0 then
return;
end if;
/*判断字段是否存在*/
select count(column_name)
into v_l_count
from cols
where table_name = upper(v_vc_table_name)
and column_name = upper(v_vc_column_name);

if v_l_count = 0 then
/*添加字段*/
if v_l_action_in = 0 then
----先添加字段再修改默认值,这样当大数据量的时候性能比较高,只是默认值不会影响原来的数据,需要另外处理
--默认值不是用函数写的,是一个值
begin
--添加字段
execute immediate ''alter table '' || v_vc_table_name || '' add ('' ||
v_vc_column_name || '' '' || v_vc_column_prop || '' )'';
IF TRIM(p_vc_defalut_value) IS NOT NULL THEN
--修改默认值
execute immediate ''alter table '' || v_vc_table_name || '' modify ('' ||
v_vc_column_name || '' default '''''' ||
v_vc_defalut_value || '''''')'';
END IF;
--增加字段说明
execute immediate ''comment on column '' || v_vc_table_name || ''.'' ||
v_vc_column_name || '' is '''''' ||
v_vc_column_comments || '''''''';
exception
when others then
dbms_output.put_line(''表:'' || v_vc_table_name || ''字段:'' ||v_vc_column_name || sqlerrm);
return;
end;
elsif v_l_action_in = 1 then
--直接添加默认值
--默认值不是用函数写的,是一个值
begin
--添加字段
execute immediate ''alter table '' || v_vc_table_name || '' add ('' ||
v_vc_column_name || '' '' || v_vc_column_prop ||
'' default '''''' || v_vc_defalut_value ||
'''''' not null )'';
--增加字段说明
execute immediate ''comment on column '' || v_vc_table_name || ''.'' ||
v_vc_column_name || '' is '''''' ||
v_vc_column_comments || '''''''';
exception
when others then
dbms_output.put_line(''表:'' || v_vc_table_name || ''字段:'' ||v_vc_column_name || sqlerrm);
return;
end;
elsif v_l_action_in = 2 then
----先添加字段再修改默认值,这样当大数据量的时候性能比较高,只是默认值不会影响原来的数据,需要另外处理
--默认值是用函数写的,不是一个值
begin
--添加字段

execute immediate ''alter table '' || v_vc_table_name || '' add ('' ||
v_vc_column_name || '' '' || v_vc_column_prop || '' )'';
--修改默认值
execute immediate ''alter table '' || v_vc_table_name || '' modify ('' ||
v_vc_column_name || '' default '' ||
v_vc_defalut_value || '')'';
--增加字段说明
execute immediate ''comment on column '' || v_vc_table_name || ''.'' ||
v_vc_column_name || '' is '''''' ||
v_vc_column_comments || '''''''';
exception
when others then
dbms_output.put_line(''表:'' || v_vc_table_name || ''字段:'' ||v_vc_column_name || sqlerrm);
return;
end;
elsif v_l_action_in = 3 then
--直接添加默认值
--默认值是用函数写的,不是一个值
begin
--添加字段
execute immediate ''alter table '' || v_vc_table_name || '' add ('' ||
v_vc_column_name || '' '' || v_vc_column_prop ||
'' default '' || v_vc_defalut_value ||
'' not null )'';
--增加字段说明
execute immediate ''comment on column '' || v_vc_table_name || ''.'' ||
v_vc_column_name || '' is '''''' ||
v_vc_column_comments || '''''''';
exception
when others then
dbms_output.put_line(''表:'' || v_vc_table_name || ''字段:'' ||v_vc_column_name || sqlerrm);
return;
end;
end if;
dbms_output.put_line(''表:'' || v_vc_table_name || ''增加字段:'' ||
v_vc_column_name || '' 默认值:'' ||
v_vc_defalut_value);
else
/* 字段已经存在,增加字段说明*/
execute immediate ''comment on column '' || v_vc_table_name || ''.'' ||
v_vc_column_name || '' is '''''' ||
v_vc_column_comments || '''''''';

end if;
end;';
execute immediate V_SQL;
commit;

/*==============================================================*/
/* Procedure: 初始化-初始数据插入存储过程 */
/*==============================================================*/
dbms_output.put_line('创建初始化数据存储过程');
V_SQL:='CREATE OR REPLACE PROCEDURE WF_SP_INITDATA(p_table_name varchar2,p_condition varchar,p_cols varchar,p_values varchar2) is
v_l_rowcount number(10);
v_vc_table_name varchar(255); /* 表名 */
v_vc_condition varchar(255);/* 条件语句,用于检查数据是否存在,一般是主键*/
v_vc_values varchar(1500); /* 值*/
v_sql varchar(1500);
begin
begin
v_vc_table_name := p_table_name;
v_vc_condition := p_condition;
v_vc_values := p_values;
if trim(v_vc_table_name) is null
then
dbms_output.put_line(''表名必须输入!'' );
return;
end if;
if trim(v_vc_condition) is null
then
dbms_output.put_line(''插入数据的条件不能为空!'');
return;
end if;
if trim(v_vc_values) is null
then
dbms_output.put_line(''插入数据的值不能为空!'');
return;
end if;

/*判断表是否已经存在*/
select count(1) into v_l_rowcount from user_objects where object_name = upper(p_table_name);
if v_l_rowcount = 0 then
dbms_output.put_line(''表 ''||p_table_name||'' 不存在!'');
return;
end if;

/*判断记录是否已经存在*/
v_sql:=''select count(1) from '' || v_vc_table_name || '' where '' || v_vc_condition;

execute immediate v_sql into v_l_rowcount;
if v_l_rowcount = 0 then /* 不存在才插入数据*/
v_sql:=''insert into '' || v_vc_table_name || p_cols || '' values '' || v_vc_values;
-- dbms_output.put_line(''初始化数据: '' || v_vc_table_name || p_values);
execute immediate v_sql;
end if;

end;
end WF_SP_INITDATA;';

execute immediate V_SQL;
commit; /*无需回退*/

/*==============================================================*/
/* Procedure: 初始化-删除索引存储过程 */
/*==============================================================*/
dbms_output.put_line('创建删除索引存储过程');
V_SQL:='create or replace PROCEDURE WF_SP_DROPINDEXS ( P_VC_TABLE_NAME IN VARCHAR2) AS
V_VC_INDNAME VARCHAR(255);
V_VC_CONSTNAME VARCHAR(255);
V_SQL VARCHAR(4000);
V_VI_COUNT INTEGER;
BEGIN
DECLARE CURSOR C1(P_TABNAME varchar2) IS SELECT INDEX_NAME FROM SYS.USER_INDEXES
WHERE TABLE_NAME=P_TABNAME AND INDEX_TYPE IN (''NORMAL'',''FUNCTION-BASED NORMAL'')
AND INDEX_NAME NOT IN (select INDEX_NAME FROM SYS.USER_CONSTRAINTS WHERE CONSTRAINT_TYPE=''P'' AND TABLE_NAME=P_TABNAME) ;
BEGIN
OPEN C1(P_VC_TABLE_NAME);
LOOP
FETCH C1 INTO V_VC_INDNAME;
EXIT WHEN C1%NOTFOUND;
SELECT COUNT(1) INTO V_VI_COUNT FROM SYS.USER_CONSTRAINTS WHERE INDEX_NAME=V_VC_INDNAME;
IF V_VI_COUNT =0 THEN
V_SQL:=''DROP INDEX '' || V_VC_INDNAME;
ELSE
BEGIN
SELECT CONSTRAINT_NAME INTO V_VC_CONSTNAME FROM SYS.USER_CONSTRAINTS WHERE INDEX_NAME=V_VC_INDNAME;
V_SQL:=''ALTER TABLE '' || P_VC_TABLE_NAME || '' DROP CONSTRAINT '' || V_VC_CONSTNAME;
END;
END IF;
-- dbms_output.put_line(V_SQL);
EXECUTE IMMEDIATE V_SQL;
END LOOP;
CLOSE C1;
END;
END WF_SP_DROPINDEXS;';
EXECUTE IMMEDIATE V_SQL;
COMMIT;

/*==============================================================*/
/* Procedure: 初始化-创建索引存储过程 */
/*==============================================================*/
dbms_output.put_line('创建索引存储过程');
V_SQL:='create or replace procedure WF_SP_ADDINDEX(P_VC_INDEX_NAME VARCHAR2,
P_VC_TABLE_NAME VARCHAR2,
P_VC_IDX_COLS VARCHAR2,
P_VB_IS_UNIQUE INTEGER )
AS
V_VI_COUNT INTEGER;
V_VC_TABLE_NAME VARCHAR(255);
V_SQL VARCHAR(4000);
BEGIN
dbms_output.put_line(''索引: '' || P_VC_TABLE_NAME || ''.'' || P_VC_INDEX_NAME);
SELECT COUNT(1) INTO V_VI_COUNT FROM SYS.USER_TABLES WHERE TABLE_NAME = upper(P_VC_TABLE_NAME);
IF V_VI_COUNT = 0 THEN
dbms_output.put_line(''表 ''||P_VC_TABLE_NAME||'' 不存在!'');
RETURN;
END IF;

SELECT COUNT(1) INTO V_VI_COUNT FROM SYS.USER_INDEXES WHERE INDEX_NAME = P_VC_INDEX_NAME;

IF V_VI_COUNT = 0 THEN
IF P_VB_IS_UNIQUE = 1 THEN
V_SQL:= ''CREATE unique INDEX '' || P_VC_INDEX_NAME || '' ON '' || P_VC_TABLE_NAME ||''(''||P_VC_IDX_COLS||'')'' ;
ELSE
V_SQL:= ''CREATE INDEX '' || P_VC_INDEX_NAME || '' ON '' || P_VC_TABLE_NAME ||''(''||P_VC_IDX_COLS||'')'' ;
END IF;
EXECUTE IMMEDIATE V_SQL;
END IF;
END WF_SP_ADDINDEX;';

EXECUTE IMMEDIATE V_SQL;
COMMIT;

/*==============================================================*/
/* Procedure: 初始化-创建外键存储过程 */
/*==============================================================*/
dbms_output.put_line('创建外键存储过程');
V_SQL:='create or replace procedure WF_SP_ADDFOREIGNKEY(P_VC_TABLE_NAME VARCHAR2,
P_VC_FK_NAME VARCHAR2,
P_VC_FK_COL VARCHAR2,
P_VC_PARENT_TABLE VARCHAR2,
P_VC_PARENT_COL VARCHAR2,
P_VI_DELCONSTRAINT INTEGER)
AS
V_SQL VARCHAR(4000);
V_VI_COUNT INTEGER;
BEGIN
SELECT COUNT(1) INTO V_VI_COUNT FROM SYS.USER_TABLES WHERE TABLE_NAME = P_VC_TABLE_NAME;
IF V_VI_COUNT=0 THEN
dbms_output.put_line(''数据表'' || P_VC_TABLE_NAME || ''不存在!!'');
RETURN;
END IF;

SELECT COUNT(1) INTO V_VI_COUNT FROM SYS.USER_CONSTRAINTS A,SYS.USER_CONS_COLUMNS B where A.CONSTRAINT_TYPE=''R'' AND B.CONSTRAINT_NAME = A.CONSTRAINT_NAME AND A.TABLE_NAME = P_VC_TABLE_NAME AND B.COLUMN_NAME=P_VC_FK_COL;

IF V_VI_COUNT > 0 THEN
RETURN;
END IF;

/*==============================================================*/
/* 外键前处理,清理垃圾数据 */
/*==============================================================*/
V_SQL:=''SELECT COUNT(1) FROM '' || P_VC_TABLE_NAME || '' WHERE ''|| P_VC_FK_COL ||'' NOT IN (SELECT ''|| P_VC_PARENT_COL || '' FROM ''|| P_VC_PARENT_TABLE ||'')'';
EXECUTE IMMEDIATE V_SQL INTO V_VI_COUNT;
IF V_VI_COUNT > 0 THEN
dbms_output.put_line(''清理 '' || P_VC_TABLE_NAME || ''中垃圾数据'');
V_SQL:=''delete FROM '' || P_VC_TABLE_NAME || '' WHERE ''|| P_VC_FK_COL ||'' NOT IN (SELECT ''|| P_VC_PARENT_COL || '' FROM ''|| P_VC_PARENT_TABLE ||'')'';
EXECUTE IMMEDIATE V_SQL;
END IF;

V_SQL:= ''ALTER TABLE '' || P_VC_TABLE_NAME || '' ADD CONSTRAINT '' || P_VC_FK_NAME ||'' FOREIGN KEY (''||P_VC_FK_COL||'') REFERENCES ''||P_VC_PARENT_TABLE||'' (''||P_VC_PARENT_COL||'')'' ;
IF P_VI_DELCONSTRAINT = 2 THEN
V_SQL:= V_SQL||'' on delete cascade'';
END IF;
dbms_output.put_line(''外键: '' || P_VC_TABLE_NAME || ''.'' || P_VC_FK_NAME);
EXECUTE IMMEDIATE V_SQL;
END WF_SP_ADDFOREIGNKEY;';

EXECUTE IMMEDIATE V_SQL;
COMMIT;


-- 开始处理工作流
/*==============================================================*/
/* Table: JRES 版本信息表 */
/*==============================================================*/
V_SQL:='CREATE TABLE JRES_SUBSYSTEM_RC
(
SUBSYSTEM_NAME VARCHAR2(32) NOT NULL,
SUBSYSTEM_VER VARCHAR2(32) NOT NULL,
BEGIN_TIME DATE NOT NULL,
END_TIME DATE,
REMARK VARCHAR2(4000),
TRACE_INFO CLOB
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JRES_SUBSYSTEM_RC', V_SQL, '','JRES 版本信息表';

execute immediate 'call WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JRES_SUBSYSTEM_RC','SUBSYSTEM_NAME','VARCHAR(32)','','子系统名称',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JRES_SUBSYSTEM_RC','SUBSYSTEM_VER','VARCHAR(32)','','版本',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JRES_SUBSYSTEM_RC','BEGIN_TIME','DATE','','开始升级时间',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JRES_SUBSYSTEM_RC','END_TIME','DATE','','升级结束时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JRES_SUBSYSTEM_RC','REMARK','VARCHAR2(4000)','','备注说明',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JRES_SUBSYSTEM_RC','TRACE_INFO','CLOB','','日志信息',0;
EXECUTE IMMEDIATE 'INSERT INTO JRES_SUBSYSTEM_RC (SUBSYSTEM_NAME,SUBSYSTEM_VER,BEGIN_TIME) VALUES(''workflow'',''sp3-patch20130531(WF1.1.21)'',SYSTIMESTAMP)';
/* =========== END of Table JRES 版本信息表 =============*/

/*==============================================================*/
/* Table: HIBERNATE_SEQUENCE */
/*==============================================================*/
SELECT COUNT(1) INTO V_COUNT FROM user_objects where OBJECT_NAME='HIBERNATE_SEQUENCE';
IF V_COUNT = 0 THEN
V_SQL:='CREATE SEQUENCE HIBERNATE_SEQUENCE MINVALUE 1 MAXVALUE 9999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE';
EXECUTE IMMEDIATE V_SQL;
END IF;
/* =========== END of HIBERNATE_SEQUENCE =============*/

/*==============================================================*/
/* 开始处理工作流数据库 */
/*==============================================================*/


/*==============================================================*/
/* Table: CUSTOMER */
/*==============================================================*/
dbms_output.put_line('Table: CUSTOMER');
V_SQL:='create table CUSTOMER(
ID VARCHAR2(255) NOT NULL,
AGE NUMERIC(10),
BIRTHDAY TIMESTAMP,
NAME VARCHAR2(255),
SEX NUMERIC(1),
DEADLINE TIMESTAMP,
constraint PK_CUSTOMER primary key (ID)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'CUSTOMER', V_SQL, '','示例表';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'CUSTOMER','ID','VARCHAR2(255)','','ID',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'CUSTOMER','AGE','NUMERIC(10)','','AGE',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'CUSTOMER','BIRTHDAY','TIMESTAMP','','BIRTHDAY',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'CUSTOMER','NAME','VARCHAR2(255)','','NAME',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'CUSTOMER','SEX','NUMERIC(1)','','SEX',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'CUSTOMER','DEADLINE','TIMESTAMP','','DEADLINE',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'CUSTOMER';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_CUSTOMER_NAME', 'CUSTOMER', 'NAME ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_CUSTOMER_AGESEX', 'CUSTOMER', 'AGE ASC, SEX ASC', 0;

/* =========== END of Table CUSTOMER =============*/


/*==============================================================*/
/* Table: JBPM4_DEPLOYMENT */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_DEPLOYMENT');
V_SQL:='create table JBPM4_DEPLOYMENT(
DBID_ NUMERIC(19) NOT NULL,
NAME_ VARCHAR2(255),
TIMESTAMP_ NUMERIC(19),
STATE_ VARCHAR2(255),
PROCESS_KEY_ VARCHAR2(255),
PROCESS_DEF_ID_ VARCHAR2(255),
VERSION_ NUMERIC(19),
LANGUAGE_ VARCHAR2(255),
DEPLOY_DT_ TIMESTAMP,
ARCHIVE_DT_ TIMESTAMP,
PROCESS_DEF_NAME_ VARCHAR2(255),
constraint PK_DEPLOYMENT primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_DEPLOYMENT', V_SQL, '','流程发布表,定义了系统中所有发布项,和发布属性表一起来标识详细的发布信息';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_DEPLOYMENT','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_DEPLOYMENT','NAME_','VARCHAR2(255)','','名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_DEPLOYMENT','TIMESTAMP_','NUMERIC(19)','','发布时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_DEPLOYMENT','STATE_','VARCHAR2(255)','','发布状态(active:活动,suspended:挂起)',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_DEPLOYMENT','PROCESS_KEY_','VARCHAR2(255)','','流程编码KEY',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_DEPLOYMENT','PROCESS_DEF_ID_','VARCHAR2(255)','','流程定义ID,例如leave-2,相当于‘流程编码-版本’',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_DEPLOYMENT','VERSION_','NUMERIC(19)','','部署版本',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_DEPLOYMENT','LANGUAGE_','VARCHAR2(255)','','语言,流程定义XML的规范',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_DEPLOYMENT','DEPLOY_DT_','TIMESTAMP','','发布时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_DEPLOYMENT','ARCHIVE_DT_','TIMESTAMP','','归档时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_DEPLOYMENT','PROCESS_DEF_NAME_','VARCHAR2(255)','','流程名称',0;


/* =========== END of Table JBPM4_DEPLOYMENT =============*/


/*==============================================================*/
/* Table: JBPM4_DEPLOYPROP */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_DEPLOYPROP');
V_SQL:='create table JBPM4_DEPLOYPROP(
DBID_ NUMERIC(19) NOT NULL,
DEPLOYMENT_ NUMERIC(19),
OBJNAME_ VARCHAR2(255),
KEY_ VARCHAR2(255),
STRINGVAL_ VARCHAR2(255),
LONGVAL_ NUMERIC(19),
constraint PK_DEPLOYPROP primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_DEPLOYPROP', V_SQL, '','发布属性表,包含具体发布项涉及的发布属性信息';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_DEPLOYPROP','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_DEPLOYPROP','DEPLOYMENT_','NUMERIC(19)','','关联发布表的外键值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_DEPLOYPROP','OBJNAME_','VARCHAR2(255)','','此属性数为发布流程对应的流程名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_DEPLOYPROP','KEY_','VARCHAR2(255)','','属性编码',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_DEPLOYPROP','STRINGVAL_','VARCHAR2(255)','','如果key_对应的值为字符串时,该属性有效',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_DEPLOYPROP','LONGVAL_','NUMERIC(19)','','long值',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_DEPLOYPROP';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_DEPLPROP_DEPL', 'JBPM4_DEPLOYPROP', 'DEPLOYMENT_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_DEPLPROP_KEY', 'JBPM4_DEPLOYPROP', 'DEPLOYMENT_ ASC, KEY_ ASC', 0;

/* =========== END of Table JBPM4_DEPLOYPROP =============*/


/*==============================================================*/
/* Table: JBPM4_EXECUTION */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXECUTION');
V_SQL:='create table JBPM4_EXECUTION(
DBID_ NUMERIC(19) NOT NULL,
CLASS_ VARCHAR2(255) NOT NULL,
DBVERSION_ NUMERIC(10) NOT NULL,
ACTIVITYNAME_ VARCHAR2(255),
PROCDEFID_ VARCHAR2(255),
HASVARS_ NUMERIC(1),
NAME_ VARCHAR2(255),
KEY_ VARCHAR2(255),
ID_ VARCHAR2(255),
STATE_ VARCHAR2(255),
SUSPHISTSTATE_ VARCHAR2(255),
PRIORITY_ NUMERIC(10),
HISACTINST_ NUMERIC(19),
PARENT_ NUMERIC(19),
INSTANCE_ NUMERIC(19),
SUPEREXEC_ NUMERIC(19),
SUBPROCINST_ NUMERIC(19),
PARENT_IDX_ NUMERIC(10),
constraint PK_EXECUTION primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXECUTION', V_SQL, '','执行实例表,包含系统中所有的执行实例';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXECUTION','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXECUTION','CLASS_','VARCHAR2(255)','','类,pvm',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXECUTION','DBVERSION_','NUMERIC(10)','','版本属性(用于实现Hibernate的乐观锁)',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXECUTION','ACTIVITYNAME_','VARCHAR2(255)','','节点名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXECUTION','PROCDEFID_','VARCHAR2(255)','','流程定义id',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXECUTION','HASVARS_','NUMERIC(1)','','执行实例下是否有变量',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXECUTION','NAME_','VARCHAR2(255)','','执行实例的名称,主要用于区分"并发"时的路径',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXECUTION','KEY_','VARCHAR2(255)','','执行实例的key值,用户可以指定这个key值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXECUTION','ID_','VARCHAR2(255)','','流程实例唯一表示',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXECUTION','STATE_','VARCHAR2(255)','','实例内部系统状态',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXECUTION','SUSPHISTSTATE_','VARCHAR2(255)','','执行实例暂停前的状态',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXECUTION','PRIORITY_','NUMERIC(10)','','执行实例优先级,目前都是"一般"0',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXECUTION','HISACTINST_','NUMERIC(19)','','历史活动实例号',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXECUTION','PARENT_','NUMERIC(19)','','上级执行实例号(有分支时)',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXECUTION','INSTANCE_','NUMERIC(19)','','流程实例ID',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXECUTION','SUPEREXEC_','NUMERIC(19)','','父流程执行实例号,子流程实例的时候用到这个属性',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXECUTION','SUBPROCINST_','NUMERIC(19)','','子流程实例号,父流程如果包含子流程时会用到',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXECUTION','PARENT_IDX_','NUMERIC(10)','','如果是并行分支,则此属性有值,表示自己相对于主干的序号,例如,主干有n个分支,则分支执行实例上该属性值就是0到n-1',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXECUTION';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_EXEC_INSTANCE', 'JBPM4_EXECUTION', 'INSTANCE_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_EXEC_PARENT', 'JBPM4_EXECUTION', 'PARENT_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_EXEC_ID_', 'JBPM4_EXECUTION', 'ID_ ASC',1;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_EXEC_DEFID', 'JBPM4_EXECUTION', 'PROCDEFID_ ASC', 0;

/* =========== END of Table JBPM4_EXECUTION =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_COMBOBOX_ */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_COMBOBOX_');
V_SQL:='create table JBPM4_EXT_COMBOBOX_(
DBID_ NUMERIC(19) NOT NULL,
TYPE_ VARCHAR2(50) NOT NULL,
VALUE_ VARCHAR2(50) NOT NULL,
DISPLAY_ VARCHAR2(50) NOT NULL,
RENDERER_ VARCHAR2(200) NOT NULL,
constraint PK_COMBOBOX_ primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_COMBOBOX_', V_SQL, '','工作流自带数据字典表,涉及所有下拉框的数据表,还可以应用在grid列的渲染上等';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_COMBOBOX_','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_COMBOBOX_','TYPE_','VARCHAR2(50)','','类型',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_COMBOBOX_','VALUE_','VARCHAR2(50)','','值',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_COMBOBOX_','DISPLAY_','VARCHAR2(50)','','显示到界面的内容',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_COMBOBOX_','RENDERER_','VARCHAR2(200)','','渲染内容',1;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_COMBOBOX_';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_COMBTYPE', 'JBPM4_EXT_COMBOBOX_', 'TYPE_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_COMBO_VALUE', 'JBPM4_EXT_COMBOBOX_', 'TYPE_ ASC, VALUE_ ASC', 0;

/*初始化数据*/
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100001','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100001, ''流程实例状态'', ''active'', ''正在运行'', ''<font color="green">正在运行</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100002','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100002, ''流程实例状态'', ''ended'', ''正常终止'', ''<font color="green">正常终止</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100003','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100003, ''流程实例状态'', ''terminated'', ''强制终止'', ''<font color="red">强制终止</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100004','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100004, ''流程实例状态'', ''suspended'', ''暂停'', ''<font color="blue">暂停</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100005','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100005,''流程实例状态'',''cancel'',''发起人撤销'',''<font color="red">发起人撤销</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100100','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100100, ''待办任务状态'', ''open'', ''待处理'', ''<font color="green">待处理</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100101','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100101, ''已办任务状态'', ''completed'', ''完成'', ''<font color="green">完成</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100102','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100102, ''已办任务状态'', ''obsolete'', ''过时'', ''<font color="red">过时</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100103','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100103, ''已办任务状态'', ''approval'', ''赞成'', ''<font color="green">赞成</font><font color="green">(会签)</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100104','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100104, ''已办任务状态'', ''reject'', ''反对'', ''<font color="blue">反对</font><font color="green">(会签)</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100105','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100105, ''已办任务状态'', ''rollback'', ''已退回'', ''<font color="red">已退回</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100106','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100106, ''已办任务状态'', ''withdraw'', ''已撤销'', ''<font color="red">已撤销</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100200','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100200, ''表单类型'', ''PAGE_JSP'', ''JSP页面(PAGE_JSP)'', ''JSP页面'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100201','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100201, ''表单类型'', ''PAGE_MW'', ''JRES页面(PAGE_MW)'', ''JRES页面'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100202','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100202, ''表单类型'', ''PAGE_MDA'', ''MDA页面(PAGE_MDA)'', ''MDA页面'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100300','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100300, ''JRES调用类型'', ''子流程'', ''子流程'', ''<font color="green">子流程</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100301','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100301, ''JRES调用类型'', ''服务'', ''服务'', ''<font color="blue">服务</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100107','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100107, ''待办任务状态'', ''candidate'', ''待签收'', ''<font color="green">待签收</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100108','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100108, ''待办任务状态'', ''coordinate'', ''协作中'', ''<font color="green">协作中</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100109','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100109, ''待办任务状态'', ''countersign-super'', ''会审中'', ''<font color="green">会审中</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100110','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100110, ''待办任务状态'', ''countersign-sub'', ''待审核'', ''<font color="green">待审核(会签)</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100111','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100111, ''已办任务状态'', ''waive'', ''弃权'', ''<font color="green">弃权(会签)</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100112','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100112, ''已办任务状态'', ''quit'', ''不参加'', ''<font color="green">不参加(会签)</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100113','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100113, ''待办任务状态'', ''delegated'', ''已委派'', ''<font color="green">已委托</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100114','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100114, ''待办任务状态'', ''agent'', ''代理'', ''<font color="green">代理</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100115','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100115, ''已办任务状态'', ''agentcomplete'', ''代理完成'', ''<font color="green">代理完成</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100116','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100116, ''待办任务状态'', ''vote'', ''投票'', ''<font color="green">投票</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100117','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100117, ''待办任务状态'', ''voteHost'', ''主持人'', ''<font color="green">主持人</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100118','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100118, ''已办任务状态'', ''cancel'', ''取消'', ''<font color="red">取消</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100119','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100119, ''已办任务状态'', ''terminated'', ''终止'', ''<font color="red">终止</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100120','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100120, ''待办任务状态'', ''pre-vote'', ''待投票'', ''<font color="green">待投票</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100121','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100121, ''待办任务状态'', ''voting'', ''投票中'', ''<font color="green">投票中</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100122','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100122, ''待办任务状态'', ''voted'', ''已投票'', ''<font color="green">已投票</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100123','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100123, ''待办任务状态'', ''coordinate-completed'', ''协作完成'', ''<font color="green">协作完成</font>'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100400','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100400, ''任务优先级'', ''0'', ''正常'', ''正常'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100401','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100401, ''任务优先级'', ''1'', ''高'', ''高'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100402','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100402, ''任务优先级'', ''2'', ''极高'', ''极高'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100403','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100403, ''任务优先级'', ''-1'', ''低'', ''低'')';
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_COMBOBOX_', 'DBID_=100404','(DBID_,TYPE_,VALUE_,DISPLAY_,RENDERER_)','(100404, ''任务优先级'', ''-2'', ''极低'', ''极低'')';
/* =========== END of Table JBPM4_EXT_COMBOBOX_ =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_DELEGATE */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_DELEGATE');
V_SQL:='create table JBPM4_EXT_DELEGATE(
DBID_ NUMERIC(19) NOT NULL,
USER_NAME VARCHAR2(50),
DELEGATE_USER VARCHAR2(50),
START_TIME TIMESTAMP,
END_TIME TIMESTAMP,
DELEGATE_TYPE VARCHAR2(4),
TASK_STATE CHAR(1),
DELEGATE_TASK NUMERIC(19),
WITHDRAW_TASK INT,
DO_AS_DELEGATOR CHAR(1),
REMARK VARCHAR2(500),
constraint PK_DELEGATE primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_DELEGATE', V_SQL, '','全权委托定义表【单个任务委托已改为用子任务实现】';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DELEGATE','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DELEGATE','USER_NAME','VARCHAR2(50)','','委托人ID',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DELEGATE','DELEGATE_USER','VARCHAR2(50)','','受托人ID',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DELEGATE','START_TIME','TIMESTAMP','','开始时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DELEGATE','END_TIME','TIMESTAMP','','结束时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DELEGATE','DELEGATE_TYPE','VARCHAR2(4)','','委托方式 A:全权委托,P:流程委托,T:活动节点委托',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DELEGATE','TASK_STATE','CHAR(1)','','委托状态 0:过期,1:停用,2:启用,3:删除',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DELEGATE','DELEGATE_TASK','NUMERIC(19)','','被委托的任务(单个任务委托已改为子任务)【已经过时了】',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DELEGATE','WITHDRAW_TASK','INT','','委托过期后是否将已经产生的委托关系清除,默认1',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DELEGATE','DO_AS_DELEGATOR','CHAR(1)','','是否以委托人身份提交,默认为N',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DELEGATE','REMARK','VARCHAR2(500)','','REMARK',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_DELEGATE';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_DELEGATE_TASK', 'JBPM4_EXT_DELEGATE', 'DELEGATE_TASK DESC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_DELEGATE_USER', 'JBPM4_EXT_DELEGATE', 'DELEGATE_USER ASC', 0;

/* =========== END of Table JBPM4_EXT_DELEGATE =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_DETAILS */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_DETAILS');
V_SQL:='create table JBPM4_EXT_DETAILS(
UUID VARCHAR2(100) NOT NULL,
PROC_INST_ID VARCHAR2(255) NOT NULL,
CREATEBY VARCHAR2(255),
CREATETIME TIMESTAMP NOT NULL,
ACTIVE VARCHAR2(50),
REMARK VARCHAR2(255),
constraint PK_EXT_DETAILS primary key (PROC_INST_ID,CREATETIME)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_DETAILS', V_SQL, '','流程实例操作明细信息表(记录对流程实例进行终止、挂起、恢复、发起人撤销的操作记录)';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DETAILS','UUID','VARCHAR2(100)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DETAILS','PROC_INST_ID','VARCHAR2(255)','','流程实例id_',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DETAILS','CREATEBY','VARCHAR2(255)','','变更操作者',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DETAILS','CREATETIME','TIMESTAMP','','变更时间',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DETAILS','ACTIVE','VARCHAR2(50)','','变更动作(terminate:终止,cancel:发起人撤销,suspend:挂起,resume:恢复)',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DETAILS','REMARK','VARCHAR2(255)','','操作备注',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_DETAILS';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_EXT_DTL_INSTID', 'JBPM4_EXT_DETAILS', 'PROC_INST_ID ASC', 0;

/* =========== END of Table JBPM4_EXT_DETAILS =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_FORMCLASS */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_FORMCLASS');
V_SQL:='create table JBPM4_EXT_FORMCLASS(
UUID VARCHAR2(32) NOT NULL,
PARENTID VARCHAR2(32) NOT NULL,
FORMCLASSNAME VARCHAR2(100) NOT NULL,
DESCRIPTION VARCHAR2(500),
constraint PK_FORMCLASS primary key (UUID)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_FORMCLASS', V_SQL, '','表单分类表,存储表单的分类信息';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORMCLASS','UUID','VARCHAR2(32)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORMCLASS','PARENTID','VARCHAR2(32)','','上级分类id',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORMCLASS','FORMCLASSNAME','VARCHAR2(100)','','分类名称',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORMCLASS','DESCRIPTION','VARCHAR2(500)','','描述',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_FORMCLASS';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_FORMCLASSID', 'JBPM4_EXT_FORMCLASS', 'PARENTID ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_FORMCLASS_NAME', 'JBPM4_EXT_FORMCLASS', 'FORMCLASSNAME ASC', 0;

/* =========== END of Table JBPM4_EXT_FORMCLASS =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_FORMREG */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_FORMREG');
V_SQL:='create table JBPM4_EXT_FORMREG(
UUID VARCHAR2(32) NOT NULL,
CLASSID VARCHAR2(32) NOT NULL,
FORMTYPE VARCHAR2(20) default ''PAGE_MDA'' NOT NULL,
FORMNAME VARCHAR2(100) NOT NULL,
FORMURL VARCHAR2(500) NOT NULL,
DESCRIPTION VARCHAR2(500),
FORMCODE VARCHAR2(100),
EXTFIELD1 VARCHAR2(100),
EXTFIELD2 VARCHAR2(100),
EXTFIELD3 VARCHAR2(100),
constraint PK_FORMREG primary key (UUID)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_FORMREG', V_SQL, '','表单注册表';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORMREG','UUID','VARCHAR2(32)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORMREG','CLASSID','VARCHAR2(32)','','表单分类id',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORMREG','FORMTYPE','VARCHAR2(20)','''PAGE_MDA''','表单类型(PAGE_JSP:JSP页面, PAGE_MW:JRES页面, PAGE_MDA:MDA页面)',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORMREG','FORMNAME','VARCHAR2(100)','','表单名称',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORMREG','FORMURL','VARCHAR2(500)','','表单URL地址',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORMREG','DESCRIPTION','VARCHAR2(500)','','描述',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORMREG','FORMCODE','VARCHAR2(100)','','表单代码业务自定义使用',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORMREG','EXTFIELD1','VARCHAR2(100)','','"扩展字段1',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORMREG','EXTFIELD2','VARCHAR2(100)','','"扩展字段2',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORMREG','EXTFIELD3','VARCHAR2(100)','','"扩展字段3',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_FORMREG';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_FORMREG_CLASSID', 'JBPM4_EXT_FORMREG', 'CLASSID ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_FORMREG_NAME', 'JBPM4_EXT_FORMREG', 'FORMNAME ASC', 0;

/* =========== END of Table JBPM4_EXT_FORMREG =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_FORM_RESREG */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_FORM_RESREG');
V_SQL:='create table JBPM4_EXT_FORM_RESREG(
UUID VARCHAR2(32) NOT NULL,
FORMID VARCHAR2(500) NOT NULL,
RESID VARCHAR2(50) NOT NULL,
RESNAME VARCHAR2(100) NOT NULL,
RESTYPE VARCHAR2(30) default ''COLUMN'',
constraint PK_FORM_RESREG primary key (UUID)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_FORM_RESREG', V_SQL, '','表单中的资源登记表,定义了表单中有哪些资源【暂时没有用到】';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORM_RESREG','UUID','VARCHAR2(32)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORM_RESREG','FORMID','VARCHAR2(500)','','表单id',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORM_RESREG','RESID','VARCHAR2(50)','','资源id',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORM_RESREG','RESNAME','VARCHAR2(100)','','资源名称',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORM_RESREG','RESTYPE','VARCHAR2(30)','''COLUMN''','资源类型',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_FORM_RESREG';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_FORMRESREGID', 'JBPM4_EXT_FORM_RESREG', 'FORMID ASC', 0;

/* =========== END of Table JBPM4_EXT_FORM_RESREG =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_FORM_RESSTATUS */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_FORM_RESSTATUS');
V_SQL:='create table JBPM4_EXT_FORM_RESSTATUS(
UUID VARCHAR2(32) NOT NULL,
RESUUID VARCHAR2(32) NOT NULL,
PROCESSVERSIONID VARCHAR2(50) NOT NULL,
PROCESSNODEID VARCHAR2(150) NOT NULL,
RESSTATUS VARCHAR2(10) default ''w'' NOT NULL,
constraint PK_FORM_RESSTATUS primary key (UUID)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_FORM_RESSTATUS', V_SQL, '','资源状态记录表【暂时没有用到】';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORM_RESSTATUS','UUID','VARCHAR2(32)','','UUID',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORM_RESSTATUS','RESUUID','VARCHAR2(32)','','RESUUID',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORM_RESSTATUS','PROCESSVERSIONID','VARCHAR2(50)','','PROCESSVERSIONID',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORM_RESSTATUS','PROCESSNODEID','VARCHAR2(150)','','PROCESSNODEID',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_FORM_RESSTATUS','RESSTATUS','VARCHAR2(10)','''w''','RESSTATUS',1;


/* =========== END of Table JBPM4_EXT_FORM_RESSTATUS =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_HIST_TASK */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_HIST_TASK');
V_SQL:='create table JBPM4_EXT_HIST_TASK(
DBID_ NUMERIC(19) NOT NULL,
NAME_ VARCHAR2(255) NOT NULL,
BIZ_FLOW_UUID_ VARCHAR2(255),
EXTFIELD1 VARCHAR2(100),
EXTFIELD2 VARCHAR2(500),
TASKSTATUS VARCHAR2(50) default ''open'',
CLASS_ CHAR(1),
VISIBLE_ CHAR(1),
ASSIGNEE_NAME_ VARCHAR2(1000),
ARCHIVE_STATUS NUMERIC(1) default 0,
AGENT_ID_ VARCHAR2(255),
AGENT_NAME_ VARCHAR2(255),
PARENT_TASK_ NUMERIC(19),
constraint PK_EXT_HISTASK primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_HIST_TASK', V_SQL, '','历史任务扩展表';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_HIST_TASK','DBID_','NUMERIC(19)','','任务id',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_HIST_TASK','NAME_','VARCHAR2(255)','','任务名称',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_HIST_TASK','BIZ_FLOW_UUID_','VARCHAR2(255)','','业务相关唯一标识号',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_HIST_TASK','EXTFIELD1','VARCHAR2(100)','','处理动作',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_HIST_TASK','EXTFIELD2','VARCHAR2(500)','','后续处理人',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_HIST_TASK','TASKSTATUS','VARCHAR2(50)','''open''','业务状态',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_HIST_TASK','CLASS_','CHAR(1)','','任务类型(O:普通任务 D:会签主任务 B:会签子任务 V:投票主任务 v:投票子任务 C:协作子任务 F:委托子任务)',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_HIST_TASK','VISIBLE_','CHAR(1)','','实例图上是否显示任务详细信息(Y:显示 N:不显示)',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_HIST_TASK','ASSIGNEE_NAME_','VARCHAR2(1000)','','处理人名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_HIST_TASK','ARCHIVE_STATUS','NUMERIC(1)','0','是否已经归档(0:未归档 1:已归档)',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_HIST_TASK','AGENT_ID_','VARCHAR2(255)','','代理人ID',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_HIST_TASK','AGENT_NAME_','VARCHAR2(255)','','代理人名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_HIST_TASK','PARENT_TASK_','NUMERIC(19)','','上级任务,区别与SuperTask, 是分级的',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_HIST_TASK';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_TASKBIZUUID', 'JBPM4_EXT_HIST_TASK', 'BIZ_FLOW_UUID_ ASC', 0;

/* =========== END of Table JBPM4_EXT_HIST_TASK =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_MWTEMPLATE */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_MWTEMPLATE');
V_SQL:='create table JBPM4_EXT_MWTEMPLATE(
DBID_ NUMERIC(19) NOT NULL,
TP_NAME VARCHAR2(255) NOT NULL,
TP_URL VARCHAR2(1000) NOT NULL,
DESCRIPTION VARCHAR2(500),
constraint PK_MWTEMPLATE primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_MWTEMPLATE', V_SQL, '','流程模板登记表,记录了系统中可用的流程模板的名称和路径';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_MWTEMPLATE','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_MWTEMPLATE','TP_NAME','VARCHAR2(255)','','模板名称',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_MWTEMPLATE','TP_URL','VARCHAR2(1000)','','模板URL地址',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_MWTEMPLATE','DESCRIPTION','VARCHAR2(500)','','描述',0;


/*初始化数据*/
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_EXT_MWTEMPLATE', 'DBID_=1','(DBID_, TP_NAME, TP_URL, DESCRIPTION)','(1, ''缺省工作流表单模板'', ''/workflow/Securities/template1.jsp'', ''默认模板'')';
/* =========== END of Table JBPM4_EXT_MWTEMPLATE =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_NODE_FIELDS */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_NODE_FIELDS');
V_SQL:='create table JBPM4_EXT_NODE_FIELDS(
DBID_ NUMERIC(19) NOT NULL,
VERSION_ID_ NUMERIC(19),
NODE_ VARCHAR2(255),
FIELD_ID_ VARCHAR2(255),
FIELD_NAME_ VARCHAR2(255),
PERMISSION_ NUMERIC(2),
TRACE_ NUMERIC(1),
constraint PK_NODE_FIELD primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_NODE_FIELDS', V_SQL, '','记录需要留痕的字段';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NODE_FIELDS','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NODE_FIELDS','VERSION_ID_','NUMERIC(19)','','版本BDID',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NODE_FIELDS','NODE_','VARCHAR2(255)','','节点名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NODE_FIELDS','FIELD_ID_','VARCHAR2(255)','','字段编码',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NODE_FIELDS','FIELD_NAME_','VARCHAR2(255)','','字段名',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NODE_FIELDS','PERMISSION_','NUMERIC(2)','','可见性(0:可写,1:只读,2:隐藏,3:必填)',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NODE_FIELDS','TRACE_','NUMERIC(1)','','是否留痕(0:不留痕,1:留痕)',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_NODE_FIELDS';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_NODEFIELD_NODE', 'JBPM4_EXT_NODE_FIELDS', 'NODE_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_NODEFIELD_VERID', 'JBPM4_EXT_NODE_FIELDS', 'VERSION_ID_ DESC', 0;

/* =========== END of Table JBPM4_EXT_NODE_FIELDS =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_NOTICE */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_NOTICE');
V_SQL:='create table JBPM4_EXT_NOTICE(
DBID_ NUMERIC(19) NOT NULL,
MSG_SENDER VARCHAR2(100) NOT NULL,
MSG_SENDER_NAME VARCHAR2(100),
CREATETIME TIMESTAMP NOT NULL,
TASKID NUMERIC(19) NOT NULL,
ACTIVITY_NAME VARCHAR2(200),
ISALIVE VARCHAR2(2) default ''1'' NOT NULL,
NOTICETYPE VARCHAR2(32) default ''notice_after'',
MSG_TITLE VARCHAR2(500),
MSG_CONTENT VARCHAR2(2000),
PROCESS_INSTANCE_ID VARCHAR2(100),
PROCESS_DEF_ID VARCHAR2(100),
PROCESS_DEF_NAME VARCHAR2(500),
constraint PK_NOTICE primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_NOTICE', V_SQL, '','知会任务表,定义由谁发起知会(分阅)以及知会(分阅)了哪条任务';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE','MSG_SENDER','VARCHAR2(100)','','发送人ID',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE','MSG_SENDER_NAME','VARCHAR2(100)','','发送人名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE','CREATETIME','TIMESTAMP','','生成时间',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE','TASKID','NUMERIC(19)','','对应的任务ID',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE','ACTIVITY_NAME','VARCHAR2(200)','','对应的节点名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE','ISALIVE','VARCHAR2(2)','''1''','是否有效(1:任务有效,0:已取消)',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE','NOTICETYPE','VARCHAR2(32)','''notice_after''','类型(notice_after:默认,知会;notice_before:分阅;forward:转发)',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE','MSG_TITLE','VARCHAR2(500)','','标题【已经过时了】',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE','MSG_CONTENT','VARCHAR2(2000)','','内容【已经过时了】',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE','PROCESS_INSTANCE_ID','VARCHAR2(100)','','对应的流程实例ID(jbpm4_hist_procinst.id_)有效',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE','PROCESS_DEF_ID','VARCHAR2(100)','','对应的流程编码【已经过时了】',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE','PROCESS_DEF_NAME','VARCHAR2(500)','','对应的流程名称【已经过时了】',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_NOTICE';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_NOTICE_SENDER', 'JBPM4_EXT_NOTICE', 'MSG_SENDER ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_NOTICE_TASKID', 'JBPM4_EXT_NOTICE', 'TASKID DESC', 0;

/* =========== END of Table JBPM4_EXT_NOTICE =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_NOTICE_RECIVER */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_NOTICE_RECIVER');
V_SQL:='create table JBPM4_EXT_NOTICE_RECIVER(
DBID_ NUMERIC(19) NOT NULL,
NOTICEDBID NUMERIC(19) NOT NULL,
RECIVERNAME VARCHAR2(100),
RECIVERCODE VARCHAR2(100) NOT NULL,
RECIVER_TYPE VARCHAR2(10) NOT NULL,
GROUP_DONE_TYPE VARCHAR2(10) NOT NULL,
ISALIVE VARCHAR2(2) default ''1'' NOT NULL,
RECIVER_TYPE_NAME VARCHAR2(255),
constraint PK_NOTICE_RECIVER primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_NOTICE_RECIVER', V_SQL, '','知会信息接收人关联表,定义知会(分阅)给哪些人';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE_RECIVER','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE_RECIVER','NOTICEDBID','NUMERIC(19)','','通知ID',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE_RECIVER','RECIVERNAME','VARCHAR2(100)','','接收方名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE_RECIVER','RECIVERCODE','VARCHAR2(100)','','接收方ID',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE_RECIVER','RECIVER_TYPE','VARCHAR2(10)','','接收方类型编码',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE_RECIVER','GROUP_DONE_TYPE','VARCHAR2(10)','','目前只有一个值assign,基本上没用',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE_RECIVER','ISALIVE','VARCHAR2(2)','''1''','【已经过时了】',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE_RECIVER','RECIVER_TYPE_NAME','VARCHAR2(255)','','接收方类型名称',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_NOTICE_RECIVER';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_NOTE_RECEIVE_ID', 'JBPM4_EXT_NOTICE_RECIVER', 'NOTICEDBID DESC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IX_NOTE_RECEIVE_RV', 'JBPM4_EXT_NOTICE_RECIVER', 'RECIVERCODE ASC', 0;

/* =========== END of Table JBPM4_EXT_NOTICE_RECIVER =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_NOTICE_STATUS */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_NOTICE_STATUS');
V_SQL:='create table JBPM4_EXT_NOTICE_STATUS(
DBID_ NUMERIC(19) NOT NULL,
NOTICEDBID NUMERIC(19) NOT NULL,
RECIVER VARCHAR2(100) NOT NULL,
RECIVER_NAME VARCHAR2(100),
HAS_READ VARCHAR2(2) default ''0'' NOT NULL,
CREATE_TIME TIMESTAMP NOT NULL,
READ_TIME TIMESTAMP,
NOTICEMSG CLOB,
ISALIVE VARCHAR2(2) default ''1'' NOT NULL,
constraint P_JBPM4_E_N_STATUS primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_NOTICE_STATUS', V_SQL, '','知会任务执行表,所有知会、分阅的任务处理情况都存储在此表中,可以查看知会的任务是否已经处理过了';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE_STATUS','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE_STATUS','NOTICEDBID','NUMERIC(19)','','通知ID',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE_STATUS','RECIVER','VARCHAR2(100)','','接收者ID',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE_STATUS','RECIVER_NAME','VARCHAR2(100)','','接收者名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE_STATUS','HAS_READ','VARCHAR2(2)','''0''','是否已读(0:未读 1:已读)',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE_STATUS','CREATE_TIME','TIMESTAMP','','创建时间',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE_STATUS','READ_TIME','TIMESTAMP','','查阅时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE_STATUS','NOTICEMSG','CLOB','','知会意见',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_NOTICE_STATUS','ISALIVE','VARCHAR2(2)','''1''','是否有效(1:有效 0:已取消)',1;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_NOTICE_STATUS';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_NOTESTATUS_ID', 'JBPM4_EXT_NOTICE_STATUS', 'NOTICEDBID ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_NOTESTATUS_RECV', 'JBPM4_EXT_NOTICE_STATUS', 'RECIVER ASC', 0;

/* =========== END of Table JBPM4_EXT_NOTICE_STATUS =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_PRO */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_PRO');
V_SQL:='create table JBPM4_EXT_PRO(
DBID_ NUMERIC(19) NOT NULL,
PROCESS_ID VARCHAR2(36) NOT NULL,
PROCESS_NAME VARCHAR2(50) NOT NULL,
DESCRIPTION VARCHAR2(255),
EXT_BIZ_TYPE VARCHAR2(16),
EXT_FIELD1 VARCHAR2(255),
EXT_FIELD2 VARCHAR2(255),
BIZ_REFERRENCE_CODE VARCHAR2(255),
CAN_HUMAN_START NUMERIC(1) default 1,
CANCEL_BEFORE_END NUMERIC(1) default 0,
TYPE_ID NUMERIC(19),
SORT_INDEX NUMERIC(19) default 0,
EXT_FIELD3 VARCHAR2(255),
EXT_FIELD4 VARCHAR2(255),
EXT_FIELD5 VARCHAR2(255),
EXT_NUMBER1 NUMERIC(19),
EXT_NUMBER2 NUMERIC(19),
EXT_DATE1 TIMESTAMP,
EXT_DATE2 TIMESTAMP,
IGNORE_EXIST_USER NUMERIC(1) default 0,
constraint PK_JBPM4_EXT_PRO primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_PRO', V_SQL, '','流程表,定义流程信息,主要包含流程名称和流程编码';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PRO','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PRO','PROCESS_ID','VARCHAR2(36)','','流程编码',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PRO','PROCESS_NAME','VARCHAR2(50)','','流程名称',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PRO','DESCRIPTION','VARCHAR2(255)','','流程描述',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PRO','EXT_BIZ_TYPE','VARCHAR2(16)','','业务类型',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PRO','EXT_FIELD1','VARCHAR2(255)','','扩展字段',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PRO','EXT_FIELD2','VARCHAR2(255)','','扩展字段',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PRO','BIZ_REFERRENCE_CODE','VARCHAR2(255)','','业务关联值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PRO','CAN_HUMAN_START','NUMERIC(1)','1','能否人工发起',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PRO','CANCEL_BEFORE_END','NUMERIC(1)','0','发起人终止实例条件
0:所有的已办任务都是发起人处理时才可以终止
1:只要流程实例没有结束就可以终止',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PRO','TYPE_ID','NUMERIC(19)','','分类ID',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PRO','SORT_INDEX','NUMERIC(19)','0','排序字段',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PRO','EXT_FIELD3','VARCHAR2(255)','','扩充字段3',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PRO','EXT_FIELD4','VARCHAR2(255)','','扩充字段4',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PRO','EXT_FIELD5','VARCHAR2(255)','','扩充字段5',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PRO','EXT_NUMBER1','NUMERIC(19)','','扩充数值1',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PRO','EXT_NUMBER2','NUMERIC(19)','','扩充数值2',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PRO','EXT_DATE1','TIMESTAMP','','扩充日期1',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PRO','EXT_DATE2','TIMESTAMP','','扩充日期2',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PRO','IGNORE_EXIST_USER','NUMERIC(1)','0','任务计算候选人时,是否排除流程中现有用户。0:不排除,1:排除前一节点的用户,2:排除流程中所有有效的参与者',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_PRO';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_PROCESSID', 'JBPM4_EXT_PRO', 'PROCESS_ID ASC', 0;

/* =========== END of Table JBPM4_EXT_PRO =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_PROCESS_TYPE */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_PROCESS_TYPE');
V_SQL:='create table JBPM4_EXT_PROCESS_TYPE(
DBID_ NUMERIC(19) NOT NULL,
TYPE_NAME VARCHAR2(50) NOT NULL,
PARENT_ID NUMERIC(19) NOT NULL,
DESCRIPT VARCHAR2(255),
SEQ FLOAT,
constraint PK_PROCESS_TYPE primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_PROCESS_TYPE', V_SQL, '','流程分类表,定义所有流程分类的树形关系';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PROCESS_TYPE','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PROCESS_TYPE','TYPE_NAME','VARCHAR2(50)','','类型名称',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PROCESS_TYPE','PARENT_ID','NUMERIC(19)','','父类型ID(0:流程分类根节点)',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PROCESS_TYPE','DESCRIPT','VARCHAR2(255)','','描述',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PROCESS_TYPE','SEQ','FLOAT','','序列号【目前没有用到】',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_PROCESS_TYPE';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_PROTYPE_PID', 'JBPM4_EXT_PROCESS_TYPE', 'PARENT_ID ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_PROTYPE_NAME', 'JBPM4_EXT_PROCESS_TYPE', 'TYPE_NAME ASC', 0;

/* =========== END of Table JBPM4_EXT_PROCESS_TYPE =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_PROC_EDITOR */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_PROC_EDITOR');
V_SQL:='create table JBPM4_EXT_PROC_EDITOR(
DBID_ NUMERIC(19) NOT NULL,
VERSIONID NUMERIC(19),
NODE_ID VARCHAR2(255),
PAGE_ID VARCHAR2(255),
FORM_TEMPLATEID NUMERIC(19) default 0,
EXT_FIELD1 VARCHAR2(255),
EXT_FIELD2 VARCHAR2(255),
EXT_FIELD3 VARCHAR2(255),
BIND_TYPE CHAR(1),
PAGE_URL VARCHAR2(255),
PAGE_TABLE VARCHAR2(255),
constraint PK_EXT_PRO_EDIT primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_PROC_EDITOR', V_SQL, '','流程版本和表单,定义了流程版本(包括节点)和表单之间的关联关系';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PROC_EDITOR','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PROC_EDITOR','VERSIONID','NUMERIC(19)','','流程版本DBID',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PROC_EDITOR','NODE_ID','VARCHAR2(255)','','节点名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PROC_EDITOR','PAGE_ID','VARCHAR2(255)','','表单UUID',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PROC_EDITOR','FORM_TEMPLATEID','NUMERIC(19)','0','是否带表单模板ID(0:不带模板 其他的值:JPBM4_EXT_MWTEMPLATE表的主键值)',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PROC_EDITOR','EXT_FIELD1','VARCHAR2(255)','','扩展字段',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PROC_EDITOR','EXT_FIELD2','VARCHAR2(255)','','扩展字段',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PROC_EDITOR','EXT_FIELD3','VARCHAR2(255)','','扩展字段',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PROC_EDITOR','BIND_TYPE','CHAR(1)','','【已经过时了】',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PROC_EDITOR','PAGE_URL','VARCHAR2(255)','','【已经过时了】',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PROC_EDITOR','PAGE_TABLE','VARCHAR2(255)','','【已经过时了】',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_PROC_EDITOR';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_PROCEDITOR_NODEID', 'JBPM4_EXT_PROC_EDITOR', 'NODE_ID ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_PROCEDITOR_VER', 'JBPM4_EXT_PROC_EDITOR', 'VERSIONID ASC', 0;

/* =========== END of Table JBPM4_EXT_PROC_EDITOR =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_PT_TRAN */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_PT_TRAN');
V_SQL:='create table JBPM4_EXT_PT_TRAN(
DBID_ NUMERIC(19) NOT NULL,
PROCESS_ID NUMERIC(19),
TYPE_ID NUMERIC(19),
constraint PK_EXT_PT_TRAN primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_PT_TRAN', V_SQL, '','分类流程关联表,流程和流程分类的关联关系表';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PT_TRAN','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PT_TRAN','PROCESS_ID','NUMERIC(19)','','流程DBID',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_PT_TRAN','TYPE_ID','NUMERIC(19)','','流程分类DBID',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_PT_TRAN';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_PTTPROID', 'JBPM4_EXT_PT_TRAN', 'PROCESS_ID DESC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_PTTTYPEID', 'JBPM4_EXT_PT_TRAN', 'TYPE_ID DESC', 0;

/* =========== END of Table JBPM4_EXT_PT_TRAN =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_SERVICEREG */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_SERVICEREG');
V_SQL:='create table JBPM4_EXT_SERVICEREG(
UUID CHAR(32) NOT NULL,
CLASSID VARCHAR2(32),
SERVICEID VARCHAR2(500) NOT NULL,
SERVICENAME VARCHAR2(100) NOT NULL,
DESCIPTION VARCHAR2(500),
constraint PK_EXT_SERVICEREG primary key (UUID)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_SERVICEREG', V_SQL, '','服务注册表,定义了服务id和名称,以及类型';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_SERVICEREG','UUID','CHAR(32)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_SERVICEREG','CLASSID','VARCHAR2(32)','','JRES调用类型(服务,子流程)',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_SERVICEREG','SERVICEID','VARCHAR2(500)','','服务id',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_SERVICEREG','SERVICENAME','VARCHAR2(100)','','服务名称',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_SERVICEREG','DESCIPTION','VARCHAR2(500)','','描述',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_SERVICEREG';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_SERVICE_REG_CLS', 'JBPM4_EXT_SERVICEREG', 'CLASSID ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_SERVICE_REG_SID', 'JBPM4_EXT_SERVICEREG', 'SERVICEID ASC', 0;

/* =========== END of Table JBPM4_EXT_SERVICEREG =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_SERVICE_PARA_IN */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_SERVICE_PARA_IN');
V_SQL:='create table JBPM4_EXT_SERVICE_PARA_IN(
UUID CHAR(32) NOT NULL,
SERVICE_DBID CHAR(32) NOT NULL,
PARAM_NAME VARCHAR2(100) NOT NULL,
PARAM_CODE VARCHAR2(50) NOT NULL,
PARAM_TYPE VARCHAR2(20) NOT NULL,
DESCIPTION VARCHAR2(500),
DEFAULT_VALUE VARCHAR2(100),
constraint PK_SVC_PARAM_IN primary key (UUID)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_SERVICE_PARA_IN', V_SQL, '','服务输入参数定义表';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_SERVICE_PARA_IN','UUID','CHAR(32)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_SERVICE_PARA_IN','SERVICE_DBID','CHAR(32)','','服务定义UUID(JBPM4_EXT_SERVICEREG表的主键)',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_SERVICE_PARA_IN','PARAM_NAME','VARCHAR2(100)','','参数名称',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_SERVICE_PARA_IN','PARAM_CODE','VARCHAR2(50)','','参数编码',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_SERVICE_PARA_IN','PARAM_TYPE','VARCHAR2(20)','','参数类型',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_SERVICE_PARA_IN','DESCIPTION','VARCHAR2(500)','','描述',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_SERVICE_PARA_IN','DEFAULT_VALUE','VARCHAR2(100)','','参数默认值',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_SERVICE_PARA_IN';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_SVR_PARAM_INI', 'JBPM4_EXT_SERVICE_PARA_IN', 'SERVICE_DBID ASC', 0;

/* =========== END of Table JBPM4_EXT_SERVICE_PARA_IN =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_SERVICE_PARA_OUT */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_SERVICE_PARA_OUT');
V_SQL:='create table JBPM4_EXT_SERVICE_PARA_OUT(
UUID CHAR(32) NOT NULL,
SERVICE_DBID CHAR(32) NOT NULL,
PARAM_NAME VARCHAR2(100) NOT NULL,
PARAM_CODE VARCHAR2(50) NOT NULL,
PARAM_TYPE VARCHAR2(20) NOT NULL,
DESCIPTION VARCHAR2(500),
constraint PK_SVC_PARAM_OUT primary key (UUID)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_SERVICE_PARA_OUT', V_SQL, '','服务输出参数定义表';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_SERVICE_PARA_OUT','UUID','CHAR(32)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_SERVICE_PARA_OUT','SERVICE_DBID','CHAR(32)','','服务定义UUID(JBPM4_EXT_SERVICEREG表的主键)',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_SERVICE_PARA_OUT','PARAM_NAME','VARCHAR2(100)','','参数名称',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_SERVICE_PARA_OUT','PARAM_CODE','VARCHAR2(50)','','参数编码',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_SERVICE_PARA_OUT','PARAM_TYPE','VARCHAR2(20)','','参数类型',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_SERVICE_PARA_OUT','DESCIPTION','VARCHAR2(500)','','描述',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_SERVICE_PARA_OUT';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_SVR_PARAM_OUT', 'JBPM4_EXT_SERVICE_PARA_OUT', 'SERVICE_DBID ASC', 0;

/* =========== END of Table JBPM4_EXT_SERVICE_PARA_OUT =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_START */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_START');
V_SQL:='create table JBPM4_EXT_START(
DBID_ NUMERIC(19) NOT NULL,
STARTER_ VARCHAR2(100),
STARTER_NAME_ VARCHAR2(1000),
PROCESS_INSTANCE_ VARCHAR2(255),
STATE_ VARCHAR2(100),
CREATE_ TIMESTAMP,
END_ TIMESTAMP,
PROC_NAME_ VARCHAR2(255),
ORG_ID_ VARCHAR2(64),
ORG_NAME_ VARCHAR2(512),
PROCINST_ NUMERIC(19),
constraint PK_EXT_START primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_START', V_SQL, '','发起流程表,记录了谁发起某条流程实例';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_START','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_START','STARTER_','VARCHAR2(100)','','发起人ID',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_START','STARTER_NAME_','VARCHAR2(1000)','','发起人名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_START','PROCESS_INSTANCE_','VARCHAR2(255)','','流程实例ID',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_START','STATE_','VARCHAR2(100)','','流程实例状态',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_START','CREATE_','TIMESTAMP','','发起时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_START','END_','TIMESTAMP','','完成时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_START','PROC_NAME_','VARCHAR2(255)','','流程名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_START','ORG_ID_','VARCHAR2(64)','','机构ID',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_START','ORG_NAME_','VARCHAR2(512)','','机构名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_START','PROCINST_','NUMERIC(19)','','外键,关联到HIST_PROCINST的DBID_',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_START';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_EXT_START_INST', 'JBPM4_EXT_START', 'PROCESS_INSTANCE_ DESC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_EXT_START_PNAME', 'JBPM4_EXT_START', 'PROC_NAME_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_EXT_START_STARTER', 'JBPM4_EXT_START', 'STARTER_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_EXT_START_PID', 'JBPM4_EXT_START', 'PROCINST_ ASC', 0;

/* =========== END of Table JBPM4_EXT_START =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_TASK_CTL */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_TASK_CTL');
V_SQL:='create table JBPM4_EXT_TASK_CTL(
DBID_ NUMERIC(19) NOT NULL,
COMPLETE_PARENT_ INTEGER default 1,
constraint PK_TASK_CTL primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_TASK_CTL', V_SQL, '','【已经过时了】协作目前不能提交主任务
任务控制扩展表,只有在协作时才用到,定义了协作子任务是否有权限提交协作主任务';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TASK_CTL','DBID_','NUMERIC(19)','','任务号',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TASK_CTL','COMPLETE_PARENT_','INTEGER','1','是否结束主任务',0;


/* =========== END of Table JBPM4_EXT_TASK_CTL =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_TEMPLATE_DATA */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_TEMPLATE_DATA');
V_SQL:='create table JBPM4_EXT_TEMPLATE_DATA(
DBID_ NUMERIC(19) NOT NULL,
PROCESSINSTANCEID_ VARCHAR2(255) NOT NULL,
NODE_ VARCHAR2(100) NOT NULL,
NODE_TYPE_ VARCHAR2(32) default ''human'' NOT NULL,
TASK_ID_ NUMERIC(19) NOT NULL,
USER_ID_ VARCHAR2(32) NOT NULL,
USER_NAME_ VARCHAR2(50),
CONTENT_ VARCHAR2(3000),
TIME_ TIMESTAMP,
SHOWINFO CHAR(1),
constraint PK_TEMPLATE_DATA primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_TEMPLATE_DATA', V_SQL, '','模板运行数据表,定义了各任务的处理意见';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TEMPLATE_DATA','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TEMPLATE_DATA','PROCESSINSTANCEID_','VARCHAR2(255)','','流程实例ID',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TEMPLATE_DATA','NODE_','VARCHAR2(100)','','节点名称',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TEMPLATE_DATA','NODE_TYPE_','VARCHAR2(32)','''human''','节点类型',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TEMPLATE_DATA','TASK_ID_','NUMERIC(19)','','任务ID',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TEMPLATE_DATA','USER_ID_','VARCHAR2(32)','','任务处理人ID',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TEMPLATE_DATA','USER_NAME_','VARCHAR2(50)','','任务处理人名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TEMPLATE_DATA','CONTENT_','VARCHAR2(3000)','','处理意见',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TEMPLATE_DATA','TIME_','TIMESTAMP','','处理时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TEMPLATE_DATA','SHOWINFO','CHAR(1)','','是否显示任务的信息,有的会签节点控制不让显示',0;


/* =========== END of Table JBPM4_EXT_TEMPLATE_DATA =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_TRACE */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_TRACE');
V_SQL:='create table JBPM4_EXT_TRACE(
DBID_ NUMERIC(19) NOT NULL,
FIELD_NAME_ VARCHAR2(255) NOT NULL,
HSBPM_INSTANCE_ID_ VARCHAR2(255),
NODE_ VARCHAR2(32) NOT NULL,
TASK_ID_ NUMERIC(19) NOT NULL,
USER_ID_ VARCHAR2(32) NOT NULL,
USER_NAME_ VARCHAR2(50),
CONTENT_ VARCHAR2(3000),
TIME_ TIMESTAMP,
constraint PK_EXT_TRACE primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_TRACE', V_SQL, '','流程节点字段留痕历史信息表,定义了流程实例下各任务的字段留痕信息';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TRACE','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TRACE','FIELD_NAME_','VARCHAR2(255)','','字段名称',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TRACE','HSBPM_INSTANCE_ID_','VARCHAR2(255)','','流程实例ID',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TRACE','NODE_','VARCHAR2(32)','','节点名称',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TRACE','TASK_ID_','NUMERIC(19)','','任务ID',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TRACE','USER_ID_','VARCHAR2(32)','','用户ID',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TRACE','USER_NAME_','VARCHAR2(50)','','用户名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TRACE','CONTENT_','VARCHAR2(3000)','','内容',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TRACE','TIME_','TIMESTAMP','','时间',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_TRACE';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_EXT_TRACE_TID', 'JBPM4_EXT_TRACE', 'HSBPM_INSTANCE_ID_ ASC', 0;

/* =========== END of Table JBPM4_EXT_TRACE =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_VER */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_VER');
V_SQL:='create table JBPM4_EXT_VER(
DBID_ NUMERIC(19) NOT NULL,
VERSION_NAME VARCHAR2(50) NOT NULL,
DESCRIPTION VARCHAR2(255),
VERSION INTEGER NOT NULL,
STATE INTEGER,
VERSION_FILE CLOB NOT NULL,
PAGE_NAME VARCHAR2(50),
DEPLOY_STATE INTEGER,
XML_TYPE VARCHAR2(20),
DEPLOYMENT_ NUMERIC(19),
PROCESS_ NUMERIC(19),
constraint PK_EXT_VER primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_VER', V_SQL, '','流程版本信息表,定义了所有版本的详细信息';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VER','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VER','VERSION_NAME','VARCHAR2(50)','','名称',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VER','DESCRIPTION','VARCHAR2(255)','','描述',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VER','VERSION','INTEGER','','版本号',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VER','STATE','INTEGER','','状态(1:归档,2:运行,3:暂停,4:设计,5:停止)',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VER','VERSION_FILE','CLOB','','流程定义XML文件',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VER','PAGE_NAME','VARCHAR2(50)','','绑定的表单的名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VER','DEPLOY_STATE','INTEGER','','发布状态【已经过时了】',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VER','XML_TYPE','VARCHAR2(20)','','XML格式【以后可能会用到】',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VER','DEPLOYMENT_','NUMERIC(19)','','部署ID,关联JBPM4_DEPLOYMENT.dbid_',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VER','PROCESS_','NUMERIC(19)','','流程定义ID,关联JBPM4_EXT_PRO.dbid_',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_VER';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_EXT_VER_NAME', 'JBPM4_EXT_VER', 'VERSION_NAME ASC', 0;

/* =========== END of Table JBPM4_EXT_VER =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_VERSION_CONTEXTFIELD */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_VERSION_CONTEXTFIELD');
V_SQL:='create table JBPM4_EXT_VERSION_CONTEXTFIELD(
UUID CHAR(32) NOT NULL,
VERSIONDBID NUMERIC(19) NOT NULL,
FIELDNAME VARCHAR2(100),
FIELDCODE VARCHAR2(50) NOT NULL,
FIELDUSETYPE VARCHAR2(10) default ''CONTEXT'' NOT NULL,
FORMID VARCHAR2(32) NOT NULL,
NODEID VARCHAR2(50),
constraint PK_EXT_VER_CTX primary key (UUID)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_VERSION_CONTEXTFIELD', V_SQL, '','流程版本上下文字段列表,定义了所有流程版本包含的上下文字段列表';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VERSION_CONTEXTFIELD','UUID','CHAR(32)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VERSION_CONTEXTFIELD','VERSIONDBID','NUMERIC(19)','','流程版本DBID',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VERSION_CONTEXTFIELD','FIELDNAME','VARCHAR2(100)','','字段名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VERSION_CONTEXTFIELD','FIELDCODE','VARCHAR2(50)','','字段编码',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VERSION_CONTEXTFIELD','FIELDUSETYPE','VARCHAR2(10)','''CONTEXT''','【已经过时了】',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VERSION_CONTEXTFIELD','FORMID','VARCHAR2(32)','','表单ID【已经过时了】',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VERSION_CONTEXTFIELD','NODEID','VARCHAR2(50)','','节点名称【已经过时了】',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_VERSION_CONTEXTFIELD';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_CTXF_VERID', 'JBPM4_EXT_VERSION_CONTEXTFIELD', 'VERSIONDBID ASC', 0;

/* =========== END of Table JBPM4_EXT_VERSION_CONTEXTFIELD =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_VER_OPR */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_VER_OPR');
V_SQL:='create table JBPM4_EXT_VER_OPR(
DBID_ NUMERIC(19) NOT NULL,
CODE VARCHAR2(500),
NAME VARCHAR2(200),
VERSION_ID NUMERIC(19),
TYPECODE VARCHAR2(50),
TYPENAME VARCHAR2(255),
TYPE NUMERIC(4),
constraint PK_VER_OPR primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_VER_OPR', V_SQL, '','发起人控制表,定义所有版本的发起人范围
目前如果一个流程没有定义发起人的话则表明系统中所有用户均可发起';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VER_OPR','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VER_OPR','CODE','VARCHAR2(500)','','发起人编码',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VER_OPR','NAME','VARCHAR2(200)','','发起人名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VER_OPR','VERSION_ID','NUMERIC(19)','','流程版本DBID',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VER_OPR','TYPECODE','VARCHAR2(50)','','发起人类型编码(user:用户 ,script:表达式,org:机构,pos:岗位,role:角色,dep:部门)',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VER_OPR','TYPENAME','VARCHAR2(255)','','发起人类型名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_VER_OPR','TYPE','NUMERIC(4)','','【已经过时了】',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_VER_OPR';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_VEROPR_S', 'JBPM4_EXT_VER_OPR', 'TYPECODE ASC, CODE ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_VERVER_ID', 'JBPM4_EXT_VER_OPR', 'VERSION_ID DESC', 0;

/* =========== END of Table JBPM4_EXT_VER_OPR =============*/


/*==============================================================*/
/* Table: JBPM4_FORMTEXT_DEMO */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_FORMTEXT_DEMO');
V_SQL:='create table JBPM4_FORMTEXT_DEMO(
UUID NUMERIC(19) NOT NULL,
CREATEBY VARCHAR2(20) NOT NULL,
CREATEDATE TIMESTAMP NOT NULL,
REMARK VARCHAR2(500),
PROCESSINSTANCEID VARCHAR2(100),
PROCESSNODEID VARCHAR2(100),
TASKID VARCHAR2(100),
constraint PK_FORMTEXT_DEMO primary key (UUID)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_FORMTEXT_DEMO', V_SQL, '','示例表';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_FORMTEXT_DEMO','UUID','NUMERIC(19)','','UUID',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_FORMTEXT_DEMO','CREATEBY','VARCHAR2(20)','','CREATEBY',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_FORMTEXT_DEMO','CREATEDATE','TIMESTAMP','','CREATEDATE',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_FORMTEXT_DEMO','REMARK','VARCHAR2(500)','','REMARK',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_FORMTEXT_DEMO','PROCESSINSTANCEID','VARCHAR2(100)','','PROCESSINSTANCEID',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_FORMTEXT_DEMO','PROCESSNODEID','VARCHAR2(100)','','PROCESSNODEID',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_FORMTEXT_DEMO','TASKID','VARCHAR2(100)','','TASKID',0;


/* =========== END of Table JBPM4_FORMTEXT_DEMO =============*/


/*==============================================================*/
/* Table: JBPM4_FORMTEXT_LEAVE */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_FORMTEXT_LEAVE');
V_SQL:='create table JBPM4_FORMTEXT_LEAVE(
UUID NUMERIC(19) NOT NULL,
APPLYUSER VARCHAR2(20) NOT NULL,
DAYS INTEGER NOT NULL,
REASON VARCHAR2(500),
TASKID VARCHAR2(100),
constraint PK_FORMLEAVE primary key (UUID)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_FORMTEXT_LEAVE', V_SQL, '','请假申请表,例子';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_FORMTEXT_LEAVE','UUID','NUMERIC(19)','','UUID',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_FORMTEXT_LEAVE','APPLYUSER','VARCHAR2(20)','','APPLYUSER',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_FORMTEXT_LEAVE','DAYS','INTEGER','','DAYS',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_FORMTEXT_LEAVE','REASON','VARCHAR2(500)','','REASON',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_FORMTEXT_LEAVE','TASKID','VARCHAR2(100)','','TASKID',0;


/* =========== END of Table JBPM4_FORMTEXT_LEAVE =============*/


/*==============================================================*/
/* Table: JBPM4_HIST_ACTINST */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_HIST_ACTINST');
V_SQL:='create table JBPM4_HIST_ACTINST(
DBID_ NUMERIC(19) NOT NULL,
CLASS_ VARCHAR2(255) NOT NULL,
DBVERSION_ NUMERIC(10) NOT NULL,
HPROCI_ NUMERIC(19),
TYPE_ VARCHAR2(255),
EXECUTION_ VARCHAR2(255),
ACTIVITY_NAME_ VARCHAR2(255),
START_ TIMESTAMP,
END_ TIMESTAMP,
DURATION_ NUMERIC(19),
TRANSITION_ VARCHAR2(255),
HTASK_ NUMERIC(19),
NEXTIDX_ NUMERIC(10),
PRE_ACTIVITY_ NUMERIC(19),
constraint PK_HIST_ACTINST primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_HIST_ACTINST', V_SQL, '','历史活动表,历史活动对应历史任务表,一个任务对应一个活动';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_ACTINST','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_ACTINST','CLASS_','VARCHAR2(255)','','类别(主要用于区分子类,用于Hibernate继承映射。task:有人参与的节点;aut:自动节点;excl:决策节点;act:其他类型节点,如分支、汇聚等)',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_ACTINST','DBVERSION_','NUMERIC(10)','','版本属性(用于实现Hibernate的乐观锁)',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_ACTINST','HPROCI_','NUMERIC(19)','','历史流程实例DBID',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_ACTINST','TYPE_','VARCHAR2(255)','','活动对应的节点类型(XML文件中的节点元素名称)',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_ACTINST','EXECUTION_','VARCHAR2(255)','','执行实例号',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_ACTINST','ACTIVITY_NAME_','VARCHAR2(255)','','节点名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_ACTINST','START_','TIMESTAMP','','开始时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_ACTINST','END_','TIMESTAMP','','结束时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_ACTINST','DURATION_','NUMERIC(19)','','持续时间(毫秒)',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_ACTINST','TRANSITION_','VARCHAR2(255)','','活动实际执行出口连线',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_ACTINST','HTASK_','NUMERIC(19)','','对应的历史任务id',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_ACTINST','NEXTIDX_','NUMERIC(10)','','节点对应的历史详细信息(存到JBPM4_HIST_DETAIL表中)索引(从1开始递增)【暂时没有用到】',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_ACTINST','PRE_ACTIVITY_','NUMERIC(19)','','前一步历史活动',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_HIST_ACTINST';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_HACTI_HPROCI', 'JBPM4_HIST_ACTINST', 'HPROCI_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_HTI_HTASK', 'JBPM4_HIST_ACTINST', 'HTASK_ ASC', 0;

/* =========== END of Table JBPM4_HIST_ACTINST =============*/


/*==============================================================*/
/* Table: JBPM4_HIST_DETAIL */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_HIST_DETAIL');
V_SQL:='create table JBPM4_HIST_DETAIL(
DBID_ NUMERIC(19) NOT NULL,
CLASS_ VARCHAR2(255) NOT NULL,
DBVERSION_ NUMERIC(10) NOT NULL,
USERID_ VARCHAR2(255),
TIME_ TIMESTAMP,
HPROCI_ NUMERIC(19),
HPROCIIDX_ NUMERIC(10),
HACTI_ NUMERIC(19),
HACTIIDX_ NUMERIC(10),
HTASK_ NUMERIC(19),
HTASKIDX_ NUMERIC(10),
HVAR_ NUMERIC(19),
HVARIDX_ NUMERIC(10),
MESSAGE_ CLOB,
OLD_STR_ VARCHAR2(255),
NEW_STR_ VARCHAR2(255),
OLD_INT_ NUMERIC(10),
NEW_INT_ NUMERIC(10),
OLD_TIME_ TIMESTAMP,
NEW_TIME_ TIMESTAMP,
PARENT_ NUMERIC(19),
PARENT_IDX_ NUMERIC(10),
constraint PK_HIST_DETAIL primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_HIST_DETAIL', V_SQL, '','历史详细信息表,包含整个流程的详细处理过程【暂时没有用到】';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','CLASS_','VARCHAR2(255)','','类型',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','DBVERSION_','NUMERIC(10)','','记录更改次数',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','USERID_','VARCHAR2(255)','','用户id',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','TIME_','TIMESTAMP','','时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','HPROCI_','NUMERIC(19)','','历史流程实例关联主键值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','HPROCIIDX_','NUMERIC(10)','','HPROCIIDX_',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','HACTI_','NUMERIC(19)','','历史活动关联主键值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','HACTIIDX_','NUMERIC(10)','','HACTIIDX_',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','HTASK_','NUMERIC(19)','','历史任务活动关联主键值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','HTASKIDX_','NUMERIC(10)','','HTASKIDX_',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','HVAR_','NUMERIC(19)','','历史变量',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','HVARIDX_','NUMERIC(10)','','HVARIDX_',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','MESSAGE_','CLOB','','消息',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','OLD_STR_','VARCHAR2(255)','','字符串旧值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','NEW_STR_','VARCHAR2(255)','','字符串新值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','OLD_INT_','NUMERIC(10)','','int旧值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','NEW_INT_','NUMERIC(10)','','int新值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','OLD_TIME_','TIMESTAMP','','时间类型旧值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','NEW_TIME_','TIMESTAMP','','时间类型新值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','PARENT_','NUMERIC(19)','','上级活动',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_DETAIL','PARENT_IDX_','NUMERIC(10)','','PARENT_IDX_',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_HIST_DETAIL';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_HDET_HACTI', 'JBPM4_HIST_DETAIL', 'HACTI_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_HDET_HPROCI', 'JBPM4_HIST_DETAIL', 'HPROCI_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_HDET_HTASK', 'JBPM4_HIST_DETAIL', 'HTASK_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_HDET_HVAR', 'JBPM4_HIST_DETAIL', 'HVAR_ ASC', 0;

/* =========== END of Table JBPM4_HIST_DETAIL =============*/


/*==============================================================*/
/* Table: JBPM4_HIST_PROCINST */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_HIST_PROCINST');
V_SQL:='create table JBPM4_HIST_PROCINST(
DBID_ NUMERIC(19) NOT NULL,
DBVERSION_ NUMERIC(10) NOT NULL,
ID_ VARCHAR2(255),
PROCDEFID_ VARCHAR2(255),
KEY_ VARCHAR2(255),
START_ TIMESTAMP,
END_ TIMESTAMP,
DURATION_ NUMERIC(19),
STATE_ VARCHAR2(255),
ENDACTIVITY_ VARCHAR2(255),
NEXTIDX_ NUMERIC(10),
PROC_INST_DESC_ VARCHAR2(1000),
PROC_EXE_NAME_ VARCHAR2(255),
DEPLOYMENT_ID_ NUMERIC(19),
constraint PK_HIST_PROINST primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_HIST_PROCINST', V_SQL, '','历史流程实例表,已经结束的流程实例的信息都存在此表中';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_PROCINST','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_PROCINST','DBVERSION_','NUMERIC(10)','','记录更改次数',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_PROCINST','ID_','VARCHAR2(255)','','流程实例id值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_PROCINST','PROCDEFID_','VARCHAR2(255)','','流程定义id',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_PROCINST','KEY_','VARCHAR2(255)','','流程实例标识',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_PROCINST','START_','TIMESTAMP','','开始时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_PROCINST','END_','TIMESTAMP','','结束时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_PROCINST','DURATION_','NUMERIC(19)','','持续时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_PROCINST','STATE_','VARCHAR2(255)','','实例状态',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_PROCINST','ENDACTIVITY_','VARCHAR2(255)','','结束实例的活动类型',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_PROCINST','NEXTIDX_','NUMERIC(10)','','流程实例对应的历史详细信息(存到JBPM4_HIST_DETAIL表中)索引(从1开始递增)【暂时没有用到】',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_PROCINST','PROC_INST_DESC_','VARCHAR2(1000)','','自定义的实例名称
调用者可以传参数过来',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_PROCINST','PROC_EXE_NAME_','VARCHAR2(255)','','流程运行名称
流程名称或父流程名->子流程名',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_PROCINST','DEPLOYMENT_ID_','NUMERIC(19)','','部署ID
与jbpm4_deployment表主键关联',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_HIST_PROCINST';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IX_HIST_INST_START', 'JBPM4_HIST_PROCINST', 'START_ DESC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IX_HISTINST_ID', 'JBPM4_HIST_PROCINST', 'ID_ DESC', 0;

/* =========== END of Table JBPM4_HIST_PROCINST =============*/


/*==============================================================*/
/* Table: JBPM4_HIST_TASK */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_HIST_TASK');
V_SQL:='create table JBPM4_HIST_TASK(
DBID_ NUMERIC(19) NOT NULL,
DBVERSION_ NUMERIC(10) NOT NULL,
EXECUTION_ VARCHAR2(255),
OUTCOME_ VARCHAR2(255),
ASSIGNEE_ VARCHAR2(255),
PRIORITY_ NUMERIC(10),
STATE_ VARCHAR2(255),
CREATE_ TIMESTAMP,
END_ TIMESTAMP,
DURATION_ NUMERIC(19),
NEXTIDX_ NUMERIC(10),
SUPERTASK_ NUMERIC(19),
ACTIVITY_NAME_ VARCHAR2(255),
PROCINST_ NUMERIC(19),
constraint PK_HIST_TASK primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_HIST_TASK', V_SQL, '','历史任务表,所有已经完成的任务都存储在该表中';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_TASK','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_TASK','DBVERSION_','NUMERIC(10)','','记录修改次数',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_TASK','EXECUTION_','VARCHAR2(255)','','流程执行实例',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_TASK','OUTCOME_','VARCHAR2(255)','','外向连线',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_TASK','ASSIGNEE_','VARCHAR2(255)','','任务处理人',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_TASK','PRIORITY_','NUMERIC(10)','','优先级',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_TASK','STATE_','VARCHAR2(255)','','任务状态',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_TASK','CREATE_','TIMESTAMP','','任务创建时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_TASK','END_','TIMESTAMP','','任务结束时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_TASK','DURATION_','NUMERIC(19)','','任务持续时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_TASK','NEXTIDX_','NUMERIC(10)','','任务对应的历史详细信息(存到JBPM4_HIST_DETAIL表中)索引(从1开始递增)【暂时没有用到】',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_TASK','SUPERTASK_','NUMERIC(19)','','上级任务',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_TASK','ACTIVITY_NAME_','VARCHAR2(255)','','活动名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_TASK','PROCINST_','NUMERIC(19)','','实例DBID,关联jbpm4_hist_procinst.dbid_',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_HIST_TASK';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_HIST_TASK_SUB', 'JBPM4_HIST_TASK', 'SUPERTASK_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_HIST_TASK_ASSIGNEE', 'JBPM4_HIST_TASK', 'ASSIGNEE_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_HIST_TASK_END', 'JBPM4_HIST_TASK', 'END_ DESC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_HIST_TASK_INST', 'JBPM4_HIST_TASK', 'PROCINST_ ASC', 0;

/* =========== END of Table JBPM4_HIST_TASK =============*/


/*==============================================================*/
/* Table: JBPM4_HIST_VAR */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_HIST_VAR');
V_SQL:='create table JBPM4_HIST_VAR(
DBID_ NUMERIC(19) NOT NULL,
DBVERSION_ NUMERIC(10) NOT NULL,
PROCINSTID_ VARCHAR2(255),
EXECUTIONID_ VARCHAR2(255),
VARNAME_ VARCHAR2(255),
VALUE_ VARCHAR2(255),
HPROCI_ NUMERIC(19),
HTASK_ NUMERIC(19),
constraint PK_HIST_VAR primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_HIST_VAR', V_SQL, '','历史变量表,已经结束的流程实例的变量信息都存储在该表中';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_VAR','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_VAR','DBVERSION_','NUMERIC(10)','','记录更改次数',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_VAR','PROCINSTID_','VARCHAR2(255)','','流程实例Id',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_VAR','EXECUTIONID_','VARCHAR2(255)','','执行实例id',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_VAR','VARNAME_','VARCHAR2(255)','','变量名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_VAR','VALUE_','VARCHAR2(255)','','变量值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_VAR','HPROCI_','NUMERIC(19)','','历史流程实例id',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_HIST_VAR','HTASK_','NUMERIC(19)','','历史任务id',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_HIST_VAR';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_HVAR_HPROCI', 'JBPM4_HIST_VAR', 'HPROCI_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_HVAR_HTASK', 'JBPM4_HIST_VAR', 'HTASK_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_HVAR_VARNAME', 'JBPM4_HIST_VAR', 'PROCINSTID_ ASC, VARNAME_ ASC', 0;

/* =========== END of Table JBPM4_HIST_VAR =============*/


/*==============================================================*/
/* Table: JBPM4_ID_GROUP */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_ID_GROUP');
V_SQL:='create table JBPM4_ID_GROUP(
DBID_ NUMERIC(19) NOT NULL,
DBVERSION_ NUMERIC(10) NOT NULL,
ID_ VARCHAR2(255),
NAME_ VARCHAR2(255),
TYPE_ VARCHAR2(255),
PARENT_ NUMERIC(19),
constraint PK_JBPM_ID_GROUP primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_ID_GROUP', V_SQL, '','群组表,目前 没用【暂时没有用到】';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_ID_GROUP','DBID_','NUMERIC(19)','','DBID_',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_ID_GROUP','DBVERSION_','NUMERIC(10)','','DBVERSION_',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_ID_GROUP','ID_','VARCHAR2(255)','','ID_',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_ID_GROUP','NAME_','VARCHAR2(255)','','NAME_',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_ID_GROUP','TYPE_','VARCHAR2(255)','','TYPE_',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_ID_GROUP','PARENT_','NUMERIC(19)','','PARENT_',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_ID_GROUP';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_GROUP_PARENT', 'JBPM4_ID_GROUP', 'PARENT_ ASC', 0;

/* =========== END of Table JBPM4_ID_GROUP =============*/


/*==============================================================*/
/* Table: JBPM4_ID_MEMBERSHIP */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_ID_MEMBERSHIP');
V_SQL:='create table JBPM4_ID_MEMBERSHIP(
DBID_ NUMERIC(19) NOT NULL,
DBVERSION_ NUMERIC(10) NOT NULL,
USER_ NUMERIC(19),
GROUP_ NUMERIC(19),
NAME_ VARCHAR2(255),
constraint PK_JBPM_ID_MBSHIP primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_ID_MEMBERSHIP', V_SQL, '','用户群组关联表,目前没使用【暂时没有用到】';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_ID_MEMBERSHIP','DBID_','NUMERIC(19)','','DBID_',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_ID_MEMBERSHIP','DBVERSION_','NUMERIC(10)','','DBVERSION_',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_ID_MEMBERSHIP','USER_','NUMERIC(19)','','USER_',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_ID_MEMBERSHIP','GROUP_','NUMERIC(19)','','GROUP_',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_ID_MEMBERSHIP','NAME_','VARCHAR2(255)','','NAME_',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_ID_MEMBERSHIP';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_MEM_GROUP', 'JBPM4_ID_MEMBERSHIP', 'GROUP_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_MEM_USER', 'JBPM4_ID_MEMBERSHIP', 'USER_ ASC', 0;

/* =========== END of Table JBPM4_ID_MEMBERSHIP =============*/


/*==============================================================*/
/* Table: JBPM4_ID_USER */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_ID_USER');
V_SQL:='create table JBPM4_ID_USER(
DBID_ NUMERIC(19) NOT NULL,
DBVERSION_ NUMERIC(10) NOT NULL,
ID_ VARCHAR2(255),
PASSWORD_ VARCHAR2(255),
GIVENNAME_ VARCHAR2(255),
FAMILYNAME_ VARCHAR2(255),
BUSINESSEMAIL_ VARCHAR2(255),
constraint PK_JBPM_ID_USER primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_ID_USER', V_SQL, '','用户表,目前没使用【暂时没有用到】';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_ID_USER','DBID_','NUMERIC(19)','','DBID_',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_ID_USER','DBVERSION_','NUMERIC(10)','','DBVERSION_',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_ID_USER','ID_','VARCHAR2(255)','','ID_',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_ID_USER','PASSWORD_','VARCHAR2(255)','','PASSWORD_',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_ID_USER','GIVENNAME_','VARCHAR2(255)','','GIVENNAME_',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_ID_USER','FAMILYNAME_','VARCHAR2(255)','','FAMILYNAME_',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_ID_USER','BUSINESSEMAIL_','VARCHAR2(255)','','BUSINESSEMAIL_',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_ID_USER';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_JBPMIDUSER_ID', 'JBPM4_ID_USER', 'ID_ ASC', 0;

/* =========== END of Table JBPM4_ID_USER =============*/


/*==============================================================*/
/* Table: JBPM4_JOB */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_JOB');
V_SQL:='create table JBPM4_JOB(
DBID_ NUMERIC(19) NOT NULL,
CLASS_ VARCHAR2(255) NOT NULL,
DBVERSION_ NUMERIC(10) NOT NULL,
DUEDATE_ TIMESTAMP,
STATE_ VARCHAR2(255),
ISEXCLUSIVE_ NUMERIC(1),
LOCKOWNER_ VARCHAR2(255),
LOCKEXPTIME_ TIMESTAMP,
EXCEPTION_ CLOB,
RETRIES_ NUMERIC(10),
PROCESSINSTANCE_ NUMERIC(19),
EXECUTION_ NUMERIC(19),
CFG_ NUMERIC(19),
SIGNAL_ VARCHAR2(255),
EVENT_ VARCHAR2(255),
REPEAT_ VARCHAR2(255),
constraint PK_JBPM_JOB primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_JOB', V_SQL, '','任务表,用于存放定时任务';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_JOB','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_JOB','CLASS_','VARCHAR2(255)','','类名,job',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_JOB','DBVERSION_','NUMERIC(10)','','版本属性(用于实现Hibernate的乐观锁)',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_JOB','DUEDATE_','TIMESTAMP','','任务到期时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_JOB','STATE_','VARCHAR2(255)','','任务状态:waiting,acquired,error,suspended',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_JOB','ISEXCLUSIVE_','NUMERIC(1)','','表示该任务是否排它的,是否可以和别的任务一起执行',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_JOB','LOCKOWNER_','VARCHAR2(255)','','任务被哪个任务执行器锁住了',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_JOB','LOCKEXPTIME_','TIMESTAMP','','任务锁住到期时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_JOB','EXCEPTION_','CLOB','','如果任务执行期间有异常,则该属性表示异常信息',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_JOB','RETRIES_','NUMERIC(10)','','任务失败后还可以重试多少次',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_JOB','PROCESSINSTANCE_','NUMERIC(19)','','任务相关的流程实例号',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_JOB','EXECUTION_','NUMERIC(19)','','任务相关的执行实例号',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_JOB','CFG_','NUMERIC(19)','','任务配置信息',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_JOB','SIGNAL_','VARCHAR2(255)','','定时任务时,该属性有效',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_JOB','EVENT_','VARCHAR2(255)','','事件名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_JOB','REPEAT_','VARCHAR2(255)','','重复次数',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_JOB';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_JOBDUEDATE', 'JBPM4_JOB', 'DUEDATE_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_JOBLOCKEXP', 'JBPM4_JOB', 'LOCKEXPTIME_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_JOBRETRIES', 'JBPM4_JOB', 'RETRIES_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_JOB_CFG', 'JBPM4_JOB', 'CFG_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_JOB_EXE', 'JBPM4_JOB', 'EXECUTION_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_JOB_PRINST', 'JBPM4_JOB', 'PROCESSINSTANCE_ ASC', 0;

/* =========== END of Table JBPM4_JOB =============*/


/*==============================================================*/
/* Table: JBPM4_LOB */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_LOB');
V_SQL:='create table JBPM4_LOB(
DBID_ NUMERIC(19) NOT NULL,
DBVERSION_ NUMERIC(10) NOT NULL,
BLOB_VALUE_ BLOB,
DEPLOYMENT_ NUMERIC(19),
NAME_ VARCHAR2(255),
constraint PK_JBPM_LOB primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_LOB', V_SQL, '','大字段表,系统中所有需要存放大字段的都放到此表中';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_LOB','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_LOB','DBVERSION_','NUMERIC(10)','','版本属性(用于实现Hibernate的乐观锁)',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_LOB','BLOB_VALUE_','BLOB','','blob值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_LOB','DEPLOYMENT_','NUMERIC(19)','','只有该记录关联了发布属性表中的xml内容,此属性才有意义',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_LOB','NAME_','VARCHAR2(255)','','blob值对应的名称',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_LOB';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_LOB_DEPLOYMENT', 'JBPM4_LOB', 'DEPLOYMENT_ ASC', 0;

/* =========== END of Table JBPM4_LOB =============*/


/*==============================================================*/
/* Table: JBPM4_PARTICIPATION */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_PARTICIPATION');
V_SQL:='create table JBPM4_PARTICIPATION(
DBID_ NUMERIC(19) NOT NULL,
DBVERSION_ NUMERIC(10) NOT NULL,
GROUPID_ VARCHAR2(255),
USERID_ VARCHAR2(255),
TYPE_ VARCHAR2(255),
TASK_ NUMERIC(19),
SWIMLANE_ NUMERIC(19),
AGENT_USERID_ VARCHAR2(255),
constraint PK_PARTICIPATION primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_PARTICIPATION', V_SQL, '','任务候选人关联表,定义了待办任务和处理该任务的候选用户、群组之间的关联关系';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_PARTICIPATION','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_PARTICIPATION','DBVERSION_','NUMERIC(10)','','版本属性(用于实现Hibernate的乐观锁)',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_PARTICIPATION','GROUPID_','VARCHAR2(255)','','群组id(目前是群组类型编码+冒号+群组编码)',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_PARTICIPATION','USERID_','VARCHAR2(255)','','用户id(目前是用户登录名)',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_PARTICIPATION','TYPE_','VARCHAR2(255)','','参与者和任务的关系,目前只用到了candidate,任务产生时无论候选和指定都是candidate',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_PARTICIPATION','TASK_','NUMERIC(19)','','任务id',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_PARTICIPATION','SWIMLANE_','NUMERIC(19)','','泳道',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_PARTICIPATION','AGENT_USERID_','VARCHAR2(255)','','代理人ID',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_PARTICIPATION';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_PART_TASK', 'JBPM4_PARTICIPATION', 'TASK_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_PART_USER', 'JBPM4_PARTICIPATION', 'USERID_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_PART_GROUP', 'JBPM4_PARTICIPATION', 'GROUPID_ ASC', 0;

/* =========== END of Table JBPM4_PARTICIPATION =============*/


/*==============================================================*/
/* Table: JBPM4_PROPERTY */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_PROPERTY');
V_SQL:='create table JBPM4_PROPERTY(
KEY_ VARCHAR2(255) NOT NULL,
VERSION_ NUMERIC(10) NOT NULL,
VALUE_ VARCHAR2(255),
constraint PK_JBPM_PROPERTY primary key (KEY_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_PROPERTY', V_SQL, '','全局属性表,定义引擎获取主键的当前值';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_PROPERTY','KEY_','VARCHAR2(255)','','引擎KEY 比如next.dbid 下次执行的DBID_',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_PROPERTY','VERSION_','NUMERIC(10)','','版本号',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_PROPERTY','VALUE_','VARCHAR2(255)','','对应的引擎KEY的VALUE(=版本号*10000+1)',0;


/*初始化数据*/
execute immediate 'call WF_SP_INITDATA(:1,:2,:3,:4)' USING 'JBPM4_PROPERTY', 'KEY_=''next.dbid''','(KEY_,VERSION_,VALUE_)','(''next.dbid'',1,''10000'')';
/* =========== END of Table JBPM4_PROPERTY =============*/


/*==============================================================*/
/* Table: JBPM4_SWIMLANE */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_SWIMLANE');
V_SQL:='create table JBPM4_SWIMLANE(
DBID_ NUMERIC(19) NOT NULL,
DBVERSION_ NUMERIC(10) NOT NULL,
NAME_ VARCHAR2(255),
ASSIGNEE_ VARCHAR2(255),
EXECUTION_ NUMERIC(19),
constraint PK_JBPM_SWIMLANE primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_SWIMLANE', V_SQL, '','泳道表,定义了一个泳道里面有哪些用户【暂时没有用到】';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_SWIMLANE','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_SWIMLANE','DBVERSION_','NUMERIC(10)','','版本属性(用于实现Hibernate的乐观锁)',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_SWIMLANE','NAME_','VARCHAR2(255)','','泳道名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_SWIMLANE','ASSIGNEE_','VARCHAR2(255)','','参与人',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_SWIMLANE','EXECUTION_','NUMERIC(19)','','执行实例号',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_SWIMLANE';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_SWIMLANE_EXEC', 'JBPM4_SWIMLANE', 'EXECUTION_ ASC', 0;

/* =========== END of Table JBPM4_SWIMLANE =============*/


/*==============================================================*/
/* Table: JBPM4_TASK */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_TASK');
V_SQL:='create table JBPM4_TASK(
DBID_ NUMERIC(19) NOT NULL,
CLASS_ CHAR(1) NOT NULL,
DBVERSION_ NUMERIC(10) NOT NULL,
NAME_ VARCHAR2(255),
DESCR_ CLOB,
STATE_ VARCHAR2(255),
SUSPHISTSTATE_ VARCHAR2(255),
ASSIGNEE_ VARCHAR2(255),
FORM_ VARCHAR2(255),
PRIORITY_ NUMERIC(10),
CREATE_ TIMESTAMP,
DUEDATE_ TIMESTAMP,
PROGRESS_ NUMERIC(10),
SIGNALLING_ NUMERIC(1),
EXECUTION_ID_ VARCHAR2(255),
ACTIVITY_NAME_ VARCHAR2(255),
HASVARS_ NUMERIC(1),
SUPERTASK_ NUMERIC(19),
EXECUTION_ NUMERIC(19),
PROCINST_ NUMERIC(19),
SWIMLANE_ NUMERIC(19),
TASKDEFNAME_ VARCHAR2(255),
BIZ_REF_ID_ VARCHAR2(255),
PRE_OPERATORS_ VARCHAR2(500),
SUB_STATE_ VARCHAR2(50),
VISIBLE_ CHAR(1),
constraint PK_JBPM_TASK primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_TASK', V_SQL, '','待办任务表,包含系统中所有的待办任务';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','CLASS_','CHAR(1)','','任务映射的类的类型,T',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','DBVERSION_','NUMERIC(10)','','版本属性(用于实现Hibernate的乐观锁)',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','NAME_','VARCHAR2(255)','','任务名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','DESCR_','CLOB','','任务描述',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','STATE_','VARCHAR2(255)','','任务状态,具体状态信息参见jbpm4_ext_combobox_表中"任务状态"对应的几种值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','SUSPHISTSTATE_','VARCHAR2(255)','','挂起前的任务状态',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','ASSIGNEE_','VARCHAR2(255)','','任务的指定处理人',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','FORM_','VARCHAR2(255)','','任务对应表单的地址',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','PRIORITY_','NUMERIC(10)','','任务优先级,在流程设计时可以指定priority',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','CREATE_','TIMESTAMP','','任务创建时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','DUEDATE_','TIMESTAMP','','任务持续时间',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','PROGRESS_','NUMERIC(10)','','0-100,任务进展的百分比',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','SIGNALLING_','NUMERIC(1)','','任务是否被signal过,任务产生时改值为1',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','EXECUTION_ID_','VARCHAR2(255)','','执行实例id',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','ACTIVITY_NAME_','VARCHAR2(255)','','节点名',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','HASVARS_','NUMERIC(1)','','任务是否有局部变量',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','SUPERTASK_','NUMERIC(19)','','主任务',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','EXECUTION_','NUMERIC(19)','','执行实例对应的主键值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','PROCINST_','NUMERIC(19)','','任务所在流程实例主键值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','SWIMLANE_','NUMERIC(19)','','任务相关的泳道',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','TASKDEFNAME_','VARCHAR2(255)','','任务定义名称,等效于节点名',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','BIZ_REF_ID_','VARCHAR2(255)','','业务关联ID',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','PRE_OPERATORS_','VARCHAR2(500)','','上一步处理人的名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','SUB_STATE_','VARCHAR2(50)','','任务子状态,任务状态分两级处理,第一级系统状态由流程引擎标记使用,第二级子状态标记显示的状态',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_TASK','VISIBLE_','CHAR(1)','','实例图上是否显示任务详细信息(Y:显示 N:不显示)',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_TASK';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_TASK_SUPERTASK', 'JBPM4_TASK', 'SUPERTASK_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_TASK_ASSIGNEE', 'JBPM4_TASK', 'ASSIGNEE_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_TASK_CREATE', 'JBPM4_TASK', 'CREATE_ DESC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_TASK_EXEC', 'JBPM4_TASK', 'EXECUTION_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_TASK_PROCINST', 'JBPM4_TASK', 'PROCINST_ ASC', 0;

/* =========== END of Table JBPM4_TASK =============*/


/*==============================================================*/
/* Table: JBPM4_VARIABLE */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_VARIABLE');
V_SQL:='create table JBPM4_VARIABLE(
DBID_ NUMERIC(19) NOT NULL,
CLASS_ VARCHAR2(255) NOT NULL,
DBVERSION_ NUMERIC(10) NOT NULL,
KEY_ VARCHAR2(255),
CONVERTER_ VARCHAR2(255),
HIST_ NUMERIC(1),
EXECUTION_ NUMERIC(19),
TASK_ NUMERIC(19),
LOB_ NUMERIC(19),
DATE_VALUE_ TIMESTAMP,
DOUBLE_VALUE_ FLOAT,
CLASSNAME_ VARCHAR2(255),
LONG_VALUE_ NUMERIC(19),
STRING_VALUE_ VARCHAR2(255),
TEXT_VALUE_ CLOB,
EXESYS_ NUMERIC(19),
constraint PK_JBPM_VAR primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_VARIABLE', V_SQL, '','变量表,系统中所有正在运行的任务相关的所有变量';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_VARIABLE','DBID_','NUMERIC(19)','','主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_VARIABLE','CLASS_','VARCHAR2(255)','','此记录对应的对象类型:blob,date,double,hib-long(hibernate long),hib-string,long,string,text',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_VARIABLE','DBVERSION_','NUMERIC(10)','','版本属性(用于实现Hibernate的乐观锁)',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_VARIABLE','KEY_','VARCHAR2(255)','','变量编码',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_VARIABLE','CONVERTER_','VARCHAR2(255)','','变量类型转换器',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_VARIABLE','HIST_','NUMERIC(1)','','是否需要保存到历史变量表中',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_VARIABLE','EXECUTION_','NUMERIC(19)','','关联的执行实例Id',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_VARIABLE','TASK_','NUMERIC(19)','','关联的任务id',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_VARIABLE','LOB_','NUMERIC(19)','','如果变量是大字段,则该属性表示大字段表中的唯一标识符',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_VARIABLE','DATE_VALUE_','TIMESTAMP','','日期值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_VARIABLE','DOUBLE_VALUE_','FLOAT','','double值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_VARIABLE','CLASSNAME_','VARCHAR2(255)','','如果是hibernatestr,hibernatelong时,此属性值才有意义',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_VARIABLE','LONG_VALUE_','NUMERIC(19)','','long值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_VARIABLE','STRING_VALUE_','VARCHAR2(255)','','字符串值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_VARIABLE','TEXT_VALUE_','CLOB','','大字段文本值',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_VARIABLE','EXESYS_','NUMERIC(19)','','EXESYS_',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_VARIABLE';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_VAR_EXECUTION', 'JBPM4_VARIABLE', 'EXECUTION_ ASC', 0;

/* =========== END of Table JBPM4_VARIABLE =============*/


/*==============================================================*/
/* Table: 流程节点定义详情 */
/*==============================================================*/
dbms_output.put_line('Table: 流程节点定义详情');
V_SQL:='create table JBPM4_EXT_TASKDEF_DETAIL(
DBID_ NUMERIC(19) NOT NULL,
PROCESS_KEY_ VARCHAR2(64) NOT NULL,
PROCESS_NAME_ VARCHAR2(255) NOT NULL,
VERSION_ID_ NUMERIC(19) NOT NULL,
VERSION_NO_ NUMERIC(5),
NODE_NAME_ VARCHAR2(255) NOT NULL,
NODE_TYPE_ VARCHAR2(16) NOT NULL,
PARTICIPANT_TYPE_ VARCHAR2(16),
TYPE_CODE_ VARCHAR2(16),
TYPE_NAME_ VARCHAR2(255),
USER_ID_ VARCHAR2(64),
GROUP_ID_ VARCHAR2(64),
SCRIPT_ VARCHAR2(255),
NAME_ VARCHAR2(255),
DATE_ DATE,
constraint PK_ACTIVITY_DTL primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_TASKDEF_DETAIL', V_SQL, '','解析流程定义XML的每个任务定义的详情';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TASKDEF_DETAIL','DBID_','NUMERIC(19)','','数据库主键',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TASKDEF_DETAIL','PROCESS_KEY_','VARCHAR2(64)','','流程KEY',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TASKDEF_DETAIL','PROCESS_NAME_','VARCHAR2(255)','','流程名称',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TASKDEF_DETAIL','VERSION_ID_','NUMERIC(19)','','版本ID',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TASKDEF_DETAIL','VERSION_NO_','NUMERIC(5)','','版本号',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TASKDEF_DETAIL','NODE_NAME_','VARCHAR2(255)','','节点名称',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TASKDEF_DETAIL','NODE_TYPE_','VARCHAR2(16)','','节点类型',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TASKDEF_DETAIL','PARTICIPANT_TYPE_','VARCHAR2(16)','','参与人,知会人,分阅人',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TASKDEF_DETAIL','TYPE_CODE_','VARCHAR2(16)','','参与人类型, 组织/角色/指定用户/表达式',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TASKDEF_DETAIL','TYPE_NAME_','VARCHAR2(255)','','参与人类型名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TASKDEF_DETAIL','USER_ID_','VARCHAR2(64)','','用户ID',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TASKDEF_DETAIL','GROUP_ID_','VARCHAR2(64)','','群组组ID',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TASKDEF_DETAIL','SCRIPT_','VARCHAR2(255)','','参与人表达式',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TASKDEF_DETAIL','NAME_','VARCHAR2(255)','','参与人名称',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_TASKDEF_DETAIL','DATE_','DATE','','时间戳',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_TASKDEF_DETAIL';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_EXT_TDEF_UID', 'JBPM4_EXT_TASKDEF_DETAIL', 'USER_ID_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_EXT_TDEF_GROUP', 'JBPM4_EXT_TASKDEF_DETAIL', 'GROUP_ID_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_EXT_TDEF_VER', 'JBPM4_EXT_TASKDEF_DETAIL', 'VERSION_ID_ ASC', 0;
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_EXT_TDEF_KEY', 'JBPM4_EXT_TASKDEF_DETAIL', 'PROCESS_KEY_ ASC', 0;

/* =========== END of Table JBPM4_EXT_TASKDEF_DETAIL =============*/


/*==============================================================*/
/* Table: JBPM4_EXT_DELEGATE_DETAIL */
/*==============================================================*/
dbms_output.put_line('Table: JBPM4_EXT_DELEGATE_DETAIL');
V_SQL:='create table JBPM4_EXT_DELEGATE_DETAIL(
DBID_ NUMERIC(19) NOT NULL,
DELEGATE_ID_ NUMERIC(19) NOT NULL,
PROCESS_KEY_ VARCHAR2(255),
ACTIVITY_NAME_ VARCHAR2(255),
EXT_FIELD_ VARCHAR2(255),
constraint PK_DELEGATE_DETAIL primary key (DBID_)
)';
execute immediate 'call WF_SP_CREATETABLE(:1,:2,:3,:4)' using 'JBPM4_EXT_DELEGATE_DETAIL', V_SQL, '','流程委托详情表,记录对指定流程进行授权委托的信息';

execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DELEGATE_DETAIL','DBID_','NUMERIC(19)','','DBID_',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DELEGATE_DETAIL','DELEGATE_ID_','NUMERIC(19)','','DELEGATE_ID_',1;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DELEGATE_DETAIL','PROCESS_KEY_','VARCHAR2(255)','','PROCESS_KEY_',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DELEGATE_DETAIL','ACTIVITY_NAME_','VARCHAR2(255)','','ACTIVITY_NAME_',0;
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'JBPM4_EXT_DELEGATE_DETAIL','EXT_FIELD_','VARCHAR2(255)','','EXT_FIELD_',0;

execute immediate 'call WF_SP_DROPINDEXS(:1)' USING 'JBPM4_EXT_DELEGATE_DETAIL';
execute immediate 'call WF_SP_ADDINDEX(:1,:2,:3,:4)' USING 'IDX_DELEGATE_DT_ID', 'JBPM4_EXT_DELEGATE_DETAIL', 'DELEGATE_ID_ ASC', 0;

/* =========== END of Table JBPM4_EXT_DELEGATE_DETAIL =============*/

COMMIT;


/*==============================================================*/
/* 工作流数据库-视图 */
/*==============================================================*/
-- 删除物化视图
SELECT COUNT(1) INTO V_COUNT FROM USER_OBJECTS WHERE OBJECT_NAME ='JBPM4_EXT_TODO_TASK' AND OBJECT_TYPE='MATERIALIZED VIEW';
IF V_COUNT > 0 THEN
EXECUTE IMMEDIATE 'DROP MATERIALIZED VIEW JBPM4_EXT_TODO_TASK';
COMMIT;
END IF;
SELECT COUNT(1) INTO V_COUNT FROM USER_OBJECTS WHERE OBJECT_NAME ='JBPM4_EXT_TODO_TASK' AND OBJECT_TYPE='TABLE';
IF V_COUNT > 0 THEN
EXECUTE IMMEDIATE 'DROP TABLE JBPM4_EXT_TODO_TASK';
COMMIT;
END IF;

/* 视图: JBPM4_EXT_HTASK_ */
dbms_output.put_line('视图: JBPM4_EXT_HTASK_');
V_SQL:='CREATE OR REPLACE VIEW JBPM4_EXT_HTASK_ AS SELECT T.DBID_ AS ID_,
T.ACTIVITY_NAME_ AS ACTIVITY_NAME_,
P.PROC_EXE_NAME_ AS PROC_NAME_,
T.CREATE_ AS CREATE_,
T.END_ AS END_,
T.DURATION_ AS DURATION_,
T.STATE_ AS STATE_,
T.ASSIGNEE_ AS ASSIGNEE_,
EXT.ASSIGNEE_NAME_ AS ASSIGNEE_NAME_, /*任务处理人名称*/
P.DEPLOYMENT_ID_ AS DEPLOYMENT_ID_,
P.ID_ AS HSBPM_INSTANCE_,
T.EXECUTION_ AS EXECUTION_ID_,
T.SUPERTASK_ AS SUPERTASK_,
EXT.NAME_ AS NAME_,
EXT.BIZ_FLOW_UUID_ AS BIZ_FLOW_UUID_,
P.PROCDEFID_ AS PROCDEFID_,
T.OUTCOME_ AS OUTCOME_,
P.PROC_INST_DESC_ AS PROC_INST_DESC_,
EXT.EXTFIELD1 AS TASKOUTCOMEACTION,
EXT.EXTFIELD2 AS NEXTNODEOPERATOR,
EXT.TASKSTATUS AS TASKSTATUS,
EXT.CLASS_ AS CLASS_,
EXT.ARCHIVE_STATUS AS ARCHIVESTATUS, /*任务是否归档*/
EXT.AGENT_ID_ AS AGENT_ID_, /*代理人ID*/
EXT.AGENT_NAME_ AS AGENT_NAME_, /*代理人NAME*/
S.STARTER_ AS STARTER_,
S.STARTER_NAME_ AS STARTER_NAME_,
S.ORG_ID_ AS ORG_ID_,
S.ORG_NAME_ AS ORG_NAME_,
EXT.PARENT_TASK_ AS PARENT_TASK_,
EXT.VISIBLE_ AS VISIBLE_,
T.PRIORITY_ AS PRIORITY_,
EXT.EXTFIELD1 AS ACTION_NAME_
FROM JBPM4_HIST_PROCINST P,
JBPM4_HIST_TASK T,
JBPM4_EXT_HIST_TASK EXT,
JBPM4_EXT_START S
WHERE T.PROCINST_ = P.DBID_
AND S.DBID_ = P.DBID_
AND EXT.DBID_ = T.DBID_ WITH READ ONLY';
EXECUTE IMMEDIATE V_SQL;

/* 视图: JBPM4_EXT_SIGN_TASK_ */
dbms_output.put_line('视图: JBPM4_EXT_SIGN_TASK_');
V_SQL:='CREATE OR REPLACE VIEW JBPM4_EXT_SIGN_TASK_ AS SELECT
T.DBID_ AS ID_,
T.NAME_ AS NAME_,
T.DESCR_ AS DESCR_,
INST.PROC_EXE_NAME_ AS PROC_NAME_,
T.CREATE_ AS CREATE_,
T.STATE_ AS STATE_,
T.ASSIGNEE_ AS ASSIGNEE_,
INST.DEPLOYMENT_ID_ AS DEPLOYMENT_ID_,
E.ID_ AS EXECUTION_ID_,
P.USERID_ AS USERID_,
P.GROUPID_ AS GROUPID_,
T.SUPERTASK_ AS SUPERTASK_,
T.ACTIVITY_NAME_ AS ACTIVITY_NAME_,
E.PROCDEFID_ AS PROCDEFID_,
T.BIZ_REF_ID_ AS BIZ_FLOW_UUID_,
'''' AS CANDIDATES,
T.PRE_OPERATORS_ AS LASTOPERATORS
FROM
JBPM4_TASK T,
JBPM4_PARTICIPATION P,
JBPM4_EXECUTION E,
JBPM4_HIST_PROCINST INST
WHERE
T.PROCINST_ = E.DBID_
AND T.DBID_ = P.TASK_
AND T.ASSIGNEE_ IS NULL
AND E.INSTANCE_=INST.DBID_ WITH READ ONLY';
EXECUTE IMMEDIATE V_SQL;

/* 视图: JBPM4_EXT_START_ */
dbms_output.put_line('视图: JBPM4_EXT_START_');
V_SQL:='CREATE OR REPLACE VIEW JBPM4_EXT_START_ AS SELECT
STARTTMP.DBID_,
STARTTMP.STARTER_,
STARTTMP.STARTER_NAME_,
STARTTMP.PROCESS_INSTANCE_,
STARTTMP.STATE_,
STARTTMP.CREATE_,
STARTTMP.END_,
STARTTMP.ORG_ID_,
STARTTMP.ORG_NAME_,
STARTTMP.PROC_NAME_,
HISPROC.PROCDEFID_,
HISPROC.PROC_INST_DESC_ AS PROC_INST_DESC
FROM
JBPM4_EXT_START STARTTMP,
JBPM4_HIST_PROCINST HISPROC
WHERE
STARTTMP.DBID_ = HISPROC.DBID_ WITH READ ONLY';
EXECUTE IMMEDIATE V_SQL;

/* 视图: JBPM4_EXT_TASK_ */
dbms_output.put_line('视图: JBPM4_EXT_TASK_');
V_SQL:='CREATE OR REPLACE VIEW JBPM4_EXT_TASK_ AS SELECT
T.DBID_ AS ID_,
T.NAME_ AS NAME_,
T.DESCR_ AS DESCR_,
INST.PROC_EXE_NAME_ AS PROC_NAME_,
T.CREATE_ AS CREATE_,
T.STATE_ AS STATE_,
T.ASSIGNEE_ AS ASSIGNEE_,
INST.ID_ AS EXECUTION_ID_,
INST.DEPLOYMENT_ID_ AS DEPLOYMENT_ID_,
T.SUPERTASK_ AS SUPERTASK_,
T.ACTIVITY_NAME_ AS ACTIVITY_NAME_,
INST.PROCDEFID_ AS PROCDEFID_,
T.BIZ_REF_ID_ AS BIZ_FLOW_UUID_,
'''' AS CANDIDATES,
T.PRE_OPERATORS_
FROM
JBPM4_TASK T,
JBPM4_HIST_PROCINST INST
WHERE
T.PROCINST_ = INST.DBID_
AND T.ASSIGNEE_ IS NOT NULL WITH READ ONLY';
EXECUTE IMMEDIATE V_SQL;

/* 视图: JBPM4_EXT_TASK_ENGINE_ */
dbms_output.put_line('视图: JBPM4_EXT_TASK_ENGINE_');
V_SQL:='CREATE OR REPLACE VIEW JBPM4_EXT_TASK_ENGINE_ AS SELECT
T.DBID_ AS ID_,
T.CLASS_ AS CLASS_,
/*任务类型*/
T.NAME_ AS NAME_,
T.DESCR_ AS DESCR_,
HISPROCINST.PROC_EXE_NAME_ AS PROC_NAME_,
T.CREATE_ AS CREATE_,
T.STATE_ AS STATE_,
T.ASSIGNEE_ AS ASSIGNEE_,
T.PRIORITY_ AS PRIORITY_,
HISPROCINST.DEPLOYMENT_ID_ AS DEPLOYMENT_ID_,
HISPROCINST.ID_ AS EXECUTION_ID_,
T.SUPERTASK_ AS SUPERTASK_,
T.ACTIVITY_NAME_ AS ACTIVITY_NAME_,
HISPROCINST.PROCDEFID_ AS PROCDEFID_,
T.BIZ_REF_ID_ AS BIZ_FLOW_UUID_,
'''' AS CANDIDATES,
T.PRE_OPERATORS_ AS LASTOPERATORS,
T.SUB_STATE_ AS TASKSTATUS,
HISPROCINST.PROC_INST_DESC_ AS PROC_INST_DESC_,
S.STARTER_ AS STARTER_,
S.STARTER_NAME_ AS STARTER_NAME_,
S.ORG_ID_ AS ORG_ID_,
S.ORG_NAME_ AS ORG_NAME_,
D.PROCESS_KEY_ AS PROCESSID,
D.VERSION_ AS VERSION_,
T.VISIBLE_ AS VISIBLE_
FROM
JBPM4_TASK T,
JBPM4_HIST_PROCINST HISPROCINST,
JBPM4_EXT_START S, JBPM4_DEPLOYMENT D
WHERE
T.PROCINST_ = HISPROCINST.DBID_
AND S.DBID_=HISPROCINST.DBID_
AND HISPROCINST.DEPLOYMENT_ID_=D.DBID_
AND HISPROCINST.STATE_ = ''active'' WITH READ ONLY';
EXECUTE IMMEDIATE V_SQL;

/* 视图: JBPM4_EXT_V_NOTICEDETAIL */
dbms_output.put_line('视图: JBPM4_EXT_V_NOTICEDETAIL');
V_SQL:='CREATE OR REPLACE VIEW JBPM4_EXT_V_NOTICEDETAIL AS SELECT
NOTICERECIVER.DBID_ AS NOTICEDBID,
NOTICE.MSG_SENDER,
NOTICE.MSG_TITLE,
NOTICE.MSG_CONTENT,
NOTICE.CREATETIME,
NOTICE.TASKID,
HISTASK.NAME_ AS ACTIVITY_NAME,
NOTICE.PROCESS_INSTANCE_ID,
NOTICE.PROCESS_DEF_ID,
NOTICE.PROCESS_DEF_NAME,
NOTICE.ISALIVE AS NOTICEISALIVE,
NOTICERECIVER.RECIVERNAME,
NOTICERECIVER.RECIVERCODE,
NOTICERECIVER.RECIVER_TYPE,
NOTICERECIVER.RECIVER_TYPE_NAME,
NOTICERECIVER.GROUP_DONE_TYPE,
NOTICERECIVER.ISALIVE AS RECVISALIVE
FROM
JBPM4_EXT_NOTICE NOTICE,
JBPM4_EXT_NOTICE_RECIVER NOTICERECIVER,
JBPM4_EXT_HIST_TASK HISTASK
WHERE
NOTICE.DBID_ = NOTICERECIVER.NOTICEDBID
AND HISTASK.DBID_= NOTICE.TASKID WITH READ ONLY';
EXECUTE IMMEDIATE V_SQL;

/* 视图: JBPM4_EXT_V_NOTICESTATUS */
dbms_output.put_line('视图: JBPM4_EXT_V_NOTICESTATUS');
V_SQL:='CREATE OR REPLACE VIEW JBPM4_EXT_V_NOTICESTATUS AS SELECT
NOTICESTATUS.DBID_ AS NOTICEDBID,
NOTICE.MSG_SENDER,
NOTICE.MSG_SENDER_NAME,
NOTICE.MSG_TITLE,
NOTICE.MSG_CONTENT,
NOTICE.TASKID,
HISTASK.NAME_ AS ACTIVITY_NAME,
NOTICE.PROCESS_INSTANCE_ID,
NOTICE.PROCESS_DEF_ID,
NOTICE.PROCESS_DEF_NAME,
NOTICE.ISALIVE AS NOTICEISALIVE,
NOTICESTATUS.RECIVER,
NOTICESTATUS.RECIVER_NAME,
NOTICESTATUS.HAS_READ,
NOTICESTATUS.CREATE_TIME,
NOTICESTATUS.READ_TIME,
NOTICESTATUS.NOTICEMSG,
NOTICESTATUS.ISALIVE AS NOTSTAISALIVE
FROM
JBPM4_EXT_NOTICE NOTICE,
JBPM4_EXT_NOTICE_STATUS NOTICESTATUS,
JBPM4_EXT_HIST_TASK HISTASK
WHERE
NOTICE.DBID_ = NOTICESTATUS.NOTICEDBID
AND NOTICE.TASKID = HISTASK.DBID_ WITH READ ONLY';
EXECUTE IMMEDIATE V_SQL;

/* 视图: V_FORM_RES_STATUS */
dbms_output.put_line('视图: V_FORM_RES_STATUS');
V_SQL:='CREATE OR REPLACE VIEW V_FORM_RES_STATUS AS SELECT
RESSTATUS.UUID AS RESSTATUSUUID,
RESSTATUS.RESUUID AS RESUUID,
RESSTATUS.PROCESSVERSIONID,
RESSTATUS.PROCESSNODEID,
RESSTATUS.RESSTATUS,
RESREG.FORMID,
RESREG.RESID,
RESREG.RESNAME,
RESREG.RESTYPE
FROM
JBPM4_EXT_FORM_RESSTATUS RESSTATUS,
JBPM4_EXT_FORM_RESREG RESREG
WHERE
RESSTATUS.RESUUID = RESREG.UUID WITH READ ONLY';
EXECUTE IMMEDIATE V_SQL;

/* 视图: V_PRO_VER_CAN_START */
dbms_output.put_line('视图: V_PRO_VER_CAN_START');
V_SQL:='CREATE OR REPLACE VIEW V_PRO_VER_CAN_START AS SELECT
PRO.DBID_ AS PRODBID,
PRO.PROCESS_ID,
PRO.PROCESS_NAME,
PROTYPE.DBID_ AS PROTYPEID,
PROTYPE.TYPE_NAME,
VER.DBID_ AS VERSIONDBID,
VER. VERSION,
VER.STATE,
VER.DESCRIPTION AS VERDESC,
VEROPR.TYPECODE AS STARTERTYPECODE,
VEROPR.CODE AS STARTERCODE,
PRO.CAN_HUMAN_START AS CAN_HUMAN_START,
PRO.EXT_BIZ_TYPE AS EXT_BIZ_TYPE,
PRO.SORT_INDEX AS SORT_INDEX,
PRO.DESCRIPTION AS PROCESS_DESC
FROM
JBPM4_EXT_PRO PRO
INNER JOIN JBPM4_EXT_PT_TRAN PROTYPEMAP ON PRO.DBID_ = PROTYPEMAP.PROCESS_ID
INNER JOIN JBPM4_EXT_PROCESS_TYPE PROTYPE ON PROTYPEMAP.TYPE_ID = PROTYPE.DBID_
INNER JOIN JBPM4_EXT_VER VER ON(
PRO.DBID_ = VER.PROCESS_
AND VER.STATE = 2
)
LEFT OUTER JOIN JBPM4_EXT_VER_OPR VEROPR ON VEROPR.VERSION_ID = VER.DBID_ WITH READ ONLY';
EXECUTE IMMEDIATE V_SQL;

/* 视图: JBPM4_EXT_TODO_TASK */
dbms_output.put_line('视图: JBPM4_EXT_TODO_TASK');
V_SQL:='CREATE OR REPLACE VIEW JBPM4_EXT_TODO_TASK AS SELECT
T.DBID_ AS ID_,
T.CLASS_ AS CLASS_,
/*任务类型*/
T.NAME_ AS NAME_,
T.DESCR_ AS DESCR_,
HISPROCINST.PROC_EXE_NAME_ AS PROC_NAME_,
T.CREATE_ AS CREATE_,
T.STATE_ AS STATE_,
T.ASSIGNEE_ AS ASSIGNEE_,
T.PRIORITY_ AS PRIORITY_,
HISPROCINST.DEPLOYMENT_ID_ AS DEPLOYMENT_ID_,
HISPROCINST.ID_ AS EXECUTION_ID_,
T.SUPERTASK_ AS SUPERTASK_,
T.ACTIVITY_NAME_ AS ACTIVITY_NAME_,
HISPROCINST.PROCDEFID_ AS PROCDEFID_,
T.BIZ_REF_ID_ AS BIZ_FLOW_UUID_,
'''' AS CANDIDATES,
T.PRE_OPERATORS_ AS LASTOPERATORS,
T.SUB_STATE_ AS TASKSTATUS,
HISPROCINST.PROC_INST_DESC_ AS PROC_INST_DESC_,
S.STARTER_ AS STARTER_,
S.STARTER_NAME_ AS STARTER_NAME_,
S.ORG_ID_ AS ORG_ID_,
S.ORG_NAME_ AS ORG_NAME_,
D.PROCESS_KEY_ AS PROCESSID,
D.VERSION_ AS VERSION_,
T.VISIBLE_ AS VISIBLE_
FROM
JBPM4_TASK T,
JBPM4_HIST_PROCINST HISPROCINST,
JBPM4_EXT_START S, JBPM4_DEPLOYMENT D
WHERE
T.PROCINST_ = HISPROCINST.DBID_
AND S.DBID_=HISPROCINST.DBID_
AND HISPROCINST.DEPLOYMENT_ID_=D.DBID_
AND HISPROCINST.STATE_ = ''active''
AND T.STATE_ <> ''completed'' WITH READ ONLY';
EXECUTE IMMEDIATE V_SQL;


EXECUTE IMMEDIATE 'UPDATE JRES_SUBSYSTEM_RC SET END_TIME = SYSTIMESTAMP,REMARK=:1 WHERE BEGIN_TIME >= ALL (SELECT BEGIN_TIME FROM JRES_SUBSYSTEM_RC WHERE SUBSYSTEM_NAME=:2)' USING 'V1.1.21:JBPM4_EXT_DELEGATE增加备注REMARK', 'workflow';
COMMIT;

/*==============================================================*/
/* 工作流数据库-异常数据检查 */
/*==============================================================*/

--异常数据检查-ID生成器的值小于已用ID
EXECUTE IMMEDIATE 'SELECT MAX(C.MAXID)FROM (SELECT MAX(DBID_) MAXID FROM JBPM4_HIST_TASK UNION
SELECT MAX(DBID_) MAXID FROM JBPM4_HIST_VAR UNION
SELECT MAX(DBID_) MAXID FROM JBPM4_DEPLOYPROP UNION
SELECT MAX(DBID_) MAXID FROM JBPM4_LOB UNION
SELECT MAX(DBID_) MAXID FROM JBPM4_DEPLOYMENT UNION
SELECT MAX(DBID_) MAXID FROM JBPM4_VARIABLE UNION
SELECT MAX(DBID_) MAXID FROM JBPM4_TASK) C' INTO V_COUNT ;

EXECUTE IMMEDIATE 'SELECT to_number(VALUE_) FROM JBPM4_PROPERTY WHERE KEY_ = ''next.dbid''' INTO V_SIZE;
IF V_COUNT IS NOT NULL AND V_SIZE < V_COUNT THEN
--修改DBID 生成器的起始值
V_COUNT:= V_COUNT+100;
dbms_output.put_line('修改计数器');
EXECUTE IMMEDIATE 'UPDATE JBPM4_PROPERTY SET VALUE_=:1 WHERE KEY_ = ''next.dbid''' USING V_COUNT;
END IF;


-- 清理EXT_PRO中的空值
EXECUTE IMMEDIATE 'UPDATE JBPM4_EXT_PRO SET CAN_HUMAN_START = 0 WHERE CAN_HUMAN_START IS NULL';
EXECUTE IMMEDIATE 'UPDATE JBPM4_EXT_PRO SET CANCEL_BEFORE_END = 0 WHERE CANCEL_BEFORE_END IS NULL';

-- 修改旧数据字典中已协作
EXECUTE IMMEDIATE 'UPDATE JBPM4_EXT_COMBOBOX_ SET DISPLAY_=''协作中'', RENDERER_=''<font color="green">协作中</font>'' WHERE VALUE_=''coordinate'' and TYPE_ = ''待办任务状态''';

COMMIT;


dbms_output.put_line('工作流部分完成');

/*工作流部分结束*/
/*==============================================================*/
/* 工作流数据库-和JRES基础业务框架相关部分 */
/*==============================================================*/
dbms_output.put_line('设置基础业务框架相关部分');

-- EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_DICT_ENTRY','DICT_ENTRY_CODE=''PRO_BIZ_TYPE''','(dict_entry_code,kind_code,dict_entry_name,remark,ctrl_flag)','(''PRO_BIZ_TYPE'',''BIZ_DICT'',''流程相关的业务分类'','''','''')';
/*
* 子系统类别
*/
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'tsys_kind','kind_code=''WORKFLOW''','(kind_code, kind_type, kind_name, parent_code, mnemonic, tree_idx)','(''WORKFLOW'', ''5'', ''工作流'', ''0006'', ''WF'', ''#bizroot#0006#WORKFLOW#'')';
/*
* 初始化交易号
*/
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowMenu''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowMenu'',''流程菜单'',''BIZFRAME'',''1'',''0'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowManage''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowManage'',''流程管理'',''BIZFRAME'',''1'',''100'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowManaProcKind''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowManaProcKind'',''类型管理'',''BIZFRAME'',''1'',''101'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowManaRunning''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowManaRunning'',''运行管理'',''BIZFRAME'',''1'',''102'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowManaDesign''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowManaDesign'',''设计管理'',''BIZFRAME'',''1'',''103'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowManaArchive''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowManaArchive'',''归档管理'',''BIZFRAME'',''1'',''104'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowMonitor''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowMonitor'',''流程监控'',''BIZFRAME'',''1'',''200'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowMoniProc''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowMoniProc'',''流程监控'',''BIZFRAME'',''1'',''201'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowMoniInstance''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowMoniInstance'',''实例监控'',''BIZFRAME'',''1'',''202'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowMoniTask''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowMoniTask'',''任务监控'',''BIZFRAME'',''1'',''203'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowDelegateMonitor''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowDelegateMonitor'',''委托监控'',''BIZFRAME'',''1'',''204'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowFindUserActivity''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowFindUserActivity'',''查询用户参与节点'',''BIZFRAME'',''1'',''205'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowTask''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowTask'',''任务处理'',''BIZFRAME'',''1'',''300'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowTaskStart''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowTaskStart'',''发起流程'',''BIZFRAME'',''1'',''301'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowTaskTodo''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowTaskTodo'',''待办任务'',''BIZFRAME'',''1'',''302'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowTaskHistory''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowTaskHistory'',''已办任务'',''BIZFRAME'',''1'',''303'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowMyTodoProcess''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowMyTodoProcess'',''待办流程'',''BIZFRAME'',''1'',''304'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowGetHistoryProcess''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowGetHistoryProcess'',''已办流程'',''BIZFRAME'',''1'',''305'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowTaskRead''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowTaskRead'',''待阅任务'',''BIZFRAME'',''1'',''306'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowTaskReaded''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowTaskReaded'',''已阅任务'',''BIZFRAME'',''1'',''307'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowPrcessRead''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowPrcessRead'',''待阅流程'',''BIZFRAME'',''1'',''308'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowProcessReaded''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowProcessReaded'',''已阅流程'',''BIZFRAME'',''1'',''309'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowTaskOwner''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowTaskOwner'',''我发起的流程'',''BIZFRAME'',''1'',''311'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowProcessOwn''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowProcessOwn'',''我转发的流程'',''BIZFRAME'',''1'',''312'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowTaskNotice''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowTaskNotice'',''我知会的任务'',''BIZFRAME'',''1'',''313'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowTaskCoordinate''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowTaskCoordinate'',''任务协作'',''BIZFRAME'',''1'',''314'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowDelegateMgr''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowDelegateMgr'',''委托管理'',''BIZFRAME'',''1'',''320'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowForm''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowForm'',''表单注册'',''BIZFRAME'',''1'',''400'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowFormKind''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowFormKind'',''表单分类管理'',''BIZFRAME'',''1'',''401'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowFormReg''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowFormReg'',''表单注册'',''BIZFRAME'',''1'',''402'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowService''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowService'',''服务注册'',''BIZFRAME'',''1'',''500'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowServReg''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowServReg'',''服务注册'',''BIZFRAME'',''1'',''501'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_TRANS','TRANS_CODE=''flowCommanBase''','(TRANS_CODE,TRANS_NAME,KIND_CODE,MODEL_CODE,EXT_FIELD_2)','(''flowCommanBase'',''流程公用功能'',''BIZFRAME'',''1'',''901'')';

/*
* 初始化子交易号
*/
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowMenu'' AND SUB_TRANS_CODE=''flowMenu''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowMenu'',''flowMenu'',''工作流菜单'','''','''',''1'',''0'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowManage'' AND SUB_TRANS_CODE=''flowManage''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowManage'',''flowManage'',''流程管理'','''','''',''1'',''10000'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowManaProcKind'' AND SUB_TRANS_CODE=''flowManaProcKind''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowManaProcKind'',''flowManaProcKind'',''流程类型管理'','''',''workflow/manager/proctypeMan/proctypeMan.mw'',''1'',''10100'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowManaRunning'' AND SUB_TRANS_CODE=''flowManaRunning''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowManaRunning'',''flowManaRunning'',''流程运行管理'','''',''workflow/manager/runningFlowMan/runningFlowMan.mw'',''1'',''10200'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowManaDesign'' AND SUB_TRANS_CODE=''flowManaDesign''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowManaDesign'',''flowManaDesign'',''流程设计管理'','''',''workflow/design/flowDesignMan.mw'',''1'',''10300'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowManaArchive'' AND SUB_TRANS_CODE=''flowManaArchive''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowManaArchive'',''flowManaArchive'',''流程归档管理'','''',''workflow/manager/archiveFlowMan/arhieveFlowMan.mw'',''1'',''10400'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowMonitor'' AND SUB_TRANS_CODE=''flowMonitor''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowMonitor'',''flowMonitor'',''流程监控'','''','''',''1'',''20000'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowMoniProc'' AND SUB_TRANS_CODE=''flowMoniProc''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowMoniProc'',''flowMoniProc'',''流程监控'','''',''workflow/monitor/processSummaryMonitor.mw'',''1'',''20100'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowMoniInstance'' AND SUB_TRANS_CODE=''flowMoniInstance''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowMoniInstance'',''flowMoniInstance'',''实例监控'','''',''workflow/monitor/processInstanceMonitor.mw'',''1'',''20200'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowMoniTask'' AND SUB_TRANS_CODE=''flowMoniTask''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowMoniTask'',''flowMoniTask'',''任务监控'','''',''workflow/monitor/taskMonitor.mw'',''1'',''20300'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowDelegateMonitor'' AND SUB_TRANS_CODE=''flowDelegateMonitor''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowDelegateMonitor'',''flowDelegateMonitor'',''委托监控'','''',''workflow/client/delegateControl.mw'',''1'',''20400'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowFindUserActivity'' AND SUB_TRANS_CODE=''flowFindUserActivity''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowFindUserActivity'',''flowFindUserActivity'',''查询用户参与节点'','''',''workflow/monitor/UserActivity.mw'',''1'',''20500'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowTask'' AND SUB_TRANS_CODE=''flowTask''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowTask'',''flowTask'',''任务处理'','''','''',''1'',''30000'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowTaskStart'' AND SUB_TRANS_CODE=''flowTaskStart''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowTaskStart'',''flowTaskStart'',''发起工作流'','''',''workflow/client/startProcess.mw'',''1'',''30100'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowTaskTodo'' AND SUB_TRANS_CODE=''flowTaskTodo''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowTaskTodo'',''flowTaskTodo'',''待办任务'','''',''workflow/client/todoTask.mw'',''1'',''30200'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowTaskHistory'' AND SUB_TRANS_CODE=''flowTaskHistory''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowTaskHistory'',''flowTaskHistory'',''已办任务'','''',''workflow/client/getHistoryTask.mw'',''1'',''30300'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowMyTodoProcess'' AND SUB_TRANS_CODE=''flowMyTodoProcess''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowMyTodoProcess'',''flowMyTodoProcess'',''我的待办流程'','''',''workflow/client/todoProcess.mw'',''1'',''30400'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowGetHistoryProcess'' AND SUB_TRANS_CODE=''flowGetHistoryProcess''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowGetHistoryProcess'',''flowGetHistoryProcess'',''我的已办流程'','''',''workflow/client/getHistoryProcess.mw'',''1'',''30500'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowTaskRead'' AND SUB_TRANS_CODE=''flowTaskRead''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowTaskRead'',''flowTaskRead'',''待阅任务'','''',''workflow/client/todoNoticeTask.mw'',''1'',''30600'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowTaskReaded'' AND SUB_TRANS_CODE=''flowTaskReaded''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowTaskReaded'',''flowTaskReaded'',''已阅任务'','''',''workflow/client/hasdoneNoticeTask.mw'',''1'',''30700'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowPrcessRead'' AND SUB_TRANS_CODE=''flowPrcessRead''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowPrcessRead'',''flowPrcessRead'',''待阅流程'','''',''workflow/client/todoNoticeProcess.mw'',''1'',''30800'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowProcessReaded'' AND SUB_TRANS_CODE=''flowProcessReaded''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowProcessReaded'',''flowProcessReaded'',''已阅流程'','''',''workflow/client/hasdoneNoticeProcess.mw'',''1'',''30900'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowTaskOwner'' AND SUB_TRANS_CODE=''flowTaskOwner''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowTaskOwner'',''flowTaskOwner'',''我发起的工作流'','''',''workflow/client/ownProcess.mw'',''1'',''31100'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowProcessOwn'' AND SUB_TRANS_CODE=''flowProcessOwn''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowProcessOwn'',''flowProcessOwn'',''我转发的流程'','''',''workflow/client/ownNoticeProcess.mw'',''1'',''31200'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowTaskNotice'' AND SUB_TRANS_CODE=''flowTaskNotice''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowTaskNotice'',''flowTaskNotice'',''我知会的任务'','''',''workflow/client/noticeTaskStatus.mw'',''1'',''31300'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowDelegateMgr'' AND SUB_TRANS_CODE=''flowDelegateMgr''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowDelegateMgr'',''flowDelegateMgr'',''委托管理'','''',''workflow/client/delegateManagement.mw'',''1'',''32000'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowForm'' AND SUB_TRANS_CODE=''flowForm''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowForm'',''flowForm'',''表单注册'','''','''',''1'',''40001'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowFormKind'' AND SUB_TRANS_CODE=''flowFormKind''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowFormKind'',''flowFormKind'',''表单分类管理'','''',''workflow/form/formClassMan.mw'',''1'',''40100'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowFormReg'' AND SUB_TRANS_CODE=''flowFormReg''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowFormReg'',''flowFormReg'',''表单注册'','''',''workflow/form/formReg.mw'',''1'',''40200'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowService'' AND SUB_TRANS_CODE=''flowService''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowService'',''flowService'',''服务注册'','''','''',''1'',''50000'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_SUBTRANS','TRANS_CODE=''flowServReg'' AND SUB_TRANS_CODE=''flowServReg''','(TRANS_CODE,SUB_TRANS_CODE,SUB_TRANS_NAME,REL_SERV,REL_URL, LOGIN_FLAG,EXT_FIELD_2)','(''flowServReg'',''flowServReg'',''服务注册'','''',''workflow/appserv/appServReg.mw'',''1'',''50100'')';

/*
* 初始化菜单
*/
execute immediate 'CALL WF_SP_ADDCOLUMN(:1,:2,:3,:4,:5,:6)' using 'TSYS_MENU','MENU_URL','VARCHAR2(255)','','MENU_URL',0;

EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowMenu''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowMenu'',''BIZFRAME'',''flowMenu'',''flowMenu'',''工作流管理'',''bizframe/images/bizMenu.png'','''',''0'',''BIZFRAME'',1,''#bizroot#BIZFRAME#flowMenu#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowForm''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowForm'',''BIZFRAME'',''flowForm'',''flowForm'',''表单注册'',''bizframe/images/bizSysManager.png'','''',''0'',''flowMenu'',3,''#bizroot#BIZFRAME#flowMenu#flowForm#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowFormKind''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowFormKind'',''BIZFRAME'',''flowFormKind'',''flowFormKind'',''表单分类管理'',''bizframe/images/bizSysManager.png'',''workflow/form/formClassMan.mw'',''0'',''flowForm'',0,''#bizroot#BIZFRAME#flowMenu#flowForm#flowFormKind#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowFormReg''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowFormReg'',''BIZFRAME'',''flowFormReg'',''flowFormReg'',''表单注册'',''bizframe/images/bizSysManager.png'',''workflow/form/formReg.mw'',''0'',''flowForm'',1,''#bizroot#BIZFRAME#flowMenu#flowForm#flowFormReg#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowManage''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowManage'',''BIZFRAME'',''flowManage'',''flowManage'',''工作流管理'',''bizframe/images/bizSysManager.png'','''',''0'',''flowMenu'',0,''#bizroot#BIZFRAME#flowMenu#flowManage#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowManaArchive''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowManaArchive'',''BIZFRAME'',''flowManaArchive'',''flowManaArchive'',''流程归档管理'',''bizframe/images/bizSysManager.png'',''workflow/manager/archiveFlowMan/arhieveFlowMan.mw'',''0'',''flowManage'',3,''#bizroot#BIZFRAME#flowMenu#flowManage#flowManaArchive#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowManaDesign''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowManaDesign'',''BIZFRAME'',''flowManaDesign'',''flowManaDesign'',''流程设计管理'',''bizframe/images/bizSysManager.png'',''workflow/design/flowDesignMan.mw'',''0'',''flowManage'',2,''#bizroot#BIZFRAME#flowMenu#flowManage#flowManaDesign#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowManaProcKind''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowManaProcKind'',''BIZFRAME'',''flowManaProcKind'',''flowManaProcKind'',''流程类型管理'',''bizframe/images/bizSysManager.png'',''workflow/manager/proctypeMan/proctypeMan.mw'',''0'',''flowManage'',0,''#bizroot#BIZFRAME#flowMenu#flowManage#flowManaProcKind#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowManaRunning''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowManaRunning'',''BIZFRAME'',''flowManaRunning'',''flowManaRunning'',''流程运行管理'',''bizframe/images/bizSysManager.png'',''workflow/manager/runningFlowMan/runningFlowMan.mw'',''0'',''flowManage'',1,''#bizroot#BIZFRAME#flowMenu#flowManage#flowManaRunning#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowMonitor''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowMonitor'',''BIZFRAME'',''flowMonitor'',''flowMonitor'',''工作流监控'',''bizframe/images/bizSysManager.png'','''',''0'',''flowMenu'',1,''#bizroot#BIZFRAME#flowMenu#flowMonitor#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowDelegateMonitor''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowDelegateMonitor'',''BIZFRAME'',''flowDelegateMonitor'',''flowDelegateMonitor'',''委托监控'',''bizframe/images/bizSysManager.png'',''workflow/client/delegateControl.mw'',''0'',''flowMonitor'',3,''#bizroot#BIZFRAME#flowMenu#flowMonitor#flowDelegateMonitor#'',''委托监控'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowFindUserActivity''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowFindUserActivity'',''BIZFRAME'',''flowFindUserActivity'',''flowFindUserActivity'',''查询用户参与节点'',''bizframe/images/bizSysManager.png'',''workflow/monitor/UserActivity.mw'','''',''flowMonitor'',4,''#bizroot#BIZFRAME#flowMenu#flowMonitor#flowFindUserActivity#'',''查询用户参与的流程活动节点'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowMoniInstance''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowMoniInstance'',''BIZFRAME'',''flowMoniInstance'',''flowMoniInstance'',''实例监控'',''bizframe/images/bizSysManager.png'',''workflow/monitor/processInstanceMonitor.mw'',''0'',''flowMonitor'',1,''#bizroot#BIZFRAME#flowMenu#flowMonitor#flowMoniInstance#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowMoniProc''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowMoniProc'',''BIZFRAME'',''flowMoniProc'',''flowMoniProc'',''流程监控'',''bizframe/images/bizSysManager.png'',''workflow/monitor/processSummaryMonitor.mw'',''0'',''flowMonitor'',0,''#bizroot#BIZFRAME#flowMenu#flowMonitor#flowMoniProc#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowMoniTask''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowMoniTask'',''BIZFRAME'',''flowMoniTask'',''flowMoniTask'',''任务监控'',''bizframe/images/bizSysManager.png'',''workflow/monitor/taskMonitor.mw'',''0'',''flowMonitor'',2,''#bizroot#BIZFRAME#flowMenu#flowMonitor#flowMoniTask#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowService''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowService'',''BIZFRAME'',''flowService'',''flowService'',''服务注册'',''bizframe/images/bizSysManager.png'','''',''0'',''flowMenu'',4,''#bizroot#BIZFRAME#flowMenu#flowService#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowServReg''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowServReg'',''BIZFRAME'',''flowServReg'',''flowServReg'',''服务注册'',''bizframe/images/bizSysManager.png'',''workflow/appserv/appServReg.mw'',''0'',''flowService'',0,''#bizroot#BIZFRAME#flowMenu#flowService#flowServReg#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowTask''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowTask'',''BIZFRAME'',''flowTask'',''flowTask'',''任务处理'',''bizframe/images/bizSysManager.png'','''',''0'',''flowMenu'',2,''#bizroot#BIZFRAME#flowMenu#flowTask#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowDelegateMgr''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowDelegateMgr'',''BIZFRAME'',''flowDelegateMgr'',''flowDelegateMgr'',''委托管理'','''',''workflow/client/delegateManagement.mw'','''',''flowTask'',12,''#bizroot#BIZFRAME#flowMenu#flowTask#flowDelegateMgr#'',''委托管理'')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowGetHistoryProcess''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowGetHistoryProcess'',''BIZFRAME'',''flowGetHistoryProcess'',''flowGetHistoryProcess'',''已办流程'','''',''workflow/client/getHistoryProcess.mw'','''',''flowTask'',8,''#bizroot#BIZFRAME#flowMenu#flowTask#flowGetHistoryProcess#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowMyTodoProcess''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowMyTodoProcess'',''BIZFRAME'',''flowMyTodoProcess'',''flowMyTodoProcess'',''待办流程'','''',''workflow/client/todoProcess.mw'','''',''flowTask'',7,''#bizroot#BIZFRAME#flowMenu#flowTask#flowMyTodoProcess#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowPrcessRead''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowPrcessRead'',''BIZFRAME'',''flowPrcessRead'',''flowPrcessRead'',''待阅流程'','''',''workflow/client/todoNoticeProcess.mw'','''',''flowTask'',9,''#bizroot#BIZFRAME#flowMenu#flowTask#flowPrcessRead#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowProcessOwn''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowProcessOwn'',''BIZFRAME'',''flowProcessOwn'',''flowProcessOwn'',''我转发的流程'','''',''workflow/client/ownNoticeProcess.mw'','''',''flowTask'',11,''#bizroot#BIZFRAME#flowMenu#flowTask#flowProcessOwn#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowProcessReaded''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowProcessReaded'',''BIZFRAME'',''flowProcessReaded'',''flowProcessReaded'',''已阅流程'','''',''workflow/client/hasdoneNoticeProcess.mw'','''',''flowTask'',10,''#bizroot#BIZFRAME#flowMenu#flowTask#flowProcessReaded#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowTaskHistory''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowTaskHistory'',''BIZFRAME'',''flowTaskHistory'',''flowTaskHistory'',''已办任务'',''bizframe/images/bizSysManager.png'',''workflow/client/getHistoryTask.mw'',''0'',''flowTask'',2,''#bizroot#BIZFRAME#flowMenu#flowTask#flowTaskHistory#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowTaskNotice''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowTaskNotice'',''BIZFRAME'',''flowTaskNotice'',''flowTaskNotice'',''我知会的任务'',''bizframe/images/bizSysManager.png'',''workflow/client/noticeTaskStatus.mw'',''0'',''flowTask'',5,''#bizroot#BIZFRAME#flowMenu#flowTask#flowTaskNotice#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowTaskOwner''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowTaskOwner'',''BIZFRAME'',''flowTaskOwner'',''flowTaskOwner'',''我发起的工作流'',''bizframe/images/bizSysManager.png'',''workflow/client/ownProcess.mw'',''0'',''flowTask'',6,''#bizroot#BIZFRAME#flowMenu#flowTask#flowTaskOwner#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowTaskRead''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowTaskRead'',''BIZFRAME'',''flowTaskRead'',''flowTaskRead'',''待阅任务'',''bizframe/images/bizSysManager.png'',''workflow/client/todoNoticeTask.mw'',''0'',''flowTask'',3,''#bizroot#BIZFRAME#flowMenu#flowTask#flowTaskRead#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowTaskReaded''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowTaskReaded'',''BIZFRAME'',''flowTaskReaded'',''flowTaskReaded'',''已阅任务'',''bizframe/images/bizSysManager.png'',''workflow/client/hasdoneNoticeTask.mw'',''0'',''flowTask'',4,''#bizroot#BIZFRAME#flowMenu#flowTask#flowTaskReaded#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowTaskStart''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowTaskStart'',''BIZFRAME'',''flowTaskStart'',''flowTaskStart'',''发起工作流'',''bizframe/images/bizSysManager.png'',''workflow/client/startProcess.mw'',''0'',''flowTask'',0,''#bizroot#BIZFRAME#flowMenu#flowTask#flowTaskStart#'','''')';
EXECUTE IMMEDIATE 'CALL WF_SP_INITDATA(:1,:2,:3,:4)' USING 'TSYS_MENU','MENU_CODE=''flowTaskTodo''','(MENU_CODE,KIND_CODE,TRANS_CODE,SUB_TRANS_CODE,MENU_NAME,MENU_ICON,MENU_URL,WINDOW_TYPE,PARENT_CODE,ORDER_NO,TREE_IDX,REMARK)','(''flowTaskTodo'',''BIZFRAME'',''flowTaskTodo'',''flowTaskTodo'',''待办任务'',''bizframe/images/bizSysManager.png'',''workflow/client/todoTask.mw'',''0'',''flowTask'',1,''#bizroot#BIZFRAME#flowMenu#flowTask#flowTaskTodo#'','''')';

/**=============给admin授权菜单 ==================**/
SELECT COUNT(1) INTO V_COUNT FROM SYS.USER_TABLES WHERE TABLE_NAME = 'TSYS_ROLE_RIGHT';
IF V_COUNT > 0 THEN
-- 给admin授权菜单
EXECUTE IMMEDIATE 'insert into tsys_role_right (trans_code,sub_trans_code,role_code,create_by,create_date,begin_date,end_date,right_flag)
select ts.trans_code, ts.sub_trans_code, ''admin'' user_id , ''admin'' create_by , 0 create_date , 0 begin_date,
0 end_date, ''1'' right_flag
from tsys_subtrans ts where ts.trans_code like ''flow%'' and not exists (
select * from tsys_role_right ur
where ur.trans_code=ts.trans_code
and ur.sub_trans_code=ts.sub_trans_code
and ur.right_flag=''1'' and ur.role_code=''admin'')';
END IF;
COMMIT;

dbms_output.put_line('数据库升级 完成');
END;
/

原文地址:https://www.cnblogs.com/jungege/p/5549822.html