-
Notifications
You must be signed in to change notification settings - Fork 55
/
update_wfs_2_9.sql
61 lines (53 loc) · 1.93 KB
/
update_wfs_2_9.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/*
Company: OptimaJet
Project: WorkflowServer Provider for Oracle
Version: 2.9
File: update_wfs_2_9.sql
*/
ALTER TABLE WORKFLOWPROCESSTRANSITIONH ADD
(
ACTORNAME NVARCHAR2(256),
EXECUTORNAME NVARCHAR2(256)
);
CREATE TABLE WORKFLOWPROCESSASSIGNMENT (
ID RAW(16),
ASSIGNMENTCODE VARCHAR2(256 BYTE) NOT NULL,
PROCESSID RAW(16) NOT NULL,
NAME VARCHAR2(256 BYTE) NOT NULL,
DESCRIPTION VARCHAR2(256 BYTE),
STATUSSTATE VARCHAR2(256 BYTE) NOT NULL,
DATECREATION TIMESTAMP NOT NULL,
DATESTART TIMESTAMP,
DATEFINISH TIMESTAMP,
DEADLINETOSTART TIMESTAMP,
DEADLINETOCOMPLETE TIMESTAMP,
EXECUTOR VARCHAR2(256 BYTE) NOT NULL,
OBSERVERS VARCHAR2(256 BYTE),
TAGS VARCHAR2(256 BYTE),
ISACTIVE CHAR(1 BYTE) DEFAULT 0 NOT NULL,
ISDELETED CHAR(1 BYTE) DEFAULT 0 NOT NULL,
CONSTRAINT PK_WORKFLOWPROCESSASSIGNMENT PRIMARY KEY (ID) USING INDEX STORAGE ( INITIAL 64K NEXT 1M MAXEXTENTS UNLIMITED )
)
LOGGING;
CREATE INDEX IDX_WORKFLOWPROCESSASSIGNMENT_PROCESSID ON WORKFLOWPROCESSASSIGNMENT (PROCESSID)
LOGGING;
CREATE INDEX IDX_WORKFLOWPROCESSASSIGNMENT_ASSIGNMENTCODE ON WORKFLOWPROCESSASSIGNMENT (ASSIGNMENTCODE)
LOGGING;
CREATE INDEX IDX_WORKFLOWPROCESSASSIGNMENT_EXECUTOR ON WORKFLOWPROCESSASSIGNMENT (EXECUTOR)
LOGGING;
CREATE INDEX IDX_WORKFLOWPROCESSASSIGNMENT_PE ON WORKFLOWPROCESSASSIGNMENT (PROCESSID, EXECUTOR)
LOGGING;
CREATE OR REPLACE FUNCTION DropUnusedWorkflowProcessScheme
RETURN NUMBER
IS
st NUMBER := 0;
BEGIN
DELETE FROM WorkflowProcessScheme
WHERE WorkflowProcessScheme.IsObsolete = 1
AND NOT EXISTS (SELECT * FROM WorkflowProcessInstance WHERE WorkflowProcessInstance.SchemeId = WorkflowProcessScheme.Id );
SELECT COUNT(*) into st
FROM WorkflowProcessInstance LEFT OUTER JOIN WorkflowProcessScheme ON WorkflowProcessInstance.SchemeId = WorkflowProcessScheme.Id
WHERE WorkflowProcessScheme.Id IS NULL;
RETURN st;
END;
COMMIT;