From 75251ea0f79c5a7e37d2d68b3ae3e79f80f0b861 Mon Sep 17 00:00:00 2001
From: zjj <2013359110@qq.com>
Date: Tue, 20 Jan 2026 16:22:29 +0800
Subject: [PATCH] =?UTF-8?q?=E9=80=82=E9=85=8Dkingbase=E6=95=B0=E6=8D=AE?=
=?UTF-8?q?=E5=BA=93=E4=B8=89=E7=A7=8D=E6=A8=A1=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
modules/flowable-app-engine/pom.xml | 5 +
.../flowable.kingbase-mysql.create.app.sql | 20 +
.../flowable.kingbase-oracle.create.app.sql | 18 +
...flowable.kingbase-sqlserver.create.app.sql | 18 +
.../drop/flowable.kingbase-mysql.drop.app.sql | 3 +
.../flowable.kingbase-oracle.drop.app.sql | 3 +
.../flowable.kingbase-sqlserver.drop.app.sql | 3 +
modules/flowable-cmmn-engine/pom.xml | 5 +
.../flowable.kingbase-mysql.create.cmmn.sql | 258 ++++++++
.../flowable.kingbase-oracle.create.cmmn.sql | 263 ++++++++
...lowable.kingbase-sqlserver.create.cmmn.sql | 263 ++++++++
.../flowable.kingbase-mysql.drop.cmmn.sql | 10 +
.../flowable.kingbase-oracle.drop.cmmn.sql | 10 +
.../flowable.kingbase-sqlserver.drop.cmmn.sql | 10 +
modules/flowable-dmn-engine/pom.xml | 5 +
.../flowable.kingbase-mysql.create.dmn.sql | 18 +
.../flowable.kingbase-oracle.create.dmn.sql | 19 +
...flowable.kingbase-sqlserver.create.dmn.sql | 19 +
.../drop/flowable.kingbase-mysql.drop.dmn.sql | 4 +
.../flowable.kingbase-oracle.drop.dmn.sql | 4 +
.../flowable.kingbase-sqlserver.drop.dmn.sql | 4 +
.../impl/AbstractEngineConfiguration.java | 27 +
.../common/engine/impl/util/DbUtil.java | 3 +-
.../flowable.kingbase-mysql.create.common.sql | 604 +++++++++++++++++
...flowable.kingbase-oracle.create.common.sql | 606 ++++++++++++++++++
...wable.kingbase-sqlserver.create.common.sql | 604 +++++++++++++++++
.../flowable.kingbase-mysql.drop.common.sql | 29 +
.../flowable.kingbase-oracle.drop.common.sql | 31 +
...lowable.kingbase-sqlserver.drop.common.sql | 29 +
.../db/properties/kingbase-mysql.properties | 1 +
.../db/properties/kingbase-oracle.properties | 3 +
.../properties/kingbase-sqlserver.properties | 6 +
modules/flowable-engine/pom.xml | 5 +
.../flowable.kingbase-mysql.create.engine.sql | 324 ++++++++++
...flowable.kingbase-mysql.create.history.sql | 113 ++++
...flowable.kingbase-oracle.create.engine.sql | 353 ++++++++++
...lowable.kingbase-oracle.create.history.sql | 116 ++++
...wable.kingbase-sqlserver.create.engine.sql | 346 ++++++++++
...able.kingbase-sqlserver.create.history.sql | 116 ++++
.../flowable.kingbase-mysql.drop.engine.sql | 7 +
.../flowable.kingbase-mysql.drop.history.sql | 5 +
.../flowable.kingbase-oracle.drop.engine.sql | 8 +
.../flowable.kingbase-oracle.drop.history.sql | 5 +
...lowable.kingbase-sqlserver.drop.engine.sql | 7 +
...owable.kingbase-sqlserver.drop.history.sql | 5 +
.../src/test/resources/flowable.cfg.xml | 21 +-
modules/flowable-event-registry/pom.xml | 5 +
...le.kingbase-mysql.create.eventregistry.sql | 18 +
...e.kingbase-oracle.create.eventregistry.sql | 19 +
...ingbase-sqlserver.create.eventregistry.sql | 19 +
...able.kingbase-mysql.drop.eventregistry.sql | 4 +
...ble.kingbase-oracle.drop.eventregistry.sql | 4 +
....kingbase-sqlserver.drop.eventregistry.sql | 4 +
...lowable.kingbase-mysql.create.identity.sql | 107 ++++
...owable.kingbase-oracle.create.identity.sql | 107 ++++
...ble.kingbase-sqlserver.create.identity.sql | 104 +++
.../flowable.kingbase-mysql.drop.identity.sql | 9 +
...flowable.kingbase-oracle.drop.identity.sql | 9 +
...wable.kingbase-sqlserver.drop.identity.sql | 9 +
pom.xml | 5 +
60 files changed, 4751 insertions(+), 8 deletions(-)
create mode 100644 modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.kingbase-mysql.create.app.sql
create mode 100644 modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.kingbase-oracle.create.app.sql
create mode 100644 modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.kingbase-sqlserver.create.app.sql
create mode 100644 modules/flowable-app-engine/src/main/resources/org/flowable/app/db/drop/flowable.kingbase-mysql.drop.app.sql
create mode 100644 modules/flowable-app-engine/src/main/resources/org/flowable/app/db/drop/flowable.kingbase-oracle.drop.app.sql
create mode 100644 modules/flowable-app-engine/src/main/resources/org/flowable/app/db/drop/flowable.kingbase-sqlserver.drop.app.sql
create mode 100644 modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.kingbase-mysql.create.cmmn.sql
create mode 100644 modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.kingbase-oracle.create.cmmn.sql
create mode 100644 modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.kingbase-sqlserver.create.cmmn.sql
create mode 100644 modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/drop/flowable.kingbase-mysql.drop.cmmn.sql
create mode 100644 modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/drop/flowable.kingbase-oracle.drop.cmmn.sql
create mode 100644 modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/drop/flowable.kingbase-sqlserver.drop.cmmn.sql
create mode 100644 modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.kingbase-mysql.create.dmn.sql
create mode 100644 modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.kingbase-oracle.create.dmn.sql
create mode 100644 modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.kingbase-sqlserver.create.dmn.sql
create mode 100644 modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/drop/flowable.kingbase-mysql.drop.dmn.sql
create mode 100644 modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/drop/flowable.kingbase-oracle.drop.dmn.sql
create mode 100644 modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/drop/flowable.kingbase-sqlserver.drop.dmn.sql
create mode 100644 modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.kingbase-mysql.create.common.sql
create mode 100644 modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.kingbase-oracle.create.common.sql
create mode 100644 modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.kingbase-sqlserver.create.common.sql
create mode 100644 modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.kingbase-mysql.drop.common.sql
create mode 100644 modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.kingbase-oracle.drop.common.sql
create mode 100644 modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.kingbase-sqlserver.drop.common.sql
create mode 100644 modules/flowable-engine-common/src/main/resources/org/flowable/common/db/properties/kingbase-mysql.properties
create mode 100644 modules/flowable-engine-common/src/main/resources/org/flowable/common/db/properties/kingbase-oracle.properties
create mode 100644 modules/flowable-engine-common/src/main/resources/org/flowable/common/db/properties/kingbase-sqlserver.properties
create mode 100644 modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-mysql.create.engine.sql
create mode 100644 modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-mysql.create.history.sql
create mode 100644 modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-oracle.create.engine.sql
create mode 100644 modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-oracle.create.history.sql
create mode 100644 modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-sqlserver.create.engine.sql
create mode 100644 modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-sqlserver.create.history.sql
create mode 100644 modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-mysql.drop.engine.sql
create mode 100644 modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-mysql.drop.history.sql
create mode 100644 modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-oracle.drop.engine.sql
create mode 100644 modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-oracle.drop.history.sql
create mode 100644 modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-sqlserver.drop.engine.sql
create mode 100644 modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-sqlserver.drop.history.sql
create mode 100644 modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.kingbase-mysql.create.eventregistry.sql
create mode 100644 modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.kingbase-oracle.create.eventregistry.sql
create mode 100644 modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.kingbase-sqlserver.create.eventregistry.sql
create mode 100644 modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/drop/flowable.kingbase-mysql.drop.eventregistry.sql
create mode 100644 modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/drop/flowable.kingbase-oracle.drop.eventregistry.sql
create mode 100644 modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/drop/flowable.kingbase-sqlserver.drop.eventregistry.sql
create mode 100644 modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.kingbase-mysql.create.identity.sql
create mode 100644 modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.kingbase-oracle.create.identity.sql
create mode 100644 modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.kingbase-sqlserver.create.identity.sql
create mode 100644 modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/drop/flowable.kingbase-mysql.drop.identity.sql
create mode 100644 modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/drop/flowable.kingbase-oracle.drop.identity.sql
create mode 100644 modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/drop/flowable.kingbase-sqlserver.drop.identity.sql
diff --git a/modules/flowable-app-engine/pom.xml b/modules/flowable-app-engine/pom.xml
index ab8556f52ad..8bcd9e139b4 100644
--- a/modules/flowable-app-engine/pom.xml
+++ b/modules/flowable-app-engine/pom.xml
@@ -108,6 +108,11 @@
mysql-connector-j
test
+
+ cn.com.kingbase
+ kingbase8
+ 9.0.1
+
org.postgresql
postgresql
diff --git a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.kingbase-mysql.create.app.sql b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.kingbase-mysql.create.app.sql
new file mode 100644
index 00000000000..c420343cd9f
--- /dev/null
+++ b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.kingbase-mysql.create.app.sql
@@ -0,0 +1,20 @@
+CREATE TABLE ACT_APP_DEPLOYMENT (ID_ VARCHAR(255) NOT NULL, NAME_ VARCHAR(255) NULL, CATEGORY_ VARCHAR(255) NULL, KEY_ VARCHAR(255) NULL, DEPLOY_TIME_ datetime NULL, TENANT_ID_ VARCHAR(255) DEFAULT '' NULL, CONSTRAINT PK_ACT_APP_DEPLOYMENT PRIMARY KEY (ID_));
+
+CREATE TABLE ACT_APP_DEPLOYMENT_RESOURCE (ID_ VARCHAR(255) NOT NULL, NAME_ VARCHAR(255) NULL, DEPLOYMENT_ID_ VARCHAR(255) NULL, RESOURCE_BYTES_ LONGBLOB NULL, CONSTRAINT PK_APP_DEPLOYMENT_RESOURCE PRIMARY KEY (ID_));
+
+ALTER TABLE ACT_APP_DEPLOYMENT_RESOURCE ADD CONSTRAINT ACT_FK_APP_RSRC_DPL FOREIGN KEY (DEPLOYMENT_ID_) REFERENCES ACT_APP_DEPLOYMENT (ID_);
+
+CREATE INDEX ACT_IDX_APP_RSRC_DPL ON ACT_APP_DEPLOYMENT_RESOURCE(DEPLOYMENT_ID_);
+
+CREATE TABLE ACT_APP_APPDEF (ID_ VARCHAR(255) NOT NULL, REV_ INT NOT NULL, NAME_ VARCHAR(255) NULL, KEY_ VARCHAR(255) NOT NULL, VERSION_ INT NOT NULL, CATEGORY_ VARCHAR(255) NULL, DEPLOYMENT_ID_ VARCHAR(255) NULL, RESOURCE_NAME_ VARCHAR(4000) NULL, DESCRIPTION_ VARCHAR(4000) NULL, TENANT_ID_ VARCHAR(255) DEFAULT '' NULL, CONSTRAINT PK_ACT_APP_APPDEF PRIMARY KEY (ID_));
+
+ALTER TABLE ACT_APP_APPDEF ADD CONSTRAINT ACT_FK_APP_DEF_DPLY FOREIGN KEY (DEPLOYMENT_ID_) REFERENCES ACT_APP_DEPLOYMENT (ID_);
+
+CREATE INDEX ACT_IDX_APP_DEF_DPLY ON ACT_APP_APPDEF(DEPLOYMENT_ID_);
+
+ALTER TABLE ACT_APP_DEPLOYMENT MODIFY DEPLOY_TIME_ datetime(3);
+
+CREATE UNIQUE INDEX ACT_IDX_APP_DEF_UNIQ ON ACT_APP_APPDEF(KEY_, VERSION_, TENANT_ID_);
+
+insert into ACT_GE_PROPERTY
+values ('app.schema.version', '7.1.0.2', 1);
diff --git a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.kingbase-oracle.create.app.sql b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.kingbase-oracle.create.app.sql
new file mode 100644
index 00000000000..45f021f2271
--- /dev/null
+++ b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.kingbase-oracle.create.app.sql
@@ -0,0 +1,18 @@
+CREATE TABLE ACT_APP_DEPLOYMENT (ID_ VARCHAR2(255) NOT NULL, NAME_ VARCHAR2(255), CATEGORY_ VARCHAR2(255), KEY_ VARCHAR2(255), DEPLOY_TIME_ TIMESTAMP, TENANT_ID_ VARCHAR2(255) DEFAULT '', CONSTRAINT PK_ACT_APP_DEPLOYMENT PRIMARY KEY (ID_));
+
+CREATE TABLE ACT_APP_DEPLOYMENT_RESOURCE (ID_ VARCHAR2(255) NOT NULL, NAME_ VARCHAR2(255), DEPLOYMENT_ID_ VARCHAR2(255), RESOURCE_BYTES_ BLOB, CONSTRAINT PK_APP_DEPLOYMENT_RESOURCE PRIMARY KEY (ID_));
+
+ALTER TABLE ACT_APP_DEPLOYMENT_RESOURCE ADD CONSTRAINT ACT_FK_APP_RSRC_DPL FOREIGN KEY (DEPLOYMENT_ID_) REFERENCES ACT_APP_DEPLOYMENT (ID_);
+
+CREATE INDEX ACT_IDX_APP_RSRC_DPL ON ACT_APP_DEPLOYMENT_RESOURCE(DEPLOYMENT_ID_);
+
+CREATE TABLE ACT_APP_APPDEF (ID_ VARCHAR2(255) NOT NULL, REV_ INTEGER NOT NULL, NAME_ VARCHAR2(255), KEY_ VARCHAR2(255) NOT NULL, VERSION_ INTEGER NOT NULL, CATEGORY_ VARCHAR2(255), DEPLOYMENT_ID_ VARCHAR2(255), RESOURCE_NAME_ VARCHAR2(4000), DESCRIPTION_ VARCHAR2(4000), TENANT_ID_ VARCHAR2(255) DEFAULT '', CONSTRAINT PK_ACT_APP_APPDEF PRIMARY KEY (ID_));
+
+ALTER TABLE ACT_APP_APPDEF ADD CONSTRAINT ACT_FK_APP_DEF_DPLY FOREIGN KEY (DEPLOYMENT_ID_) REFERENCES ACT_APP_DEPLOYMENT (ID_);
+
+CREATE INDEX ACT_IDX_APP_DEF_DPLY ON ACT_APP_APPDEF(DEPLOYMENT_ID_);
+
+CREATE UNIQUE INDEX ACT_IDX_APP_DEF_UNIQ ON ACT_APP_APPDEF(KEY_, VERSION_, TENANT_ID_);
+
+insert into ACT_GE_PROPERTY
+values ('app.schema.version', '7.1.0.2', 1);
\ No newline at end of file
diff --git a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.kingbase-sqlserver.create.app.sql b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.kingbase-sqlserver.create.app.sql
new file mode 100644
index 00000000000..b32d15a86fc
--- /dev/null
+++ b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.kingbase-sqlserver.create.app.sql
@@ -0,0 +1,18 @@
+CREATE TABLE ACT_APP_DEPLOYMENT (ID_ varchar(255) NOT NULL, NAME_ varchar(255), CATEGORY_ varchar(255), KEY_ varchar(255), DEPLOY_TIME_ datetime, TENANT_ID_ varchar(255) CONSTRAINT DF_ACT_APP_DEPLOYMENT_TENANT_ID_ DEFAULT '', CONSTRAINT PK_ACT_APP_DEPLOYMENT PRIMARY KEY (ID_));
+
+CREATE TABLE ACT_APP_DEPLOYMENT_RESOURCE (ID_ varchar(255) NOT NULL, NAME_ varchar(255), DEPLOYMENT_ID_ varchar(255), RESOURCE_BYTES_ varbinary(MAX), CONSTRAINT PK_APP_DEPLOYMENT_RESOURCE PRIMARY KEY (ID_));
+
+ALTER TABLE ACT_APP_DEPLOYMENT_RESOURCE ADD CONSTRAINT ACT_FK_APP_RSRC_DPL FOREIGN KEY (DEPLOYMENT_ID_) REFERENCES ACT_APP_DEPLOYMENT (ID_);
+
+CREATE NONCLUSTERED INDEX ACT_IDX_APP_RSRC_DPL ON ACT_APP_DEPLOYMENT_RESOURCE(DEPLOYMENT_ID_);
+
+CREATE TABLE ACT_APP_APPDEF (ID_ varchar(255) NOT NULL, REV_ int NOT NULL, NAME_ varchar(255), KEY_ varchar(255) NOT NULL, VERSION_ int NOT NULL, CATEGORY_ varchar(255), DEPLOYMENT_ID_ varchar(255), RESOURCE_NAME_ varchar(4000), DESCRIPTION_ varchar(4000), TENANT_ID_ varchar(255) CONSTRAINT DF_ACT_APP_APPDEF_TENANT_ID_ DEFAULT '', CONSTRAINT PK_ACT_APP_APPDEF PRIMARY KEY (ID_));
+
+ALTER TABLE ACT_APP_APPDEF ADD CONSTRAINT ACT_FK_APP_DEF_DPLY FOREIGN KEY (DEPLOYMENT_ID_) REFERENCES ACT_APP_DEPLOYMENT (ID_);
+
+CREATE NONCLUSTERED INDEX ACT_IDX_APP_DEF_DPLY ON ACT_APP_APPDEF(DEPLOYMENT_ID_);
+
+CREATE UNIQUE NONCLUSTERED INDEX ACT_IDX_APP_DEF_UNIQ ON ACT_APP_APPDEF(KEY_, VERSION_, TENANT_ID_);
+
+insert into ACT_GE_PROPERTY
+values ('app.schema.version', '7.1.0.2', 1);
diff --git a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/drop/flowable.kingbase-mysql.drop.app.sql b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/drop/flowable.kingbase-mysql.drop.app.sql
new file mode 100644
index 00000000000..32b1397b61b
--- /dev/null
+++ b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/drop/flowable.kingbase-mysql.drop.app.sql
@@ -0,0 +1,3 @@
+drop table if exists ACT_APP_APPDEF cascade;
+drop table if exists ACT_APP_DEPLOYMENT_RESOURCE cascade;
+drop table if exists ACT_APP_DEPLOYMENT cascade;
diff --git a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/drop/flowable.kingbase-oracle.drop.app.sql b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/drop/flowable.kingbase-oracle.drop.app.sql
new file mode 100644
index 00000000000..4774b34af5a
--- /dev/null
+++ b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/drop/flowable.kingbase-oracle.drop.app.sql
@@ -0,0 +1,3 @@
+drop table if exists ACT_APP_APPDEF cascade;
+drop table if exists ACT_APP_DEPLOYMENT_RESOURCE cascade;
+drop table if exists ACT_APP_DEPLOYMENT cascade;
\ No newline at end of file
diff --git a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/drop/flowable.kingbase-sqlserver.drop.app.sql b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/drop/flowable.kingbase-sqlserver.drop.app.sql
new file mode 100644
index 00000000000..4774b34af5a
--- /dev/null
+++ b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/drop/flowable.kingbase-sqlserver.drop.app.sql
@@ -0,0 +1,3 @@
+drop table if exists ACT_APP_APPDEF cascade;
+drop table if exists ACT_APP_DEPLOYMENT_RESOURCE cascade;
+drop table if exists ACT_APP_DEPLOYMENT cascade;
\ No newline at end of file
diff --git a/modules/flowable-cmmn-engine/pom.xml b/modules/flowable-cmmn-engine/pom.xml
index 9ed876a8eea..ead3a5a6cc8 100644
--- a/modules/flowable-cmmn-engine/pom.xml
+++ b/modules/flowable-cmmn-engine/pom.xml
@@ -155,6 +155,11 @@
h2
test
+
+ cn.com.kingbase
+ kingbase8
+ 9.0.1
+
com.mysql
mysql-connector-j
diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.kingbase-mysql.create.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.kingbase-mysql.create.cmmn.sql
new file mode 100644
index 00000000000..847b814b027
--- /dev/null
+++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.kingbase-mysql.create.cmmn.sql
@@ -0,0 +1,258 @@
+CREATE TABLE ACT_CMMN_DEPLOYMENT
+(
+ ID_ VARCHAR(255) NOT NULL,
+ NAME_ VARCHAR(255) NULL,
+ CATEGORY_ VARCHAR(255) NULL,
+ KEY_ VARCHAR(255) NULL,
+ DEPLOY_TIME_ datetime(3) NULL,
+ PARENT_DEPLOYMENT_ID_ VARCHAR(255) NULL,
+ TENANT_ID_ VARCHAR(255) DEFAULT '' NULL,
+ CONSTRAINT PK_ACT_CMMN_DEPLOYMENT PRIMARY KEY (ID_)
+);
+
+CREATE TABLE ACT_CMMN_DEPLOYMENT_RESOURCE
+(
+ ID_ VARCHAR(255) NOT NULL,
+ NAME_ VARCHAR(255) NULL,
+ DEPLOYMENT_ID_ VARCHAR(255) NULL,
+ RESOURCE_BYTES_ LONGBLOB NULL,
+ GENERATED_ TINYINT NULL,
+ CONSTRAINT PK_CMMN_DEPLOYMENT_RESOURCE PRIMARY KEY (ID_)
+);
+
+ALTER TABLE ACT_CMMN_DEPLOYMENT_RESOURCE
+ ADD CONSTRAINT ACT_FK_CMMN_RSRC_DPL FOREIGN KEY (DEPLOYMENT_ID_) REFERENCES ACT_CMMN_DEPLOYMENT (ID_);
+
+CREATE INDEX ACT_IDX_CMMN_RSRC_DPL ON ACT_CMMN_DEPLOYMENT_RESOURCE (DEPLOYMENT_ID_);
+
+CREATE TABLE ACT_CMMN_CASEDEF
+(
+ ID_ VARCHAR(255) NOT NULL,
+ REV_ INT NOT NULL,
+ NAME_ VARCHAR(255) NULL,
+ KEY_ VARCHAR(255) NOT NULL,
+ VERSION_ INT NOT NULL,
+ CATEGORY_ VARCHAR(255) NULL,
+ DEPLOYMENT_ID_ VARCHAR(255) NULL,
+ RESOURCE_NAME_ VARCHAR(4000) NULL,
+ DESCRIPTION_ VARCHAR(4000) NULL,
+ HAS_GRAPHICAL_NOTATION_ TINYINT NULL,
+ DGRM_RESOURCE_NAME_ VARCHAR(4000) NULL,
+ HAS_START_FORM_KEY_ TINYINT NULL,
+ TENANT_ID_ VARCHAR(255) DEFAULT '' NULL,
+ CONSTRAINT PK_ACT_CMMN_CASEDEF PRIMARY KEY (ID_)
+);
+
+ALTER TABLE ACT_CMMN_CASEDEF
+ ADD CONSTRAINT ACT_FK_CASE_DEF_DPLY FOREIGN KEY (DEPLOYMENT_ID_) REFERENCES ACT_CMMN_DEPLOYMENT (ID_);
+CREATE INDEX ACT_IDX_CASE_DEF_DPLY ON ACT_CMMN_CASEDEF (DEPLOYMENT_ID_);
+
+CREATE UNIQUE INDEX ACT_IDX_CASE_DEF_UNIQ ON ACT_CMMN_CASEDEF (KEY_, VERSION_, TENANT_ID_);
+
+CREATE TABLE ACT_CMMN_RU_CASE_INST
+(
+ ID_ VARCHAR(255) NOT NULL,
+ REV_ INT NOT NULL,
+ BUSINESS_KEY_ VARCHAR(255) NULL,
+ NAME_ VARCHAR(255) NULL,
+ PARENT_ID_ VARCHAR(255) NULL,
+ CASE_DEF_ID_ VARCHAR(255) NULL,
+ STATE_ VARCHAR(255) NULL,
+ START_TIME_ datetime(3) NULL,
+ START_USER_ID_ VARCHAR(255) NULL,
+ CALLBACK_ID_ VARCHAR(255) NULL,
+ CALLBACK_TYPE_ VARCHAR(255) NULL,
+ LOCK_TIME_ datetime(3) NULL,
+ LOCK_OWNER_ VARCHAR(255) NULL,
+ IS_COMPLETEABLE_ TINYINT NULL,
+ REFERENCE_ID_ VARCHAR(255) NULL,
+ REFERENCE_TYPE_ VARCHAR(255) NULL,
+ LAST_REACTIVATION_TIME_ datetime(3) NULL,
+ LAST_REACTIVATION_USER_ID_ VARCHAR(255) NULL,
+ BUSINESS_STATUS_ VARCHAR(255) NULL,
+ TENANT_ID_ VARCHAR(255) DEFAULT '' NULL,
+ CONSTRAINT PK_ACT_CMMN_RU_CASE_INST PRIMARY KEY (ID_)
+);
+
+ALTER TABLE ACT_CMMN_RU_CASE_INST
+ ADD CONSTRAINT ACT_FK_CASE_INST_CASE_DEF FOREIGN KEY (CASE_DEF_ID_) REFERENCES ACT_CMMN_CASEDEF (ID_);
+
+CREATE INDEX ACT_IDX_CASE_INST_CASE_DEF ON ACT_CMMN_RU_CASE_INST (CASE_DEF_ID_);
+CREATE INDEX ACT_IDX_CASE_INST_PARENT ON ACT_CMMN_RU_CASE_INST (PARENT_ID_);
+CREATE INDEX ACT_IDX_CASE_INST_REF_ID_ ON ACT_CMMN_RU_CASE_INST (REFERENCE_ID_);
+
+CREATE TABLE ACT_CMMN_RU_PLAN_ITEM_INST
+(
+ ID_ VARCHAR(255) NOT NULL,
+ REV_ INT NOT NULL,
+ CASE_DEF_ID_ VARCHAR(255) NULL,
+ CASE_INST_ID_ VARCHAR(255) NULL,
+ STAGE_INST_ID_ VARCHAR(255) NULL,
+ IS_STAGE_ TINYINT NULL,
+ ELEMENT_ID_ VARCHAR(255) NULL,
+ NAME_ VARCHAR(255) NULL,
+ STATE_ VARCHAR(255) NULL,
+ CREATE_TIME_ datetime(3) NULL,
+ START_USER_ID_ VARCHAR(255) NULL,
+ REFERENCE_ID_ VARCHAR(255) NULL,
+ REFERENCE_TYPE_ VARCHAR(255) NULL,
+ ITEM_DEFINITION_ID_ VARCHAR(255) NULL,
+ ITEM_DEFINITION_TYPE_ VARCHAR(255) NULL,
+ IS_COMPLETEABLE_ TINYINT NULL,
+ IS_COUNT_ENABLED_ TINYINT NULL,
+ VAR_COUNT_ INT NULL,
+ SENTRY_PART_INST_COUNT_ INT NULL,
+ LAST_AVAILABLE_TIME_ datetime(3) NULL,
+ LAST_ENABLED_TIME_ datetime(3) NULL,
+ LAST_DISABLED_TIME_ datetime(3) NULL,
+ LAST_STARTED_TIME_ datetime(3) NULL,
+ LAST_SUSPENDED_TIME_ datetime(3) NULL,
+ COMPLETED_TIME_ datetime(3) NULL,
+ OCCURRED_TIME_ datetime(3) NULL,
+ TERMINATED_TIME_ datetime(3) NULL,
+ EXIT_TIME_ datetime(3) NULL,
+ ENDED_TIME_ datetime(3) NULL,
+ ENTRY_CRITERION_ID_ VARCHAR(255) NULL,
+ EXIT_CRITERION_ID_ VARCHAR(255) NULL,
+ EXTRA_VALUE_ VARCHAR(255) NULL,
+ DERIVED_CASE_DEF_ID_ VARCHAR(255) NULL,
+ LAST_UNAVAILABLE_TIME_ datetime(3) NULL,
+ TENANT_ID_ VARCHAR(255) DEFAULT '' NULL,
+ CONSTRAINT PK_CMMN_PLAN_ITEM_INST PRIMARY KEY (ID_)
+);
+
+ALTER TABLE ACT_CMMN_RU_PLAN_ITEM_INST
+ ADD CONSTRAINT ACT_FK_PLAN_ITEM_CASE_DEF FOREIGN KEY (CASE_DEF_ID_) REFERENCES ACT_CMMN_CASEDEF (ID_);
+CREATE INDEX ACT_IDX_PLAN_ITEM_CASE_DEF ON ACT_CMMN_RU_PLAN_ITEM_INST (CASE_DEF_ID_);
+
+ALTER TABLE ACT_CMMN_RU_PLAN_ITEM_INST
+ ADD CONSTRAINT ACT_FK_PLAN_ITEM_CASE_INST FOREIGN KEY (CASE_INST_ID_) REFERENCES ACT_CMMN_RU_CASE_INST (ID_);
+CREATE INDEX ACT_IDX_PLAN_ITEM_CASE_INST ON ACT_CMMN_RU_PLAN_ITEM_INST (CASE_INST_ID_);
+
+CREATE INDEX ACT_IDX_PLAN_ITEM_STAGE_INST ON ACT_CMMN_RU_PLAN_ITEM_INST (STAGE_INST_ID_);
+
+CREATE TABLE ACT_CMMN_RU_SENTRY_PART_INST
+(
+ ID_ VARCHAR(255) NOT NULL,
+ REV_ INT NOT NULL,
+ CASE_DEF_ID_ VARCHAR(255) NULL,
+ CASE_INST_ID_ VARCHAR(255) NULL,
+ PLAN_ITEM_INST_ID_ VARCHAR(255) NULL,
+ ON_PART_ID_ VARCHAR(255) NULL,
+ IF_PART_ID_ VARCHAR(255) NULL,
+ TIME_STAMP_ datetime(3) NULL,
+ CONSTRAINT PK_CMMN_SENTRY_PART_INST PRIMARY KEY (ID_)
+);
+
+ALTER TABLE ACT_CMMN_RU_SENTRY_PART_INST
+ ADD CONSTRAINT ACT_FK_SENTRY_CASE_DEF FOREIGN KEY (CASE_DEF_ID_) REFERENCES ACT_CMMN_CASEDEF (ID_);
+CREATE INDEX ACT_IDX_SENTRY_CASE_DEF ON ACT_CMMN_RU_SENTRY_PART_INST (CASE_DEF_ID_);
+
+ALTER TABLE ACT_CMMN_RU_SENTRY_PART_INST
+ ADD CONSTRAINT ACT_FK_SENTRY_CASE_INST FOREIGN KEY (CASE_INST_ID_) REFERENCES ACT_CMMN_RU_CASE_INST (ID_);
+CREATE INDEX ACT_IDX_SENTRY_CASE_INST ON ACT_CMMN_RU_SENTRY_PART_INST (CASE_INST_ID_);
+
+ALTER TABLE ACT_CMMN_RU_SENTRY_PART_INST
+ ADD CONSTRAINT ACT_FK_SENTRY_PLAN_ITEM FOREIGN KEY (PLAN_ITEM_INST_ID_) REFERENCES ACT_CMMN_RU_PLAN_ITEM_INST (ID_);
+CREATE INDEX ACT_IDX_SENTRY_PLAN_ITEM ON ACT_CMMN_RU_SENTRY_PART_INST (PLAN_ITEM_INST_ID_);
+
+CREATE TABLE ACT_CMMN_RU_MIL_INST
+(
+ ID_ VARCHAR(255) NOT NULL,
+ NAME_ VARCHAR(255) NOT NULL,
+ TIME_STAMP_ datetime(3) NOT NULL,
+ CASE_INST_ID_ VARCHAR(255) NOT NULL,
+ CASE_DEF_ID_ VARCHAR(255) NOT NULL,
+ ELEMENT_ID_ VARCHAR(255) NOT NULL,
+ TENANT_ID_ VARCHAR(255) DEFAULT '' NULL,
+ CONSTRAINT PK_ACT_CMMN_RU_MIL_INST PRIMARY KEY (ID_)
+);
+
+ALTER TABLE ACT_CMMN_RU_MIL_INST
+ ADD CONSTRAINT ACT_FK_MIL_CASE_DEF FOREIGN KEY (CASE_DEF_ID_) REFERENCES ACT_CMMN_CASEDEF (ID_);
+CREATE INDEX ACT_IDX_MIL_CASE_DEF ON ACT_CMMN_RU_MIL_INST (CASE_DEF_ID_);
+
+ALTER TABLE ACT_CMMN_RU_MIL_INST
+ ADD CONSTRAINT ACT_FK_MIL_CASE_INST FOREIGN KEY (CASE_INST_ID_) REFERENCES ACT_CMMN_RU_CASE_INST (ID_);
+CREATE INDEX ACT_IDX_MIL_CASE_INST ON ACT_CMMN_RU_MIL_INST (CASE_INST_ID_);
+
+CREATE TABLE ACT_CMMN_HI_CASE_INST
+(
+ ID_ VARCHAR(255) NOT NULL,
+ REV_ INT NOT NULL,
+ BUSINESS_KEY_ VARCHAR(255) NULL,
+ NAME_ VARCHAR(255) NULL,
+ PARENT_ID_ VARCHAR(255) NULL,
+ CASE_DEF_ID_ VARCHAR(255) NULL,
+ STATE_ VARCHAR(255) NULL,
+ START_TIME_ datetime(3) NULL,
+ END_TIME_ datetime(3) NULL,
+ START_USER_ID_ VARCHAR(255) NULL,
+ CALLBACK_ID_ VARCHAR(255) NULL,
+ CALLBACK_TYPE_ VARCHAR(255) NULL,
+ REFERENCE_ID_ VARCHAR(255) NULL,
+ REFERENCE_TYPE_ VARCHAR(255) NULL,
+ LAST_REACTIVATION_TIME_ datetime(3) NULL,
+ LAST_REACTIVATION_USER_ID_ VARCHAR(255) NULL,
+ BUSINESS_STATUS_ VARCHAR(255) NULL,
+ TENANT_ID_ VARCHAR(255) DEFAULT '' NULL,
+ CONSTRAINT PK_ACT_CMMN_HI_CASE_INST PRIMARY KEY (ID_)
+);
+
+CREATE INDEX ACT_IDX_HI_CASE_INST_END ON ACT_CMMN_HI_CASE_INST (END_TIME_);
+
+CREATE TABLE ACT_CMMN_HI_MIL_INST
+(
+ ID_ VARCHAR(255) NOT NULL,
+ REV_ INT NOT NULL,
+ NAME_ VARCHAR(255) NOT NULL,
+ TIME_STAMP_ datetime(3) NOT NULL,
+ CASE_INST_ID_ VARCHAR(255) NOT NULL,
+ CASE_DEF_ID_ VARCHAR(255) NOT NULL,
+ ELEMENT_ID_ VARCHAR(255) NOT NULL,
+ TENANT_ID_ VARCHAR(255) DEFAULT '' NULL,
+ CONSTRAINT PK_ACT_CMMN_HI_MIL_INST PRIMARY KEY (ID_)
+);
+
+CREATE TABLE ACT_CMMN_HI_PLAN_ITEM_INST
+(
+ ID_ VARCHAR(255) NOT NULL,
+ REV_ INT NOT NULL,
+ NAME_ VARCHAR(255) NULL,
+ STATE_ VARCHAR(255) NULL,
+ CASE_DEF_ID_ VARCHAR(255) NULL,
+ CASE_INST_ID_ VARCHAR(255) NULL,
+ STAGE_INST_ID_ VARCHAR(255) NULL,
+ IS_STAGE_ TINYINT NULL,
+ ELEMENT_ID_ VARCHAR(255) NULL,
+ ITEM_DEFINITION_ID_ VARCHAR(255) NULL,
+ ITEM_DEFINITION_TYPE_ VARCHAR(255) NULL,
+ CREATE_TIME_ datetime(3) NULL,
+ LAST_AVAILABLE_TIME_ datetime(3) NULL,
+ LAST_ENABLED_TIME_ datetime(3) NULL,
+ LAST_DISABLED_TIME_ datetime(3) NULL,
+ LAST_STARTED_TIME_ datetime(3) NULL,
+ LAST_SUSPENDED_TIME_ datetime(3) NULL,
+ COMPLETED_TIME_ datetime(3) NULL,
+ OCCURRED_TIME_ datetime(3) NULL,
+ TERMINATED_TIME_ datetime(3) NULL,
+ EXIT_TIME_ datetime(3) NULL,
+ ENDED_TIME_ datetime(3) NULL,
+ LAST_UPDATED_TIME_ datetime(3) NULL,
+ START_USER_ID_ VARCHAR(255) NULL,
+ REFERENCE_ID_ VARCHAR(255) NULL,
+ REFERENCE_TYPE_ VARCHAR(255) NULL,
+ ENTRY_CRITERION_ID_ VARCHAR(255) NULL,
+ EXIT_CRITERION_ID_ VARCHAR(255) NULL,
+ SHOW_IN_OVERVIEW_ TINYINT NULL,
+ EXTRA_VALUE_ VARCHAR(255) NULL,
+ DERIVED_CASE_DEF_ID_ VARCHAR(255) NULL,
+ LAST_UNAVAILABLE_TIME_ datetime(3) NULL,
+ TENANT_ID_ VARCHAR(255) DEFAULT '' NULL,
+ CONSTRAINT PK_ACT_CMMN_HI_PLAN_ITEM_INST PRIMARY KEY (ID_)
+);
+
+CREATE INDEX ACT_IDX_HI_PLAN_ITEM_INST_CASE ON ACT_CMMN_HI_PLAN_ITEM_INST (CASE_INST_ID_);
+
+insert into ACT_GE_PROPERTY
+values ('cmmn.schema.version', '7.1.0.2', 1);
diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.kingbase-oracle.create.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.kingbase-oracle.create.cmmn.sql
new file mode 100644
index 00000000000..456fccb4dee
--- /dev/null
+++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.kingbase-oracle.create.cmmn.sql
@@ -0,0 +1,263 @@
+CREATE TABLE ACT_CMMN_DEPLOYMENT
+(
+ ID_ VARCHAR2(255) NOT NULL,
+ NAME_ VARCHAR2(255),
+ CATEGORY_ VARCHAR2(255),
+ KEY_ VARCHAR2(255),
+ DEPLOY_TIME_ TIMESTAMP,
+ PARENT_DEPLOYMENT_ID_ VARCHAR2(255),
+ TENANT_ID_ VARCHAR2(255) DEFAULT '',
+ CONSTRAINT PK_ACT_CMMN_DEPLOYMENT PRIMARY KEY (ID_)
+);
+
+CREATE TABLE ACT_CMMN_DEPLOYMENT_RESOURCE
+(
+ ID_ VARCHAR2(255) NOT NULL,
+ NAME_ VARCHAR2(255),
+ DEPLOYMENT_ID_ VARCHAR2(255),
+ RESOURCE_BYTES_ BLOB,
+ GENERATED_ NUMBER(1),
+ CONSTRAINT PK_CMMN_DEPLOYMENT_RESOURCE PRIMARY KEY (ID_)
+);
+
+ALTER TABLE ACT_CMMN_DEPLOYMENT_RESOURCE
+ ADD CONSTRAINT ACT_FK_CMMN_RSRC_DPL FOREIGN KEY (DEPLOYMENT_ID_) REFERENCES ACT_CMMN_DEPLOYMENT (ID_);
+
+CREATE INDEX ACT_IDX_CMMN_RSRC_DPL ON ACT_CMMN_DEPLOYMENT_RESOURCE (DEPLOYMENT_ID_);
+
+CREATE TABLE ACT_CMMN_CASEDEF
+(
+ ID_ VARCHAR2(255) NOT NULL,
+ REV_ INTEGER NOT NULL,
+ NAME_ VARCHAR2(255),
+ KEY_ VARCHAR2(255) NOT NULL,
+ VERSION_ INTEGER NOT NULL,
+ CATEGORY_ VARCHAR2(255),
+ DEPLOYMENT_ID_ VARCHAR2(255),
+ RESOURCE_NAME_ VARCHAR2(4000),
+ DESCRIPTION_ VARCHAR2(4000),
+ HAS_GRAPHICAL_NOTATION_ NUMBER(1),
+ DGRM_RESOURCE_NAME_ VARCHAR2(4000),
+ HAS_START_FORM_KEY_ NUMBER(1),
+ TENANT_ID_ VARCHAR2(255) DEFAULT '',
+ CONSTRAINT PK_ACT_CMMN_CASEDEF PRIMARY KEY (ID_)
+);
+
+ALTER TABLE ACT_CMMN_CASEDEF
+ ADD CONSTRAINT ACT_FK_CASE_DEF_DPLY FOREIGN KEY (DEPLOYMENT_ID_) REFERENCES ACT_CMMN_DEPLOYMENT (ID_);
+CREATE INDEX ACT_IDX_CASE_DEF_DPLY ON ACT_CMMN_CASEDEF (DEPLOYMENT_ID_);
+
+CREATE UNIQUE INDEX ACT_IDX_CASE_DEF_UNIQ ON ACT_CMMN_CASEDEF (KEY_, VERSION_, TENANT_ID_);
+
+CREATE TABLE ACT_CMMN_RU_CASE_INST
+(
+ ID_ VARCHAR2(255) NOT NULL,
+ REV_ INTEGER NOT NULL,
+ BUSINESS_KEY_ VARCHAR2(255),
+ NAME_ VARCHAR2(255),
+ PARENT_ID_ VARCHAR2(255),
+ CASE_DEF_ID_ VARCHAR2(255),
+ STATE_ VARCHAR2(255),
+ START_TIME_ TIMESTAMP,
+ START_USER_ID_ VARCHAR2(255),
+ CALLBACK_ID_ VARCHAR2(255),
+ CALLBACK_TYPE_ VARCHAR2(255),
+ LOCK_TIME_ TIMESTAMP,
+ LOCK_OWNER_ VARCHAR2(255),
+ IS_COMPLETEABLE_ NUMBER(1),
+ REFERENCE_ID_ VARCHAR2(255),
+ REFERENCE_TYPE_ VARCHAR2(255),
+ LAST_REACTIVATION_TIME_ TIMESTAMP(3),
+ LAST_REACTIVATION_USER_ID_ VARCHAR2(255),
+ BUSINESS_STATUS_ VARCHAR2(255),
+ TENANT_ID_ VARCHAR2(255) DEFAULT '',
+ CONSTRAINT PK_ACT_CMMN_RU_CASE_INST PRIMARY KEY (ID_)
+);
+
+ALTER TABLE ACT_CMMN_RU_CASE_INST
+ ADD CONSTRAINT ACT_FK_CASE_INST_CASE_DEF FOREIGN KEY (CASE_DEF_ID_) REFERENCES ACT_CMMN_CASEDEF (ID_);
+
+CREATE INDEX ACT_IDX_CASE_INST_CASE_DEF ON ACT_CMMN_RU_CASE_INST (CASE_DEF_ID_);
+CREATE INDEX ACT_IDX_CASE_INST_PARENT ON ACT_CMMN_RU_CASE_INST (PARENT_ID_);
+CREATE INDEX ACT_IDX_CASE_INST_REF_ID_ ON ACT_CMMN_RU_CASE_INST (REFERENCE_ID_);
+
+CREATE TABLE ACT_CMMN_RU_PLAN_ITEM_INST
+(
+ ID_ VARCHAR2(255) NOT NULL,
+ REV_ INTEGER NOT NULL,
+ CASE_DEF_ID_ VARCHAR2(255),
+ CASE_INST_ID_ VARCHAR2(255),
+ STAGE_INST_ID_ VARCHAR2(255),
+ IS_STAGE_ NUMBER(1),
+ ELEMENT_ID_ VARCHAR2(255),
+ NAME_ VARCHAR2(255),
+ STATE_ VARCHAR2(255),
+ CREATE_TIME_ TIMESTAMP,
+ START_USER_ID_ VARCHAR2(255),
+ ASSIGNEE_ VARCHAR2(255),
+ COMPLETED_BY_ VARCHAR2(255),
+ REFERENCE_ID_ VARCHAR2(255),
+ REFERENCE_TYPE_ VARCHAR2(255),
+ ITEM_DEFINITION_ID_ VARCHAR2(255),
+ ITEM_DEFINITION_TYPE_ VARCHAR2(255),
+ IS_COMPLETEABLE_ NUMBER(1),
+ IS_COUNT_ENABLED_ NUMBER(1),
+ VAR_COUNT_ INTEGER,
+ SENTRY_PART_INST_COUNT_ INTEGER,
+ LAST_AVAILABLE_TIME_ TIMESTAMP(3),
+ LAST_ENABLED_TIME_ TIMESTAMP(3),
+ LAST_DISABLED_TIME_ TIMESTAMP(3),
+ LAST_STARTED_TIME_ TIMESTAMP(3),
+ LAST_SUSPENDED_TIME_ TIMESTAMP(3),
+ COMPLETED_TIME_ TIMESTAMP(3),
+ OCCURRED_TIME_ TIMESTAMP(3),
+ TERMINATED_TIME_ TIMESTAMP(3),
+ EXIT_TIME_ TIMESTAMP(3),
+ ENDED_TIME_ TIMESTAMP(3),
+ ENTRY_CRITERION_ID_ VARCHAR2(255),
+ EXIT_CRITERION_ID_ VARCHAR2(255),
+ EXTRA_VALUE_ VARCHAR2(255),
+ DERIVED_CASE_DEF_ID_ VARCHAR2(255),
+ LAST_UNAVAILABLE_TIME_ TIMESTAMP(3),
+ TENANT_ID_ VARCHAR2(255) DEFAULT '',
+ CONSTRAINT PK_CMMN_PLAN_ITEM_INST PRIMARY KEY (ID_)
+);
+
+ALTER TABLE ACT_CMMN_RU_PLAN_ITEM_INST
+ ADD CONSTRAINT ACT_FK_PLAN_ITEM_CASE_DEF FOREIGN KEY (CASE_DEF_ID_) REFERENCES ACT_CMMN_CASEDEF (ID_);
+CREATE INDEX ACT_IDX_PLAN_ITEM_CASE_DEF ON ACT_CMMN_RU_PLAN_ITEM_INST (CASE_DEF_ID_);
+
+ALTER TABLE ACT_CMMN_RU_PLAN_ITEM_INST
+ ADD CONSTRAINT ACT_FK_PLAN_ITEM_CASE_INST FOREIGN KEY (CASE_INST_ID_) REFERENCES ACT_CMMN_RU_CASE_INST (ID_);
+CREATE INDEX ACT_IDX_PLAN_ITEM_CASE_INST ON ACT_CMMN_RU_PLAN_ITEM_INST (CASE_INST_ID_);
+
+CREATE INDEX ACT_IDX_PLAN_ITEM_STAGE_INST ON ACT_CMMN_RU_PLAN_ITEM_INST (STAGE_INST_ID_);
+
+CREATE TABLE ACT_CMMN_RU_SENTRY_PART_INST
+(
+ ID_ VARCHAR2(255) NOT NULL,
+ REV_ INTEGER NOT NULL,
+ CASE_DEF_ID_ VARCHAR2(255),
+ CASE_INST_ID_ VARCHAR2(255),
+ PLAN_ITEM_INST_ID_ VARCHAR2(255),
+ ON_PART_ID_ VARCHAR2(255),
+ IF_PART_ID_ VARCHAR2(255),
+ TIME_STAMP_ TIMESTAMP,
+ CONSTRAINT PK_CMMN_SENTRY_PART_INST PRIMARY KEY (ID_)
+);
+
+ALTER TABLE ACT_CMMN_RU_SENTRY_PART_INST
+ ADD CONSTRAINT ACT_FK_SENTRY_CASE_DEF FOREIGN KEY (CASE_DEF_ID_) REFERENCES ACT_CMMN_CASEDEF (ID_);
+CREATE INDEX ACT_IDX_SENTRY_CASE_DEF ON ACT_CMMN_RU_SENTRY_PART_INST (CASE_DEF_ID_);
+
+ALTER TABLE ACT_CMMN_RU_SENTRY_PART_INST
+ ADD CONSTRAINT ACT_FK_SENTRY_CASE_INST FOREIGN KEY (CASE_INST_ID_) REFERENCES ACT_CMMN_RU_CASE_INST (ID_);
+CREATE INDEX ACT_IDX_SENTRY_CASE_INST ON ACT_CMMN_RU_SENTRY_PART_INST (CASE_INST_ID_);
+
+ALTER TABLE ACT_CMMN_RU_SENTRY_PART_INST
+ ADD CONSTRAINT ACT_FK_SENTRY_PLAN_ITEM FOREIGN KEY (PLAN_ITEM_INST_ID_) REFERENCES ACT_CMMN_RU_PLAN_ITEM_INST (ID_);
+CREATE INDEX ACT_IDX_SENTRY_PLAN_ITEM ON ACT_CMMN_RU_SENTRY_PART_INST (PLAN_ITEM_INST_ID_);
+
+CREATE TABLE ACT_CMMN_RU_MIL_INST
+(
+ ID_ VARCHAR2(255) NOT NULL,
+ NAME_ VARCHAR2(255) NOT NULL,
+ TIME_STAMP_ TIMESTAMP NOT NULL,
+ CASE_INST_ID_ VARCHAR2(255) NOT NULL,
+ CASE_DEF_ID_ VARCHAR2(255) NOT NULL,
+ ELEMENT_ID_ VARCHAR2(255) NOT NULL,
+ TENANT_ID_ VARCHAR2(255) DEFAULT '',
+ CONSTRAINT PK_ACT_CMMN_RU_MIL_INST PRIMARY KEY (ID_)
+);
+
+ALTER TABLE ACT_CMMN_RU_MIL_INST
+ ADD CONSTRAINT ACT_FK_MIL_CASE_DEF FOREIGN KEY (CASE_DEF_ID_) REFERENCES ACT_CMMN_CASEDEF (ID_);
+CREATE INDEX ACT_IDX_MIL_CASE_DEF ON ACT_CMMN_RU_MIL_INST (CASE_DEF_ID_);
+
+ALTER TABLE ACT_CMMN_RU_MIL_INST
+ ADD CONSTRAINT ACT_FK_MIL_CASE_INST FOREIGN KEY (CASE_INST_ID_) REFERENCES ACT_CMMN_RU_CASE_INST (ID_);
+CREATE INDEX ACT_IDX_MIL_CASE_INST ON ACT_CMMN_RU_MIL_INST (CASE_INST_ID_);
+
+CREATE TABLE ACT_CMMN_HI_CASE_INST
+(
+ ID_ VARCHAR2(255) NOT NULL,
+ REV_ INTEGER NOT NULL,
+ BUSINESS_KEY_ VARCHAR2(255),
+ NAME_ VARCHAR2(255),
+ PARENT_ID_ VARCHAR2(255),
+ CASE_DEF_ID_ VARCHAR2(255),
+ STATE_ VARCHAR2(255),
+ START_TIME_ TIMESTAMP,
+ END_TIME_ TIMESTAMP,
+ START_USER_ID_ VARCHAR2(255),
+ CALLBACK_ID_ VARCHAR2(255),
+ CALLBACK_TYPE_ VARCHAR2(255),
+ REFERENCE_ID_ VARCHAR2(255),
+ REFERENCE_TYPE_ VARCHAR2(255),
+ LAST_REACTIVATION_TIME_ TIMESTAMP(3),
+ LAST_REACTIVATION_USER_ID_ VARCHAR2(255),
+ BUSINESS_STATUS_ VARCHAR2(255),
+ TENANT_ID_ VARCHAR2(255) DEFAULT '',
+ END_USER_ID_ VARCHAR2(255),
+ CONSTRAINT PK_ACT_CMMN_HI_CASE_INST PRIMARY KEY (ID_)
+);
+
+CREATE INDEX ACT_IDX_HI_CASE_INST_END ON ACT_CMMN_HI_CASE_INST (END_TIME_);
+
+CREATE TABLE ACT_CMMN_HI_MIL_INST
+(
+ ID_ VARCHAR2(255) NOT NULL,
+ REV_ INTEGER NOT NULL,
+ NAME_ VARCHAR2(255) NOT NULL,
+ TIME_STAMP_ TIMESTAMP NOT NULL,
+ CASE_INST_ID_ VARCHAR2(255) NOT NULL,
+ CASE_DEF_ID_ VARCHAR2(255) NOT NULL,
+ ELEMENT_ID_ VARCHAR2(255) NOT NULL,
+ TENANT_ID_ VARCHAR2(255) DEFAULT '',
+ CONSTRAINT PK_ACT_CMMN_HI_MIL_INST PRIMARY KEY (ID_)
+);
+
+CREATE TABLE ACT_CMMN_HI_PLAN_ITEM_INST
+(
+ ID_ VARCHAR2(255) NOT NULL,
+ REV_ INTEGER NOT NULL,
+ NAME_ VARCHAR2(255),
+ STATE_ VARCHAR2(255),
+ CASE_DEF_ID_ VARCHAR2(255),
+ CASE_INST_ID_ VARCHAR2(255),
+ STAGE_INST_ID_ VARCHAR2(255),
+ IS_STAGE_ NUMBER(1),
+ ELEMENT_ID_ VARCHAR2(255),
+ ITEM_DEFINITION_ID_ VARCHAR2(255),
+ ITEM_DEFINITION_TYPE_ VARCHAR2(255),
+ CREATE_TIME_ TIMESTAMP,
+ LAST_AVAILABLE_TIME_ TIMESTAMP,
+ LAST_ENABLED_TIME_ TIMESTAMP,
+ LAST_DISABLED_TIME_ TIMESTAMP,
+ LAST_STARTED_TIME_ TIMESTAMP,
+ LAST_SUSPENDED_TIME_ TIMESTAMP,
+ COMPLETED_TIME_ TIMESTAMP,
+ OCCURRED_TIME_ TIMESTAMP,
+ TERMINATED_TIME_ TIMESTAMP,
+ EXIT_TIME_ TIMESTAMP,
+ ENDED_TIME_ TIMESTAMP,
+ LAST_UPDATED_TIME_ TIMESTAMP,
+ START_USER_ID_ VARCHAR2(255),
+ ASSIGNEE_ VARCHAR2(255),
+ COMPLETED_BY_ VARCHAR2(255),
+ REFERENCE_ID_ VARCHAR2(255),
+ REFERENCE_TYPE_ VARCHAR2(255),
+ ENTRY_CRITERION_ID_ VARCHAR2(255),
+ EXIT_CRITERION_ID_ VARCHAR2(255),
+ SHOW_IN_OVERVIEW_ NUMBER(1),
+ EXTRA_VALUE_ VARCHAR2(255),
+ DERIVED_CASE_DEF_ID_ VARCHAR2(255),
+ LAST_UNAVAILABLE_TIME_ TIMESTAMP(3),
+ TENANT_ID_ VARCHAR2(255) DEFAULT '',
+ CONSTRAINT PK_ACT_CMMN_HI_PLAN_ITEM_INST PRIMARY KEY (ID_)
+);
+
+CREATE INDEX ACT_IDX_HI_PLAN_ITEM_INST_CASE ON ACT_CMMN_HI_PLAN_ITEM_INST (CASE_INST_ID_);
+
+insert into ACT_GE_PROPERTY
+values ('cmmn.schema.version', '7.1.0.2', 1);
\ No newline at end of file
diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.kingbase-sqlserver.create.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.kingbase-sqlserver.create.cmmn.sql
new file mode 100644
index 00000000000..99d747af72d
--- /dev/null
+++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.kingbase-sqlserver.create.cmmn.sql
@@ -0,0 +1,263 @@
+CREATE TABLE ACT_CMMN_DEPLOYMENT
+(
+ ID_ varchar(255) NOT NULL,
+ NAME_ nvarchar(255),
+ CATEGORY_ varchar(255),
+ KEY_ varchar(255),
+ DEPLOY_TIME_ datetime,
+ PARENT_DEPLOYMENT_ID_ varchar(255),
+ TENANT_ID_ varchar(255) CONSTRAINT DF_ACT_CMMN_DEPLOYMENT_TENANT_ID_ DEFAULT '',
+ CONSTRAINT PK_ACT_CMMN_DEPLOYMENT PRIMARY KEY (ID_)
+);
+
+CREATE TABLE ACT_CMMN_DEPLOYMENT_RESOURCE
+(
+ ID_ varchar(255) NOT NULL,
+ NAME_ nvarchar(255),
+ DEPLOYMENT_ID_ varchar(255),
+ RESOURCE_BYTES_ varbinary(MAX),
+ GENERATED_ bit,
+ CONSTRAINT PK_CMMN_DEPLOYMENT_RESOURCE PRIMARY KEY (ID_)
+);
+
+ALTER TABLE ACT_CMMN_DEPLOYMENT_RESOURCE
+ ADD CONSTRAINT ACT_FK_CMMN_RSRC_DPL FOREIGN KEY (DEPLOYMENT_ID_) REFERENCES ACT_CMMN_DEPLOYMENT (ID_);
+
+CREATE NONCLUSTERED INDEX ACT_IDX_CMMN_RSRC_DPL ON ACT_CMMN_DEPLOYMENT_RESOURCE(DEPLOYMENT_ID_);
+
+CREATE TABLE ACT_CMMN_CASEDEF
+(
+ ID_ varchar(255) NOT NULL,
+ REV_ int NOT NULL,
+ NAME_ nvarchar(255),
+ KEY_ varchar(255) NOT NULL,
+ VERSION_ int NOT NULL,
+ CATEGORY_ varchar(255),
+ DEPLOYMENT_ID_ varchar(255),
+ RESOURCE_NAME_ nvarchar(4000),
+ DESCRIPTION_ nvarchar(4000),
+ HAS_GRAPHICAL_NOTATION_ bit,
+ DGRM_RESOURCE_NAME_ nvarchar(4000),
+ HAS_START_FORM_KEY_ bit,
+ TENANT_ID_ varchar(255) CONSTRAINT DF_ACT_CMMN_CASEDEF_TENANT_ID_ DEFAULT '',
+ CONSTRAINT PK_ACT_CMMN_CASEDEF PRIMARY KEY (ID_)
+);
+
+ALTER TABLE ACT_CMMN_CASEDEF
+ ADD CONSTRAINT ACT_FK_CASE_DEF_DPLY FOREIGN KEY (DEPLOYMENT_ID_) REFERENCES ACT_CMMN_DEPLOYMENT (ID_);
+CREATE NONCLUSTERED INDEX ACT_IDX_CASE_DEF_DPLY ON ACT_CMMN_CASEDEF(DEPLOYMENT_ID_);
+
+CREATE UNIQUE NONCLUSTERED INDEX ACT_IDX_CASE_DEF_UNIQ ON ACT_CMMN_CASEDEF(KEY_, VERSION_, TENANT_ID_);
+
+CREATE TABLE ACT_CMMN_RU_CASE_INST
+(
+ ID_ varchar(255) NOT NULL,
+ REV_ int NOT NULL,
+ BUSINESS_KEY_ nvarchar(255),
+ NAME_ nvarchar(255),
+ PARENT_ID_ varchar(255),
+ CASE_DEF_ID_ varchar(255),
+ STATE_ varchar(255),
+ START_TIME_ datetime,
+ START_USER_ID_ varchar(255),
+ CALLBACK_ID_ varchar(255),
+ CALLBACK_TYPE_ varchar(255),
+ LOCK_TIME_ datetime,
+ LOCK_OWNER_ varchar(255),
+ IS_COMPLETEABLE_ bit,
+ REFERENCE_ID_ varchar(255),
+ REFERENCE_TYPE_ varchar(255),
+ LAST_REACTIVATION_TIME_ datetime,
+ LAST_REACTIVATION_USER_ID_ varchar(255),
+ BUSINESS_STATUS_ nvarchar(255),
+ TENANT_ID_ varchar(255) CONSTRAINT DF_ACT_CMMN_RU_CASE_INST_TENANT_ID_ DEFAULT '',
+ CONSTRAINT PK_ACT_CMMN_RU_CASE_INST PRIMARY KEY (ID_)
+);
+
+ALTER TABLE ACT_CMMN_RU_CASE_INST
+ ADD CONSTRAINT ACT_FK_CASE_INST_CASE_DEF FOREIGN KEY (CASE_DEF_ID_) REFERENCES ACT_CMMN_CASEDEF (ID_);
+
+CREATE NONCLUSTERED INDEX ACT_IDX_CASE_INST_CASE_DEF ON ACT_CMMN_RU_CASE_INST(CASE_DEF_ID_);
+CREATE NONCLUSTERED INDEX ACT_IDX_CASE_INST_PARENT ON ACT_CMMN_RU_CASE_INST(PARENT_ID_);
+CREATE NONCLUSTERED INDEX ACT_IDX_CASE_INST_REF_ID_ ON ACT_CMMN_RU_CASE_INST(REFERENCE_ID_);
+
+CREATE TABLE ACT_CMMN_RU_PLAN_ITEM_INST
+(
+ ID_ varchar(255) NOT NULL,
+ REV_ int NOT NULL,
+ CASE_DEF_ID_ varchar(255),
+ CASE_INST_ID_ varchar(255),
+ STAGE_INST_ID_ varchar(255),
+ IS_STAGE_ bit,
+ ELEMENT_ID_ varchar(255),
+ NAME_ nvarchar(255),
+ STATE_ varchar(255),
+ CREATE_TIME_ datetime,
+ START_USER_ID_ varchar(255),
+ ASSIGNEE_ nvarchar(255),
+ COMPLETED_BY_ nvarchar(255),
+ REFERENCE_ID_ varchar(255),
+ REFERENCE_TYPE_ varchar(255),
+ ITEM_DEFINITION_ID_ varchar(255),
+ ITEM_DEFINITION_TYPE_ varchar(255),
+ IS_COMPLETEABLE_ bit,
+ IS_COUNT_ENABLED_ bit,
+ VAR_COUNT_ int,
+ SENTRY_PART_INST_COUNT_ int,
+ LAST_AVAILABLE_TIME_ datetime,
+ LAST_ENABLED_TIME_ datetime,
+ LAST_DISABLED_TIME_ datetime,
+ LAST_STARTED_TIME_ datetime,
+ LAST_SUSPENDED_TIME_ datetime,
+ COMPLETED_TIME_ datetime,
+ OCCURRED_TIME_ datetime,
+ TERMINATED_TIME_ datetime,
+ EXIT_TIME_ datetime,
+ ENDED_TIME_ datetime,
+ ENTRY_CRITERION_ID_ varchar(255),
+ EXIT_CRITERION_ID_ varchar(255),
+ EXTRA_VALUE_ varchar(255),
+ DERIVED_CASE_DEF_ID_ varchar(255),
+ LAST_UNAVAILABLE_TIME_ datetime,
+ TENANT_ID_ varchar(255) CONSTRAINT DF_ACT_CMMN_RU_PLAN_ITEM_INST_TENANT_ID_ DEFAULT '',
+ CONSTRAINT PK_CMMN_PLAN_ITEM_INST PRIMARY KEY (ID_)
+);
+
+ALTER TABLE ACT_CMMN_RU_PLAN_ITEM_INST
+ ADD CONSTRAINT ACT_FK_PLAN_ITEM_CASE_DEF FOREIGN KEY (CASE_DEF_ID_) REFERENCES ACT_CMMN_CASEDEF (ID_);
+CREATE NONCLUSTERED INDEX ACT_IDX_PLAN_ITEM_CASE_DEF ON ACT_CMMN_RU_PLAN_ITEM_INST(CASE_DEF_ID_);
+
+ALTER TABLE ACT_CMMN_RU_PLAN_ITEM_INST
+ ADD CONSTRAINT ACT_FK_PLAN_ITEM_CASE_INST FOREIGN KEY (CASE_INST_ID_) REFERENCES ACT_CMMN_RU_CASE_INST (ID_);
+CREATE NONCLUSTERED INDEX ACT_IDX_PLAN_ITEM_CASE_INST ON ACT_CMMN_RU_PLAN_ITEM_INST(CASE_INST_ID_);
+
+CREATE NONCLUSTERED INDEX ACT_IDX_PLAN_ITEM_STAGE_INST ON ACT_CMMN_RU_PLAN_ITEM_INST(STAGE_INST_ID_);
+
+CREATE TABLE ACT_CMMN_RU_SENTRY_PART_INST
+(
+ ID_ varchar(255) NOT NULL,
+ REV_ int NOT NULL,
+ CASE_DEF_ID_ varchar(255),
+ CASE_INST_ID_ varchar(255),
+ PLAN_ITEM_INST_ID_ varchar(255),
+ ON_PART_ID_ varchar(255),
+ IF_PART_ID_ varchar(255),
+ TIME_STAMP_ datetime,
+ CONSTRAINT PK_CMMN_SENTRY_PART_INST PRIMARY KEY (ID_)
+);
+
+ALTER TABLE ACT_CMMN_RU_SENTRY_PART_INST
+ ADD CONSTRAINT ACT_FK_SENTRY_CASE_DEF FOREIGN KEY (CASE_DEF_ID_) REFERENCES ACT_CMMN_CASEDEF (ID_);
+CREATE NONCLUSTERED INDEX ACT_IDX_SENTRY_CASE_DEF ON ACT_CMMN_RU_SENTRY_PART_INST(CASE_DEF_ID_);
+
+ALTER TABLE ACT_CMMN_RU_SENTRY_PART_INST
+ ADD CONSTRAINT ACT_FK_SENTRY_CASE_INST FOREIGN KEY (CASE_INST_ID_) REFERENCES ACT_CMMN_RU_CASE_INST (ID_);
+CREATE NONCLUSTERED INDEX ACT_IDX_SENTRY_CASE_INST ON ACT_CMMN_RU_SENTRY_PART_INST(CASE_INST_ID_);
+
+ALTER TABLE ACT_CMMN_RU_SENTRY_PART_INST
+ ADD CONSTRAINT ACT_FK_SENTRY_PLAN_ITEM FOREIGN KEY (PLAN_ITEM_INST_ID_) REFERENCES ACT_CMMN_RU_PLAN_ITEM_INST (ID_);
+CREATE NONCLUSTERED INDEX ACT_IDX_SENTRY_PLAN_ITEM ON ACT_CMMN_RU_SENTRY_PART_INST(PLAN_ITEM_INST_ID_);
+
+CREATE TABLE ACT_CMMN_RU_MIL_INST
+(
+ ID_ varchar(255) NOT NULL,
+ NAME_ nvarchar(255) NOT NULL,
+ TIME_STAMP_ datetime NOT NULL,
+ CASE_INST_ID_ varchar(255) NOT NULL,
+ CASE_DEF_ID_ varchar(255) NOT NULL,
+ ELEMENT_ID_ varchar(255) NOT NULL,
+ TENANT_ID_ varchar(255) CONSTRAINT DF_ACT_CMMN_RU_MIL_INST_TENANT_ID_ DEFAULT '',
+ CONSTRAINT PK_ACT_CMMN_RU_MIL_INST PRIMARY KEY (ID_)
+);
+
+ALTER TABLE ACT_CMMN_RU_MIL_INST
+ ADD CONSTRAINT ACT_FK_MIL_CASE_DEF FOREIGN KEY (CASE_DEF_ID_) REFERENCES ACT_CMMN_CASEDEF (ID_);
+CREATE NONCLUSTERED INDEX ACT_IDX_MIL_CASE_DEF ON ACT_CMMN_RU_MIL_INST(CASE_DEF_ID_);
+
+ALTER TABLE ACT_CMMN_RU_MIL_INST
+ ADD CONSTRAINT ACT_FK_MIL_CASE_INST FOREIGN KEY (CASE_INST_ID_) REFERENCES ACT_CMMN_RU_CASE_INST (ID_);
+CREATE NONCLUSTERED INDEX ACT_IDX_MIL_CASE_INST ON ACT_CMMN_RU_MIL_INST(CASE_INST_ID_);
+
+CREATE TABLE ACT_CMMN_HI_CASE_INST
+(
+ ID_ varchar(255) NOT NULL,
+ REV_ int NOT NULL,
+ BUSINESS_KEY_ nvarchar(255),
+ NAME_ nvarchar(255),
+ PARENT_ID_ varchar(255),
+ CASE_DEF_ID_ varchar(255),
+ STATE_ varchar(255),
+ START_TIME_ datetime,
+ END_TIME_ datetime,
+ START_USER_ID_ varchar(255),
+ CALLBACK_ID_ varchar(255),
+ CALLBACK_TYPE_ varchar(255),
+ REFERENCE_ID_ varchar(255),
+ REFERENCE_TYPE_ varchar(255),
+ LAST_REACTIVATION_TIME_ datetime,
+ LAST_REACTIVATION_USER_ID_ varchar(255),
+ BUSINESS_STATUS_ nvarchar(255),
+ TENANT_ID_ varchar(255) CONSTRAINT DF_ACT_CMMN_HI_CASE_INST_TENANT_ID_ DEFAULT '',
+ END_USER_ID_ varchar(255),
+ CONSTRAINT PK_ACT_CMMN_HI_CASE_INST PRIMARY KEY (ID_)
+);
+
+CREATE NONCLUSTERED INDEX ACT_IDX_HI_CASE_INST_END ON ACT_CMMN_HI_CASE_INST(END_TIME_);
+
+CREATE TABLE ACT_CMMN_HI_MIL_INST
+(
+ ID_ varchar(255) NOT NULL,
+ REV_ int NOT NULL,
+ NAME_ nvarchar(255) NOT NULL,
+ TIME_STAMP_ datetime NOT NULL,
+ CASE_INST_ID_ varchar(255) NOT NULL,
+ CASE_DEF_ID_ varchar(255) NOT NULL,
+ ELEMENT_ID_ varchar(255) NOT NULL,
+ TENANT_ID_ varchar(255) CONSTRAINT DF_ACT_CMMN_HI_MIL_INST_TENANT_ID_ DEFAULT '',
+ CONSTRAINT PK_ACT_CMMN_HI_MIL_INST PRIMARY KEY (ID_)
+);
+
+CREATE TABLE ACT_CMMN_HI_PLAN_ITEM_INST
+(
+ ID_ varchar(255) NOT NULL,
+ REV_ int NOT NULL,
+ NAME_ nvarchar(255),
+ STATE_ varchar(255),
+ CASE_DEF_ID_ varchar(255),
+ CASE_INST_ID_ varchar(255),
+ STAGE_INST_ID_ varchar(255),
+ IS_STAGE_ bit,
+ ELEMENT_ID_ varchar(255),
+ ITEM_DEFINITION_ID_ varchar(255),
+ ITEM_DEFINITION_TYPE_ varchar(255),
+ CREATE_TIME_ datetime,
+ LAST_AVAILABLE_TIME_ datetime,
+ LAST_ENABLED_TIME_ datetime,
+ LAST_DISABLED_TIME_ datetime,
+ LAST_STARTED_TIME_ datetime,
+ LAST_SUSPENDED_TIME_ datetime,
+ COMPLETED_TIME_ datetime,
+ OCCURRED_TIME_ datetime,
+ TERMINATED_TIME_ datetime,
+ EXIT_TIME_ datetime,
+ ENDED_TIME_ datetime,
+ LAST_UPDATED_TIME_ datetime,
+ START_USER_ID_ varchar(255),
+ ASSIGNEE_ nvarchar(255),
+ COMPLETED_BY_ nvarchar(255),
+ REFERENCE_ID_ varchar(255),
+ REFERENCE_TYPE_ varchar(255),
+ ENTRY_CRITERION_ID_ varchar(255),
+ EXIT_CRITERION_ID_ varchar(255),
+ SHOW_IN_OVERVIEW_ bit,
+ EXTRA_VALUE_ varchar(255),
+ DERIVED_CASE_DEF_ID_ varchar(255),
+ LAST_UNAVAILABLE_TIME_ datetime,
+ TENANT_ID_ varchar(255) CONSTRAINT DF_ACT_CMMN_HI_PLAN_ITEM_INST_TENANT_ID_ DEFAULT '',
+ CONSTRAINT PK_ACT_CMMN_HI_PLAN_ITEM_INST PRIMARY KEY (ID_)
+);
+
+CREATE NONCLUSTERED INDEX ACT_IDX_HI_PLAN_ITEM_INST_CASE ON ACT_CMMN_HI_PLAN_ITEM_INST(CASE_INST_ID_);
+
+insert into ACT_GE_PROPERTY
+values ('cmmn.schema.version', '7.1.0.2', 1);
\ No newline at end of file
diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/drop/flowable.kingbase-mysql.drop.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/drop/flowable.kingbase-mysql.drop.cmmn.sql
new file mode 100644
index 00000000000..c5c36df57f0
--- /dev/null
+++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/drop/flowable.kingbase-mysql.drop.cmmn.sql
@@ -0,0 +1,10 @@
+drop table ACT_CMMN_HI_PLAN_ITEM_INST cascade;
+drop table ACT_CMMN_HI_MIL_INST cascade;
+drop table ACT_CMMN_HI_CASE_INST cascade;
+drop table ACT_CMMN_RU_MIL_INST cascade;
+drop table ACT_CMMN_RU_SENTRY_PART_INST cascade;
+drop table ACT_CMMN_RU_PLAN_ITEM_INST cascade;
+drop table ACT_CMMN_RU_CASE_INST cascade;
+drop table ACT_CMMN_CASEDEF cascade;
+drop table ACT_CMMN_DEPLOYMENT_RESOURCE cascade;
+drop table ACT_CMMN_DEPLOYMENT cascade;
diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/drop/flowable.kingbase-oracle.drop.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/drop/flowable.kingbase-oracle.drop.cmmn.sql
new file mode 100644
index 00000000000..4e88b07aa07
--- /dev/null
+++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/drop/flowable.kingbase-oracle.drop.cmmn.sql
@@ -0,0 +1,10 @@
+drop table ACT_CMMN_HI_PLAN_ITEM_INST cascade;
+drop table ACT_CMMN_HI_MIL_INST cascade;
+drop table ACT_CMMN_HI_CASE_INST cascade;
+drop table ACT_CMMN_RU_MIL_INST cascade;
+drop table ACT_CMMN_RU_SENTRY_PART_INST cascade;
+drop table ACT_CMMN_RU_PLAN_ITEM_INST cascade;
+drop table ACT_CMMN_RU_CASE_INST cascade;
+drop table ACT_CMMN_CASEDEF cascade;
+drop table ACT_CMMN_DEPLOYMENT_RESOURCE cascade;
+drop table ACT_CMMN_DEPLOYMENT cascade;
\ No newline at end of file
diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/drop/flowable.kingbase-sqlserver.drop.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/drop/flowable.kingbase-sqlserver.drop.cmmn.sql
new file mode 100644
index 00000000000..4e88b07aa07
--- /dev/null
+++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/drop/flowable.kingbase-sqlserver.drop.cmmn.sql
@@ -0,0 +1,10 @@
+drop table ACT_CMMN_HI_PLAN_ITEM_INST cascade;
+drop table ACT_CMMN_HI_MIL_INST cascade;
+drop table ACT_CMMN_HI_CASE_INST cascade;
+drop table ACT_CMMN_RU_MIL_INST cascade;
+drop table ACT_CMMN_RU_SENTRY_PART_INST cascade;
+drop table ACT_CMMN_RU_PLAN_ITEM_INST cascade;
+drop table ACT_CMMN_RU_CASE_INST cascade;
+drop table ACT_CMMN_CASEDEF cascade;
+drop table ACT_CMMN_DEPLOYMENT_RESOURCE cascade;
+drop table ACT_CMMN_DEPLOYMENT cascade;
\ No newline at end of file
diff --git a/modules/flowable-dmn-engine/pom.xml b/modules/flowable-dmn-engine/pom.xml
index 9d2270a6af1..5239c60c45a 100755
--- a/modules/flowable-dmn-engine/pom.xml
+++ b/modules/flowable-dmn-engine/pom.xml
@@ -94,6 +94,11 @@
h2
test
+
+ cn.com.kingbase
+ kingbase8
+ 9.0.1
+
org.postgresql
diff --git a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.kingbase-mysql.create.dmn.sql b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.kingbase-mysql.create.dmn.sql
new file mode 100644
index 00000000000..32a98be9585
--- /dev/null
+++ b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.kingbase-mysql.create.dmn.sql
@@ -0,0 +1,18 @@
+CREATE TABLE ACT_DMN_DEPLOYMENT (ID_ VARCHAR(255) NOT NULL, NAME_ VARCHAR(255) NULL, CATEGORY_ VARCHAR(255) NULL, DEPLOY_TIME_ datetime(3) NULL, TENANT_ID_ VARCHAR(255) NULL, PARENT_DEPLOYMENT_ID_ VARCHAR(255) NULL, CONSTRAINT PK_ACT_DMN_DEPLOYMENT PRIMARY KEY (ID_));
+
+CREATE TABLE ACT_DMN_DEPLOYMENT_RESOURCE (ID_ VARCHAR(255) NOT NULL, NAME_ VARCHAR(255) NULL, DEPLOYMENT_ID_ VARCHAR(255) NULL, RESOURCE_BYTES_ LONGBLOB NULL, CONSTRAINT PK_ACT_DMN_DEPLOYMENT_RESOURCE PRIMARY KEY (ID_));
+
+CREATE TABLE ACT_DMN_DECISION (ID_ VARCHAR(255) NOT NULL, NAME_ VARCHAR(255) NULL, VERSION_ INT NULL, KEY_ VARCHAR(255) NULL, CATEGORY_ VARCHAR(255) NULL, DEPLOYMENT_ID_ VARCHAR(255) NULL, TENANT_ID_ VARCHAR(255) NULL, RESOURCE_NAME_ VARCHAR(255) NULL, DESCRIPTION_ VARCHAR(255) NULL, CONSTRAINT PK_ACT_DMN_DECISION_TABLE PRIMARY KEY (ID_));
+
+CREATE TABLE ACT_DMN_HI_DECISION_EXECUTION (ID_ VARCHAR(255) NOT NULL, DECISION_DEFINITION_ID_ VARCHAR(255) NULL, DEPLOYMENT_ID_ VARCHAR(255) NULL, START_TIME_ datetime(3) NULL, END_TIME_ datetime(3) NULL, INSTANCE_ID_ VARCHAR(255) NULL, EXECUTION_ID_ VARCHAR(255) NULL, ACTIVITY_ID_ VARCHAR(255) NULL, FAILED_ TINYINT DEFAULT 0 NULL, TENANT_ID_ VARCHAR(255) NULL, EXECUTION_JSON_ LONGTEXT NULL, CONSTRAINT PK_ACT_DMN_HI_DECISION_EXECUTION PRIMARY KEY (ID_));
+
+ALTER TABLE ACT_DMN_HI_DECISION_EXECUTION ADD SCOPE_TYPE_ VARCHAR(255) NULL;
+
+CREATE UNIQUE INDEX ACT_IDX_DMN_DEC_UNIQ ON ACT_DMN_DECISION(KEY_, VERSION_, TENANT_ID_);
+
+ALTER TABLE ACT_DMN_DECISION ADD DECISION_TYPE_ VARCHAR(255) NULL;
+
+CREATE INDEX ACT_IDX_DMN_INSTANCE_ID ON ACT_DMN_HI_DECISION_EXECUTION(INSTANCE_ID_);
+
+insert into ACT_GE_PROPERTY
+values ('dmn.schema.version', '7.1.0.2', 1);
diff --git a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.kingbase-oracle.create.dmn.sql b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.kingbase-oracle.create.dmn.sql
new file mode 100644
index 00000000000..bb9b0f50f3f
--- /dev/null
+++ b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.kingbase-oracle.create.dmn.sql
@@ -0,0 +1,19 @@
+CREATE TABLE ACT_DMN_DEPLOYMENT (ID_ VARCHAR2(255) NOT NULL, NAME_ VARCHAR2(255), CATEGORY_ VARCHAR2(255), DEPLOY_TIME_ TIMESTAMP, TENANT_ID_ VARCHAR2(255), PARENT_DEPLOYMENT_ID_ VARCHAR2(255), CONSTRAINT PK_ACT_DMN_DEPLOYMENT PRIMARY KEY (ID_));
+
+CREATE TABLE ACT_DMN_DEPLOYMENT_RESOURCE (ID_ VARCHAR2(255) NOT NULL, NAME_ VARCHAR2(255), DEPLOYMENT_ID_ VARCHAR2(255), RESOURCE_BYTES_ BLOB, CONSTRAINT PK_ACT_DMN_DEPLOYMENT_RESOURCE PRIMARY KEY (ID_));
+
+CREATE TABLE ACT_DMN_DECISION (ID_ VARCHAR2(255) NOT NULL, NAME_ VARCHAR2(255), VERSION_ INTEGER, KEY_ VARCHAR2(255), CATEGORY_ VARCHAR2(255), DECISION_TYPE_ VARCHAR2(255), DEPLOYMENT_ID_ VARCHAR2(255), TENANT_ID_ VARCHAR2(255), RESOURCE_NAME_ VARCHAR2(255), DESCRIPTION_ VARCHAR2(255), CONSTRAINT PK_ACT_DMN_DECISION_TABLE PRIMARY KEY (ID_));
+
+CREATE TABLE ACT_DMN_HI_DECISION_EXECUTION (ID_ VARCHAR2(255) NOT NULL, DECISION_DEFINITION_ID_ VARCHAR2(255), DEPLOYMENT_ID_ VARCHAR2(255), START_TIME_ TIMESTAMP, END_TIME_ TIMESTAMP, INSTANCE_ID_ VARCHAR2(255), EXECUTION_ID_ VARCHAR2(255), ACTIVITY_ID_ VARCHAR2(255), SCOPE_TYPE_ VARCHAR2(255), FAILED_ NUMBER(1) DEFAULT 0, TENANT_ID_ VARCHAR2(255), EXECUTION_JSON_ CLOB, CONSTRAINT PK_ACT_DMN_HI_DECISION_EXECUTI PRIMARY KEY (ID_));
+
+ALTER TABLE ACT_DMN_DEPLOYMENT_RESOURCE
+ ADD CONSTRAINT ACT_FK_DMN_RSRC_DPL FOREIGN KEY (DEPLOYMENT_ID_) REFERENCES ACT_DMN_DEPLOYMENT (ID_);
+
+CREATE INDEX ACT_IDX_DMN_RSRC_DPL ON ACT_DMN_DEPLOYMENT_RESOURCE (DEPLOYMENT_ID_);
+
+CREATE UNIQUE INDEX ACT_IDX_DMN_DEC_UNIQ ON ACT_DMN_DECISION(KEY_, VERSION_, TENANT_ID_);
+
+CREATE INDEX ACT_IDX_DMN_INSTANCE_ID ON ACT_DMN_HI_DECISION_EXECUTION(INSTANCE_ID_);
+
+insert into ACT_GE_PROPERTY
+values ('dmn.schema.version', '7.1.0.2', 1);
\ No newline at end of file
diff --git a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.kingbase-sqlserver.create.dmn.sql b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.kingbase-sqlserver.create.dmn.sql
new file mode 100644
index 00000000000..c1d235fec98
--- /dev/null
+++ b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.kingbase-sqlserver.create.dmn.sql
@@ -0,0 +1,19 @@
+CREATE TABLE ACT_DMN_DEPLOYMENT (ID_ varchar(255) NOT NULL, NAME_ nvarchar(255), CATEGORY_ varchar(255), DEPLOY_TIME_ datetime, TENANT_ID_ varchar(255), PARENT_DEPLOYMENT_ID_ varchar(255), CONSTRAINT PK_ACT_DMN_DEPLOYMENT PRIMARY KEY (ID_));
+
+CREATE TABLE ACT_DMN_DEPLOYMENT_RESOURCE (ID_ varchar(255) NOT NULL, NAME_ nvarchar(255), DEPLOYMENT_ID_ varchar(255), RESOURCE_BYTES_ varbinary(MAX), CONSTRAINT PK_ACT_DMN_DEPLOYMENT_RESOURCE PRIMARY KEY (ID_));
+
+CREATE TABLE ACT_DMN_DECISION (ID_ varchar(255) NOT NULL, NAME_ nvarchar(255), VERSION_ int, KEY_ varchar(255), CATEGORY_ nvarchar(255), DECISION_TYPE_ varchar(255), DEPLOYMENT_ID_ varchar(255), TENANT_ID_ varchar(255), RESOURCE_NAME_ nvarchar(255), DESCRIPTION_ nvarchar(255), CONSTRAINT PK_ACT_DMN_DECISION_TABLE PRIMARY KEY (ID_));
+
+CREATE TABLE ACT_DMN_HI_DECISION_EXECUTION (ID_ varchar(255) NOT NULL, DECISION_DEFINITION_ID_ varchar(255), DEPLOYMENT_ID_ varchar(255), START_TIME_ datetime, END_TIME_ datetime, INSTANCE_ID_ varchar(255), EXECUTION_ID_ varchar(255), ACTIVITY_ID_ varchar(255), SCOPE_TYPE_ varchar(255), FAILED_ bit CONSTRAINT DF_ACT_DMN_HI_DECISION_EXECUTION_FAILED_ DEFAULT 0, TENANT_ID_ varchar(255), EXECUTION_JSON_ varchar(MAX), CONSTRAINT PK_ACT_DMN_HI_DECISION_EXECUTION PRIMARY KEY (ID_));
+
+ALTER TABLE ACT_DMN_DEPLOYMENT_RESOURCE
+ ADD CONSTRAINT ACT_FK_DMN_RSRC_DPL FOREIGN KEY (DEPLOYMENT_ID_) REFERENCES ACT_DMN_DEPLOYMENT (ID_);
+
+CREATE NONCLUSTERED INDEX ACT_IDX_DMN_RSRC_DPL ON ACT_DMN_DEPLOYMENT_RESOURCE(DEPLOYMENT_ID_);
+
+CREATE UNIQUE NONCLUSTERED INDEX ACT_IDX_DMN_DEC_UNIQ ON ACT_DMN_DECISION(KEY_, VERSION_, TENANT_ID_);
+
+CREATE NONCLUSTERED INDEX ACT_IDX_DMN_INSTANCE_ID ON ACT_DMN_HI_DECISION_EXECUTION(INSTANCE_ID_);
+
+insert into ACT_GE_PROPERTY
+values ('dmn.schema.version', '7.1.0.2', 1);
\ No newline at end of file
diff --git a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/drop/flowable.kingbase-mysql.drop.dmn.sql b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/drop/flowable.kingbase-mysql.drop.dmn.sql
new file mode 100644
index 00000000000..e3706e9a1d6
--- /dev/null
+++ b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/drop/flowable.kingbase-mysql.drop.dmn.sql
@@ -0,0 +1,4 @@
+drop table if exists ACT_DMN_HI_DECISION_EXECUTION cascade;
+drop table if exists ACT_DMN_DECISION cascade;
+drop table if exists ACT_DMN_DEPLOYMENT_RESOURCE cascade;
+drop table if exists ACT_DMN_DEPLOYMENT cascade;
diff --git a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/drop/flowable.kingbase-oracle.drop.dmn.sql b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/drop/flowable.kingbase-oracle.drop.dmn.sql
new file mode 100644
index 00000000000..4eece1b9f53
--- /dev/null
+++ b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/drop/flowable.kingbase-oracle.drop.dmn.sql
@@ -0,0 +1,4 @@
+drop table if exists ACT_DMN_HI_DECISION_EXECUTION cascade;
+drop table if exists ACT_DMN_DECISION cascade;
+drop table if exists ACT_DMN_DEPLOYMENT_RESOURCE cascade;
+drop table if exists ACT_DMN_DEPLOYMENT cascade;
\ No newline at end of file
diff --git a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/drop/flowable.kingbase-sqlserver.drop.dmn.sql b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/drop/flowable.kingbase-sqlserver.drop.dmn.sql
new file mode 100644
index 00000000000..4eece1b9f53
--- /dev/null
+++ b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/drop/flowable.kingbase-sqlserver.drop.dmn.sql
@@ -0,0 +1,4 @@
+drop table if exists ACT_DMN_HI_DECISION_EXECUTION cascade;
+drop table if exists ACT_DMN_DECISION cascade;
+drop table if exists ACT_DMN_DEPLOYMENT_RESOURCE cascade;
+drop table if exists ACT_DMN_DEPLOYMENT cascade;
\ No newline at end of file
diff --git a/modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/AbstractEngineConfiguration.java b/modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/AbstractEngineConfiguration.java
index 5b156847873..b4409fc879d 100755
--- a/modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/AbstractEngineConfiguration.java
+++ b/modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/AbstractEngineConfiguration.java
@@ -786,6 +786,33 @@ public void initSqlSessionFactory() {
if (sqlSessionFactory == null) {
InputStream inputStream = null;
try {
+ // [KINGBASE] —— 确保已初始化 databaseType
+ if (databaseType == null) {
+ initDatabaseType(); // 这一步会把 KingbaseES 映射成 "kingbase"
+ }
+
+ // [KINGBASE] —— 在加载 properties 之前细化为 kingbase-
+ if ("kingbase".equalsIgnoreCase(databaseType)) {
+ try (java.sql.Connection c = this.getDataSource().getConnection();
+ java.sql.Statement st = c.createStatement();
+ java.sql.ResultSet rs = st.executeQuery("show database_mode")) {
+
+ if (rs.next()) {
+ String mode = rs.getString(1); // mysql / oracle / sqlserver
+ switch (mode.toLowerCase()) {
+ case "mysql" -> databaseType = "kingbase-mysql";
+ case "oracle" -> databaseType = "kingbase-oracle";
+ case "sqlserver" -> databaseType = "kingbase-sqlserver";
+ case "pg" -> databaseType = "postgres";
+ default -> throw new FlowableException("Unknown Kingbase database_mode: " + mode);
+ }
+ } else {
+ throw new FlowableException("SHOW DATABASE_MODE returned no rows");
+ }
+ } catch (java.sql.SQLException e) {
+ throw new FlowableException("Detect Kingbase database_mode failed", e);
+ }
+ }
inputStream = getMyBatisXmlConfigurationStream();
Environment environment = new Environment("default", transactionFactory, dataSource);
diff --git a/modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/util/DbUtil.java b/modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/util/DbUtil.java
index 5f19d613014..dfea2e3d9ba 100644
--- a/modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/util/DbUtil.java
+++ b/modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/util/DbUtil.java
@@ -41,7 +41,7 @@ public class DbUtil {
public static final String DATABASE_TYPE_MSSQL = "mssql";
public static final String DATABASE_TYPE_DB2 = "db2";
public static final String DATABASE_TYPE_COCKROACHDB = "cockroachdb";
-
+ public static final String DATABASE_TYPE_KINGBASE = "kingbase";
public static Properties getDefaultDatabaseTypeMappings() {
Properties databaseTypeMappings = new Properties();
databaseTypeMappings.setProperty("H2", DATABASE_TYPE_H2);
@@ -74,6 +74,7 @@ public static Properties getDefaultDatabaseTypeMappings() {
databaseTypeMappings.setProperty("DB2/2", DATABASE_TYPE_DB2);
databaseTypeMappings.setProperty("DB2 UDB AS400", DATABASE_TYPE_DB2);
databaseTypeMappings.setProperty(PRODUCT_NAME_CRDB, DATABASE_TYPE_COCKROACHDB);
+ databaseTypeMappings.setProperty("KingbaseES", DATABASE_TYPE_KINGBASE);
return databaseTypeMappings;
}
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.kingbase-mysql.create.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.kingbase-mysql.create.common.sql
new file mode 100644
index 00000000000..2368589f4e2
--- /dev/null
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.kingbase-mysql.create.common.sql
@@ -0,0 +1,604 @@
+create table ACT_GE_PROPERTY (
+ NAME_ varchar(64),
+ VALUE_ varchar(300),
+ REV_ integer,
+ primary key (NAME_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_GE_BYTEARRAY (
+ ID_ varchar(64),
+ REV_ integer,
+ NAME_ varchar(255),
+ DEPLOYMENT_ID_ varchar(64),
+ BYTES_ LONGBLOB,
+ GENERATED_ TINYINT,
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+insert into ACT_GE_PROPERTY
+values ('common.schema.version', '7.1.0.2', 1);
+
+insert into ACT_GE_PROPERTY
+values ('next.dbid', '1', 1);
+
+
+create table ACT_RU_ENTITYLINK (
+ ID_ varchar(64),
+ REV_ integer,
+ CREATE_TIME_ datetime(3),
+ LINK_TYPE_ varchar(255),
+ SCOPE_ID_ varchar(255),
+ SUB_SCOPE_ID_ varchar(255),
+ SCOPE_TYPE_ varchar(255),
+ SCOPE_DEFINITION_ID_ varchar(255),
+ PARENT_ELEMENT_ID_ varchar(255),
+ REF_SCOPE_ID_ varchar(255),
+ REF_SCOPE_TYPE_ varchar(255),
+ REF_SCOPE_DEFINITION_ID_ varchar(255),
+ ROOT_SCOPE_ID_ varchar(255),
+ ROOT_SCOPE_TYPE_ varchar(255),
+ HIERARCHY_TYPE_ varchar(255),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create index ACT_IDX_ENT_LNK_SCOPE on ACT_RU_ENTITYLINK(SCOPE_ID_, SCOPE_TYPE_, LINK_TYPE_);
+create index ACT_IDX_ENT_LNK_REF_SCOPE on ACT_RU_ENTITYLINK(REF_SCOPE_ID_, REF_SCOPE_TYPE_, LINK_TYPE_);
+create index ACT_IDX_ENT_LNK_ROOT_SCOPE on ACT_RU_ENTITYLINK(ROOT_SCOPE_ID_, ROOT_SCOPE_TYPE_, LINK_TYPE_);
+create index ACT_IDX_ENT_LNK_SCOPE_DEF on ACT_RU_ENTITYLINK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_, LINK_TYPE_);
+
+create table ACT_HI_ENTITYLINK (
+ ID_ varchar(64),
+ LINK_TYPE_ varchar(255),
+ CREATE_TIME_ datetime(3),
+ SCOPE_ID_ varchar(255),
+ SUB_SCOPE_ID_ varchar(255),
+ SCOPE_TYPE_ varchar(255),
+ SCOPE_DEFINITION_ID_ varchar(255),
+ PARENT_ELEMENT_ID_ varchar(255),
+ REF_SCOPE_ID_ varchar(255),
+ REF_SCOPE_TYPE_ varchar(255),
+ REF_SCOPE_DEFINITION_ID_ varchar(255),
+ ROOT_SCOPE_ID_ varchar(255),
+ ROOT_SCOPE_TYPE_ varchar(255),
+ HIERARCHY_TYPE_ varchar(255),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create index ACT_IDX_HI_ENT_LNK_SCOPE on ACT_HI_ENTITYLINK(SCOPE_ID_, SCOPE_TYPE_, LINK_TYPE_);
+create index ACT_IDX_HI_ENT_LNK_REF_SCOPE on ACT_HI_ENTITYLINK(REF_SCOPE_ID_, REF_SCOPE_TYPE_, LINK_TYPE_);
+create index ACT_IDX_HI_ENT_LNK_ROOT_SCOPE on ACT_HI_ENTITYLINK(ROOT_SCOPE_ID_, ROOT_SCOPE_TYPE_, LINK_TYPE_);
+create index ACT_IDX_HI_ENT_LNK_SCOPE_DEF on ACT_HI_ENTITYLINK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_, LINK_TYPE_);
+
+
+create table ACT_RU_IDENTITYLINK (
+ ID_ varchar(64),
+ REV_ integer,
+ GROUP_ID_ varchar(255),
+ TYPE_ varchar(255),
+ USER_ID_ varchar(255),
+ TASK_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ SCOPE_ID_ varchar(255),
+ SUB_SCOPE_ID_ varchar(255),
+ SCOPE_TYPE_ varchar(255),
+ SCOPE_DEFINITION_ID_ varchar(255),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create index ACT_IDX_IDENT_LNK_USER on ACT_RU_IDENTITYLINK(USER_ID_);
+create index ACT_IDX_IDENT_LNK_GROUP on ACT_RU_IDENTITYLINK(GROUP_ID_);
+create index ACT_IDX_IDENT_LNK_SCOPE on ACT_RU_IDENTITYLINK(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_IDENT_LNK_SUB_SCOPE on ACT_RU_IDENTITYLINK(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_IDENT_LNK_SCOPE_DEF on ACT_RU_IDENTITYLINK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+create table ACT_HI_IDENTITYLINK (
+ ID_ varchar(64),
+ GROUP_ID_ varchar(255),
+ TYPE_ varchar(255),
+ USER_ID_ varchar(255),
+ TASK_ID_ varchar(64),
+ CREATE_TIME_ datetime(3),
+ PROC_INST_ID_ varchar(64),
+ SCOPE_ID_ varchar(255),
+ SUB_SCOPE_ID_ varchar(255),
+ SCOPE_TYPE_ varchar(255),
+ SCOPE_DEFINITION_ID_ varchar(255),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_);
+create index ACT_IDX_HI_IDENT_LNK_SCOPE on ACT_HI_IDENTITYLINK(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_HI_IDENT_LNK_SUB_SCOPE on ACT_HI_IDENTITYLINK(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_HI_IDENT_LNK_SCOPE_DEF on ACT_HI_IDENTITYLINK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+
+create table ACT_RU_JOB (
+ ID_ varchar(64) NOT NULL,
+ REV_ integer,
+ CATEGORY_ varchar(255),
+ TYPE_ varchar(255) NOT NULL,
+ LOCK_EXP_TIME_ timestamp(3) NULL,
+ LOCK_OWNER_ varchar(255),
+ EXCLUSIVE_ boolean,
+ EXECUTION_ID_ varchar(64),
+ PROCESS_INSTANCE_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ ELEMENT_ID_ varchar(255),
+ ELEMENT_NAME_ varchar(255),
+ SCOPE_ID_ varchar(255),
+ SUB_SCOPE_ID_ varchar(255),
+ SCOPE_TYPE_ varchar(255),
+ SCOPE_DEFINITION_ID_ varchar(255),
+ CORRELATION_ID_ varchar(255),
+ RETRIES_ integer,
+ EXCEPTION_STACK_ID_ varchar(64),
+ EXCEPTION_MSG_ varchar(4000),
+ DUEDATE_ timestamp(3) NULL,
+ REPEAT_ varchar(255),
+ HANDLER_TYPE_ varchar(255),
+ HANDLER_CFG_ varchar(4000),
+ CUSTOM_VALUES_ID_ varchar(64),
+ CREATE_TIME_ timestamp(3) NULL,
+ TENANT_ID_ varchar(255) default '',
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_TIMER_JOB (
+ ID_ varchar(64) NOT NULL,
+ REV_ integer,
+ CATEGORY_ varchar(255),
+ TYPE_ varchar(255) NOT NULL,
+ LOCK_EXP_TIME_ timestamp(3) NULL,
+ LOCK_OWNER_ varchar(255),
+ EXCLUSIVE_ boolean,
+ EXECUTION_ID_ varchar(64),
+ PROCESS_INSTANCE_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ ELEMENT_ID_ varchar(255),
+ ELEMENT_NAME_ varchar(255),
+ SCOPE_ID_ varchar(255),
+ SUB_SCOPE_ID_ varchar(255),
+ SCOPE_TYPE_ varchar(255),
+ SCOPE_DEFINITION_ID_ varchar(255),
+ CORRELATION_ID_ varchar(255),
+ RETRIES_ integer,
+ EXCEPTION_STACK_ID_ varchar(64),
+ EXCEPTION_MSG_ varchar(4000),
+ DUEDATE_ timestamp(3) NULL,
+ REPEAT_ varchar(255),
+ HANDLER_TYPE_ varchar(255),
+ HANDLER_CFG_ varchar(4000),
+ CUSTOM_VALUES_ID_ varchar(64),
+ CREATE_TIME_ timestamp(3) NULL,
+ TENANT_ID_ varchar(255) default '',
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_SUSPENDED_JOB (
+ ID_ varchar(64) NOT NULL,
+ REV_ integer,
+ CATEGORY_ varchar(255),
+ TYPE_ varchar(255) NOT NULL,
+ EXCLUSIVE_ boolean,
+ EXECUTION_ID_ varchar(64),
+ PROCESS_INSTANCE_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ ELEMENT_ID_ varchar(255),
+ ELEMENT_NAME_ varchar(255),
+ SCOPE_ID_ varchar(255),
+ SUB_SCOPE_ID_ varchar(255),
+ SCOPE_TYPE_ varchar(255),
+ SCOPE_DEFINITION_ID_ varchar(255),
+ CORRELATION_ID_ varchar(255),
+ RETRIES_ integer,
+ EXCEPTION_STACK_ID_ varchar(64),
+ EXCEPTION_MSG_ varchar(4000),
+ DUEDATE_ timestamp(3) NULL,
+ REPEAT_ varchar(255),
+ HANDLER_TYPE_ varchar(255),
+ HANDLER_CFG_ varchar(4000),
+ CUSTOM_VALUES_ID_ varchar(64),
+ CREATE_TIME_ timestamp(3) NULL,
+ TENANT_ID_ varchar(255) default '',
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_DEADLETTER_JOB (
+ ID_ varchar(64) NOT NULL,
+ REV_ integer,
+ CATEGORY_ varchar(255),
+ TYPE_ varchar(255) NOT NULL,
+ EXCLUSIVE_ boolean,
+ EXECUTION_ID_ varchar(64),
+ PROCESS_INSTANCE_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ ELEMENT_ID_ varchar(255),
+ ELEMENT_NAME_ varchar(255),
+ SCOPE_ID_ varchar(255),
+ SUB_SCOPE_ID_ varchar(255),
+ SCOPE_TYPE_ varchar(255),
+ SCOPE_DEFINITION_ID_ varchar(255),
+ CORRELATION_ID_ varchar(255),
+ EXCEPTION_STACK_ID_ varchar(64),
+ EXCEPTION_MSG_ varchar(4000),
+ DUEDATE_ timestamp(3) NULL,
+ REPEAT_ varchar(255),
+ HANDLER_TYPE_ varchar(255),
+ HANDLER_CFG_ varchar(4000),
+ CUSTOM_VALUES_ID_ varchar(64),
+ CREATE_TIME_ timestamp(3) NULL,
+ TENANT_ID_ varchar(255) default '',
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_HISTORY_JOB (
+ ID_ varchar(64) NOT NULL,
+ REV_ integer,
+ LOCK_EXP_TIME_ timestamp(3) NULL,
+ LOCK_OWNER_ varchar(255),
+ RETRIES_ integer,
+ EXCEPTION_STACK_ID_ varchar(64),
+ EXCEPTION_MSG_ varchar(4000),
+ HANDLER_TYPE_ varchar(255),
+ HANDLER_CFG_ varchar(4000),
+ CUSTOM_VALUES_ID_ varchar(64),
+ ADV_HANDLER_CFG_ID_ varchar(64),
+ CREATE_TIME_ timestamp(3) NULL,
+ SCOPE_TYPE_ varchar(255),
+ TENANT_ID_ varchar(255) default '',
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_EXTERNAL_JOB (
+ ID_ varchar(64) NOT NULL,
+ REV_ integer,
+ CATEGORY_ varchar(255),
+ TYPE_ varchar(255) NOT NULL,
+ LOCK_EXP_TIME_ timestamp(3) NULL,
+ LOCK_OWNER_ varchar(255),
+ EXCLUSIVE_ boolean,
+ EXECUTION_ID_ varchar(64),
+ PROCESS_INSTANCE_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ ELEMENT_ID_ varchar(255),
+ ELEMENT_NAME_ varchar(255),
+ SCOPE_ID_ varchar(255),
+ SUB_SCOPE_ID_ varchar(255),
+ SCOPE_TYPE_ varchar(255),
+ SCOPE_DEFINITION_ID_ varchar(255),
+ CORRELATION_ID_ varchar(255),
+ RETRIES_ integer,
+ EXCEPTION_STACK_ID_ varchar(64),
+ EXCEPTION_MSG_ varchar(4000),
+ DUEDATE_ timestamp(3) NULL,
+ REPEAT_ varchar(255),
+ HANDLER_TYPE_ varchar(255),
+ HANDLER_CFG_ varchar(4000),
+ CUSTOM_VALUES_ID_ varchar(64),
+ CREATE_TIME_ timestamp(3) NULL,
+ TENANT_ID_ varchar(255) default '',
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create index ACT_IDX_JOB_EXCEPTION_STACK_ID on ACT_RU_JOB(EXCEPTION_STACK_ID_);
+create index ACT_IDX_JOB_CUSTOM_VALUES_ID on ACT_RU_JOB(CUSTOM_VALUES_ID_);
+create index ACT_IDX_JOB_CORRELATION_ID on ACT_RU_JOB(CORRELATION_ID_);
+
+create index ACT_IDX_TIMER_JOB_EXCEPTION_STACK_ID on ACT_RU_TIMER_JOB(EXCEPTION_STACK_ID_);
+create index ACT_IDX_TIMER_JOB_CUSTOM_VALUES_ID on ACT_RU_TIMER_JOB(CUSTOM_VALUES_ID_);
+create index ACT_IDX_TIMER_JOB_CORRELATION_ID on ACT_RU_TIMER_JOB(CORRELATION_ID_);
+create index ACT_IDX_TIMER_JOB_DUEDATE on ACT_RU_TIMER_JOB(DUEDATE_);
+
+create index ACT_IDX_SUSPENDED_JOB_EXCEPTION_STACK_ID on ACT_RU_SUSPENDED_JOB(EXCEPTION_STACK_ID_);
+create index ACT_IDX_SUSPENDED_JOB_CUSTOM_VALUES_ID on ACT_RU_SUSPENDED_JOB(CUSTOM_VALUES_ID_);
+create index ACT_IDX_SUSPENDED_JOB_CORRELATION_ID on ACT_RU_SUSPENDED_JOB(CORRELATION_ID_);
+
+create index ACT_IDX_DEADLETTER_JOB_EXCEPTION_STACK_ID on ACT_RU_DEADLETTER_JOB(EXCEPTION_STACK_ID_);
+create index ACT_IDX_DEADLETTER_JOB_CUSTOM_VALUES_ID on ACT_RU_DEADLETTER_JOB(CUSTOM_VALUES_ID_);
+create index ACT_IDX_DEADLETTER_JOB_CORRELATION_ID on ACT_RU_DEADLETTER_JOB(CORRELATION_ID_);
+
+create index ACT_IDX_EXTERNAL_JOB_EXCEPTION_STACK_ID on ACT_RU_EXTERNAL_JOB(EXCEPTION_STACK_ID_);
+create index ACT_IDX_EXTERNAL_JOB_CUSTOM_VALUES_ID on ACT_RU_EXTERNAL_JOB(CUSTOM_VALUES_ID_);
+create index ACT_IDX_EXTERNAL_JOB_CORRELATION_ID on ACT_RU_EXTERNAL_JOB(CORRELATION_ID_);
+
+alter table ACT_RU_JOB
+ add constraint ACT_FK_JOB_EXCEPTION
+ foreign key (EXCEPTION_STACK_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_JOB
+ add constraint ACT_FK_JOB_CUSTOM_VALUES
+ foreign key (CUSTOM_VALUES_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_TIMER_JOB
+ add constraint ACT_FK_TIMER_JOB_EXCEPTION
+ foreign key (EXCEPTION_STACK_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_TIMER_JOB
+ add constraint ACT_FK_TIMER_JOB_CUSTOM_VALUES
+ foreign key (CUSTOM_VALUES_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_SUSPENDED_JOB
+ add constraint ACT_FK_SUSPENDED_JOB_EXCEPTION
+ foreign key (EXCEPTION_STACK_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_SUSPENDED_JOB
+ add constraint ACT_FK_SUSPENDED_JOB_CUSTOM_VALUES
+ foreign key (CUSTOM_VALUES_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_DEADLETTER_JOB
+ add constraint ACT_FK_DEADLETTER_JOB_EXCEPTION
+ foreign key (EXCEPTION_STACK_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_DEADLETTER_JOB
+ add constraint ACT_FK_DEADLETTER_JOB_CUSTOM_VALUES
+ foreign key (CUSTOM_VALUES_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_EXTERNAL_JOB
+ add constraint ACT_FK_EXTERNAL_JOB_EXCEPTION
+ foreign key (EXCEPTION_STACK_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_EXTERNAL_JOB
+ add constraint ACT_FK_EXTERNAL_JOB_CUSTOM_VALUES
+ foreign key (CUSTOM_VALUES_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+create index ACT_IDX_JOB_SCOPE on ACT_RU_JOB(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_JOB_SUB_SCOPE on ACT_RU_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_JOB_SCOPE_DEF on ACT_RU_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+create index ACT_IDX_TJOB_SCOPE on ACT_RU_TIMER_JOB(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_TJOB_SUB_SCOPE on ACT_RU_TIMER_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_TJOB_SCOPE_DEF on ACT_RU_TIMER_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+create index ACT_IDX_SJOB_SCOPE on ACT_RU_SUSPENDED_JOB(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_SJOB_SUB_SCOPE on ACT_RU_SUSPENDED_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_SJOB_SCOPE_DEF on ACT_RU_SUSPENDED_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+create index ACT_IDX_DJOB_SCOPE on ACT_RU_DEADLETTER_JOB(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_DJOB_SUB_SCOPE on ACT_RU_DEADLETTER_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_DJOB_SCOPE_DEF on ACT_RU_DEADLETTER_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+create index ACT_IDX_EJOB_SCOPE on ACT_RU_EXTERNAL_JOB(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_EJOB_SUB_SCOPE on ACT_RU_EXTERNAL_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_EJOB_SCOPE_DEF on ACT_RU_EXTERNAL_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+create table FLW_RU_BATCH (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ TYPE_ varchar(64) not null,
+ SEARCH_KEY_ varchar(255),
+ SEARCH_KEY2_ varchar(255),
+ CREATE_TIME_ datetime(3) not null,
+ COMPLETE_TIME_ datetime(3),
+ STATUS_ varchar(255),
+ BATCH_DOC_ID_ varchar(64),
+ TENANT_ID_ varchar(255) default '',
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table FLW_RU_BATCH_PART (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ BATCH_ID_ varchar(64),
+ TYPE_ varchar(64) not null,
+ SCOPE_ID_ varchar(64),
+ SUB_SCOPE_ID_ varchar(64),
+ SCOPE_TYPE_ varchar(64),
+ SEARCH_KEY_ varchar(255),
+ SEARCH_KEY2_ varchar(255),
+ CREATE_TIME_ datetime(3) not null,
+ COMPLETE_TIME_ datetime(3),
+ STATUS_ varchar(255),
+ RESULT_DOC_ID_ varchar(64),
+ TENANT_ID_ varchar(255) default '',
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create index FLW_IDX_BATCH_PART on FLW_RU_BATCH_PART(BATCH_ID_);
+
+alter table FLW_RU_BATCH_PART
+ add constraint FLW_FK_BATCH_PART_PARENT
+ foreign key (BATCH_ID_)
+ references FLW_RU_BATCH (ID_);
+
+create table ACT_RU_TASK (
+ ID_ varchar(64),
+ REV_ integer,
+ EXECUTION_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ TASK_DEF_ID_ varchar(64),
+ SCOPE_ID_ varchar(255),
+ SUB_SCOPE_ID_ varchar(255),
+ SCOPE_TYPE_ varchar(255),
+ SCOPE_DEFINITION_ID_ varchar(255),
+ PROPAGATED_STAGE_INST_ID_ varchar(255),
+ STATE_ varchar(255),
+ NAME_ varchar(255),
+ PARENT_TASK_ID_ varchar(64),
+ DESCRIPTION_ varchar(4000),
+ TASK_DEF_KEY_ varchar(255),
+ OWNER_ varchar(255),
+ ASSIGNEE_ varchar(255),
+ DELEGATION_ varchar(64),
+ PRIORITY_ integer,
+ CREATE_TIME_ timestamp(3) NULL,
+ IN_PROGRESS_TIME_ datetime(3),
+ IN_PROGRESS_STARTED_BY_ varchar(255),
+ CLAIM_TIME_ datetime(3),
+ CLAIMED_BY_ varchar(255),
+ SUSPENDED_TIME_ datetime(3),
+ SUSPENDED_BY_ varchar(255),
+ IN_PROGRESS_DUE_DATE_ datetime(3),
+ DUE_DATE_ datetime(3),
+ CATEGORY_ varchar(255),
+ SUSPENSION_STATE_ integer,
+ TENANT_ID_ varchar(255) default '',
+ FORM_KEY_ varchar(255),
+ IS_COUNT_ENABLED_ TINYINT,
+ VAR_COUNT_ integer,
+ ID_LINK_COUNT_ integer,
+ SUB_TASK_COUNT_ integer,
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create index ACT_IDX_TASK_CREATE on ACT_RU_TASK(CREATE_TIME_);
+create index ACT_IDX_TASK_SCOPE on ACT_RU_TASK(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_TASK_SUB_SCOPE on ACT_RU_TASK(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_TASK_SCOPE_DEF on ACT_RU_TASK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+create table ACT_HI_TASKINST (
+ ID_ varchar(64) not null,
+ REV_ integer default 1,
+ PROC_DEF_ID_ varchar(64),
+ TASK_DEF_ID_ varchar(64),
+ TASK_DEF_KEY_ varchar(255),
+ PROC_INST_ID_ varchar(64),
+ EXECUTION_ID_ varchar(64),
+ SCOPE_ID_ varchar(255),
+ SUB_SCOPE_ID_ varchar(255),
+ SCOPE_TYPE_ varchar(255),
+ SCOPE_DEFINITION_ID_ varchar(255),
+ PROPAGATED_STAGE_INST_ID_ varchar(255),
+ STATE_ varchar(255),
+ NAME_ varchar(255),
+ PARENT_TASK_ID_ varchar(64),
+ DESCRIPTION_ varchar(4000),
+ OWNER_ varchar(255),
+ ASSIGNEE_ varchar(255),
+ START_TIME_ datetime(3) not null,
+ IN_PROGRESS_TIME_ datetime(3),
+ IN_PROGRESS_STARTED_BY_ varchar(255),
+ CLAIM_TIME_ datetime(3),
+ CLAIMED_BY_ varchar(255),
+ SUSPENDED_TIME_ datetime(3),
+ SUSPENDED_BY_ varchar(255),
+ END_TIME_ datetime(3),
+ COMPLETED_BY_ varchar(255),
+ DURATION_ bigint,
+ DELETE_REASON_ varchar(4000),
+ PRIORITY_ integer,
+ IN_PROGRESS_DUE_DATE_ datetime(3),
+ DUE_DATE_ datetime(3),
+ FORM_KEY_ varchar(255),
+ CATEGORY_ varchar(255),
+ TENANT_ID_ varchar(255) default '',
+ LAST_UPDATED_TIME_ datetime(3),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_TSK_LOG (
+ ID_ bigint auto_increment,
+ TYPE_ varchar(64),
+ TASK_ID_ varchar(64) not null,
+ TIME_STAMP_ timestamp(3) not null,
+ USER_ID_ varchar(255),
+ DATA_ varchar(4000),
+ EXECUTION_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ SCOPE_ID_ varchar(255),
+ SCOPE_DEFINITION_ID_ varchar(255),
+ SUB_SCOPE_ID_ varchar(255),
+ SCOPE_TYPE_ varchar(255),
+ TENANT_ID_ varchar(255) default '',
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create index ACT_IDX_HI_TASK_SCOPE on ACT_HI_TASKINST(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_HI_TASK_SUB_SCOPE on ACT_HI_TASKINST(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_HI_TASK_SCOPE_DEF on ACT_HI_TASKINST(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+create index ACT_IDX_ACT_HI_TSK_LOG_TASK on ACT_HI_TSK_LOG(TASK_ID_);
+
+
+create table ACT_RU_VARIABLE (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ TYPE_ varchar(255) not null,
+ NAME_ varchar(255) not null,
+ EXECUTION_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ TASK_ID_ varchar(64),
+ SCOPE_ID_ varchar(255),
+ SUB_SCOPE_ID_ varchar(255),
+ SCOPE_TYPE_ varchar(255),
+ BYTEARRAY_ID_ varchar(64),
+ DOUBLE_ double,
+ LONG_ bigint,
+ TEXT_ varchar(4000),
+ TEXT2_ varchar(4000),
+ META_INFO_ varchar(4000),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create index ACT_IDX_RU_VAR_SCOPE_ID_TYPE on ACT_RU_VARIABLE(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_RU_VAR_SUB_ID_TYPE on ACT_RU_VARIABLE(SUB_SCOPE_ID_, SCOPE_TYPE_);
+
+alter table ACT_RU_VARIABLE
+ add constraint ACT_FK_VAR_BYTEARRAY
+ foreign key (BYTEARRAY_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+create table ACT_HI_VARINST (
+ ID_ varchar(64) not null,
+ REV_ integer default 1,
+ PROC_INST_ID_ varchar(64),
+ EXECUTION_ID_ varchar(64),
+ TASK_ID_ varchar(64),
+ NAME_ varchar(255) not null,
+ VAR_TYPE_ varchar(100),
+ SCOPE_ID_ varchar(255),
+ SUB_SCOPE_ID_ varchar(255),
+ SCOPE_TYPE_ varchar(255),
+ BYTEARRAY_ID_ varchar(64),
+ DOUBLE_ double,
+ LONG_ bigint,
+ TEXT_ varchar(4000),
+ TEXT2_ varchar(4000),
+ META_INFO_ varchar(4000),
+ CREATE_TIME_ datetime(3),
+ LAST_UPDATED_TIME_ datetime(3),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create index ACT_IDX_HI_PROCVAR_NAME_TYPE on ACT_HI_VARINST(NAME_, VAR_TYPE_);
+create index ACT_IDX_HI_VAR_SCOPE_ID_TYPE on ACT_HI_VARINST(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_HI_VAR_SUB_ID_TYPE on ACT_HI_VARINST(SUB_SCOPE_ID_, SCOPE_TYPE_);
+
+
+create table ACT_RU_EVENT_SUBSCR (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ EVENT_TYPE_ varchar(255) not null,
+ EVENT_NAME_ varchar(255),
+ EXECUTION_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ ACTIVITY_ID_ varchar(64),
+ CONFIGURATION_ varchar(255),
+ CREATED_ timestamp(3) not null DEFAULT CURRENT_TIMESTAMP(3),
+ PROC_DEF_ID_ varchar(64),
+ SUB_SCOPE_ID_ varchar(64),
+ SCOPE_ID_ varchar(64),
+ SCOPE_DEFINITION_ID_ varchar(64),
+ SCOPE_DEFINITION_KEY_ varchar(255),
+ SCOPE_TYPE_ varchar(64),
+ LOCK_TIME_ timestamp(3) NULL,
+ LOCK_OWNER_ varchar(255),
+ TENANT_ID_ varchar(255) default '',
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create index ACT_IDX_EVENT_SUBSCR_CONFIG_ on ACT_RU_EVENT_SUBSCR(CONFIGURATION_);
+create index ACT_IDX_EVENT_SUBSCR_EXEC_ID on ACT_RU_EVENT_SUBSCR(EXECUTION_ID_);
+create index ACT_IDX_EVENT_SUBSCR_PROC_ID on ACT_RU_EVENT_SUBSCR(PROC_INST_ID_);
+create index ACT_IDX_EVENT_SUBSCR_SCOPEREF_ on ACT_RU_EVENT_SUBSCR(SCOPE_ID_, SCOPE_TYPE_);
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.kingbase-oracle.create.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.kingbase-oracle.create.common.sql
new file mode 100644
index 00000000000..c3644d56307
--- /dev/null
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.kingbase-oracle.create.common.sql
@@ -0,0 +1,606 @@
+create table ACT_GE_PROPERTY (
+ NAME_ NVARCHAR2(64),
+ VALUE_ NVARCHAR2(300),
+ REV_ INTEGER,
+ primary key (NAME_)
+);
+
+create table ACT_GE_BYTEARRAY (
+ ID_ NVARCHAR2(64),
+ REV_ INTEGER,
+ NAME_ NVARCHAR2(255),
+ DEPLOYMENT_ID_ NVARCHAR2(64),
+ BYTES_ BLOB,
+ GENERATED_ NUMBER(1,0) CHECK (GENERATED_ IN (1,0)),
+ primary key (ID_)
+);
+
+insert into ACT_GE_PROPERTY
+values ('common.schema.version', '7.1.0.2', 1);
+
+insert into ACT_GE_PROPERTY
+values ('next.dbid', '1', 1);
+
+
+create table ACT_RU_ENTITYLINK (
+ ID_ NVARCHAR2(64),
+ REV_ INTEGER,
+ CREATE_TIME_ TIMESTAMP(6),
+ LINK_TYPE_ NVARCHAR2(255),
+ SCOPE_ID_ NVARCHAR2(255),
+ SUB_SCOPE_ID_ NVARCHAR2(255),
+ SCOPE_TYPE_ NVARCHAR2(255),
+ SCOPE_DEFINITION_ID_ NVARCHAR2(255),
+ PARENT_ELEMENT_ID_ NVARCHAR2(255),
+ REF_SCOPE_ID_ NVARCHAR2(255),
+ REF_SCOPE_TYPE_ NVARCHAR2(255),
+ REF_SCOPE_DEFINITION_ID_ NVARCHAR2(255),
+ ROOT_SCOPE_ID_ NVARCHAR2(255),
+ ROOT_SCOPE_TYPE_ NVARCHAR2(255),
+ HIERARCHY_TYPE_ NVARCHAR2(255),
+ primary key (ID_)
+);
+
+create index ACT_IDX_ENT_LNK_SCOPE on ACT_RU_ENTITYLINK(SCOPE_ID_, SCOPE_TYPE_, LINK_TYPE_);
+create index ACT_IDX_ENT_LNK_REF_SCOPE on ACT_RU_ENTITYLINK(REF_SCOPE_ID_, REF_SCOPE_TYPE_, LINK_TYPE_);
+create index ACT_IDX_ENT_LNK_ROOT_SCOPE on ACT_RU_ENTITYLINK(ROOT_SCOPE_ID_, ROOT_SCOPE_TYPE_, LINK_TYPE_);
+create index ACT_IDX_ENT_LNK_SCOPE_DEF on ACT_RU_ENTITYLINK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_, LINK_TYPE_);
+
+create table ACT_HI_ENTITYLINK (
+ ID_ NVARCHAR2(64),
+ LINK_TYPE_ NVARCHAR2(255),
+ CREATE_TIME_ TIMESTAMP(6),
+ SCOPE_ID_ NVARCHAR2(255),
+ SUB_SCOPE_ID_ NVARCHAR2(255),
+ SCOPE_TYPE_ NVARCHAR2(255),
+ SCOPE_DEFINITION_ID_ NVARCHAR2(255),
+ PARENT_ELEMENT_ID_ NVARCHAR2(255),
+ REF_SCOPE_ID_ NVARCHAR2(255),
+ REF_SCOPE_TYPE_ NVARCHAR2(255),
+ REF_SCOPE_DEFINITION_ID_ NVARCHAR2(255),
+ ROOT_SCOPE_ID_ NVARCHAR2(255),
+ ROOT_SCOPE_TYPE_ NVARCHAR2(255),
+ HIERARCHY_TYPE_ NVARCHAR2(255),
+ primary key (ID_)
+);
+
+create index ACT_IDX_HI_ENT_LNK_SCOPE on ACT_HI_ENTITYLINK(SCOPE_ID_, SCOPE_TYPE_, LINK_TYPE_);
+create index ACT_IDX_HI_ENT_LNK_REF_SCOPE on ACT_HI_ENTITYLINK(REF_SCOPE_ID_, REF_SCOPE_TYPE_, LINK_TYPE_);
+create index ACT_IDX_HI_ENT_LNK_ROOT_SCOPE on ACT_HI_ENTITYLINK(ROOT_SCOPE_ID_, ROOT_SCOPE_TYPE_, LINK_TYPE_);
+create index ACT_IDX_HI_ENT_LNK_SCOPE_DEF on ACT_HI_ENTITYLINK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_, LINK_TYPE_);
+
+
+create table ACT_RU_IDENTITYLINK (
+ ID_ NVARCHAR2(64),
+ REV_ INTEGER,
+ GROUP_ID_ NVARCHAR2(255),
+ TYPE_ NVARCHAR2(255),
+ USER_ID_ NVARCHAR2(255),
+ TASK_ID_ NVARCHAR2(64),
+ PROC_INST_ID_ NVARCHAR2(64),
+ PROC_DEF_ID_ NVARCHAR2(64),
+ SCOPE_ID_ NVARCHAR2(255),
+ SUB_SCOPE_ID_ NVARCHAR2(255),
+ SCOPE_TYPE_ NVARCHAR2(255),
+ SCOPE_DEFINITION_ID_ NVARCHAR2(255),
+ primary key (ID_)
+);
+
+create index ACT_IDX_IDENT_LNK_USER on ACT_RU_IDENTITYLINK(USER_ID_);
+create index ACT_IDX_IDENT_LNK_GROUP on ACT_RU_IDENTITYLINK(GROUP_ID_);
+create index ACT_IDX_IDENT_LNK_SCOPE on ACT_RU_IDENTITYLINK(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_IDENT_LNK_SUB_SCOPE on ACT_RU_IDENTITYLINK(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_IDENT_LNK_SCOPE_DEF on ACT_RU_IDENTITYLINK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+create table ACT_HI_IDENTITYLINK (
+ ID_ NVARCHAR2(64),
+ GROUP_ID_ NVARCHAR2(255),
+ TYPE_ NVARCHAR2(255),
+ USER_ID_ NVARCHAR2(255),
+ TASK_ID_ NVARCHAR2(64),
+ CREATE_TIME_ TIMESTAMP(6),
+ PROC_INST_ID_ NVARCHAR2(64),
+ SCOPE_ID_ NVARCHAR2(255),
+ SUB_SCOPE_ID_ NVARCHAR2(255),
+ SCOPE_TYPE_ NVARCHAR2(255),
+ SCOPE_DEFINITION_ID_ NVARCHAR2(255),
+ primary key (ID_)
+);
+
+create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_);
+create index ACT_IDX_HI_IDENT_LNK_SCOPE on ACT_HI_IDENTITYLINK(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_HI_IDENT_LNK_SUB_SCOPE on ACT_HI_IDENTITYLINK(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_HI_IDENT_LNK_SCOPE_DEF on ACT_HI_IDENTITYLINK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+
+create table ACT_RU_JOB (
+ ID_ NVARCHAR2(64) NOT NULL,
+ REV_ INTEGER,
+ CATEGORY_ NVARCHAR2(255),
+ TYPE_ NVARCHAR2(255) NOT NULL,
+ LOCK_EXP_TIME_ TIMESTAMP(6),
+ LOCK_OWNER_ NVARCHAR2(255),
+ EXCLUSIVE_ NUMBER(1,0) CHECK (EXCLUSIVE_ IN (1,0)),
+ EXECUTION_ID_ NVARCHAR2(64),
+ PROCESS_INSTANCE_ID_ NVARCHAR2(64),
+ PROC_DEF_ID_ NVARCHAR2(64),
+ ELEMENT_ID_ NVARCHAR2(255),
+ ELEMENT_NAME_ NVARCHAR2(255),
+ SCOPE_ID_ NVARCHAR2(255),
+ SUB_SCOPE_ID_ NVARCHAR2(255),
+ SCOPE_TYPE_ NVARCHAR2(255),
+ SCOPE_DEFINITION_ID_ NVARCHAR2(255),
+ CORRELATION_ID_ NVARCHAR2(255),
+ RETRIES_ INTEGER,
+ EXCEPTION_STACK_ID_ NVARCHAR2(64),
+ EXCEPTION_MSG_ NVARCHAR2(2000),
+ DUEDATE_ TIMESTAMP(6),
+ REPEAT_ NVARCHAR2(255),
+ HANDLER_TYPE_ NVARCHAR2(255),
+ HANDLER_CFG_ NVARCHAR2(2000),
+ CUSTOM_VALUES_ID_ NVARCHAR2(64),
+ CREATE_TIME_ TIMESTAMP(6),
+ TENANT_ID_ NVARCHAR2(255) DEFAULT '',
+ primary key (ID_)
+);
+
+create table ACT_RU_TIMER_JOB (
+ ID_ NVARCHAR2(64) NOT NULL,
+ REV_ INTEGER,
+ CATEGORY_ NVARCHAR2(255),
+ TYPE_ NVARCHAR2(255) NOT NULL,
+ LOCK_EXP_TIME_ TIMESTAMP(6),
+ LOCK_OWNER_ NVARCHAR2(255),
+ EXCLUSIVE_ NUMBER(1,0) CHECK (EXCLUSIVE_ IN (1,0)),
+ EXECUTION_ID_ NVARCHAR2(64),
+ PROCESS_INSTANCE_ID_ NVARCHAR2(64),
+ PROC_DEF_ID_ NVARCHAR2(64),
+ ELEMENT_ID_ NVARCHAR2(255),
+ ELEMENT_NAME_ NVARCHAR2(255),
+ SCOPE_ID_ NVARCHAR2(255),
+ SUB_SCOPE_ID_ NVARCHAR2(255),
+ SCOPE_TYPE_ NVARCHAR2(255),
+ SCOPE_DEFINITION_ID_ NVARCHAR2(255),
+ CORRELATION_ID_ NVARCHAR2(255),
+ RETRIES_ INTEGER,
+ EXCEPTION_STACK_ID_ NVARCHAR2(64),
+ EXCEPTION_MSG_ NVARCHAR2(2000),
+ DUEDATE_ TIMESTAMP(6),
+ REPEAT_ NVARCHAR2(255),
+ HANDLER_TYPE_ NVARCHAR2(255),
+ HANDLER_CFG_ NVARCHAR2(2000),
+ CUSTOM_VALUES_ID_ NVARCHAR2(64),
+ CREATE_TIME_ TIMESTAMP(6),
+ TENANT_ID_ NVARCHAR2(255) DEFAULT '',
+ primary key (ID_)
+);
+
+create table ACT_RU_SUSPENDED_JOB (
+ ID_ NVARCHAR2(64) NOT NULL,
+ REV_ INTEGER,
+ CATEGORY_ NVARCHAR2(255),
+ TYPE_ NVARCHAR2(255) NOT NULL,
+ EXCLUSIVE_ NUMBER(1,0) CHECK (EXCLUSIVE_ IN (1,0)),
+ EXECUTION_ID_ NVARCHAR2(64),
+ PROCESS_INSTANCE_ID_ NVARCHAR2(64),
+ PROC_DEF_ID_ NVARCHAR2(64),
+ ELEMENT_ID_ NVARCHAR2(255),
+ ELEMENT_NAME_ NVARCHAR2(255),
+ SCOPE_ID_ NVARCHAR2(255),
+ SUB_SCOPE_ID_ NVARCHAR2(255),
+ SCOPE_TYPE_ NVARCHAR2(255),
+ SCOPE_DEFINITION_ID_ NVARCHAR2(255),
+ CORRELATION_ID_ NVARCHAR2(255),
+ RETRIES_ INTEGER,
+ EXCEPTION_STACK_ID_ NVARCHAR2(64),
+ EXCEPTION_MSG_ NVARCHAR2(2000),
+ DUEDATE_ TIMESTAMP(6),
+ REPEAT_ NVARCHAR2(255),
+ HANDLER_TYPE_ NVARCHAR2(255),
+ HANDLER_CFG_ NVARCHAR2(2000),
+ CUSTOM_VALUES_ID_ NVARCHAR2(64),
+ CREATE_TIME_ TIMESTAMP(6),
+ TENANT_ID_ NVARCHAR2(255) DEFAULT '',
+ primary key (ID_)
+);
+
+create table ACT_RU_DEADLETTER_JOB (
+ ID_ NVARCHAR2(64) NOT NULL,
+ REV_ INTEGER,
+ CATEGORY_ NVARCHAR2(255),
+ TYPE_ NVARCHAR2(255) NOT NULL,
+ EXCLUSIVE_ NUMBER(1,0) CHECK (EXCLUSIVE_ IN (1,0)),
+ EXECUTION_ID_ NVARCHAR2(64),
+ PROCESS_INSTANCE_ID_ NVARCHAR2(64),
+ PROC_DEF_ID_ NVARCHAR2(64),
+ ELEMENT_ID_ NVARCHAR2(255),
+ ELEMENT_NAME_ NVARCHAR2(255),
+ SCOPE_ID_ NVARCHAR2(255),
+ SUB_SCOPE_ID_ NVARCHAR2(255),
+ SCOPE_TYPE_ NVARCHAR2(255),
+ SCOPE_DEFINITION_ID_ NVARCHAR2(255),
+ CORRELATION_ID_ NVARCHAR2(255),
+ EXCEPTION_STACK_ID_ NVARCHAR2(64),
+ EXCEPTION_MSG_ NVARCHAR2(2000),
+ DUEDATE_ TIMESTAMP(6),
+ REPEAT_ NVARCHAR2(255),
+ HANDLER_TYPE_ NVARCHAR2(255),
+ HANDLER_CFG_ NVARCHAR2(2000),
+ CUSTOM_VALUES_ID_ NVARCHAR2(64),
+ CREATE_TIME_ TIMESTAMP(6),
+ TENANT_ID_ NVARCHAR2(255) DEFAULT '',
+ primary key (ID_)
+);
+
+create table ACT_RU_HISTORY_JOB (
+ ID_ NVARCHAR2(64) NOT NULL,
+ REV_ INTEGER,
+ LOCK_EXP_TIME_ TIMESTAMP(6),
+ LOCK_OWNER_ NVARCHAR2(255),
+ RETRIES_ INTEGER,
+ EXCEPTION_STACK_ID_ NVARCHAR2(64),
+ EXCEPTION_MSG_ NVARCHAR2(2000),
+ HANDLER_TYPE_ NVARCHAR2(255),
+ HANDLER_CFG_ NVARCHAR2(2000),
+ CUSTOM_VALUES_ID_ NVARCHAR2(64),
+ ADV_HANDLER_CFG_ID_ NVARCHAR2(64),
+ CREATE_TIME_ TIMESTAMP(6),
+ SCOPE_TYPE_ NVARCHAR2(255),
+ TENANT_ID_ NVARCHAR2(255) DEFAULT '',
+ primary key (ID_)
+);
+
+create table ACT_RU_EXTERNAL_JOB (
+ ID_ NVARCHAR2(64) NOT NULL,
+ REV_ INTEGER,
+ CATEGORY_ NVARCHAR2(255),
+ TYPE_ NVARCHAR2(255) NOT NULL,
+ LOCK_EXP_TIME_ TIMESTAMP(6),
+ LOCK_OWNER_ NVARCHAR2(255),
+ EXCLUSIVE_ NUMBER(1,0) CHECK (EXCLUSIVE_ IN (1,0)),
+ EXECUTION_ID_ NVARCHAR2(64),
+ PROCESS_INSTANCE_ID_ NVARCHAR2(64),
+ PROC_DEF_ID_ NVARCHAR2(64),
+ ELEMENT_ID_ NVARCHAR2(255),
+ ELEMENT_NAME_ NVARCHAR2(255),
+ SCOPE_ID_ NVARCHAR2(255),
+ SUB_SCOPE_ID_ NVARCHAR2(255),
+ SCOPE_TYPE_ NVARCHAR2(255),
+ SCOPE_DEFINITION_ID_ NVARCHAR2(255),
+ CORRELATION_ID_ NVARCHAR2(255),
+ RETRIES_ INTEGER,
+ EXCEPTION_STACK_ID_ NVARCHAR2(64),
+ EXCEPTION_MSG_ NVARCHAR2(2000),
+ DUEDATE_ TIMESTAMP(6),
+ REPEAT_ NVARCHAR2(255),
+ HANDLER_TYPE_ NVARCHAR2(255),
+ HANDLER_CFG_ NVARCHAR2(2000),
+ CUSTOM_VALUES_ID_ NVARCHAR2(64),
+ CREATE_TIME_ TIMESTAMP(6),
+ TENANT_ID_ NVARCHAR2(255) DEFAULT '',
+ primary key (ID_)
+);
+
+create index ACT_IDX_JOB_EXCEPTION on ACT_RU_JOB(EXCEPTION_STACK_ID_);
+create index ACT_IDX_JOB_CUSTOM_VAL_ID on ACT_RU_JOB(CUSTOM_VALUES_ID_);
+create index ACT_IDX_JOB_CORRELATION_ID on ACT_RU_JOB(CORRELATION_ID_);
+
+create index ACT_IDX_TJOB_EXCEPTION on ACT_RU_TIMER_JOB(EXCEPTION_STACK_ID_);
+create index ACT_IDX_TJOB_CUSTOM_VAL_ID on ACT_RU_TIMER_JOB(CUSTOM_VALUES_ID_);
+create index ACT_IDX_TJOB_CORRELATION_ID on ACT_RU_TIMER_JOB(CORRELATION_ID_);
+
+create index ACT_IDX_SJOB_EXCEPTION on ACT_RU_SUSPENDED_JOB(EXCEPTION_STACK_ID_);
+create index ACT_IDX_SJOB_CUSTOM_VAL_ID on ACT_RU_SUSPENDED_JOB(CUSTOM_VALUES_ID_);
+create index ACT_IDX_SJOB_CORRELATION_ID on ACT_RU_SUSPENDED_JOB(CORRELATION_ID_);
+
+create index ACT_IDX_DJOB_EXCEPTION on ACT_RU_DEADLETTER_JOB(EXCEPTION_STACK_ID_);
+create index ACT_IDX_DJOB_CUSTOM_VAL_ID on ACT_RU_DEADLETTER_JOB(CUSTOM_VALUES_ID_);
+create index ACT_IDX_DJOB_CORRELATION_ID on ACT_RU_DEADLETTER_JOB(CORRELATION_ID_);
+
+create index ACT_IDX_EJOB_EXCEPTION on ACT_RU_EXTERNAL_JOB(EXCEPTION_STACK_ID_);
+create index ACT_IDX_EJOB_CUSTOM_VAL_ID on ACT_RU_EXTERNAL_JOB(CUSTOM_VALUES_ID_);
+create index ACT_IDX_EJOB_CORRELATION_ID on ACT_RU_EXTERNAL_JOB(CORRELATION_ID_);
+
+alter table ACT_RU_JOB
+ add constraint ACT_FK_JOB_EXCEPTION
+ foreign key (EXCEPTION_STACK_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_JOB
+ add constraint ACT_FK_JOB_CUSTOM_VAL
+ foreign key (CUSTOM_VALUES_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_TIMER_JOB
+ add constraint ACT_FK_TJOB_EXCEPTION
+ foreign key (EXCEPTION_STACK_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_TIMER_JOB
+ add constraint ACT_FK_TJOB_CUSTOM_VAL
+ foreign key (CUSTOM_VALUES_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_SUSPENDED_JOB
+ add constraint ACT_FK_SJOB_EXCEPTION
+ foreign key (EXCEPTION_STACK_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_SUSPENDED_JOB
+ add constraint ACT_FK_SJOB_CUSTOM_VAL
+ foreign key (CUSTOM_VALUES_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_DEADLETTER_JOB
+ add constraint ACT_FK_DJOB_EXCEPTION
+ foreign key (EXCEPTION_STACK_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_DEADLETTER_JOB
+ add constraint ACT_FK_DJOB_CUSTOM_VAL
+ foreign key (CUSTOM_VALUES_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_EXTERNAL_JOB
+ add constraint ACT_FK_EJOB_EXCEPTION
+ foreign key (EXCEPTION_STACK_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_EXTERNAL_JOB
+ add constraint ACT_FK_EJOB_CUSTOM_VAL
+ foreign key (CUSTOM_VALUES_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+create index ACT_IDX_JOB_SCOPE on ACT_RU_JOB(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_JOB_SUB_SCOPE on ACT_RU_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_JOB_SCOPE_DEF on ACT_RU_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+create index ACT_IDX_TJOB_SCOPE on ACT_RU_TIMER_JOB(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_TJOB_SUB_SCOPE on ACT_RU_TIMER_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_TJOB_SCOPE_DEF on ACT_RU_TIMER_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+create index ACT_IDX_TJOB_DUEDATE on ACT_RU_TIMER_JOB(DUEDATE_);
+
+create index ACT_IDX_SJOB_SCOPE on ACT_RU_SUSPENDED_JOB(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_SJOB_SUB_SCOPE on ACT_RU_SUSPENDED_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_SJOB_SCOPE_DEF on ACT_RU_SUSPENDED_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+create index ACT_IDX_DJOB_SCOPE on ACT_RU_DEADLETTER_JOB(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_DJOB_SUB_SCOPE on ACT_RU_DEADLETTER_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_DJOB_SCOPE_DEF on ACT_RU_DEADLETTER_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+create index ACT_IDX_EJOB_SCOPE on ACT_RU_EXTERNAL_JOB(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_EJOB_SUB_SCOPE on ACT_RU_EXTERNAL_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_EJOB_SCOPE_DEF on ACT_RU_EXTERNAL_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+create table FLW_RU_BATCH (
+ ID_ NVARCHAR2(64) not null,
+ REV_ INTEGER,
+ TYPE_ NVARCHAR2(64) not null,
+ SEARCH_KEY_ NVARCHAR2(255),
+ SEARCH_KEY2_ NVARCHAR2(255),
+ CREATE_TIME_ TIMESTAMP(6) not null,
+ COMPLETE_TIME_ TIMESTAMP(6),
+ STATUS_ NVARCHAR2(255),
+ BATCH_DOC_ID_ NVARCHAR2(64),
+ TENANT_ID_ NVARCHAR2(255) default '',
+ primary key (ID_)
+);
+
+create table FLW_RU_BATCH_PART (
+ ID_ NVARCHAR2(64) not null,
+ REV_ INTEGER,
+ BATCH_ID_ NVARCHAR2(64),
+ TYPE_ NVARCHAR2(64) not null,
+ SCOPE_ID_ NVARCHAR2(64),
+ SUB_SCOPE_ID_ NVARCHAR2(64),
+ SCOPE_TYPE_ NVARCHAR2(64),
+ SEARCH_KEY_ NVARCHAR2(255),
+ SEARCH_KEY2_ NVARCHAR2(255),
+ CREATE_TIME_ TIMESTAMP(6) not null,
+ COMPLETE_TIME_ TIMESTAMP(6),
+ STATUS_ NVARCHAR2(255),
+ RESULT_DOC_ID_ NVARCHAR2(64),
+ TENANT_ID_ NVARCHAR2(255) default '',
+ primary key (ID_)
+);
+
+create index FLW_IDX_BATCH_PART on FLW_RU_BATCH_PART(BATCH_ID_);
+
+alter table FLW_RU_BATCH_PART
+ add constraint FLW_FK_BATCH_PART_PARENT
+ foreign key (BATCH_ID_)
+ references FLW_RU_BATCH (ID_);
+
+create table ACT_RU_TASK (
+ ID_ NVARCHAR2(64),
+ REV_ INTEGER,
+ EXECUTION_ID_ NVARCHAR2(64),
+ PROC_INST_ID_ NVARCHAR2(64),
+ PROC_DEF_ID_ NVARCHAR2(64),
+ TASK_DEF_ID_ NVARCHAR2(64),
+ SCOPE_ID_ NVARCHAR2(255),
+ SUB_SCOPE_ID_ NVARCHAR2(255),
+ SCOPE_TYPE_ NVARCHAR2(255),
+ SCOPE_DEFINITION_ID_ NVARCHAR2(255),
+ PROPAGATED_STAGE_INST_ID_ NVARCHAR2(255),
+ STATE_ NVARCHAR2(255),
+ NAME_ NVARCHAR2(255),
+ PARENT_TASK_ID_ NVARCHAR2(64),
+ DESCRIPTION_ NVARCHAR2(2000),
+ TASK_DEF_KEY_ NVARCHAR2(255),
+ OWNER_ NVARCHAR2(255),
+ ASSIGNEE_ NVARCHAR2(255),
+ DELEGATION_ NVARCHAR2(64),
+ PRIORITY_ INTEGER,
+ CREATE_TIME_ TIMESTAMP(6),
+ IN_PROGRESS_TIME_ TIMESTAMP(6),
+ IN_PROGRESS_STARTED_BY_ NVARCHAR2(255),
+ CLAIM_TIME_ TIMESTAMP(6),
+ CLAIMED_BY_ NVARCHAR2(255),
+ SUSPENDED_TIME_ TIMESTAMP(6),
+ SUSPENDED_BY_ NVARCHAR2(255),
+ IN_PROGRESS_DUE_DATE_ TIMESTAMP(6),
+ DUE_DATE_ TIMESTAMP(6),
+ CATEGORY_ NVARCHAR2(255),
+ SUSPENSION_STATE_ INTEGER,
+ TENANT_ID_ NVARCHAR2(255) DEFAULT '',
+ FORM_KEY_ NVARCHAR2(255),
+ IS_COUNT_ENABLED_ NUMBER(1,0) CHECK (IS_COUNT_ENABLED_ IN (1,0)),
+ VAR_COUNT_ INTEGER,
+ ID_LINK_COUNT_ INTEGER,
+ SUB_TASK_COUNT_ INTEGER,
+ primary key (ID_)
+);
+
+create index ACT_IDX_TASK_CREATE on ACT_RU_TASK(CREATE_TIME_);
+create index ACT_IDX_TASK_SCOPE on ACT_RU_TASK(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_TASK_SUB_SCOPE on ACT_RU_TASK(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_TASK_SCOPE_DEF on ACT_RU_TASK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+create table ACT_HI_TASKINST (
+ ID_ NVARCHAR2(64) not null,
+ REV_ INTEGER default 1,
+ PROC_DEF_ID_ NVARCHAR2(64),
+ TASK_DEF_ID_ NVARCHAR2(64),
+ TASK_DEF_KEY_ NVARCHAR2(255),
+ PROC_INST_ID_ NVARCHAR2(64),
+ EXECUTION_ID_ NVARCHAR2(64),
+ SCOPE_ID_ NVARCHAR2(255),
+ SUB_SCOPE_ID_ NVARCHAR2(255),
+ SCOPE_TYPE_ NVARCHAR2(255),
+ SCOPE_DEFINITION_ID_ NVARCHAR2(255),
+ PROPAGATED_STAGE_INST_ID_ NVARCHAR2(255),
+ PARENT_TASK_ID_ NVARCHAR2(64),
+ STATE_ NVARCHAR2(255),
+ NAME_ NVARCHAR2(255),
+ DESCRIPTION_ NVARCHAR2(2000),
+ OWNER_ NVARCHAR2(255),
+ ASSIGNEE_ NVARCHAR2(255),
+ START_TIME_ TIMESTAMP(6) not null,
+ IN_PROGRESS_TIME_ TIMESTAMP(6),
+ IN_PROGRESS_STARTED_BY_ NVARCHAR2(255),
+ CLAIM_TIME_ TIMESTAMP(6),
+ CLAIMED_BY_ NVARCHAR2(255),
+ SUSPENDED_TIME_ TIMESTAMP(6),
+ SUSPENDED_BY_ NVARCHAR2(255),
+ END_TIME_ TIMESTAMP(6),
+ COMPLETED_BY_ NVARCHAR2(255),
+ DURATION_ NUMBER(19,0),
+ DELETE_REASON_ NVARCHAR2(2000),
+ PRIORITY_ INTEGER,
+ IN_PROGRESS_DUE_DATE_ TIMESTAMP(6),
+ DUE_DATE_ TIMESTAMP(6),
+ FORM_KEY_ NVARCHAR2(255),
+ CATEGORY_ NVARCHAR2(255),
+ TENANT_ID_ NVARCHAR2(255) default '',
+ LAST_UPDATED_TIME_ TIMESTAMP(6),
+ primary key (ID_)
+);
+create sequence act_hi_task_evt_log_seq start with 1 increment by 1;
+
+create table ACT_HI_TSK_LOG (
+ ID_ NUMBER(19) DEFAULT nextval('act_hi_task_evt_log_seq') PRIMARY KEY,
+ TYPE_ NVARCHAR2(64),
+ TASK_ID_ NVARCHAR2(64) not null,
+ TIME_STAMP_ TIMESTAMP(6) not null,
+ USER_ID_ NVARCHAR2(255),
+ DATA_ NVARCHAR2(2000),
+ EXECUTION_ID_ NVARCHAR2(64),
+ PROC_INST_ID_ NVARCHAR2(64),
+ PROC_DEF_ID_ NVARCHAR2(64),
+ SCOPE_ID_ NVARCHAR2(255),
+ SCOPE_DEFINITION_ID_ NVARCHAR2(255),
+ SUB_SCOPE_ID_ NVARCHAR2(255),
+ SCOPE_TYPE_ NVARCHAR2(255),
+ TENANT_ID_ NVARCHAR2(255) default ''
+);
+
+
+
+create index ACT_IDX_HI_TASK_SCOPE on ACT_HI_TASKINST(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_HI_TASK_SUB_SCOPE on ACT_HI_TASKINST(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_HI_TASK_SCOPE_DEF on ACT_HI_TASKINST(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+create index ACT_IDX_ACT_HI_TSK_LOG_TASK on ACT_HI_TSK_LOG(TASK_ID_);
+
+create table ACT_RU_VARIABLE (
+ ID_ NVARCHAR2(64) not null,
+ REV_ INTEGER,
+ TYPE_ NVARCHAR2(255) not null,
+ NAME_ NVARCHAR2(255) not null,
+ EXECUTION_ID_ NVARCHAR2(64),
+ PROC_INST_ID_ NVARCHAR2(64),
+ TASK_ID_ NVARCHAR2(64),
+ SCOPE_ID_ NVARCHAR2(255),
+ SUB_SCOPE_ID_ NVARCHAR2(255),
+ SCOPE_TYPE_ NVARCHAR2(255),
+ BYTEARRAY_ID_ NVARCHAR2(64),
+ DOUBLE_ NUMBER(*,10),
+ LONG_ NUMBER(19,0),
+ TEXT_ NVARCHAR2(2000),
+ TEXT2_ NVARCHAR2(2000),
+ META_INFO_ NVARCHAR2(2000),
+ primary key (ID_)
+);
+
+create index ACT_IDX_RU_VAR_SCOPE_ID_TYPE on ACT_RU_VARIABLE(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_RU_VAR_SUB_ID_TYPE on ACT_RU_VARIABLE(SUB_SCOPE_ID_, SCOPE_TYPE_);
+
+create index ACT_IDX_VAR_BYTEARRAY on ACT_RU_VARIABLE(BYTEARRAY_ID_);
+alter table ACT_RU_VARIABLE
+ add constraint ACT_FK_VAR_BYTEARRAY
+ foreign key (BYTEARRAY_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+create table ACT_HI_VARINST (
+ ID_ NVARCHAR2(64) not null,
+ REV_ INTEGER default 1,
+ PROC_INST_ID_ NVARCHAR2(64),
+ EXECUTION_ID_ NVARCHAR2(64),
+ TASK_ID_ NVARCHAR2(64),
+ NAME_ NVARCHAR2(255) not null,
+ VAR_TYPE_ NVARCHAR2(100),
+ SCOPE_ID_ NVARCHAR2(255),
+ SUB_SCOPE_ID_ NVARCHAR2(255),
+ SCOPE_TYPE_ NVARCHAR2(255),
+ BYTEARRAY_ID_ NVARCHAR2(64),
+ DOUBLE_ NUMBER(*,10),
+ LONG_ NUMBER(19,0),
+ TEXT_ NVARCHAR2(2000),
+ TEXT2_ NVARCHAR2(2000),
+ META_INFO_ NVARCHAR2(2000),
+ CREATE_TIME_ TIMESTAMP(6),
+ LAST_UPDATED_TIME_ TIMESTAMP(6),
+ primary key (ID_)
+);
+
+create index ACT_IDX_HI_PROCVAR_NAME_TYPE on ACT_HI_VARINST(NAME_, VAR_TYPE_);
+create index ACT_IDX_HI_VAR_SCOPE_ID_TYPE on ACT_HI_VARINST(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_HI_VAR_SUB_ID_TYPE on ACT_HI_VARINST(SUB_SCOPE_ID_, SCOPE_TYPE_);
+
+
+create table ACT_RU_EVENT_SUBSCR (
+ ID_ NVARCHAR2(64) not null,
+ REV_ integer,
+ EVENT_TYPE_ NVARCHAR2(255) not null,
+ EVENT_NAME_ NVARCHAR2(255),
+ EXECUTION_ID_ NVARCHAR2(64),
+ PROC_INST_ID_ NVARCHAR2(64),
+ ACTIVITY_ID_ NVARCHAR2(64),
+ CONFIGURATION_ NVARCHAR2(255),
+ CREATED_ TIMESTAMP(6) not null,
+ PROC_DEF_ID_ NVARCHAR2(64),
+ SUB_SCOPE_ID_ NVARCHAR2(64),
+ SCOPE_ID_ NVARCHAR2(64),
+ SCOPE_DEFINITION_ID_ NVARCHAR2(64),
+ SCOPE_DEFINITION_KEY_ NVARCHAR2(255),
+ SCOPE_TYPE_ NVARCHAR2(64),
+ LOCK_TIME_ TIMESTAMP(6),
+ LOCK_OWNER_ NVARCHAR2(255),
+ TENANT_ID_ NVARCHAR2(255) DEFAULT '',
+ primary key (ID_)
+);
+
+create index ACT_IDX_EVENT_SUBSCR_CONFIG_ on ACT_RU_EVENT_SUBSCR(CONFIGURATION_);
+create index ACT_IDX_EVENT_SUBSCR on ACT_RU_EVENT_SUBSCR(EXECUTION_ID_);
+create index ACT_IDX_EVENT_SUBSCR_PROC_ID on ACT_RU_EVENT_SUBSCR(PROC_INST_ID_);
+create index ACT_IDX_EVENT_SUBSCR_SCOPEREF_ on ACT_RU_EVENT_SUBSCR(SCOPE_ID_, SCOPE_TYPE_);
\ No newline at end of file
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.kingbase-sqlserver.create.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.kingbase-sqlserver.create.common.sql
new file mode 100644
index 00000000000..594d358b75a
--- /dev/null
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.kingbase-sqlserver.create.common.sql
@@ -0,0 +1,604 @@
+create table ACT_GE_PROPERTY (
+ NAME_ nvarchar(64),
+ VALUE_ nvarchar(300),
+ REV_ int,
+ primary key (NAME_)
+);
+
+create table ACT_GE_BYTEARRAY (
+ ID_ nvarchar(64),
+ REV_ int,
+ NAME_ nvarchar(255),
+ DEPLOYMENT_ID_ nvarchar(64),
+ BYTES_ varbinary(max),
+ GENERATED_ tinyint,
+ primary key (ID_)
+);
+
+insert into ACT_GE_PROPERTY
+values ('common.schema.version', '7.1.0.2', 1);
+
+insert into ACT_GE_PROPERTY
+values ('next.dbid', '1', 1);
+
+
+create table ACT_RU_ENTITYLINK (
+ ID_ nvarchar(64),
+ REV_ int,
+ CREATE_TIME_ datetime,
+ LINK_TYPE_ nvarchar(255),
+ SCOPE_ID_ nvarchar(255),
+ SUB_SCOPE_ID_ nvarchar(255),
+ SCOPE_TYPE_ nvarchar(255),
+ SCOPE_DEFINITION_ID_ nvarchar(255),
+ PARENT_ELEMENT_ID_ nvarchar(255),
+ REF_SCOPE_ID_ nvarchar(255),
+ REF_SCOPE_TYPE_ nvarchar(255),
+ REF_SCOPE_DEFINITION_ID_ nvarchar(255),
+ ROOT_SCOPE_ID_ nvarchar(255),
+ ROOT_SCOPE_TYPE_ nvarchar(255),
+ HIERARCHY_TYPE_ nvarchar(255),
+ primary key (ID_)
+);
+
+create index ACT_IDX_ENT_LNK_SCOPE on ACT_RU_ENTITYLINK(SCOPE_ID_, SCOPE_TYPE_, LINK_TYPE_);
+create index ACT_IDX_ENT_LNK_REF_SCOPE on ACT_RU_ENTITYLINK(REF_SCOPE_ID_, REF_SCOPE_TYPE_, LINK_TYPE_);
+create index ACT_IDX_ENT_LNK_ROOT_SCOPE on ACT_RU_ENTITYLINK(ROOT_SCOPE_ID_, ROOT_SCOPE_TYPE_, LINK_TYPE_);
+create index ACT_IDX_ENT_LNK_SCOPE_DEF on ACT_RU_ENTITYLINK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_, LINK_TYPE_);
+
+create table ACT_HI_ENTITYLINK (
+ ID_ nvarchar(64),
+ LINK_TYPE_ nvarchar(255),
+ CREATE_TIME_ datetime,
+ SCOPE_ID_ nvarchar(255),
+ SUB_SCOPE_ID_ nvarchar(255),
+ SCOPE_TYPE_ nvarchar(255),
+ SCOPE_DEFINITION_ID_ nvarchar(255),
+ PARENT_ELEMENT_ID_ nvarchar(255),
+ REF_SCOPE_ID_ nvarchar(255),
+ REF_SCOPE_TYPE_ nvarchar(255),
+ REF_SCOPE_DEFINITION_ID_ nvarchar(255),
+ ROOT_SCOPE_ID_ nvarchar(255),
+ ROOT_SCOPE_TYPE_ nvarchar(255),
+ HIERARCHY_TYPE_ nvarchar(255),
+ primary key (ID_)
+);
+
+create index ACT_IDX_HI_ENT_LNK_SCOPE on ACT_HI_ENTITYLINK(SCOPE_ID_, SCOPE_TYPE_, LINK_TYPE_);
+create index ACT_IDX_HI_ENT_LNK_REF_SCOPE on ACT_HI_ENTITYLINK(REF_SCOPE_ID_, REF_SCOPE_TYPE_, LINK_TYPE_);
+create index ACT_IDX_HI_ENT_LNK_ROOT_SCOPE on ACT_HI_ENTITYLINK(ROOT_SCOPE_ID_, ROOT_SCOPE_TYPE_, LINK_TYPE_);
+create index ACT_IDX_HI_ENT_LNK_SCOPE_DEF on ACT_HI_ENTITYLINK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_, LINK_TYPE_);
+
+
+create table ACT_RU_IDENTITYLINK (
+ ID_ nvarchar(64),
+ REV_ int,
+ GROUP_ID_ nvarchar(255),
+ TYPE_ nvarchar(255),
+ USER_ID_ nvarchar(255),
+ TASK_ID_ nvarchar(64),
+ PROC_INST_ID_ nvarchar(64),
+ PROC_DEF_ID_ nvarchar(64),
+ SCOPE_ID_ nvarchar(255),
+ SUB_SCOPE_ID_ nvarchar(255),
+ SCOPE_TYPE_ nvarchar(255),
+ SCOPE_DEFINITION_ID_ nvarchar(255),
+ primary key (ID_)
+);
+
+create index ACT_IDX_IDENT_LNK_USER on ACT_RU_IDENTITYLINK(USER_ID_);
+create index ACT_IDX_IDENT_LNK_GROUP on ACT_RU_IDENTITYLINK(GROUP_ID_);
+create index ACT_IDX_IDENT_LNK_SCOPE on ACT_RU_IDENTITYLINK(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_IDENT_LNK_SUB_SCOPE on ACT_RU_IDENTITYLINK(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_IDENT_LNK_SCOPE_DEF on ACT_RU_IDENTITYLINK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+create table ACT_HI_IDENTITYLINK (
+ ID_ nvarchar(64),
+ GROUP_ID_ nvarchar(255),
+ TYPE_ nvarchar(255),
+ USER_ID_ nvarchar(255),
+ TASK_ID_ nvarchar(64),
+ CREATE_TIME_ datetime,
+ PROC_INST_ID_ nvarchar(64),
+ SCOPE_ID_ nvarchar(255),
+ SUB_SCOPE_ID_ nvarchar(255),
+ SCOPE_TYPE_ nvarchar(255),
+ SCOPE_DEFINITION_ID_ nvarchar(255),
+ primary key (ID_)
+);
+
+create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_);
+create index ACT_IDX_HI_IDENT_LNK_SCOPE on ACT_HI_IDENTITYLINK(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_HI_IDENT_LNK_SUB_SCOPE on ACT_HI_IDENTITYLINK(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_HI_IDENT_LNK_SCOPE_DEF on ACT_HI_IDENTITYLINK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+
+create table ACT_RU_JOB (
+ ID_ nvarchar(64) NOT NULL,
+ REV_ int,
+ CATEGORY_ varchar(255),
+ TYPE_ nvarchar(255) NOT NULL,
+ LOCK_EXP_TIME_ datetime,
+ LOCK_OWNER_ nvarchar(255),
+ EXCLUSIVE_ bit,
+ EXECUTION_ID_ nvarchar(64),
+ PROCESS_INSTANCE_ID_ nvarchar(64),
+ PROC_DEF_ID_ nvarchar(64),
+ ELEMENT_ID_ nvarchar(255),
+ ELEMENT_NAME_ nvarchar(255),
+ SCOPE_ID_ nvarchar(255),
+ SUB_SCOPE_ID_ nvarchar(255),
+ SCOPE_TYPE_ nvarchar(255),
+ SCOPE_DEFINITION_ID_ nvarchar(255),
+ CORRELATION_ID_ nvarchar(255),
+ RETRIES_ int,
+ EXCEPTION_STACK_ID_ nvarchar(64),
+ EXCEPTION_MSG_ nvarchar(4000),
+ DUEDATE_ datetime NULL,
+ REPEAT_ nvarchar(255),
+ HANDLER_TYPE_ nvarchar(255),
+ HANDLER_CFG_ nvarchar(4000),
+ CUSTOM_VALUES_ID_ nvarchar(64),
+ CREATE_TIME_ datetime2 NULL,
+ TENANT_ID_ nvarchar(255) default '',
+ primary key (ID_)
+);
+
+create table ACT_RU_TIMER_JOB (
+ ID_ nvarchar(64) NOT NULL,
+ REV_ int,
+ CATEGORY_ varchar(255),
+ TYPE_ nvarchar(255) NOT NULL,
+ LOCK_EXP_TIME_ datetime,
+ LOCK_OWNER_ nvarchar(255),
+ EXCLUSIVE_ bit,
+ EXECUTION_ID_ nvarchar(64),
+ PROCESS_INSTANCE_ID_ nvarchar(64),
+ PROC_DEF_ID_ nvarchar(64),
+ ELEMENT_ID_ nvarchar(255),
+ ELEMENT_NAME_ nvarchar(255),
+ SCOPE_ID_ nvarchar(255),
+ SUB_SCOPE_ID_ nvarchar(255),
+ SCOPE_TYPE_ nvarchar(255),
+ SCOPE_DEFINITION_ID_ nvarchar(255),
+ CORRELATION_ID_ nvarchar(255),
+ RETRIES_ int,
+ EXCEPTION_STACK_ID_ nvarchar(64),
+ EXCEPTION_MSG_ nvarchar(4000),
+ DUEDATE_ datetime NULL,
+ REPEAT_ nvarchar(255),
+ HANDLER_TYPE_ nvarchar(255),
+ HANDLER_CFG_ nvarchar(4000),
+ CUSTOM_VALUES_ID_ nvarchar(64),
+ CREATE_TIME_ datetime2 NULL,
+ TENANT_ID_ nvarchar(255) default '',
+ primary key (ID_)
+);
+
+create table ACT_RU_SUSPENDED_JOB (
+ ID_ nvarchar(64) NOT NULL,
+ REV_ int,
+ CATEGORY_ varchar(255),
+ TYPE_ nvarchar(255) NOT NULL,
+ EXCLUSIVE_ bit,
+ EXECUTION_ID_ nvarchar(64),
+ PROCESS_INSTANCE_ID_ nvarchar(64),
+ PROC_DEF_ID_ nvarchar(64),
+ ELEMENT_ID_ nvarchar(255),
+ ELEMENT_NAME_ nvarchar(255),
+ SCOPE_ID_ nvarchar(255),
+ SUB_SCOPE_ID_ nvarchar(255),
+ SCOPE_TYPE_ nvarchar(255),
+ SCOPE_DEFINITION_ID_ nvarchar(255),
+ CORRELATION_ID_ nvarchar(255),
+ RETRIES_ int,
+ EXCEPTION_STACK_ID_ nvarchar(64),
+ EXCEPTION_MSG_ nvarchar(4000),
+ DUEDATE_ datetime NULL,
+ REPEAT_ nvarchar(255),
+ HANDLER_TYPE_ nvarchar(255),
+ HANDLER_CFG_ nvarchar(4000),
+ CUSTOM_VALUES_ID_ nvarchar(64),
+ CREATE_TIME_ datetime2 NULL,
+ TENANT_ID_ nvarchar(255) default '',
+ primary key (ID_)
+);
+
+create table ACT_RU_DEADLETTER_JOB (
+ ID_ nvarchar(64) NOT NULL,
+ REV_ int,
+ CATEGORY_ varchar(255),
+ TYPE_ nvarchar(255) NOT NULL,
+ EXCLUSIVE_ bit,
+ EXECUTION_ID_ nvarchar(64),
+ PROCESS_INSTANCE_ID_ nvarchar(64),
+ PROC_DEF_ID_ nvarchar(64),
+ ELEMENT_ID_ nvarchar(255),
+ ELEMENT_NAME_ nvarchar(255),
+ SCOPE_ID_ nvarchar(255),
+ SUB_SCOPE_ID_ nvarchar(255),
+ SCOPE_TYPE_ nvarchar(255),
+ SCOPE_DEFINITION_ID_ nvarchar(255),
+ CORRELATION_ID_ nvarchar(255),
+ EXCEPTION_STACK_ID_ nvarchar(64),
+ EXCEPTION_MSG_ nvarchar(4000),
+ DUEDATE_ datetime NULL,
+ REPEAT_ nvarchar(255),
+ HANDLER_TYPE_ nvarchar(255),
+ HANDLER_CFG_ nvarchar(4000),
+ CUSTOM_VALUES_ID_ nvarchar(64),
+ CREATE_TIME_ datetime2 NULL,
+ TENANT_ID_ nvarchar(255) default '',
+ primary key (ID_)
+);
+
+create table ACT_RU_HISTORY_JOB (
+ ID_ nvarchar(64) NOT NULL,
+ REV_ int,
+ LOCK_EXP_TIME_ datetime NULL,
+ LOCK_OWNER_ nvarchar(255),
+ RETRIES_ int,
+ EXCEPTION_STACK_ID_ nvarchar(64),
+ EXCEPTION_MSG_ nvarchar(4000),
+ HANDLER_TYPE_ nvarchar(255),
+ HANDLER_CFG_ nvarchar(4000),
+ CUSTOM_VALUES_ID_ nvarchar(64),
+ ADV_HANDLER_CFG_ID_ nvarchar(64),
+ CREATE_TIME_ datetime2 NULL,
+ SCOPE_TYPE_ nvarchar(255),
+ TENANT_ID_ nvarchar(255) default '',
+ primary key (ID_)
+);
+
+create table ACT_RU_EXTERNAL_JOB (
+ ID_ nvarchar(64) NOT NULL,
+ REV_ int,
+ CATEGORY_ varchar(255),
+ TYPE_ nvarchar(255) NOT NULL,
+ LOCK_EXP_TIME_ datetime,
+ LOCK_OWNER_ nvarchar(255),
+ EXCLUSIVE_ bit,
+ EXECUTION_ID_ nvarchar(64),
+ PROCESS_INSTANCE_ID_ nvarchar(64),
+ PROC_DEF_ID_ nvarchar(64),
+ ELEMENT_ID_ nvarchar(255),
+ ELEMENT_NAME_ nvarchar(255),
+ SCOPE_ID_ nvarchar(255),
+ SUB_SCOPE_ID_ nvarchar(255),
+ SCOPE_TYPE_ nvarchar(255),
+ SCOPE_DEFINITION_ID_ nvarchar(255),
+ CORRELATION_ID_ nvarchar(255),
+ RETRIES_ int,
+ EXCEPTION_STACK_ID_ nvarchar(64),
+ EXCEPTION_MSG_ nvarchar(4000),
+ DUEDATE_ datetime NULL,
+ REPEAT_ nvarchar(255),
+ HANDLER_TYPE_ nvarchar(255),
+ HANDLER_CFG_ nvarchar(4000),
+ CUSTOM_VALUES_ID_ nvarchar(64),
+ CREATE_TIME_ datetime2 NULL,
+ TENANT_ID_ nvarchar(255) default '',
+ primary key (ID_)
+);
+
+create index ACT_IDX_JOB_EXCEPTION_STACK_ID on ACT_RU_JOB(EXCEPTION_STACK_ID_);
+create index ACT_IDX_JOB_CUSTOM_VALUES_ID on ACT_RU_JOB(CUSTOM_VALUES_ID_);
+create index ACT_IDX_JOB_CORRELATION_ID on ACT_RU_JOB(CORRELATION_ID_);
+
+create index ACT_IDX_TIMER_JOB_EXCEPTION_STACK_ID on ACT_RU_TIMER_JOB(EXCEPTION_STACK_ID_);
+create index ACT_IDX_TIMER_JOB_CUSTOM_VALUES_ID on ACT_RU_TIMER_JOB(CUSTOM_VALUES_ID_);
+create index ACT_IDX_TIMER_JOB_CORRELATION_ID on ACT_RU_TIMER_JOB(CORRELATION_ID_);
+create index ACT_IDX_TIMER_JOB_DUEDATE on ACT_RU_TIMER_JOB(DUEDATE_);
+
+create index ACT_IDX_SUSPENDED_JOB_EXCEPTION_STACK_ID on ACT_RU_SUSPENDED_JOB(EXCEPTION_STACK_ID_);
+create index ACT_IDX_SUSPENDED_JOB_CUSTOM_VALUES_ID on ACT_RU_SUSPENDED_JOB(CUSTOM_VALUES_ID_);
+create index ACT_IDX_SUSPENDED_JOB_CORRELATION_ID on ACT_RU_SUSPENDED_JOB(CORRELATION_ID_);
+
+create index ACT_IDX_DEADLETTER_JOB_EXCEPTION_STACK_ID on ACT_RU_DEADLETTER_JOB(EXCEPTION_STACK_ID_);
+create index ACT_IDX_DEADLETTER_JOB_CUSTOM_VALUES_ID on ACT_RU_DEADLETTER_JOB(CUSTOM_VALUES_ID_);
+create index ACT_IDX_DEADLETTER_JOB_CORRELATION_ID on ACT_RU_DEADLETTER_JOB(CORRELATION_ID_);
+
+create index ACT_IDX_EXTERNAL_JOB_EXCEPTION_STACK_ID on ACT_RU_EXTERNAL_JOB(EXCEPTION_STACK_ID_);
+create index ACT_IDX_EXTERNAL_JOB_CUSTOM_VALUES_ID on ACT_RU_EXTERNAL_JOB(CUSTOM_VALUES_ID_);
+create index ACT_IDX_EXTERNAL_JOB_CORRELATION_ID on ACT_RU_EXTERNAL_JOB(CORRELATION_ID_);
+
+alter table ACT_RU_JOB
+ add constraint ACT_FK_JOB_EXCEPTION
+ foreign key (EXCEPTION_STACK_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_JOB
+ add constraint ACT_FK_JOB_CUSTOM_VALUES
+ foreign key (CUSTOM_VALUES_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_TIMER_JOB
+ add constraint ACT_FK_TIMER_JOB_EXCEPTION
+ foreign key (EXCEPTION_STACK_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_TIMER_JOB
+ add constraint ACT_FK_TIMER_JOB_CUSTOM_VALUES
+ foreign key (CUSTOM_VALUES_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_SUSPENDED_JOB
+ add constraint ACT_FK_SUSPENDED_JOB_EXCEPTION
+ foreign key (EXCEPTION_STACK_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_SUSPENDED_JOB
+ add constraint ACT_FK_SUSPENDED_JOB_CUSTOM_VALUES
+ foreign key (CUSTOM_VALUES_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_DEADLETTER_JOB
+ add constraint ACT_FK_DEADLETTER_JOB_EXCEPTION
+ foreign key (EXCEPTION_STACK_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_DEADLETTER_JOB
+ add constraint ACT_FK_DEADLETTER_JOB_CUSTOM_VALUES
+ foreign key (CUSTOM_VALUES_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_EXTERNAL_JOB
+ add constraint ACT_FK_EXTERNAL_JOB_EXCEPTION
+ foreign key (EXCEPTION_STACK_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_EXTERNAL_JOB
+ add constraint ACT_FK_EXTERNAL_JOB_CUSTOM_VALUES
+ foreign key (CUSTOM_VALUES_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+create index ACT_IDX_JOB_SCOPE on ACT_RU_JOB(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_JOB_SUB_SCOPE on ACT_RU_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_JOB_SCOPE_DEF on ACT_RU_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+create index ACT_IDX_TJOB_SCOPE on ACT_RU_TIMER_JOB(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_TJOB_SUB_SCOPE on ACT_RU_TIMER_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_TJOB_SCOPE_DEF on ACT_RU_TIMER_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+create index ACT_IDX_SJOB_SCOPE on ACT_RU_SUSPENDED_JOB(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_SJOB_SUB_SCOPE on ACT_RU_SUSPENDED_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_SJOB_SCOPE_DEF on ACT_RU_SUSPENDED_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+create index ACT_IDX_DJOB_SCOPE on ACT_RU_DEADLETTER_JOB(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_DJOB_SUB_SCOPE on ACT_RU_DEADLETTER_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_DJOB_SCOPE_DEF on ACT_RU_DEADLETTER_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+create index ACT_IDX_EJOB_SCOPE on ACT_RU_EXTERNAL_JOB(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_EJOB_SUB_SCOPE on ACT_RU_EXTERNAL_JOB(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_EJOB_SCOPE_DEF on ACT_RU_EXTERNAL_JOB(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+create table FLW_RU_BATCH (
+ ID_ nvarchar(64) not null,
+ REV_ int,
+ TYPE_ nvarchar(64) not null,
+ SEARCH_KEY_ nvarchar(255),
+ SEARCH_KEY2_ nvarchar(255),
+ CREATE_TIME_ datetime not null,
+ COMPLETE_TIME_ datetime,
+ STATUS_ nvarchar(255),
+ BATCH_DOC_ID_ nvarchar(64),
+ TENANT_ID_ nvarchar(255) default '',
+ primary key (ID_)
+);
+
+create table FLW_RU_BATCH_PART (
+ ID_ nvarchar(64) not null,
+ REV_ int,
+ BATCH_ID_ nvarchar(64),
+ TYPE_ nvarchar(64) not null,
+ SCOPE_ID_ nvarchar(64),
+ SUB_SCOPE_ID_ nvarchar(64),
+ SCOPE_TYPE_ nvarchar(64),
+ SEARCH_KEY_ nvarchar(255),
+ SEARCH_KEY2_ nvarchar(255),
+ CREATE_TIME_ datetime not null,
+ COMPLETE_TIME_ datetime,
+ STATUS_ nvarchar(255),
+ RESULT_DOC_ID_ nvarchar(64),
+ TENANT_ID_ nvarchar(255) default '',
+ primary key (ID_)
+);
+
+create index FLW_IDX_BATCH_PART on FLW_RU_BATCH_PART(BATCH_ID_);
+
+alter table FLW_RU_BATCH_PART
+ add constraint FLW_FK_BATCH_PART_PARENT
+ foreign key (BATCH_ID_)
+ references FLW_RU_BATCH (ID_);
+
+create table ACT_RU_TASK (
+ ID_ nvarchar(64),
+ REV_ int,
+ EXECUTION_ID_ nvarchar(64),
+ PROC_INST_ID_ nvarchar(64),
+ PROC_DEF_ID_ nvarchar(64),
+ TASK_DEF_ID_ nvarchar(64),
+ SCOPE_ID_ nvarchar(255),
+ SUB_SCOPE_ID_ nvarchar(255),
+ SCOPE_TYPE_ nvarchar(255),
+ SCOPE_DEFINITION_ID_ nvarchar(255),
+ PROPAGATED_STAGE_INST_ID_ nvarchar(255),
+ STATE_ nvarchar(255),
+ NAME_ nvarchar(255),
+ PARENT_TASK_ID_ nvarchar(64),
+ DESCRIPTION_ nvarchar(4000),
+ TASK_DEF_KEY_ nvarchar(255),
+ OWNER_ nvarchar(255),
+ ASSIGNEE_ nvarchar(255),
+ DELEGATION_ nvarchar(64),
+ PRIORITY_ int,
+ CREATE_TIME_ datetime,
+ IN_PROGRESS_TIME_ datetime,
+ IN_PROGRESS_STARTED_BY_ nvarchar(255),
+ CLAIM_TIME_ datetime,
+ CLAIMED_BY_ nvarchar(255),
+ SUSPENDED_TIME_ datetime,
+ SUSPENDED_BY_ nvarchar(255),
+ IN_PROGRESS_DUE_DATE_ datetime,
+ DUE_DATE_ datetime,
+ CATEGORY_ nvarchar(255),
+ SUSPENSION_STATE_ int,
+ TENANT_ID_ nvarchar(255) default '',
+ FORM_KEY_ nvarchar(255),
+ IS_COUNT_ENABLED_ tinyint,
+ VAR_COUNT_ int,
+ ID_LINK_COUNT_ int,
+ SUB_TASK_COUNT_ int,
+ primary key (ID_)
+);
+
+create index ACT_IDX_TASK_CREATE on ACT_RU_TASK(CREATE_TIME_);
+create index ACT_IDX_TASK_SCOPE on ACT_RU_TASK(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_TASK_SUB_SCOPE on ACT_RU_TASK(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_TASK_SCOPE_DEF on ACT_RU_TASK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+
+create table ACT_HI_TASKINST (
+ ID_ nvarchar(64) not null,
+ REV_ int default 1,
+ PROC_DEF_ID_ nvarchar(64),
+ TASK_DEF_ID_ nvarchar(64),
+ TASK_DEF_KEY_ nvarchar(255),
+ PROC_INST_ID_ nvarchar(64),
+ EXECUTION_ID_ nvarchar(64),
+ SCOPE_ID_ nvarchar(255),
+ SUB_SCOPE_ID_ nvarchar(255),
+ SCOPE_TYPE_ nvarchar(255),
+ SCOPE_DEFINITION_ID_ nvarchar(255),
+ PROPAGATED_STAGE_INST_ID_ nvarchar(255),
+ STATE_ nvarchar(255),
+ NAME_ nvarchar(255),
+ PARENT_TASK_ID_ nvarchar(64),
+ DESCRIPTION_ nvarchar(4000),
+ OWNER_ nvarchar(255),
+ ASSIGNEE_ nvarchar(255),
+ START_TIME_ datetime not null,
+ IN_PROGRESS_TIME_ datetime,
+ IN_PROGRESS_STARTED_BY_ nvarchar(255),
+ CLAIM_TIME_ datetime,
+ CLAIMED_BY_ nvarchar(255),
+ SUSPENDED_TIME_ datetime,
+ SUSPENDED_BY_ nvarchar(255),
+ END_TIME_ datetime,
+ COMPLETED_BY_ nvarchar(255),
+ DURATION_ numeric(19,0),
+ DELETE_REASON_ nvarchar(4000),
+ PRIORITY_ int,
+ IN_PROGRESS_DUE_DATE_ datetime,
+ DUE_DATE_ datetime,
+ FORM_KEY_ nvarchar(255),
+ CATEGORY_ nvarchar(255),
+ TENANT_ID_ nvarchar(255) default '',
+ LAST_UPDATED_TIME_ datetime2,
+ primary key (ID_)
+);
+
+create table ACT_HI_TSK_LOG (
+ ID_ numeric(19,0) IDENTITY (1,1),
+ TYPE_ nvarchar(64),
+ TASK_ID_ nvarchar(64) not null,
+ TIME_STAMP_ datetime not null,
+ USER_ID_ nvarchar(255),
+ DATA_ nvarchar(4000),
+ EXECUTION_ID_ nvarchar(64),
+ PROC_INST_ID_ nvarchar(64),
+ PROC_DEF_ID_ nvarchar(64),
+ SCOPE_ID_ nvarchar(255),
+ SCOPE_DEFINITION_ID_ nvarchar(255),
+ SUB_SCOPE_ID_ nvarchar(255),
+ SCOPE_TYPE_ nvarchar(255),
+ TENANT_ID_ nvarchar(255) default '',
+ primary key (ID_)
+);
+
+create index ACT_IDX_HI_TASK_SCOPE on ACT_HI_TASKINST(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_HI_TASK_SUB_SCOPE on ACT_HI_TASKINST(SUB_SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_HI_TASK_SCOPE_DEF on ACT_HI_TASKINST(SCOPE_DEFINITION_ID_, SCOPE_TYPE_);
+create index ACT_IDX_ACT_HI_TSK_LOG_TASK on ACT_HI_TSK_LOG(TASK_ID_);
+
+create table ACT_RU_VARIABLE (
+ ID_ nvarchar(64) not null,
+ REV_ int,
+ TYPE_ nvarchar(255) not null,
+ NAME_ nvarchar(255) not null,
+ EXECUTION_ID_ nvarchar(64),
+ PROC_INST_ID_ nvarchar(64),
+ TASK_ID_ nvarchar(64),
+ SCOPE_ID_ nvarchar(255),
+ SUB_SCOPE_ID_ nvarchar(255),
+ SCOPE_TYPE_ nvarchar(255),
+ BYTEARRAY_ID_ nvarchar(64),
+ DOUBLE_ double precision,
+ LONG_ numeric(19,0),
+ TEXT_ nvarchar(4000),
+ TEXT2_ nvarchar(4000),
+ META_INFO_ nvarchar(4000),
+ primary key (ID_)
+);
+
+create index ACT_IDX_RU_VAR_SCOPE_ID_TYPE on ACT_RU_VARIABLE(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_RU_VAR_SUB_ID_TYPE on ACT_RU_VARIABLE(SUB_SCOPE_ID_, SCOPE_TYPE_);
+
+create index ACT_IDX_VARIABLE_BA on ACT_RU_VARIABLE(BYTEARRAY_ID_);
+alter table ACT_RU_VARIABLE
+ add constraint ACT_FK_VAR_BYTEARRAY
+ foreign key (BYTEARRAY_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+create table ACT_HI_VARINST (
+ ID_ nvarchar(64) not null,
+ REV_ int default 1,
+ PROC_INST_ID_ nvarchar(64),
+ EXECUTION_ID_ nvarchar(64),
+ TASK_ID_ nvarchar(64),
+ NAME_ nvarchar(255) not null,
+ VAR_TYPE_ nvarchar(100),
+ SCOPE_ID_ nvarchar(255),
+ SUB_SCOPE_ID_ nvarchar(255),
+ SCOPE_TYPE_ nvarchar(255),
+ BYTEARRAY_ID_ nvarchar(64),
+ DOUBLE_ double precision,
+ LONG_ numeric(19,0),
+ TEXT_ nvarchar(4000),
+ TEXT2_ nvarchar(4000),
+ META_INFO_ nvarchar(4000),
+ CREATE_TIME_ datetime,
+ LAST_UPDATED_TIME_ datetime2,
+ primary key (ID_)
+);
+
+create index ACT_IDX_HI_PROCVAR_NAME_TYPE on ACT_HI_VARINST(NAME_, VAR_TYPE_);
+create index ACT_IDX_HI_VAR_SCOPE_ID_TYPE on ACT_HI_VARINST(SCOPE_ID_, SCOPE_TYPE_);
+create index ACT_IDX_HI_VAR_SUB_ID_TYPE on ACT_HI_VARINST(SUB_SCOPE_ID_, SCOPE_TYPE_);
+
+
+create table ACT_RU_EVENT_SUBSCR (
+ ID_ nvarchar(64) not null,
+ REV_ int,
+ EVENT_TYPE_ nvarchar(255) not null,
+ EVENT_NAME_ nvarchar(255),
+ EXECUTION_ID_ nvarchar(64),
+ PROC_INST_ID_ nvarchar(64),
+ ACTIVITY_ID_ nvarchar(64),
+ CONFIGURATION_ nvarchar(255),
+ CREATED_ datetime not null,
+ PROC_DEF_ID_ nvarchar(64),
+ SUB_SCOPE_ID_ nvarchar(64),
+ SCOPE_ID_ nvarchar(64),
+ SCOPE_DEFINITION_ID_ nvarchar(64),
+ SCOPE_DEFINITION_KEY_ nvarchar(255),
+ SCOPE_TYPE_ nvarchar(64),
+ LOCK_TIME_ datetime,
+ LOCK_OWNER_ nvarchar(255),
+ TENANT_ID_ nvarchar(255) default '',
+ primary key (ID_)
+);
+
+create index ACT_IDX_EVENT_SUBSCR_CONFIG_ on ACT_RU_EVENT_SUBSCR(CONFIGURATION_);
+create index ACT_IDX_EVENT_SUBSCR_EXEC_ID on ACT_RU_EVENT_SUBSCR(EXECUTION_ID_);
+create index ACT_IDX_EVENT_SUBSCR_PROC_ID on ACT_RU_EVENT_SUBSCR(PROC_INST_ID_);
+create index ACT_IDX_EVENT_SUBSCR_SCOPEREF_ on ACT_RU_EVENT_SUBSCR(SCOPE_ID_, SCOPE_TYPE_);
\ No newline at end of file
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.kingbase-mysql.drop.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.kingbase-mysql.drop.common.sql
new file mode 100644
index 00000000000..df2bd03624f
--- /dev/null
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.kingbase-mysql.drop.common.sql
@@ -0,0 +1,29 @@
+drop table if exists FLW_RU_BATCH_PART cascade;
+drop table if exists FLW_RU_BATCH cascade;
+
+drop table if exists ACT_RU_ENTITYLINK cascade;
+drop table if exists ACT_HI_ENTITYLINK cascade;
+
+drop table if exists ACT_RU_EVENT_SUBSCR cascade;
+
+drop table if exists ACT_RU_IDENTITYLINK cascade;
+drop table if exists ACT_HI_IDENTITYLINK cascade;
+
+drop table if exists ACT_RU_JOB cascade;
+drop table if exists ACT_RU_TIMER_JOB cascade;
+drop table if exists ACT_RU_SUSPENDED_JOB cascade;
+drop table if exists ACT_RU_DEADLETTER_JOB cascade;
+drop table if exists ACT_RU_HISTORY_JOB cascade;
+drop table if exists ACT_RU_EXTERNAL_JOB cascade;
+
+drop table if exists ACT_RU_TASK cascade;
+drop table if exists ACT_HI_TSK_LOG cascade;
+drop table if exists ACT_HI_TASKINST cascade;
+
+
+drop table if exists ACT_RU_VARIABLE cascade;
+drop table if exists ACT_HI_VARINST cascade;
+
+
+drop table if exists ACT_GE_BYTEARRAY cascade;
+drop table if exists ACT_GE_PROPERTY cascade;
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.kingbase-oracle.drop.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.kingbase-oracle.drop.common.sql
new file mode 100644
index 00000000000..5b0d8366ab3
--- /dev/null
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.kingbase-oracle.drop.common.sql
@@ -0,0 +1,31 @@
+DROP SEQUENCE IF EXISTS act_hi_task_evt_log_seq CASCADE;
+
+drop table if exists FLW_RU_BATCH_PART cascade;
+drop table if exists FLW_RU_BATCH cascade;
+
+drop table if exists ACT_RU_ENTITYLINK cascade;
+drop table if exists ACT_HI_ENTITYLINK cascade;
+
+drop table if exists ACT_RU_EVENT_SUBSCR cascade;
+
+drop table if exists ACT_RU_IDENTITYLINK cascade;
+drop table if exists ACT_HI_IDENTITYLINK cascade;
+
+drop table if exists ACT_RU_JOB cascade;
+drop table if exists ACT_RU_TIMER_JOB cascade;
+drop table if exists ACT_RU_SUSPENDED_JOB cascade;
+drop table if exists ACT_RU_DEADLETTER_JOB cascade;
+drop table if exists ACT_RU_HISTORY_JOB cascade;
+drop table if exists ACT_RU_EXTERNAL_JOB cascade;
+
+drop table if exists ACT_RU_TASK cascade;
+drop table if exists ACT_HI_TSK_LOG cascade;
+drop table if exists ACT_HI_TASKINST cascade;
+
+
+drop table if exists ACT_RU_VARIABLE cascade;
+drop table if exists ACT_HI_VARINST cascade;
+
+
+drop table if exists ACT_GE_BYTEARRAY cascade;
+drop table if exists ACT_GE_PROPERTY cascade;
\ No newline at end of file
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.kingbase-sqlserver.drop.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.kingbase-sqlserver.drop.common.sql
new file mode 100644
index 00000000000..eb62c9f7fa3
--- /dev/null
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.kingbase-sqlserver.drop.common.sql
@@ -0,0 +1,29 @@
+drop table if exists FLW_RU_BATCH_PART cascade;
+drop table if exists FLW_RU_BATCH cascade;
+
+drop table if exists ACT_RU_ENTITYLINK cascade;
+drop table if exists ACT_HI_ENTITYLINK cascade;
+
+drop table if exists ACT_RU_EVENT_SUBSCR cascade;
+
+drop table if exists ACT_RU_IDENTITYLINK cascade;
+drop table if exists ACT_HI_IDENTITYLINK cascade;
+
+drop table if exists ACT_RU_JOB cascade;
+drop table if exists ACT_RU_TIMER_JOB cascade;
+drop table if exists ACT_RU_SUSPENDED_JOB cascade;
+drop table if exists ACT_RU_DEADLETTER_JOB cascade;
+drop table if exists ACT_RU_HISTORY_JOB cascade;
+drop table if exists ACT_RU_EXTERNAL_JOB cascade;
+
+drop table if exists ACT_RU_TASK cascade;
+drop table if exists ACT_HI_TSK_LOG cascade;
+drop table if exists ACT_HI_TASKINST cascade;
+
+
+drop table if exists ACT_RU_VARIABLE cascade;
+drop table if exists ACT_HI_VARINST cascade;
+
+
+drop table if exists ACT_GE_BYTEARRAY cascade;
+drop table if exists ACT_GE_PROPERTY cascade;
\ No newline at end of file
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/properties/kingbase-mysql.properties b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/properties/kingbase-mysql.properties
new file mode 100644
index 00000000000..2c6f2703480
--- /dev/null
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/properties/kingbase-mysql.properties
@@ -0,0 +1 @@
+limitAfter=LIMIT #{maxResults} OFFSET #{firstResult}
\ No newline at end of file
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/properties/kingbase-oracle.properties b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/properties/kingbase-oracle.properties
new file mode 100644
index 00000000000..343e582a6f5
--- /dev/null
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/properties/kingbase-oracle.properties
@@ -0,0 +1,3 @@
+limitBefore=select RES.* from ( select RES.*, rownum as rnum from (
+limitAfter= ) RES where ROWNUM < #{lastRow} ) RES where rnum >= #{firstRow}
+boolValue=1
\ No newline at end of file
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/properties/kingbase-sqlserver.properties b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/properties/kingbase-sqlserver.properties
new file mode 100644
index 00000000000..56fbda59302
--- /dev/null
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/properties/kingbase-sqlserver.properties
@@ -0,0 +1,6 @@
+limitBefore=SELECT RES.* from (
+limitAfter= ) as RES where RES.rn >= #{firstRow} and RES.rn < #{lastRow}
+limitBetween= , row_number() over (${orderByForWindow}) as rn
+limitBeforeNativeQuery=SELECT RES.* FROM ( select RES.*, row_number() over (${orderByForWindow}) as rn FROM (
+limitAfterNativeQuery=) as RES ) as RES where RES.rn >= #{firstRow} and RES.rn < #{lastRow}
+boolValue=1
diff --git a/modules/flowable-engine/pom.xml b/modules/flowable-engine/pom.xml
index c2415c9be82..2b4f1c1fad3 100755
--- a/modules/flowable-engine/pom.xml
+++ b/modules/flowable-engine/pom.xml
@@ -192,6 +192,11 @@
h2
test
+
+ cn.com.kingbase
+ kingbase8
+ 9.0.1
+
org.mockito
mockito-core
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-mysql.create.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-mysql.create.engine.sql
new file mode 100644
index 00000000000..18ea83f811d
--- /dev/null
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-mysql.create.engine.sql
@@ -0,0 +1,324 @@
+create table ACT_RE_DEPLOYMENT (
+ ID_ varchar(64),
+ NAME_ varchar(255),
+ CATEGORY_ varchar(255),
+ KEY_ varchar(255),
+ TENANT_ID_ varchar(255) default '',
+ DEPLOY_TIME_ timestamp(3) NULL,
+ DERIVED_FROM_ varchar(64),
+ DERIVED_FROM_ROOT_ varchar(64),
+ PARENT_DEPLOYMENT_ID_ varchar(255),
+ ENGINE_VERSION_ varchar(255),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RE_MODEL (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ NAME_ varchar(255),
+ KEY_ varchar(255),
+ CATEGORY_ varchar(255),
+ CREATE_TIME_ timestamp(3) null,
+ LAST_UPDATE_TIME_ timestamp(3) null,
+ VERSION_ integer,
+ META_INFO_ varchar(4000),
+ DEPLOYMENT_ID_ varchar(64),
+ EDITOR_SOURCE_VALUE_ID_ varchar(64),
+ EDITOR_SOURCE_EXTRA_VALUE_ID_ varchar(64),
+ TENANT_ID_ varchar(255) default '',
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_EXECUTION (
+ ID_ varchar(64),
+ REV_ integer,
+ PROC_INST_ID_ varchar(64),
+ BUSINESS_KEY_ varchar(255),
+ PARENT_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ SUPER_EXEC_ varchar(64),
+ ROOT_PROC_INST_ID_ varchar(64),
+ ACT_ID_ varchar(255),
+ IS_ACTIVE_ TINYINT,
+ IS_CONCURRENT_ TINYINT,
+ IS_SCOPE_ TINYINT,
+ IS_EVENT_SCOPE_ TINYINT,
+ IS_MI_ROOT_ TINYINT,
+ SUSPENSION_STATE_ integer,
+ CACHED_ENT_STATE_ integer,
+ TENANT_ID_ varchar(255) default '',
+ NAME_ varchar(255),
+ START_ACT_ID_ varchar(255),
+ START_TIME_ datetime(3),
+ START_USER_ID_ varchar(255),
+ LOCK_TIME_ timestamp(3) NULL,
+ LOCK_OWNER_ varchar(255),
+ IS_COUNT_ENABLED_ TINYINT,
+ EVT_SUBSCR_COUNT_ integer,
+ TASK_COUNT_ integer,
+ JOB_COUNT_ integer,
+ TIMER_JOB_COUNT_ integer,
+ SUSP_JOB_COUNT_ integer,
+ DEADLETTER_JOB_COUNT_ integer,
+ EXTERNAL_WORKER_JOB_COUNT_ integer,
+ VAR_COUNT_ integer,
+ ID_LINK_COUNT_ integer,
+ CALLBACK_ID_ varchar(255),
+ CALLBACK_TYPE_ varchar(255),
+ REFERENCE_ID_ varchar(255),
+ REFERENCE_TYPE_ varchar(255),
+ PROPAGATED_STAGE_INST_ID_ varchar(255),
+ BUSINESS_STATUS_ varchar(255),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RE_PROCDEF (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ CATEGORY_ varchar(255),
+ NAME_ varchar(255),
+ KEY_ varchar(255) not null,
+ VERSION_ integer not null,
+ DEPLOYMENT_ID_ varchar(64),
+ RESOURCE_NAME_ varchar(4000),
+ DGRM_RESOURCE_NAME_ varchar(4000),
+ DESCRIPTION_ varchar(4000),
+ HAS_START_FORM_KEY_ TINYINT,
+ HAS_GRAPHICAL_NOTATION_ TINYINT,
+ SUSPENSION_STATE_ integer,
+ TENANT_ID_ varchar(255) default '',
+ ENGINE_VERSION_ varchar(255),
+ DERIVED_FROM_ varchar(64),
+ DERIVED_FROM_ROOT_ varchar(64),
+ DERIVED_VERSION_ integer not null default 0,
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_EVT_LOG (
+ LOG_NR_ bigint auto_increment,
+ TYPE_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ EXECUTION_ID_ varchar(64),
+ TASK_ID_ varchar(64),
+ TIME_STAMP_ timestamp(3) not null DEFAULT CURRENT_TIMESTAMP(3),
+ USER_ID_ varchar(255),
+ DATA_ LONGBLOB,
+ LOCK_OWNER_ varchar(255),
+ LOCK_TIME_ timestamp(3) null,
+ IS_PROCESSED_ tinyint default 0,
+ primary key (LOG_NR_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_PROCDEF_INFO (
+ ID_ varchar(64) not null,
+ PROC_DEF_ID_ varchar(64) not null,
+ REV_ integer,
+ INFO_JSON_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_ACTINST (
+ ID_ varchar(64) not null,
+ REV_ integer default 1,
+ PROC_DEF_ID_ varchar(64) not null,
+ PROC_INST_ID_ varchar(64) not null,
+ EXECUTION_ID_ varchar(64) not null,
+ ACT_ID_ varchar(255) not null,
+ TASK_ID_ varchar(64),
+ CALL_PROC_INST_ID_ varchar(64),
+ ACT_NAME_ varchar(255),
+ ACT_TYPE_ varchar(255) not null,
+ ASSIGNEE_ varchar(255),
+ START_TIME_ datetime(3) not null,
+ END_TIME_ datetime(3),
+ DURATION_ bigint,
+ TRANSACTION_ORDER_ integer,
+ DELETE_REASON_ varchar(4000),
+ TENANT_ID_ varchar(255) default '',
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create index ACT_IDX_EXEC_BUSKEY on ACT_RU_EXECUTION(BUSINESS_KEY_);
+create index ACT_IDC_EXEC_ROOT on ACT_RU_EXECUTION(ROOT_PROC_INST_ID_);
+create index ACT_IDX_EXEC_REF_ID_ on ACT_RU_EXECUTION(REFERENCE_ID_);
+create index ACT_IDX_VARIABLE_TASK_ID on ACT_RU_VARIABLE(TASK_ID_);
+create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK(PROC_DEF_ID_);
+create index ACT_IDX_INFO_PROCDEF on ACT_PROCDEF_INFO(PROC_DEF_ID_);
+
+create index ACT_IDX_RU_ACTI_START on ACT_RU_ACTINST(START_TIME_);
+create index ACT_IDX_RU_ACTI_END on ACT_RU_ACTINST(END_TIME_);
+create index ACT_IDX_RU_ACTI_PROC on ACT_RU_ACTINST(PROC_INST_ID_);
+create index ACT_IDX_RU_ACTI_PROC_ACT on ACT_RU_ACTINST(PROC_INST_ID_, ACT_ID_);
+create index ACT_IDX_RU_ACTI_EXEC on ACT_RU_ACTINST(EXECUTION_ID_);
+create index ACT_IDX_RU_ACTI_EXEC_ACT on ACT_RU_ACTINST(EXECUTION_ID_, ACT_ID_);
+create index ACT_IDX_RU_ACTI_TASK on ACT_RU_ACTINST(TASK_ID_);
+
+alter table ACT_GE_BYTEARRAY
+ add constraint ACT_FK_BYTEARR_DEPL
+ foreign key (DEPLOYMENT_ID_)
+ references ACT_RE_DEPLOYMENT (ID_);
+
+alter table ACT_RE_PROCDEF
+ add constraint ACT_UNIQ_PROCDEF
+ unique (KEY_,VERSION_, DERIVED_VERSION_, TENANT_ID_);
+
+alter table ACT_RU_EXECUTION
+ add constraint ACT_FK_EXE_PROCINST
+ foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION (ID_) on delete cascade on update cascade;
+
+alter table ACT_RU_EXECUTION
+ add constraint ACT_FK_EXE_PARENT
+ foreign key (PARENT_ID_)
+ references ACT_RU_EXECUTION (ID_) on delete cascade;
+
+alter table ACT_RU_EXECUTION
+ add constraint ACT_FK_EXE_SUPER
+ foreign key (SUPER_EXEC_)
+ references ACT_RU_EXECUTION (ID_) on delete cascade;
+
+alter table ACT_RU_EXECUTION
+ add constraint ACT_FK_EXE_PROCDEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_RU_IDENTITYLINK
+ add constraint ACT_FK_TSKASS_TASK
+ foreign key (TASK_ID_)
+ references ACT_RU_TASK (ID_);
+
+alter table ACT_RU_IDENTITYLINK
+ add constraint ACT_FK_ATHRZ_PROCEDEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF(ID_);
+
+alter table ACT_RU_IDENTITYLINK
+ add constraint ACT_FK_IDL_PROCINST
+ foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_TASK
+ add constraint ACT_FK_TASK_EXE
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_TASK
+ add constraint ACT_FK_TASK_PROCINST
+ foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_TASK
+ add constraint ACT_FK_TASK_PROCDEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_RU_VARIABLE
+ add constraint ACT_FK_VAR_EXE
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_VARIABLE
+ add constraint ACT_FK_VAR_PROCINST
+ foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION(ID_);
+
+alter table ACT_RU_JOB
+ add constraint ACT_FK_JOB_EXECUTION
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_JOB
+ add constraint ACT_FK_JOB_PROCESS_INSTANCE
+ foreign key (PROCESS_INSTANCE_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_JOB
+ add constraint ACT_FK_JOB_PROC_DEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_RU_TIMER_JOB
+ add constraint ACT_FK_TIMER_JOB_EXECUTION
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_TIMER_JOB
+ add constraint ACT_FK_TIMER_JOB_PROCESS_INSTANCE
+ foreign key (PROCESS_INSTANCE_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_TIMER_JOB
+ add constraint ACT_FK_TIMER_JOB_PROC_DEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_RU_SUSPENDED_JOB
+ add constraint ACT_FK_SUSPENDED_JOB_EXECUTION
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_SUSPENDED_JOB
+ add constraint ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE
+ foreign key (PROCESS_INSTANCE_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_SUSPENDED_JOB
+ add constraint ACT_FK_SUSPENDED_JOB_PROC_DEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_RU_DEADLETTER_JOB
+ add constraint ACT_FK_DEADLETTER_JOB_EXECUTION
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_DEADLETTER_JOB
+ add constraint ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE
+ foreign key (PROCESS_INSTANCE_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_DEADLETTER_JOB
+ add constraint ACT_FK_DEADLETTER_JOB_PROC_DEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_RU_EVENT_SUBSCR
+ add constraint ACT_FK_EVENT_EXEC
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION(ID_);
+
+alter table ACT_RE_MODEL
+ add constraint ACT_FK_MODEL_SOURCE
+ foreign key (EDITOR_SOURCE_VALUE_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RE_MODEL
+ add constraint ACT_FK_MODEL_SOURCE_EXTRA
+ foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RE_MODEL
+ add constraint ACT_FK_MODEL_DEPLOYMENT
+ foreign key (DEPLOYMENT_ID_)
+ references ACT_RE_DEPLOYMENT (ID_);
+
+alter table ACT_PROCDEF_INFO
+ add constraint ACT_FK_INFO_JSON_BA
+ foreign key (INFO_JSON_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_PROCDEF_INFO
+ add constraint ACT_FK_INFO_PROCDEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_PROCDEF_INFO
+ add constraint ACT_UNIQ_INFO_PROCDEF
+ unique (PROC_DEF_ID_);
+
+insert into ACT_GE_PROPERTY
+values ('schema.version', '7.1.0.2', 1);
+
+insert into ACT_GE_PROPERTY
+values ('schema.history', 'create(7.1.0.2)', 1);
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-mysql.create.history.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-mysql.create.history.sql
new file mode 100644
index 00000000000..decfa9efd2b
--- /dev/null
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-mysql.create.history.sql
@@ -0,0 +1,113 @@
+create table ACT_HI_PROCINST (
+ ID_ varchar(64) not null,
+ REV_ integer default 1,
+ PROC_INST_ID_ varchar(64) not null,
+ BUSINESS_KEY_ varchar(255),
+ PROC_DEF_ID_ varchar(64) not null,
+ START_TIME_ datetime(3) not null,
+ END_TIME_ datetime(3),
+ DURATION_ bigint,
+ START_USER_ID_ varchar(255),
+ START_ACT_ID_ varchar(255),
+ END_ACT_ID_ varchar(255),
+ SUPER_PROCESS_INSTANCE_ID_ varchar(64),
+ DELETE_REASON_ varchar(4000),
+ TENANT_ID_ varchar(255) default '',
+ NAME_ varchar(255),
+ CALLBACK_ID_ varchar(255),
+ CALLBACK_TYPE_ varchar(255),
+ REFERENCE_ID_ varchar(255),
+ REFERENCE_TYPE_ varchar(255),
+ PROPAGATED_STAGE_INST_ID_ varchar(255),
+ BUSINESS_STATUS_ varchar(255),
+ primary key (ID_),
+ unique (PROC_INST_ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_ACTINST (
+ ID_ varchar(64) not null,
+ REV_ integer default 1,
+ PROC_DEF_ID_ varchar(64) not null,
+ PROC_INST_ID_ varchar(64) not null,
+ EXECUTION_ID_ varchar(64) not null,
+ ACT_ID_ varchar(255) not null,
+ TASK_ID_ varchar(64),
+ CALL_PROC_INST_ID_ varchar(64),
+ ACT_NAME_ varchar(255),
+ ACT_TYPE_ varchar(255) not null,
+ ASSIGNEE_ varchar(255),
+ START_TIME_ datetime(3) not null,
+ END_TIME_ datetime(3),
+ TRANSACTION_ORDER_ integer,
+ DURATION_ bigint,
+ DELETE_REASON_ varchar(4000),
+ TENANT_ID_ varchar(255) default '',
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_DETAIL (
+ ID_ varchar(64) not null,
+ TYPE_ varchar(255) not null,
+ PROC_INST_ID_ varchar(64),
+ EXECUTION_ID_ varchar(64),
+ TASK_ID_ varchar(64),
+ ACT_INST_ID_ varchar(64),
+ NAME_ varchar(255) not null,
+ VAR_TYPE_ varchar(255),
+ REV_ integer,
+ TIME_ datetime(3) not null,
+ BYTEARRAY_ID_ varchar(64),
+ DOUBLE_ double,
+ LONG_ bigint,
+ TEXT_ varchar(4000),
+ TEXT2_ varchar(4000),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_COMMENT (
+ ID_ varchar(64) not null,
+ TYPE_ varchar(255),
+ TIME_ datetime(3) not null,
+ USER_ID_ varchar(255),
+ TASK_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ ACTION_ varchar(255),
+ MESSAGE_ varchar(4000),
+ FULL_MSG_ LONGBLOB,
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_ATTACHMENT (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ USER_ID_ varchar(255),
+ NAME_ varchar(255),
+ DESCRIPTION_ varchar(4000),
+ TYPE_ varchar(255),
+ TASK_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ URL_ varchar(4000),
+ CONTENT_ID_ varchar(64),
+ TIME_ datetime(3),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+
+create index ACT_IDX_HI_PRO_INST_END on ACT_HI_PROCINST(END_TIME_);
+create index ACT_IDX_HI_PRO_I_BUSKEY on ACT_HI_PROCINST(BUSINESS_KEY_);
+create index ACT_IDX_HI_PRO_SUPER_PROCINST on ACT_HI_PROCINST(SUPER_PROCESS_INSTANCE_ID_);
+create index ACT_IDX_HI_ACT_INST_START on ACT_HI_ACTINST(START_TIME_);
+create index ACT_IDX_HI_ACT_INST_END on ACT_HI_ACTINST(END_TIME_);
+create index ACT_IDX_HI_DETAIL_PROC_INST on ACT_HI_DETAIL(PROC_INST_ID_);
+create index ACT_IDX_HI_DETAIL_ACT_INST on ACT_HI_DETAIL(ACT_INST_ID_);
+create index ACT_IDX_HI_DETAIL_TIME on ACT_HI_DETAIL(TIME_);
+create index ACT_IDX_HI_DETAIL_NAME on ACT_HI_DETAIL(NAME_);
+create index ACT_IDX_HI_DETAIL_TASK_ID on ACT_HI_DETAIL(TASK_ID_);
+create index ACT_IDX_HI_PROCVAR_PROC_INST on ACT_HI_VARINST(PROC_INST_ID_);
+create index ACT_IDX_HI_PROCVAR_TASK_ID on ACT_HI_VARINST(TASK_ID_);
+create index ACT_IDX_HI_PROCVAR_EXE on ACT_HI_VARINST(EXECUTION_ID_);
+create index ACT_IDX_HI_ACT_INST_PROCINST on ACT_HI_ACTINST(PROC_INST_ID_, ACT_ID_);
+create index ACT_IDX_HI_ACT_INST_EXEC on ACT_HI_ACTINST(EXECUTION_ID_, ACT_ID_);
+create index ACT_IDX_HI_IDENT_LNK_TASK on ACT_HI_IDENTITYLINK(TASK_ID_);
+create index ACT_IDX_HI_IDENT_LNK_PROCINST on ACT_HI_IDENTITYLINK(PROC_INST_ID_);
+create index ACT_IDX_HI_TASK_INST_PROCINST on ACT_HI_TASKINST(PROC_INST_ID_);
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-oracle.create.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-oracle.create.engine.sql
new file mode 100644
index 00000000000..04e3041c329
--- /dev/null
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-oracle.create.engine.sql
@@ -0,0 +1,353 @@
+create table ACT_RE_DEPLOYMENT (
+ ID_ NVARCHAR2(64),
+ NAME_ NVARCHAR2(255),
+ CATEGORY_ NVARCHAR2(255),
+ KEY_ NVARCHAR2(255),
+ TENANT_ID_ NVARCHAR2(255) DEFAULT '',
+ DEPLOY_TIME_ TIMESTAMP(6),
+ DERIVED_FROM_ NVARCHAR2(64),
+ DERIVED_FROM_ROOT_ NVARCHAR2(64),
+ PARENT_DEPLOYMENT_ID_ NVARCHAR2(255),
+ ENGINE_VERSION_ NVARCHAR2(255),
+ primary key (ID_)
+);
+
+create table ACT_RE_MODEL (
+ ID_ NVARCHAR2(64) not null,
+ REV_ INTEGER,
+ NAME_ NVARCHAR2(255),
+ KEY_ NVARCHAR2(255),
+ CATEGORY_ NVARCHAR2(255),
+ CREATE_TIME_ TIMESTAMP(6),
+ LAST_UPDATE_TIME_ TIMESTAMP(6),
+ VERSION_ INTEGER,
+ META_INFO_ NVARCHAR2(2000),
+ DEPLOYMENT_ID_ NVARCHAR2(64),
+ EDITOR_SOURCE_VALUE_ID_ NVARCHAR2(64),
+ EDITOR_SOURCE_EXTRA_VALUE_ID_ NVARCHAR2(64),
+ TENANT_ID_ NVARCHAR2(255) DEFAULT '',
+ primary key (ID_)
+);
+
+create table ACT_RU_EXECUTION (
+ ID_ NVARCHAR2(64),
+ REV_ INTEGER,
+ PROC_INST_ID_ NVARCHAR2(64),
+ BUSINESS_KEY_ NVARCHAR2(255),
+ PARENT_ID_ NVARCHAR2(64),
+ PROC_DEF_ID_ NVARCHAR2(64),
+ SUPER_EXEC_ NVARCHAR2(64),
+ ROOT_PROC_INST_ID_ NVARCHAR2(64),
+ ACT_ID_ NVARCHAR2(255),
+ IS_ACTIVE_ NUMBER(1,0) CHECK (IS_ACTIVE_ IN (1,0)),
+ IS_CONCURRENT_ NUMBER(1,0) CHECK (IS_CONCURRENT_ IN (1,0)),
+ IS_SCOPE_ NUMBER(1,0) CHECK (IS_SCOPE_ IN (1,0)),
+ IS_EVENT_SCOPE_ NUMBER(1,0) CHECK (IS_EVENT_SCOPE_ IN (1,0)),
+ IS_MI_ROOT_ NUMBER(1,0) CHECK (IS_MI_ROOT_ IN (1,0)),
+ SUSPENSION_STATE_ INTEGER,
+ CACHED_ENT_STATE_ INTEGER,
+ TENANT_ID_ NVARCHAR2(255) DEFAULT '',
+ NAME_ NVARCHAR2(255),
+ START_ACT_ID_ NVARCHAR2(255),
+ START_TIME_ TIMESTAMP(6),
+ START_USER_ID_ NVARCHAR2(255),
+ LOCK_TIME_ TIMESTAMP(6),
+ LOCK_OWNER_ NVARCHAR2(255),
+ IS_COUNT_ENABLED_ NUMBER(1,0) CHECK (IS_COUNT_ENABLED_ IN (1,0)),
+ EVT_SUBSCR_COUNT_ INTEGER,
+ TASK_COUNT_ INTEGER,
+ JOB_COUNT_ INTEGER,
+ TIMER_JOB_COUNT_ INTEGER,
+ SUSP_JOB_COUNT_ INTEGER,
+ DEADLETTER_JOB_COUNT_ INTEGER,
+ EXTERNAL_WORKER_JOB_COUNT_ INTEGER,
+ VAR_COUNT_ INTEGER,
+ ID_LINK_COUNT_ INTEGER,
+ CALLBACK_ID_ NVARCHAR2(255),
+ CALLBACK_TYPE_ NVARCHAR2(255),
+ REFERENCE_ID_ NVARCHAR2(255),
+ REFERENCE_TYPE_ NVARCHAR2(255),
+ PROPAGATED_STAGE_INST_ID_ NVARCHAR2(255),
+ BUSINESS_STATUS_ NVARCHAR2(255),
+ primary key (ID_)
+);
+
+create table ACT_RE_PROCDEF (
+ ID_ NVARCHAR2(64) NOT NULL,
+ REV_ INTEGER,
+ CATEGORY_ NVARCHAR2(255),
+ NAME_ NVARCHAR2(255),
+ KEY_ NVARCHAR2(255) NOT NULL,
+ VERSION_ INTEGER NOT NULL,
+ DEPLOYMENT_ID_ NVARCHAR2(64),
+ RESOURCE_NAME_ NVARCHAR2(2000),
+ DGRM_RESOURCE_NAME_ varchar(4000),
+ DESCRIPTION_ NVARCHAR2(2000),
+ HAS_START_FORM_KEY_ NUMBER(1,0) CHECK (HAS_START_FORM_KEY_ IN (1,0)),
+ HAS_GRAPHICAL_NOTATION_ NUMBER(1,0) CHECK (HAS_GRAPHICAL_NOTATION_ IN (1,0)),
+ SUSPENSION_STATE_ INTEGER,
+ TENANT_ID_ NVARCHAR2(255) DEFAULT '',
+ DERIVED_FROM_ NVARCHAR2(64),
+ DERIVED_FROM_ROOT_ NVARCHAR2(64),
+ DERIVED_VERSION_ INTEGER DEFAULT 0 NOT NULL,
+ ENGINE_VERSION_ NVARCHAR2(255),
+ primary key (ID_)
+);
+create sequence act_evt_log_seq;
+create table ACT_EVT_LOG (
+ LOG_NR_ NUMBER(19) DEFAULT nextval('act_evt_log_seq') PRIMARY KEY,
+ TYPE_ NVARCHAR2(64),
+ PROC_DEF_ID_ NVARCHAR2(64),
+ PROC_INST_ID_ NVARCHAR2(64),
+ EXECUTION_ID_ NVARCHAR2(64),
+ TASK_ID_ NVARCHAR2(64),
+ TIME_STAMP_ TIMESTAMP(6) not null,
+ USER_ID_ NVARCHAR2(255),
+ DATA_ BLOB,
+ LOCK_OWNER_ NVARCHAR2(255),
+ LOCK_TIME_ TIMESTAMP(6) null,
+ IS_PROCESSED_ NUMBER(3) default 0
+);
+
+
+create table ACT_PROCDEF_INFO (
+ ID_ NVARCHAR2(64) not null,
+ PROC_DEF_ID_ NVARCHAR2(64) not null,
+ REV_ integer,
+ INFO_JSON_ID_ NVARCHAR2(64),
+ primary key (ID_)
+);
+
+create table ACT_RU_ACTINST (
+ ID_ NVARCHAR2(64) not null,
+ REV_ INTEGER default 1,
+ PROC_DEF_ID_ NVARCHAR2(64) not null,
+ PROC_INST_ID_ NVARCHAR2(64) not null,
+ EXECUTION_ID_ NVARCHAR2(64) not null,
+ ACT_ID_ NVARCHAR2(255) not null,
+ TASK_ID_ NVARCHAR2(64),
+ CALL_PROC_INST_ID_ NVARCHAR2(64),
+ ACT_NAME_ NVARCHAR2(255),
+ ACT_TYPE_ NVARCHAR2(255) not null,
+ ASSIGNEE_ NVARCHAR2(255),
+ COMPLETED_BY_ NVARCHAR2(255),
+ START_TIME_ TIMESTAMP(6) not null,
+ END_TIME_ TIMESTAMP(6),
+ DURATION_ NUMBER(19,0),
+ TRANSACTION_ORDER_ INTEGER,
+ DELETE_REASON_ NVARCHAR2(2000),
+ TENANT_ID_ NVARCHAR2(255) default '',
+ primary key (ID_)
+);
+
+create index ACT_IDX_EXEC_BUSKEY on ACT_RU_EXECUTION(BUSINESS_KEY_);
+create index ACT_IDX_EXEC_ROOT on ACT_RU_EXECUTION(ROOT_PROC_INST_ID_);
+create index ACT_IDX_EXEC_REF_ID_ on ACT_RU_EXECUTION(REFERENCE_ID_);
+create index ACT_IDX_VARIABLE_TASK_ID on ACT_RU_VARIABLE(TASK_ID_);
+
+create index ACT_IDX_RU_ACTI_START on ACT_RU_ACTINST(START_TIME_);
+create index ACT_IDX_RU_ACTI_END on ACT_RU_ACTINST(END_TIME_);
+create index ACT_IDX_RU_ACTI_PROC on ACT_RU_ACTINST(PROC_INST_ID_);
+create index ACT_IDX_RU_ACTI_PROC_ACT on ACT_RU_ACTINST(PROC_INST_ID_, ACT_ID_);
+create index ACT_IDX_RU_ACTI_EXEC on ACT_RU_ACTINST(EXECUTION_ID_);
+create index ACT_IDX_RU_ACTI_EXEC_ACT on ACT_RU_ACTINST(EXECUTION_ID_, ACT_ID_);
+create index ACT_IDX_RU_ACTI_TASK on ACT_RU_ACTINST(TASK_ID_);
+
+create index ACT_IDX_BYTEAR_DEPL on ACT_GE_BYTEARRAY(DEPLOYMENT_ID_);
+alter table ACT_GE_BYTEARRAY
+ add constraint ACT_FK_BYTEARR_DEPL
+ foreign key (DEPLOYMENT_ID_)
+ references ACT_RE_DEPLOYMENT (ID_);
+
+alter table ACT_RE_PROCDEF
+ add constraint ACT_UNIQ_PROCDEF
+ unique (KEY_,VERSION_, DERIVED_VERSION_, TENANT_ID_);
+
+create index ACT_IDX_EXE_PROCINST on ACT_RU_EXECUTION(PROC_INST_ID_);
+alter table ACT_RU_EXECUTION
+ add constraint ACT_FK_EXE_PROCINST
+ foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+create index ACT_IDX_EXE_PARENT on ACT_RU_EXECUTION(PARENT_ID_);
+alter table ACT_RU_EXECUTION
+ add constraint ACT_FK_EXE_PARENT
+ foreign key (PARENT_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+create index ACT_IDX_EXE_SUPER on ACT_RU_EXECUTION(SUPER_EXEC_);
+alter table ACT_RU_EXECUTION
+ add constraint ACT_FK_EXE_SUPER
+ foreign key (SUPER_EXEC_)
+ references ACT_RU_EXECUTION (ID_);
+
+create index ACT_IDX_EXE_PROCDEF on ACT_RU_EXECUTION(PROC_DEF_ID_);
+alter table ACT_RU_EXECUTION
+ add constraint ACT_FK_EXE_PROCDEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+create index ACT_IDX_TSKASS_TASK on ACT_RU_IDENTITYLINK(TASK_ID_);
+alter table ACT_RU_IDENTITYLINK
+ add constraint ACT_FK_TSKASS_TASK
+ foreign key (TASK_ID_)
+ references ACT_RU_TASK (ID_);
+
+create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK(PROC_DEF_ID_);
+alter table ACT_RU_IDENTITYLINK
+ add constraint ACT_FK_ATHRZ_PROCEDEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+create index ACT_IDX_IDL_PROCINST on ACT_RU_IDENTITYLINK(PROC_INST_ID_);
+alter table ACT_RU_IDENTITYLINK
+ add constraint ACT_FK_IDL_PROCINST
+ foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+create index ACT_IDX_TASK_EXEC on ACT_RU_TASK(EXECUTION_ID_);
+alter table ACT_RU_TASK
+ add constraint ACT_FK_TASK_EXE
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+create index ACT_IDX_TASK_PROCINST on ACT_RU_TASK(PROC_INST_ID_);
+alter table ACT_RU_TASK
+ add constraint ACT_FK_TASK_PROCINST
+ foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+create index ACT_IDX_TASK_PROCDEF on ACT_RU_TASK(PROC_DEF_ID_);
+alter table ACT_RU_TASK
+ add constraint ACT_FK_TASK_PROCDEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+create index ACT_IDX_VAR_EXE on ACT_RU_VARIABLE(EXECUTION_ID_);
+alter table ACT_RU_VARIABLE
+ add constraint ACT_FK_VAR_EXE
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+create index ACT_IDX_VAR_PROCINST on ACT_RU_VARIABLE(PROC_INST_ID_);
+alter table ACT_RU_VARIABLE
+ add constraint ACT_FK_VAR_PROCINST
+ foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION(ID_);
+
+create index ACT_IDX_JOB_EXECUTION_ID on ACT_RU_JOB(EXECUTION_ID_);
+alter table ACT_RU_JOB
+ add constraint ACT_FK_JOB_EXECUTION
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+create index ACT_IDX_JOB_PROC_INST_ID on ACT_RU_JOB(PROCESS_INSTANCE_ID_);
+alter table ACT_RU_JOB
+ add constraint ACT_FK_JOB_PROCESS_INSTANCE
+ foreign key (PROCESS_INSTANCE_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+create index ACT_IDX_JOB_PROC_DEF_ID on ACT_RU_JOB(PROC_DEF_ID_);
+alter table ACT_RU_JOB
+ add constraint ACT_FK_JOB_PROC_DEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+create index ACT_IDX_TJOB_EXECUTION_ID on ACT_RU_TIMER_JOB(EXECUTION_ID_);
+alter table ACT_RU_TIMER_JOB
+ add constraint ACT_FK_TJOB_EXECUTION
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+create index ACT_IDX_TJOB_PROC_INST_ID on ACT_RU_TIMER_JOB(PROCESS_INSTANCE_ID_);
+alter table ACT_RU_TIMER_JOB
+ add constraint ACT_FK_TJOB_PROCESS_INSTANCE
+ foreign key (PROCESS_INSTANCE_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+create index ACT_IDX_TJOB_PROC_DEF_ID on ACT_RU_TIMER_JOB(PROC_DEF_ID_);
+alter table ACT_RU_TIMER_JOB
+ add constraint ACT_FK_TJOB_PROC_DEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+create index ACT_IDX_SJOB_EXECUTION_ID on ACT_RU_SUSPENDED_JOB(EXECUTION_ID_);
+alter table ACT_RU_SUSPENDED_JOB
+ add constraint ACT_FK_SJOB_EXECUTION
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+create index ACT_IDX_SJOB_PROC_INST_ID on ACT_RU_SUSPENDED_JOB(PROCESS_INSTANCE_ID_);
+alter table ACT_RU_SUSPENDED_JOB
+ add constraint ACT_FK_SJOB_PROCESS_INSTANCE
+ foreign key (PROCESS_INSTANCE_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+create index ACT_IDX_SJOB_PROC_DEF_ID on ACT_RU_SUSPENDED_JOB(PROC_DEF_ID_);
+alter table ACT_RU_SUSPENDED_JOB
+ add constraint ACT_FK_SJOB_PROC_DEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+create index ACT_IDX_DJOB_EXECUTION_ID on ACT_RU_DEADLETTER_JOB(EXECUTION_ID_);
+alter table ACT_RU_DEADLETTER_JOB
+ add constraint ACT_FK_DJOB_EXECUTION
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+create index ACT_IDX_DJOB_PROC_INST_ID on ACT_RU_DEADLETTER_JOB(PROCESS_INSTANCE_ID_);
+alter table ACT_RU_DEADLETTER_JOB
+ add constraint ACT_FK_DJOB_PROCESS_INSTANCE
+ foreign key (PROCESS_INSTANCE_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+create index ACT_IDX_DJOB_PROC_DEF_ID on ACT_RU_DEADLETTER_JOB(PROC_DEF_ID_);
+alter table ACT_RU_DEADLETTER_JOB
+ add constraint ACT_FK_DJOB_PROC_DEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_RU_EVENT_SUBSCR
+ add constraint ACT_FK_EVENT_EXEC
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION(ID_);
+
+create index ACT_IDX_MODEL_SOURCE on ACT_RE_MODEL(EDITOR_SOURCE_VALUE_ID_);
+alter table ACT_RE_MODEL
+ add constraint ACT_FK_MODEL_SOURCE
+ foreign key (EDITOR_SOURCE_VALUE_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+create index ACT_IDX_MODEL_SOURCE_EXTRA on ACT_RE_MODEL(EDITOR_SOURCE_EXTRA_VALUE_ID_);
+alter table ACT_RE_MODEL
+ add constraint ACT_FK_MODEL_SOURCE_EXTRA
+ foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+create index ACT_IDX_MODEL_DEPLOYMENT on ACT_RE_MODEL(DEPLOYMENT_ID_);
+alter table ACT_RE_MODEL
+ add constraint ACT_FK_MODEL_DEPLOYMENT
+ foreign key (DEPLOYMENT_ID_)
+ references ACT_RE_DEPLOYMENT (ID_);
+
+create index ACT_IDX_PROCDEF_INFO_JSON on ACT_PROCDEF_INFO(INFO_JSON_ID_);
+alter table ACT_PROCDEF_INFO
+ add constraint ACT_FK_INFO_JSON_BA
+ foreign key (INFO_JSON_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+create index ACT_IDX_PROCDEF_INFO_PROC on ACT_PROCDEF_INFO(PROC_DEF_ID_);
+alter table ACT_PROCDEF_INFO
+ add constraint ACT_FK_INFO_PROCDEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_PROCDEF_INFO
+ add constraint ACT_UNIQ_INFO_PROCDEF
+ unique (PROC_DEF_ID_);
+
+insert into ACT_GE_PROPERTY
+values ('schema.version', '7.1.0.2', 1);
+
+insert into ACT_GE_PROPERTY
+values ('schema.history', 'create(7.1.0.2)', 1);
\ No newline at end of file
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-oracle.create.history.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-oracle.create.history.sql
new file mode 100644
index 00000000000..274a9233fca
--- /dev/null
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-oracle.create.history.sql
@@ -0,0 +1,116 @@
+create table ACT_HI_PROCINST (
+ ID_ NVARCHAR2(64) not null,
+ REV_ INTEGER default 1,
+ PROC_INST_ID_ NVARCHAR2(64) not null,
+ BUSINESS_KEY_ NVARCHAR2(255),
+ PROC_DEF_ID_ NVARCHAR2(64) not null,
+ START_TIME_ TIMESTAMP(6) not null,
+ END_TIME_ TIMESTAMP(6),
+ DURATION_ NUMBER(19,0),
+ START_USER_ID_ NVARCHAR2(255),
+ START_ACT_ID_ NVARCHAR2(255),
+ END_ACT_ID_ NVARCHAR2(255),
+ SUPER_PROCESS_INSTANCE_ID_ NVARCHAR2(64),
+ DELETE_REASON_ NVARCHAR2(2000),
+ TENANT_ID_ NVARCHAR2(255) default '',
+ NAME_ NVARCHAR2(255),
+ CALLBACK_ID_ NVARCHAR2(255),
+ CALLBACK_TYPE_ NVARCHAR2(255),
+ REFERENCE_ID_ NVARCHAR2(255),
+ REFERENCE_TYPE_ NVARCHAR2(255),
+ PROPAGATED_STAGE_INST_ID_ NVARCHAR2(255),
+ BUSINESS_STATUS_ NVARCHAR2(255),
+ END_USER_ID_ NVARCHAR2(255),
+ STATE_ NVARCHAR2(255),
+ primary key (ID_),
+ unique (PROC_INST_ID_)
+);
+
+create table ACT_HI_ACTINST (
+ ID_ NVARCHAR2(64) not null,
+ REV_ INTEGER default 1,
+ PROC_DEF_ID_ NVARCHAR2(64) not null,
+ PROC_INST_ID_ NVARCHAR2(64) not null,
+ EXECUTION_ID_ NVARCHAR2(64) not null,
+ ACT_ID_ NVARCHAR2(255) not null,
+ TASK_ID_ NVARCHAR2(64),
+ CALL_PROC_INST_ID_ NVARCHAR2(64),
+ ACT_NAME_ NVARCHAR2(255),
+ ACT_TYPE_ NVARCHAR2(255) not null,
+ ASSIGNEE_ NVARCHAR2(255),
+ COMPLETED_BY_ NVARCHAR2(255),
+ START_TIME_ TIMESTAMP(6) not null,
+ END_TIME_ TIMESTAMP(6),
+ TRANSACTION_ORDER_ INTEGER,
+ DURATION_ NUMBER(19,0),
+ DELETE_REASON_ NVARCHAR2(2000),
+ TENANT_ID_ NVARCHAR2(255) default '',
+ primary key (ID_)
+);
+
+create table ACT_HI_DETAIL (
+ ID_ NVARCHAR2(64) not null,
+ TYPE_ NVARCHAR2(255) not null,
+ PROC_INST_ID_ NVARCHAR2(64),
+ EXECUTION_ID_ NVARCHAR2(64),
+ TASK_ID_ NVARCHAR2(64),
+ ACT_INST_ID_ NVARCHAR2(64),
+ NAME_ NVARCHAR2(255) not null,
+ VAR_TYPE_ NVARCHAR2(64),
+ REV_ INTEGER,
+ TIME_ TIMESTAMP(6) not null,
+ BYTEARRAY_ID_ NVARCHAR2(64),
+ DOUBLE_ NUMBER(*,10),
+ LONG_ NUMBER(19,0),
+ TEXT_ NVARCHAR2(2000),
+ TEXT2_ NVARCHAR2(2000),
+ primary key (ID_)
+);
+
+create table ACT_HI_COMMENT (
+ ID_ NVARCHAR2(64) not null,
+ TYPE_ NVARCHAR2(255),
+ TIME_ TIMESTAMP(6) not null,
+ USER_ID_ NVARCHAR2(255),
+ TASK_ID_ NVARCHAR2(64),
+ PROC_INST_ID_ NVARCHAR2(64),
+ ACTION_ NVARCHAR2(255),
+ MESSAGE_ NVARCHAR2(2000),
+ FULL_MSG_ BLOB,
+ primary key (ID_)
+);
+
+create table ACT_HI_ATTACHMENT (
+ ID_ NVARCHAR2(64) not null,
+ REV_ INTEGER,
+ USER_ID_ NVARCHAR2(255),
+ NAME_ NVARCHAR2(255),
+ DESCRIPTION_ NVARCHAR2(2000),
+ TYPE_ NVARCHAR2(255),
+ TASK_ID_ NVARCHAR2(64),
+ PROC_INST_ID_ NVARCHAR2(64),
+ URL_ NVARCHAR2(2000),
+ CONTENT_ID_ NVARCHAR2(64),
+ TIME_ TIMESTAMP(6),
+ primary key (ID_)
+);
+
+create index ACT_IDX_HI_PRO_INST_END on ACT_HI_PROCINST(END_TIME_);
+create index ACT_IDX_HI_PRO_I_BUSKEY on ACT_HI_PROCINST(BUSINESS_KEY_);
+create index ACT_IDX_HI_PRO_SUPER_PROCINST on ACT_HI_PROCINST(SUPER_PROCESS_INSTANCE_ID_);
+create index ACT_IDX_HI_ACT_INST_START on ACT_HI_ACTINST(START_TIME_);
+create index ACT_IDX_HI_ACT_INST_END on ACT_HI_ACTINST(END_TIME_);
+create index ACT_IDX_HI_DETAIL_PROC_INST on ACT_HI_DETAIL(PROC_INST_ID_);
+create index ACT_IDX_HI_DETAIL_ACT_INST on ACT_HI_DETAIL(ACT_INST_ID_);
+create index ACT_IDX_HI_DETAIL_TIME on ACT_HI_DETAIL(TIME_);
+create index ACT_IDX_HI_DETAIL_NAME on ACT_HI_DETAIL(NAME_);
+create index ACT_IDX_HI_DETAIL_TASK_ID on ACT_HI_DETAIL(TASK_ID_);
+create index ACT_IDX_HI_PROCVAR_PROC_INST on ACT_HI_VARINST(PROC_INST_ID_);
+create index ACT_IDX_HI_PROCVAR_TASK_ID on ACT_HI_VARINST(TASK_ID_);
+create index ACT_IDX_HI_PROCVAR_EXE on ACT_HI_VARINST(EXECUTION_ID_);
+create index ACT_IDX_HI_IDENT_LNK_TASK on ACT_HI_IDENTITYLINK(TASK_ID_);
+create index ACT_IDX_HI_IDENT_LNK_PROCINST on ACT_HI_IDENTITYLINK(PROC_INST_ID_);
+
+create index ACT_IDX_HI_ACT_INST_PROCINST on ACT_HI_ACTINST(PROC_INST_ID_, ACT_ID_);
+create index ACT_IDX_HI_ACT_INST_EXEC on ACT_HI_ACTINST(EXECUTION_ID_, ACT_ID_);
+create index ACT_IDX_HI_TASK_INST_PROCINST on ACT_HI_TASKINST(PROC_INST_ID_);
\ No newline at end of file
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-sqlserver.create.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-sqlserver.create.engine.sql
new file mode 100644
index 00000000000..09aae096f74
--- /dev/null
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-sqlserver.create.engine.sql
@@ -0,0 +1,346 @@
+create table ACT_RE_DEPLOYMENT (
+ ID_ nvarchar(64),
+ NAME_ nvarchar(255),
+ CATEGORY_ nvarchar(255),
+ KEY_ nvarchar(255),
+ TENANT_ID_ nvarchar(255) default '',
+ DEPLOY_TIME_ datetime,
+ DERIVED_FROM_ nvarchar(64),
+ DERIVED_FROM_ROOT_ nvarchar(64),
+ PARENT_DEPLOYMENT_ID_ nvarchar(255),
+ ENGINE_VERSION_ nvarchar(255),
+ primary key (ID_)
+);
+
+create table ACT_RE_MODEL (
+ ID_ nvarchar(64) not null,
+ REV_ int,
+ NAME_ nvarchar(255),
+ KEY_ nvarchar(255),
+ CATEGORY_ nvarchar(255),
+ CREATE_TIME_ datetime,
+ LAST_UPDATE_TIME_ datetime,
+ VERSION_ int,
+ META_INFO_ nvarchar(4000),
+ DEPLOYMENT_ID_ nvarchar(64),
+ EDITOR_SOURCE_VALUE_ID_ nvarchar(64),
+ EDITOR_SOURCE_EXTRA_VALUE_ID_ nvarchar(64),
+ TENANT_ID_ nvarchar(255) default '',
+ primary key (ID_)
+);
+
+create table ACT_RU_EXECUTION (
+ ID_ nvarchar(64),
+ REV_ int,
+ PROC_INST_ID_ nvarchar(64),
+ BUSINESS_KEY_ nvarchar(255),
+ PARENT_ID_ nvarchar(64),
+ PROC_DEF_ID_ nvarchar(64),
+ SUPER_EXEC_ nvarchar(64),
+ ROOT_PROC_INST_ID_ nvarchar(64),
+ ACT_ID_ nvarchar(255),
+ IS_ACTIVE_ tinyint,
+ IS_CONCURRENT_ tinyint,
+ IS_SCOPE_ tinyint,
+ IS_EVENT_SCOPE_ tinyint,
+ IS_MI_ROOT_ tinyint,
+ SUSPENSION_STATE_ tinyint,
+ CACHED_ENT_STATE_ int,
+ TENANT_ID_ nvarchar(255) default '',
+ NAME_ nvarchar(255),
+ START_ACT_ID_ nvarchar(255),
+ START_TIME_ datetime,
+ START_USER_ID_ nvarchar(255),
+ LOCK_TIME_ datetime,
+ LOCK_OWNER_ nvarchar(255),
+ IS_COUNT_ENABLED_ tinyint,
+ EVT_SUBSCR_COUNT_ int,
+ TASK_COUNT_ int,
+ JOB_COUNT_ int,
+ TIMER_JOB_COUNT_ int,
+ SUSP_JOB_COUNT_ int,
+ DEADLETTER_JOB_COUNT_ int,
+ EXTERNAL_WORKER_JOB_COUNT_ int,
+ VAR_COUNT_ int,
+ ID_LINK_COUNT_ int,
+ CALLBACK_ID_ nvarchar(255),
+ CALLBACK_TYPE_ nvarchar(255),
+ REFERENCE_ID_ nvarchar(255),
+ REFERENCE_TYPE_ nvarchar(255),
+ PROPAGATED_STAGE_INST_ID_ nvarchar(255),
+ BUSINESS_STATUS_ nvarchar(255),
+ primary key (ID_)
+);
+
+create table ACT_RE_PROCDEF (
+ ID_ nvarchar(64) not null,
+ REV_ int,
+ CATEGORY_ nvarchar(255),
+ NAME_ nvarchar(255),
+ KEY_ nvarchar(255) not null,
+ VERSION_ int not null,
+ DEPLOYMENT_ID_ nvarchar(64),
+ RESOURCE_NAME_ nvarchar(4000),
+ DGRM_RESOURCE_NAME_ nvarchar(4000),
+ DESCRIPTION_ nvarchar(4000),
+ HAS_START_FORM_KEY_ tinyint,
+ HAS_GRAPHICAL_NOTATION_ tinyint,
+ SUSPENSION_STATE_ tinyint,
+ TENANT_ID_ nvarchar(255) default '',
+ DERIVED_FROM_ nvarchar(64),
+ DERIVED_FROM_ROOT_ nvarchar(64),
+ DERIVED_VERSION_ int not null default 0,
+ ENGINE_VERSION_ nvarchar(255),
+ primary key (ID_)
+);
+
+create table ACT_EVT_LOG (
+ LOG_NR_ numeric(19,0) IDENTITY(1,1),
+ TYPE_ nvarchar(64),
+ PROC_DEF_ID_ nvarchar(64),
+ PROC_INST_ID_ nvarchar(64),
+ EXECUTION_ID_ nvarchar(64),
+ TASK_ID_ nvarchar(64),
+ TIME_STAMP_ datetime not null,
+ USER_ID_ nvarchar(255),
+ DATA_ varbinary(max),
+ LOCK_OWNER_ nvarchar(255),
+ LOCK_TIME_ datetime null,
+ IS_PROCESSED_ tinyint default 0,
+ primary key (LOG_NR_)
+);
+
+create table ACT_PROCDEF_INFO (
+ ID_ nvarchar(64) not null,
+ PROC_DEF_ID_ nvarchar(64) not null,
+ REV_ int,
+ INFO_JSON_ID_ nvarchar(64),
+ primary key (ID_)
+);
+
+create table ACT_RU_ACTINST (
+ ID_ nvarchar(64) not null,
+ REV_ int default 1,
+ PROC_DEF_ID_ nvarchar(64) not null,
+ PROC_INST_ID_ nvarchar(64) not null,
+ EXECUTION_ID_ nvarchar(64) not null,
+ ACT_ID_ nvarchar(255) not null,
+ TASK_ID_ nvarchar(64),
+ CALL_PROC_INST_ID_ nvarchar(64),
+ ACT_NAME_ nvarchar(255),
+ ACT_TYPE_ nvarchar(255) not null,
+ ASSIGNEE_ nvarchar(255),
+ COMPLETED_BY_ nvarchar(255),
+ START_TIME_ datetime not null,
+ END_TIME_ datetime,
+ DURATION_ numeric(19,0),
+ TRANSACTION_ORDER_ int,
+ DELETE_REASON_ nvarchar(4000),
+ TENANT_ID_ nvarchar(255) default '',
+ primary key (ID_)
+);
+
+create index ACT_IDX_EXEC_BUSKEY on ACT_RU_EXECUTION(BUSINESS_KEY_);
+create index ACT_IDX_EXEC_ROOT on ACT_RU_EXECUTION(ROOT_PROC_INST_ID_);
+create index ACT_IDX_EXEC_REF_ID_ on ACT_RU_EXECUTION(REFERENCE_ID_);
+create index ACT_IDX_VARIABLE_TASK_ID on ACT_RU_VARIABLE(TASK_ID_);
+create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK(PROC_DEF_ID_);
+create index ACT_IDX_EXECUTION_PROC on ACT_RU_EXECUTION(PROC_DEF_ID_);
+create index ACT_IDX_EXECUTION_PARENT on ACT_RU_EXECUTION(PARENT_ID_);
+create index ACT_IDX_EXECUTION_SUPER on ACT_RU_EXECUTION(SUPER_EXEC_);
+create index ACT_IDX_EXECUTION_IDANDREV on ACT_RU_EXECUTION(ID_, REV_);
+create index ACT_IDX_VARIABLE_EXEC on ACT_RU_VARIABLE(EXECUTION_ID_);
+create index ACT_IDX_VARIABLE_PROCINST on ACT_RU_VARIABLE(PROC_INST_ID_);
+create index ACT_IDX_IDENT_LNK_TASK on ACT_RU_IDENTITYLINK(TASK_ID_);
+create index ACT_IDX_IDENT_LNK_PROCINST on ACT_RU_IDENTITYLINK(PROC_INST_ID_);
+create index ACT_IDX_TASK_EXEC on ACT_RU_TASK(EXECUTION_ID_);
+create index ACT_IDX_TASK_PROCINST on ACT_RU_TASK(PROC_INST_ID_);
+create index ACT_IDX_EXEC_PROC_INST_ID on ACT_RU_EXECUTION(PROC_INST_ID_);
+create index ACT_IDX_TASK_PROC_DEF_ID on ACT_RU_TASK(PROC_DEF_ID_);
+create index ACT_IDX_JOB_EXECUTION_ID on ACT_RU_JOB(EXECUTION_ID_);
+create index ACT_IDX_JOB_PROCESS_INSTANCE_ID on ACT_RU_JOB(PROCESS_INSTANCE_ID_);
+create index ACT_IDX_JOB_PROC_DEF_ID on ACT_RU_JOB(PROC_DEF_ID_);
+create index ACT_IDX_TIMER_JOB_EXECUTION_ID on ACT_RU_TIMER_JOB(EXECUTION_ID_);
+create index ACT_IDX_TIMER_JOB_PROCESS_INSTANCE_ID on ACT_RU_TIMER_JOB(PROCESS_INSTANCE_ID_);
+create index ACT_IDX_TIMER_JOB_PROC_DEF_ID on ACT_RU_TIMER_JOB(PROC_DEF_ID_);
+create index ACT_IDX_SUSPENDED_JOB_EXECUTION_ID on ACT_RU_SUSPENDED_JOB(EXECUTION_ID_);
+create index ACT_IDX_SUSPENDED_JOB_PROCESS_INSTANCE_ID on ACT_RU_SUSPENDED_JOB(PROCESS_INSTANCE_ID_);
+create index ACT_IDX_SUSPENDED_JOB_PROC_DEF_ID on ACT_RU_SUSPENDED_JOB(PROC_DEF_ID_);
+create index ACT_IDX_DEADLETTER_JOB_EXECUTION_ID on ACT_RU_DEADLETTER_JOB(EXECUTION_ID_);
+create index ACT_IDX_DEADLETTER_JOB_PROCESS_INSTANCE_ID on ACT_RU_DEADLETTER_JOB(PROCESS_INSTANCE_ID_);
+create index ACT_IDX_DEADLETTER_JOB_PROC_DEF_ID on ACT_RU_DEADLETTER_JOB(PROC_DEF_ID_);
+create index ACT_IDX_INFO_PROCDEF on ACT_PROCDEF_INFO(PROC_DEF_ID_);
+
+create index ACT_IDX_BYTEAR_DEPL on ACT_GE_BYTEARRAY(DEPLOYMENT_ID_);
+
+create index ACT_IDX_RU_ACTI_START on ACT_RU_ACTINST(START_TIME_);
+create index ACT_IDX_RU_ACTI_END on ACT_RU_ACTINST(END_TIME_);
+create index ACT_IDX_RU_ACTI_PROC on ACT_RU_ACTINST(PROC_INST_ID_);
+create index ACT_IDX_RU_ACTI_PROC_ACT on ACT_RU_ACTINST(PROC_INST_ID_, ACT_ID_);
+create index ACT_IDX_RU_ACTI_EXEC on ACT_RU_ACTINST(EXECUTION_ID_);
+create index ACT_IDX_RU_ACTI_EXEC_ACT on ACT_RU_ACTINST(EXECUTION_ID_, ACT_ID_);
+create index ACT_IDX_RU_ACTI_TASK on ACT_RU_ACTINST(TASK_ID_);
+
+alter table ACT_GE_BYTEARRAY
+ add constraint ACT_FK_BYTEARR_DEPL
+ foreign key (DEPLOYMENT_ID_)
+ references ACT_RE_DEPLOYMENT (ID_);
+
+alter table ACT_RE_PROCDEF
+ add constraint ACT_UNIQ_PROCDEF
+ unique (KEY_,VERSION_, DERIVED_VERSION_, TENANT_ID_);
+
+alter table ACT_RU_EXECUTION
+ add constraint ACT_FK_EXE_PARENT
+ foreign key (PARENT_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_EXECUTION
+ add constraint ACT_FK_EXE_SUPER
+ foreign key (SUPER_EXEC_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_EXECUTION
+ add constraint ACT_FK_EXE_PROCDEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_RU_IDENTITYLINK
+ add constraint ACT_FK_TSKASS_TASK
+ foreign key (TASK_ID_)
+ references ACT_RU_TASK (ID_);
+
+alter table ACT_RU_IDENTITYLINK
+ add constraint ACT_FK_ATHRZ_PROCEDEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_RU_IDENTITYLINK
+ add constraint ACT_FK_IDL_PROCINST
+ foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_TASK
+ add constraint ACT_FK_TASK_EXE
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_TASK
+ add constraint ACT_FK_TASK_PROCINST
+ foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_TASK
+ add constraint ACT_FK_TASK_PROCDEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_RU_VARIABLE
+ add constraint ACT_FK_VAR_EXE
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_VARIABLE
+ add constraint ACT_FK_VAR_PROCINST
+ foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION(ID_);
+
+alter table ACT_RU_JOB
+ add constraint ACT_FK_JOB_EXECUTION
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_JOB
+ add constraint ACT_FK_JOB_PROCESS_INSTANCE
+ foreign key (PROCESS_INSTANCE_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_JOB
+ add constraint ACT_FK_JOB_PROC_DEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_RU_TIMER_JOB
+ add constraint ACT_FK_TIMER_JOB_EXECUTION
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_TIMER_JOB
+ add constraint ACT_FK_TIMER_JOB_PROCESS_INSTANCE
+ foreign key (PROCESS_INSTANCE_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_TIMER_JOB
+ add constraint ACT_FK_TIMER_JOB_PROC_DEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_RU_SUSPENDED_JOB
+ add constraint ACT_FK_SUSPENDED_JOB_EXECUTION
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_SUSPENDED_JOB
+ add constraint ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE
+ foreign key (PROCESS_INSTANCE_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_SUSPENDED_JOB
+ add constraint ACT_FK_SUSPENDED_JOB_PROC_DEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_RU_DEADLETTER_JOB
+ add constraint ACT_FK_DEADLETTER_JOB_EXECUTION
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_DEADLETTER_JOB
+ add constraint ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE
+ foreign key (PROCESS_INSTANCE_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_DEADLETTER_JOB
+ add constraint ACT_FK_DEADLETTER_JOB_PROC_DEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_RU_EVENT_SUBSCR
+ add constraint ACT_FK_EVENT_EXEC
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION(ID_);
+
+alter table ACT_RE_MODEL
+ add constraint ACT_FK_MODEL_SOURCE
+ foreign key (EDITOR_SOURCE_VALUE_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RE_MODEL
+ add constraint ACT_FK_MODEL_SOURCE_EXTRA
+ foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RE_MODEL
+ add constraint ACT_FK_MODEL_DEPLOYMENT
+ foreign key (DEPLOYMENT_ID_)
+ references ACT_RE_DEPLOYMENT (ID_);
+
+alter table ACT_PROCDEF_INFO
+ add constraint ACT_FK_INFO_JSON_BA
+ foreign key (INFO_JSON_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_PROCDEF_INFO
+ add constraint ACT_FK_INFO_PROCDEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_PROCDEF_INFO
+ add constraint ACT_UNIQ_INFO_PROCDEF
+ unique (PROC_DEF_ID_);
+
+insert into ACT_GE_PROPERTY
+values ('schema.version', '7.1.0.2', 1);
+
+insert into ACT_GE_PROPERTY
+values ('schema.history', 'create(7.1.0.2)', 1);
\ No newline at end of file
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-sqlserver.create.history.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-sqlserver.create.history.sql
new file mode 100644
index 00000000000..e2f33bedae2
--- /dev/null
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.kingbase-sqlserver.create.history.sql
@@ -0,0 +1,116 @@
+create table ACT_HI_PROCINST (
+ ID_ nvarchar(64) not null,
+ REV_ int default 1,
+ PROC_INST_ID_ nvarchar(64) not null,
+ BUSINESS_KEY_ nvarchar(255),
+ PROC_DEF_ID_ nvarchar(64) not null,
+ START_TIME_ datetime not null,
+ END_TIME_ datetime,
+ DURATION_ numeric(19,0),
+ START_USER_ID_ nvarchar(255),
+ START_ACT_ID_ nvarchar(255),
+ END_ACT_ID_ nvarchar(255),
+ SUPER_PROCESS_INSTANCE_ID_ nvarchar(64),
+ DELETE_REASON_ nvarchar(4000),
+ TENANT_ID_ nvarchar(255) default '',
+ NAME_ nvarchar(255),
+ CALLBACK_ID_ nvarchar(255),
+ CALLBACK_TYPE_ nvarchar(255),
+ REFERENCE_ID_ nvarchar(255),
+ REFERENCE_TYPE_ nvarchar(255),
+ PROPAGATED_STAGE_INST_ID_ nvarchar(255),
+ BUSINESS_STATUS_ nvarchar(255),
+ END_USER_ID_ nvarchar(255),
+ STATE_ nvarchar(255),
+ primary key (ID_),
+ unique (PROC_INST_ID_)
+);
+
+create table ACT_HI_ACTINST (
+ ID_ nvarchar(64) not null,
+ REV_ int default 1,
+ PROC_DEF_ID_ nvarchar(64) not null,
+ PROC_INST_ID_ nvarchar(64) not null,
+ EXECUTION_ID_ nvarchar(64) not null,
+ ACT_ID_ nvarchar(255) not null,
+ TASK_ID_ nvarchar(64),
+ CALL_PROC_INST_ID_ nvarchar(64),
+ ACT_NAME_ nvarchar(255),
+ ACT_TYPE_ nvarchar(255) not null,
+ ASSIGNEE_ nvarchar(255),
+ COMPLETED_BY_ nvarchar(255),
+ START_TIME_ datetime not null,
+ END_TIME_ datetime,
+ TRANSACTION_ORDER_ int,
+ DURATION_ numeric(19,0),
+ DELETE_REASON_ nvarchar(4000),
+ TENANT_ID_ nvarchar(255) default '',
+ primary key (ID_)
+);
+
+create table ACT_HI_DETAIL (
+ ID_ nvarchar(64) not null,
+ TYPE_ nvarchar(255) not null,
+ PROC_INST_ID_ nvarchar(64),
+ EXECUTION_ID_ nvarchar(64),
+ TASK_ID_ nvarchar(64),
+ ACT_INST_ID_ nvarchar(64),
+ NAME_ nvarchar(255) not null,
+ VAR_TYPE_ nvarchar(255),
+ REV_ int,
+ TIME_ datetime not null,
+ BYTEARRAY_ID_ nvarchar(64),
+ DOUBLE_ double precision,
+ LONG_ numeric(19,0),
+ TEXT_ nvarchar(4000),
+ TEXT2_ nvarchar(4000),
+ primary key (ID_)
+);
+
+create table ACT_HI_COMMENT (
+ ID_ nvarchar(64) not null,
+ TYPE_ nvarchar(255),
+ TIME_ datetime not null,
+ USER_ID_ nvarchar(255),
+ TASK_ID_ nvarchar(64),
+ PROC_INST_ID_ nvarchar(64),
+ ACTION_ nvarchar(255),
+ MESSAGE_ nvarchar(4000),
+ FULL_MSG_ varbinary(max),
+ primary key (ID_)
+);
+
+create table ACT_HI_ATTACHMENT (
+ ID_ nvarchar(64) not null,
+ REV_ integer,
+ USER_ID_ nvarchar(255),
+ NAME_ nvarchar(255),
+ DESCRIPTION_ nvarchar(4000),
+ TYPE_ nvarchar(255),
+ TASK_ID_ nvarchar(64),
+ PROC_INST_ID_ nvarchar(64),
+ URL_ nvarchar(4000),
+ CONTENT_ID_ nvarchar(64),
+ TIME_ datetime,
+ primary key (ID_)
+);
+
+
+create index ACT_IDX_HI_PRO_INST_END on ACT_HI_PROCINST(END_TIME_);
+create index ACT_IDX_HI_PRO_I_BUSKEY on ACT_HI_PROCINST(BUSINESS_KEY_);
+create index ACT_IDX_HI_PRO_SUPER_PROCINST on ACT_HI_PROCINST(SUPER_PROCESS_INSTANCE_ID_);
+create index ACT_IDX_HI_ACT_INST_START on ACT_HI_ACTINST(START_TIME_);
+create index ACT_IDX_HI_ACT_INST_END on ACT_HI_ACTINST(END_TIME_);
+create index ACT_IDX_HI_DETAIL_PROC_INST on ACT_HI_DETAIL(PROC_INST_ID_);
+create index ACT_IDX_HI_DETAIL_ACT_INST on ACT_HI_DETAIL(ACT_INST_ID_);
+create index ACT_IDX_HI_DETAIL_TIME on ACT_HI_DETAIL(TIME_);
+create index ACT_IDX_HI_DETAIL_NAME on ACT_HI_DETAIL(NAME_);
+create index ACT_IDX_HI_DETAIL_TASK_ID on ACT_HI_DETAIL(TASK_ID_);
+create index ACT_IDX_HI_PROCVAR_PROC_INST on ACT_HI_VARINST(PROC_INST_ID_);
+create index ACT_IDX_HI_PROCVAR_TASK_ID on ACT_HI_VARINST(TASK_ID_);
+create index ACT_IDX_HI_PROCVAR_EXE on ACT_HI_VARINST(EXECUTION_ID_);
+create index ACT_IDX_HI_ACT_INST_PROCINST on ACT_HI_ACTINST(PROC_INST_ID_, ACT_ID_);
+create index ACT_IDX_HI_ACT_INST_EXEC on ACT_HI_ACTINST(EXECUTION_ID_, ACT_ID_);
+create index ACT_IDX_HI_IDENT_LNK_TASK on ACT_HI_IDENTITYLINK(TASK_ID_);
+create index ACT_IDX_HI_IDENT_LNK_PROCINST on ACT_HI_IDENTITYLINK(PROC_INST_ID_);
+create index ACT_IDX_HI_TASK_INST_PROCINST on ACT_HI_TASKINST(PROC_INST_ID_);
\ No newline at end of file
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-mysql.drop.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-mysql.drop.engine.sql
new file mode 100644
index 00000000000..e2c702eca07
--- /dev/null
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-mysql.drop.engine.sql
@@ -0,0 +1,7 @@
+drop table if exists ACT_RU_ACTINST cascade;
+drop table if exists ACT_RE_DEPLOYMENT cascade;
+drop table if exists ACT_RE_MODEL cascade;
+drop table if exists ACT_RE_PROCDEF cascade;
+drop table if exists ACT_RU_EXECUTION cascade;
+drop table if exists ACT_EVT_LOG cascade;
+drop table if exists ACT_PROCDEF_INFO cascade;
\ No newline at end of file
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-mysql.drop.history.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-mysql.drop.history.sql
new file mode 100644
index 00000000000..3a14dceefd8
--- /dev/null
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-mysql.drop.history.sql
@@ -0,0 +1,5 @@
+drop table if exists ACT_HI_PROCINST cascade;
+drop table if exists ACT_HI_ACTINST cascade;
+drop table if exists ACT_HI_DETAIL cascade;
+drop table if exists ACT_HI_COMMENT cascade;
+drop table if exists ACT_HI_ATTACHMENT cascade;
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-oracle.drop.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-oracle.drop.engine.sql
new file mode 100644
index 00000000000..2269ad09be1
--- /dev/null
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-oracle.drop.engine.sql
@@ -0,0 +1,8 @@
+DROP SEQUENCE IF EXISTS act_evt_log_seq CASCADE;
+drop table if exists ACT_RU_ACTINST cascade;
+drop table if exists ACT_RE_DEPLOYMENT cascade;
+drop table if exists ACT_RE_MODEL cascade;
+drop table if exists ACT_RE_PROCDEF cascade;
+drop table if exists ACT_RU_EXECUTION cascade;
+drop table if exists ACT_EVT_LOG cascade;
+drop table if exists ACT_PROCDEF_INFO cascade;
\ No newline at end of file
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-oracle.drop.history.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-oracle.drop.history.sql
new file mode 100644
index 00000000000..3bed03ec015
--- /dev/null
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-oracle.drop.history.sql
@@ -0,0 +1,5 @@
+drop table if exists ACT_HI_PROCINST cascade;
+drop table if exists ACT_HI_ACTINST cascade;
+drop table if exists ACT_HI_DETAIL cascade;
+drop table if exists ACT_HI_COMMENT cascade;
+drop table if exists ACT_HI_ATTACHMENT cascade;
\ No newline at end of file
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-sqlserver.drop.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-sqlserver.drop.engine.sql
new file mode 100644
index 00000000000..e2c702eca07
--- /dev/null
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-sqlserver.drop.engine.sql
@@ -0,0 +1,7 @@
+drop table if exists ACT_RU_ACTINST cascade;
+drop table if exists ACT_RE_DEPLOYMENT cascade;
+drop table if exists ACT_RE_MODEL cascade;
+drop table if exists ACT_RE_PROCDEF cascade;
+drop table if exists ACT_RU_EXECUTION cascade;
+drop table if exists ACT_EVT_LOG cascade;
+drop table if exists ACT_PROCDEF_INFO cascade;
\ No newline at end of file
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-sqlserver.drop.history.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-sqlserver.drop.history.sql
new file mode 100644
index 00000000000..3bed03ec015
--- /dev/null
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/drop/flowable.kingbase-sqlserver.drop.history.sql
@@ -0,0 +1,5 @@
+drop table if exists ACT_HI_PROCINST cascade;
+drop table if exists ACT_HI_ACTINST cascade;
+drop table if exists ACT_HI_DETAIL cascade;
+drop table if exists ACT_HI_COMMENT cascade;
+drop table if exists ACT_HI_ATTACHMENT cascade;
\ No newline at end of file
diff --git a/modules/flowable-engine/src/test/resources/flowable.cfg.xml b/modules/flowable-engine/src/test/resources/flowable.cfg.xml
index 51a8c9db30d..0c98ce2d10c 100644
--- a/modules/flowable-engine/src/test/resources/flowable.cfg.xml
+++ b/modules/flowable-engine/src/test/resources/flowable.cfg.xml
@@ -8,13 +8,20 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/flowable-event-registry/pom.xml b/modules/flowable-event-registry/pom.xml
index 0cc69b5415d..af75df09ea2 100644
--- a/modules/flowable-event-registry/pom.xml
+++ b/modules/flowable-event-registry/pom.xml
@@ -75,6 +75,11 @@
h2
test
+
+ cn.com.kingbase
+ kingbase8
+ 9.0.1
+
org.postgresql
diff --git a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.kingbase-mysql.create.eventregistry.sql b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.kingbase-mysql.create.eventregistry.sql
new file mode 100644
index 00000000000..567240f7496
--- /dev/null
+++ b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.kingbase-mysql.create.eventregistry.sql
@@ -0,0 +1,18 @@
+CREATE TABLE FLW_EVENT_DEPLOYMENT (ID_ VARCHAR(255) NOT NULL, NAME_ VARCHAR(255) NULL, CATEGORY_ VARCHAR(255) NULL, DEPLOY_TIME_ datetime(3) NULL, TENANT_ID_ VARCHAR(255) NULL, PARENT_DEPLOYMENT_ID_ VARCHAR(255) NULL, CONSTRAINT PK_FLW_EVENT_DEPLOYMENT PRIMARY KEY (ID_));
+
+CREATE TABLE FLW_EVENT_RESOURCE (ID_ VARCHAR(255) NOT NULL, NAME_ VARCHAR(255) NULL, DEPLOYMENT_ID_ VARCHAR(255) NULL, RESOURCE_BYTES_ LONGBLOB NULL, CONSTRAINT PK_FLW_EVENT_RESOURCE PRIMARY KEY (ID_));
+
+CREATE TABLE FLW_EVENT_DEFINITION (ID_ VARCHAR(255) NOT NULL, NAME_ VARCHAR(255) NULL, VERSION_ INT NULL, KEY_ VARCHAR(255) NULL, CATEGORY_ VARCHAR(255) NULL, DEPLOYMENT_ID_ VARCHAR(255) NULL, TENANT_ID_ VARCHAR(255) NULL, RESOURCE_NAME_ VARCHAR(255) NULL, DESCRIPTION_ VARCHAR(255) NULL, CONSTRAINT PK_FLW_EVENT_DEFINITION PRIMARY KEY (ID_));
+
+CREATE UNIQUE INDEX ACT_IDX_EVENT_DEF_UNIQ ON FLW_EVENT_DEFINITION(KEY_, VERSION_, TENANT_ID_);
+
+CREATE TABLE FLW_CHANNEL_DEFINITION (ID_ VARCHAR(255) NOT NULL, NAME_ VARCHAR(255) NULL, VERSION_ INT NULL, KEY_ VARCHAR(255) NULL, CATEGORY_ VARCHAR(255) NULL, DEPLOYMENT_ID_ VARCHAR(255) NULL, CREATE_TIME_ datetime(3) NULL, TENANT_ID_ VARCHAR(255) NULL, RESOURCE_NAME_ VARCHAR(255) NULL, DESCRIPTION_ VARCHAR(255) NULL, CONSTRAINT PK_FLW_CHANNEL_DEFINITION PRIMARY KEY (ID_));
+
+CREATE UNIQUE INDEX ACT_IDX_CHANNEL_DEF_UNIQ ON FLW_CHANNEL_DEFINITION(KEY_, VERSION_, TENANT_ID_);
+
+ALTER TABLE FLW_CHANNEL_DEFINITION ADD TYPE_ VARCHAR(255) NULL;
+
+ALTER TABLE FLW_CHANNEL_DEFINITION ADD IMPLEMENTATION_ VARCHAR(255) NULL;
+
+insert into ACT_GE_PROPERTY
+values ('eventregistry.schema.version', '7.1.0.2', 1);
diff --git a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.kingbase-oracle.create.eventregistry.sql b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.kingbase-oracle.create.eventregistry.sql
new file mode 100644
index 00000000000..f699ffd037d
--- /dev/null
+++ b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.kingbase-oracle.create.eventregistry.sql
@@ -0,0 +1,19 @@
+CREATE TABLE FLW_EVENT_DEPLOYMENT (ID_ VARCHAR2(255) NOT NULL, NAME_ VARCHAR2(255), CATEGORY_ VARCHAR2(255), DEPLOY_TIME_ TIMESTAMP(3), TENANT_ID_ VARCHAR2(255), PARENT_DEPLOYMENT_ID_ VARCHAR2(255), CONSTRAINT PK_FLW_EVENT_DEPLOYMENT PRIMARY KEY (ID_));
+
+CREATE TABLE FLW_EVENT_RESOURCE (ID_ VARCHAR2(255) NOT NULL, NAME_ VARCHAR2(255), DEPLOYMENT_ID_ VARCHAR2(255), RESOURCE_BYTES_ BLOB, CONSTRAINT PK_FLW_EVENT_RESOURCE PRIMARY KEY (ID_));
+
+CREATE TABLE FLW_EVENT_DEFINITION (ID_ VARCHAR2(255) NOT NULL, NAME_ VARCHAR2(255), VERSION_ INTEGER, KEY_ VARCHAR2(255), CATEGORY_ VARCHAR2(255), DEPLOYMENT_ID_ VARCHAR2(255), TENANT_ID_ VARCHAR2(255), RESOURCE_NAME_ VARCHAR2(255), DESCRIPTION_ VARCHAR2(255), CONSTRAINT PK_FLW_EVENT_DEFINITION PRIMARY KEY (ID_));
+
+ALTER TABLE FLW_EVENT_RESOURCE
+ ADD CONSTRAINT FLW_FK_EVENT_RSRC_DPL FOREIGN KEY (DEPLOYMENT_ID_) REFERENCES FLW_EVENT_DEPLOYMENT (ID_);
+
+CREATE INDEX FLW_IDX_EVENT_RSRC_DPL ON FLW_EVENT_RESOURCE (DEPLOYMENT_ID_);
+
+CREATE UNIQUE INDEX ACT_IDX_EVENT_DEF_UNIQ ON FLW_EVENT_DEFINITION(KEY_, VERSION_, TENANT_ID_);
+
+CREATE TABLE FLW_CHANNEL_DEFINITION (ID_ VARCHAR2(255) NOT NULL, NAME_ VARCHAR2(255), VERSION_ INTEGER, KEY_ VARCHAR2(255), CATEGORY_ VARCHAR2(255), TYPE_ VARCHAR2(255), IMPLEMENTATION_ VARCHAR2(255), DEPLOYMENT_ID_ VARCHAR2(255), CREATE_TIME_ TIMESTAMP(3), TENANT_ID_ VARCHAR2(255), RESOURCE_NAME_ VARCHAR2(255), DESCRIPTION_ VARCHAR2(255), CONSTRAINT PK_FLW_CHANNEL_DEFINITION PRIMARY KEY (ID_));
+
+CREATE UNIQUE INDEX ACT_IDX_CHANNEL_DEF_UNIQ ON FLW_CHANNEL_DEFINITION(KEY_, VERSION_, TENANT_ID_);
+
+insert into ACT_GE_PROPERTY
+values ('eventregistry.schema.version', '7.1.0.2', 1);
\ No newline at end of file
diff --git a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.kingbase-sqlserver.create.eventregistry.sql b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.kingbase-sqlserver.create.eventregistry.sql
new file mode 100644
index 00000000000..47540c1ea5f
--- /dev/null
+++ b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.kingbase-sqlserver.create.eventregistry.sql
@@ -0,0 +1,19 @@
+CREATE TABLE FLW_EVENT_DEPLOYMENT (ID_ varchar(255) NOT NULL, NAME_ nvarchar(255), CATEGORY_ varchar(255), DEPLOY_TIME_ datetime, TENANT_ID_ varchar(255), PARENT_DEPLOYMENT_ID_ varchar(255), CONSTRAINT PK_FLW_EVENT_DEPLOYMENT PRIMARY KEY (ID_));
+
+CREATE TABLE FLW_EVENT_RESOURCE (ID_ varchar(255) NOT NULL, NAME_ nvarchar(255), DEPLOYMENT_ID_ varchar(255), RESOURCE_BYTES_ varbinary(MAX), CONSTRAINT PK_FLW_EVENT_RESOURCE PRIMARY KEY (ID_));
+
+CREATE TABLE FLW_EVENT_DEFINITION (ID_ varchar(255) NOT NULL, NAME_ nvarchar(255), VERSION_ int, KEY_ varchar(255), CATEGORY_ nvarchar(255), DEPLOYMENT_ID_ varchar(255), TENANT_ID_ varchar(255), RESOURCE_NAME_ nvarchar(255), DESCRIPTION_ nvarchar(255), CONSTRAINT PK_FLW_EVENT_DEFINITION PRIMARY KEY (ID_));
+
+ALTER TABLE FLW_EVENT_RESOURCE
+ ADD CONSTRAINT FLW_FK_EVENT_RSRC_DPL FOREIGN KEY (DEPLOYMENT_ID_) REFERENCES FLW_EVENT_DEPLOYMENT (ID_);
+
+CREATE NONCLUSTERED INDEX FLW_IDX_EVENT_RSRC_DPL ON FLW_EVENT_RESOURCE(DEPLOYMENT_ID_);
+
+CREATE UNIQUE NONCLUSTERED INDEX ACT_IDX_EVENT_DEF_UNIQ ON FLW_EVENT_DEFINITION(KEY_, VERSION_, TENANT_ID_);
+
+CREATE TABLE FLW_CHANNEL_DEFINITION (ID_ varchar(255) NOT NULL, NAME_ nvarchar(255), VERSION_ int, KEY_ varchar(255), CATEGORY_ nvarchar(255), TYPE_ varchar(255), IMPLEMENTATION_ varchar(255), DEPLOYMENT_ID_ varchar(255), CREATE_TIME_ datetime, TENANT_ID_ varchar(255), RESOURCE_NAME_ nvarchar(255), DESCRIPTION_ nvarchar(255), CONSTRAINT PK_FLW_CHANNEL_DEFINITION PRIMARY KEY (ID_));
+
+CREATE UNIQUE NONCLUSTERED INDEX ACT_IDX_CHANNEL_DEF_UNIQ ON FLW_CHANNEL_DEFINITION(KEY_, VERSION_, TENANT_ID_);
+
+insert into ACT_GE_PROPERTY
+values ('eventregistry.schema.version', '7.1.0.2', 1);
\ No newline at end of file
diff --git a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/drop/flowable.kingbase-mysql.drop.eventregistry.sql b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/drop/flowable.kingbase-mysql.drop.eventregistry.sql
new file mode 100644
index 00000000000..cf02564069d
--- /dev/null
+++ b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/drop/flowable.kingbase-mysql.drop.eventregistry.sql
@@ -0,0 +1,4 @@
+drop table if exists FLW_CHANNEL_DEFINITION cascade;
+drop table if exists FLW_EVENT_DEFINITION cascade;
+drop table if exists FLW_EVENT_RESOURCE cascade;
+drop table if exists FLW_EVENT_DEPLOYMENT cascade;
diff --git a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/drop/flowable.kingbase-oracle.drop.eventregistry.sql b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/drop/flowable.kingbase-oracle.drop.eventregistry.sql
new file mode 100644
index 00000000000..56471683bfc
--- /dev/null
+++ b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/drop/flowable.kingbase-oracle.drop.eventregistry.sql
@@ -0,0 +1,4 @@
+drop table if exists FLW_CHANNEL_DEFINITION cascade;
+drop table if exists FLW_EVENT_DEFINITION cascade;
+drop table if exists FLW_EVENT_RESOURCE cascade;
+drop table if exists FLW_EVENT_DEPLOYMENT cascade;
\ No newline at end of file
diff --git a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/drop/flowable.kingbase-sqlserver.drop.eventregistry.sql b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/drop/flowable.kingbase-sqlserver.drop.eventregistry.sql
new file mode 100644
index 00000000000..56471683bfc
--- /dev/null
+++ b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/drop/flowable.kingbase-sqlserver.drop.eventregistry.sql
@@ -0,0 +1,4 @@
+drop table if exists FLW_CHANNEL_DEFINITION cascade;
+drop table if exists FLW_EVENT_DEFINITION cascade;
+drop table if exists FLW_EVENT_RESOURCE cascade;
+drop table if exists FLW_EVENT_DEPLOYMENT cascade;
\ No newline at end of file
diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.kingbase-mysql.create.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.kingbase-mysql.create.identity.sql
new file mode 100644
index 00000000000..fdefe1274c3
--- /dev/null
+++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.kingbase-mysql.create.identity.sql
@@ -0,0 +1,107 @@
+create table ACT_ID_PROPERTY (
+ NAME_ varchar(64),
+ VALUE_ varchar(300),
+ REV_ integer,
+ primary key (NAME_)
+);
+
+insert into ACT_ID_PROPERTY
+values ('schema.version', '7.1.0.2', 1);
+
+create table ACT_ID_BYTEARRAY (
+ ID_ varchar(64),
+ REV_ integer,
+ NAME_ varchar(255),
+ BYTES_ bytea,
+ primary key (ID_)
+);
+
+create table ACT_ID_GROUP (
+ ID_ varchar(64),
+ REV_ integer,
+ NAME_ varchar(255),
+ TYPE_ varchar(255),
+ primary key (ID_)
+);
+
+create table ACT_ID_MEMBERSHIP (
+ USER_ID_ varchar(64),
+ GROUP_ID_ varchar(64),
+ primary key (USER_ID_, GROUP_ID_)
+);
+
+create table ACT_ID_USER (
+ ID_ varchar(64),
+ REV_ integer,
+ FIRST_ varchar(255),
+ LAST_ varchar(255),
+ DISPLAY_NAME_ varchar(255),
+ EMAIL_ varchar(255),
+ PWD_ varchar(255),
+ PICTURE_ID_ varchar(64),
+ TENANT_ID_ varchar(255) default '',
+ primary key (ID_)
+);
+
+create table ACT_ID_INFO (
+ ID_ varchar(64),
+ REV_ integer,
+ USER_ID_ varchar(64),
+ TYPE_ varchar(64),
+ KEY_ varchar(255),
+ VALUE_ varchar(255),
+ PASSWORD_ bytea,
+ PARENT_ID_ varchar(255),
+ primary key (ID_)
+);
+
+create table ACT_ID_TOKEN (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ TOKEN_VALUE_ varchar(255),
+ TOKEN_DATE_ timestamp,
+ IP_ADDRESS_ varchar(255),
+ USER_AGENT_ varchar(255),
+ USER_ID_ varchar(255),
+ TOKEN_DATA_ varchar(2000),
+ primary key (ID_)
+);
+
+create table ACT_ID_PRIV (
+ ID_ varchar(64) not null,
+ NAME_ varchar(255) not null,
+ primary key (ID_)
+);
+
+create table ACT_ID_PRIV_MAPPING (
+ ID_ varchar(64) not null,
+ PRIV_ID_ varchar(64) not null,
+ USER_ID_ varchar(255),
+ GROUP_ID_ varchar(255),
+ primary key (ID_)
+);
+
+create index ACT_IDX_MEMB_GROUP on ACT_ID_MEMBERSHIP(GROUP_ID_);
+alter table ACT_ID_MEMBERSHIP
+ add constraint ACT_FK_MEMB_GROUP
+ foreign key (GROUP_ID_)
+ references ACT_ID_GROUP (ID_);
+
+create index ACT_IDX_MEMB_USER on ACT_ID_MEMBERSHIP(USER_ID_);
+alter table ACT_ID_MEMBERSHIP
+ add constraint ACT_FK_MEMB_USER
+ foreign key (USER_ID_)
+ references ACT_ID_USER (ID_);
+
+create index ACT_IDX_PRIV_MAPPING on ACT_ID_PRIV_MAPPING(PRIV_ID_);
+alter table ACT_ID_PRIV_MAPPING
+ add constraint ACT_FK_PRIV_MAPPING
+ foreign key (PRIV_ID_)
+ references ACT_ID_PRIV (ID_);
+
+create index ACT_IDX_PRIV_USER on ACT_ID_PRIV_MAPPING(USER_ID_);
+create index ACT_IDX_PRIV_GROUP on ACT_ID_PRIV_MAPPING(GROUP_ID_);
+
+alter table ACT_ID_PRIV
+ add constraint ACT_UNIQ_PRIV_NAME
+ unique (NAME_);
diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.kingbase-oracle.create.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.kingbase-oracle.create.identity.sql
new file mode 100644
index 00000000000..09b0f6aea66
--- /dev/null
+++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.kingbase-oracle.create.identity.sql
@@ -0,0 +1,107 @@
+create table ACT_ID_PROPERTY (
+ NAME_ NVARCHAR2(64),
+ VALUE_ NVARCHAR2(300),
+ REV_ INTEGER,
+ primary key (NAME_)
+);
+
+insert into ACT_ID_PROPERTY
+values ('schema.version', '7.1.0.2', 1);
+
+create table ACT_ID_BYTEARRAY (
+ ID_ NVARCHAR2(64),
+ REV_ INTEGER,
+ NAME_ NVARCHAR2(255),
+ BYTES_ BLOB,
+ primary key (ID_)
+);
+
+create table ACT_ID_GROUP (
+ ID_ NVARCHAR2(64),
+ REV_ INTEGER,
+ NAME_ NVARCHAR2(255),
+ TYPE_ NVARCHAR2(255),
+ primary key (ID_)
+);
+
+create table ACT_ID_MEMBERSHIP (
+ USER_ID_ NVARCHAR2(64),
+ GROUP_ID_ NVARCHAR2(64),
+ primary key (USER_ID_, GROUP_ID_)
+);
+
+create table ACT_ID_USER (
+ ID_ NVARCHAR2(64),
+ REV_ INTEGER,
+ FIRST_ NVARCHAR2(255),
+ LAST_ NVARCHAR2(255),
+ DISPLAY_NAME_ NVARCHAR2(255),
+ EMAIL_ NVARCHAR2(255),
+ PWD_ NVARCHAR2(255),
+ PICTURE_ID_ NVARCHAR2(64),
+ TENANT_ID_ NVARCHAR2(255) default '',
+ primary key (ID_)
+);
+
+create table ACT_ID_INFO (
+ ID_ NVARCHAR2(64),
+ REV_ INTEGER,
+ USER_ID_ NVARCHAR2(64),
+ TYPE_ NVARCHAR2(64),
+ KEY_ NVARCHAR2(255),
+ VALUE_ NVARCHAR2(255),
+ PASSWORD_ BLOB,
+ PARENT_ID_ NVARCHAR2(255),
+ primary key (ID_)
+);
+
+create table ACT_ID_TOKEN (
+ ID_ NVARCHAR2(64) not null,
+ REV_ INTEGER,
+ TOKEN_VALUE_ NVARCHAR2(255),
+ TOKEN_DATE_ TIMESTAMP(6),
+ IP_ADDRESS_ NVARCHAR2(255),
+ USER_AGENT_ NVARCHAR2(255),
+ USER_ID_ NVARCHAR2(255),
+ TOKEN_DATA_ NVARCHAR2(2000),
+ primary key (ID_)
+);
+
+create table ACT_ID_PRIV (
+ ID_ NVARCHAR2(64) not null,
+ NAME_ NVARCHAR2(255) not null,
+ primary key (ID_)
+);
+
+create table ACT_ID_PRIV_MAPPING (
+ ID_ NVARCHAR2(64) not null,
+ PRIV_ID_ NVARCHAR2(64) not null,
+ USER_ID_ NVARCHAR2(255),
+ GROUP_ID_ NVARCHAR2(255),
+ primary key (ID_)
+);
+
+create index ACT_IDX_MEMB_GROUP on ACT_ID_MEMBERSHIP(GROUP_ID_);
+alter table ACT_ID_MEMBERSHIP
+ add constraint ACT_FK_MEMB_GROUP
+ foreign key (GROUP_ID_)
+ references ACT_ID_GROUP (ID_);
+
+create index ACT_IDX_MEMB_USER on ACT_ID_MEMBERSHIP(USER_ID_);
+alter table ACT_ID_MEMBERSHIP
+ add constraint ACT_FK_MEMB_USER
+ foreign key (USER_ID_)
+ references ACT_ID_USER (ID_);
+
+create index ACT_IDX_PRIV_MAPPING on ACT_ID_PRIV_MAPPING(PRIV_ID_);
+alter table ACT_ID_PRIV_MAPPING
+ add constraint ACT_FK_PRIV_MAPPING
+ foreign key (PRIV_ID_)
+ references ACT_ID_PRIV (ID_);
+
+create index ACT_IDX_PRIV_USER on ACT_ID_PRIV_MAPPING(USER_ID_);
+create index ACT_IDX_PRIV_GROUP on ACT_ID_PRIV_MAPPING(GROUP_ID_);
+
+alter table ACT_ID_PRIV
+ add constraint ACT_UNIQ_PRIV_NAME
+ unique (NAME_);
\ No newline at end of file
diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.kingbase-sqlserver.create.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.kingbase-sqlserver.create.identity.sql
new file mode 100644
index 00000000000..e31a83d36a5
--- /dev/null
+++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.kingbase-sqlserver.create.identity.sql
@@ -0,0 +1,104 @@
+create table ACT_ID_PROPERTY (
+ NAME_ nvarchar(64),
+ VALUE_ nvarchar(300),
+ REV_ int,
+ primary key (NAME_)
+);
+
+insert into ACT_ID_PROPERTY
+values ('schema.version', '7.1.0.2', 1);
+
+create table ACT_ID_BYTEARRAY (
+ ID_ nvarchar(64),
+ REV_ int,
+ NAME_ nvarchar(255),
+ BYTES_ varbinary(max),
+ primary key (ID_)
+);
+
+create table ACT_ID_GROUP (
+ ID_ nvarchar(64),
+ REV_ int,
+ NAME_ nvarchar(255),
+ TYPE_ nvarchar(255),
+ primary key (ID_)
+);
+
+create table ACT_ID_MEMBERSHIP (
+ USER_ID_ nvarchar(64),
+ GROUP_ID_ nvarchar(64),
+ primary key (USER_ID_, GROUP_ID_)
+);
+
+create table ACT_ID_USER (
+ ID_ nvarchar(64),
+ REV_ int,
+ FIRST_ nvarchar(255),
+ LAST_ nvarchar(255),
+ DISPLAY_NAME_ nvarchar(255),
+ EMAIL_ nvarchar(255),
+ PWD_ nvarchar(255),
+ PICTURE_ID_ nvarchar(64),
+ TENANT_ID_ nvarchar(255) default '',
+ primary key (ID_)
+);
+
+create table ACT_ID_INFO (
+ ID_ nvarchar(64),
+ REV_ int,
+ USER_ID_ nvarchar(64),
+ TYPE_ nvarchar(64),
+ KEY_ nvarchar(255),
+ VALUE_ nvarchar(255),
+ PASSWORD_ varbinary(max),
+ PARENT_ID_ nvarchar(255),
+ primary key (ID_)
+);
+
+create table ACT_ID_TOKEN (
+ ID_ nvarchar(64) not null,
+ REV_ int,
+ TOKEN_VALUE_ nvarchar(255),
+ TOKEN_DATE_ datetime,
+ IP_ADDRESS_ nvarchar(255),
+ USER_AGENT_ nvarchar(255),
+ USER_ID_ nvarchar(255),
+ TOKEN_DATA_ nvarchar(2000),
+ primary key (ID_)
+);
+
+create table ACT_ID_PRIV (
+ ID_ nvarchar(64) not null,
+ NAME_ nvarchar(255) not null,
+ primary key (ID_)
+);
+
+create table ACT_ID_PRIV_MAPPING (
+ ID_ nvarchar(64) not null,
+ PRIV_ID_ nvarchar(64) not null,
+ USER_ID_ nvarchar(255),
+ GROUP_ID_ nvarchar(255),
+ primary key (ID_)
+);
+
+alter table ACT_ID_MEMBERSHIP
+ add constraint ACT_FK_MEMB_GROUP
+ foreign key (GROUP_ID_)
+ references ACT_ID_GROUP;
+
+alter table ACT_ID_MEMBERSHIP
+ add constraint ACT_FK_MEMB_USER
+ foreign key (USER_ID_)
+ references ACT_ID_USER (ID_);
+
+alter table ACT_ID_PRIV_MAPPING
+ add constraint ACT_FK_PRIV_MAPPING
+ foreign key (PRIV_ID_)
+ references ACT_ID_PRIV (ID_);
+
+create index ACT_IDX_PRIV_USER on ACT_ID_PRIV_MAPPING(USER_ID_);
+create index ACT_IDX_PRIV_GROUP on ACT_ID_PRIV_MAPPING(GROUP_ID_);
+
+alter table ACT_ID_PRIV
+ add constraint ACT_UNIQ_PRIV_NAME
+ unique (NAME_);
\ No newline at end of file
diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/drop/flowable.kingbase-mysql.drop.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/drop/flowable.kingbase-mysql.drop.identity.sql
new file mode 100644
index 00000000000..00d39d9b5e6
--- /dev/null
+++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/drop/flowable.kingbase-mysql.drop.identity.sql
@@ -0,0 +1,9 @@
+drop table if exists ACT_ID_PROPERTY cascade;
+drop table if exists ACT_ID_BYTEARRAY cascade;
+drop table if exists ACT_ID_INFO cascade;
+drop table if exists ACT_ID_GROUP cascade;
+drop table if exists ACT_ID_MEMBERSHIP cascade;
+drop table if exists ACT_ID_USER cascade;
+drop table if exists ACT_ID_TOKEN cascade;
+drop table if exists ACT_ID_PRIV cascade;
+drop table if exists ACT_ID_PRIV_MAPPING cascade;
diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/drop/flowable.kingbase-oracle.drop.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/drop/flowable.kingbase-oracle.drop.identity.sql
new file mode 100644
index 00000000000..830101e1369
--- /dev/null
+++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/drop/flowable.kingbase-oracle.drop.identity.sql
@@ -0,0 +1,9 @@
+drop table if exists ACT_ID_PROPERTY cascade;
+drop table if exists ACT_ID_BYTEARRAY cascade;
+drop table if exists ACT_ID_INFO cascade;
+drop table if exists ACT_ID_GROUP cascade;
+drop table if exists ACT_ID_MEMBERSHIP cascade;
+drop table if exists ACT_ID_USER cascade;
+drop table if exists ACT_ID_TOKEN cascade;
+drop table if exists ACT_ID_PRIV cascade;
+drop table if exists ACT_ID_PRIV_MAPPING cascade;
\ No newline at end of file
diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/drop/flowable.kingbase-sqlserver.drop.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/drop/flowable.kingbase-sqlserver.drop.identity.sql
new file mode 100644
index 00000000000..830101e1369
--- /dev/null
+++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/drop/flowable.kingbase-sqlserver.drop.identity.sql
@@ -0,0 +1,9 @@
+drop table if exists ACT_ID_PROPERTY cascade;
+drop table if exists ACT_ID_BYTEARRAY cascade;
+drop table if exists ACT_ID_INFO cascade;
+drop table if exists ACT_ID_GROUP cascade;
+drop table if exists ACT_ID_MEMBERSHIP cascade;
+drop table if exists ACT_ID_USER cascade;
+drop table if exists ACT_ID_TOKEN cascade;
+drop table if exists ACT_ID_PRIV cascade;
+drop table if exists ACT_ID_PRIV_MAPPING cascade;
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 28456e43650..c7f7d007bf9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -104,6 +104,11 @@
h2
2.2.224
+
+ cn.com.kingbase
+ kingbase8
+ 9.0.1
+
org.slf4j