diff --git a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.db2.create.app.sql b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.db2.create.app.sql
index f54aa4e0723..1623d6456e9 100644
--- a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.db2.create.app.sql
+++ b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.db2.create.app.sql
@@ -15,4 +15,4 @@ 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', '8.1.0.2', 1);
+values ('app.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.h2.create.app.sql b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.h2.create.app.sql
index f434a1822d9..594d7279a93 100644
--- a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.h2.create.app.sql
+++ b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.h2.create.app.sql
@@ -15,4 +15,4 @@ 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', '8.1.0.2', 1);
+values ('app.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.mssql.create.app.sql b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.mssql.create.app.sql
index 7e149d2ccea..e07acf7a1b5 100644
--- a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.mssql.create.app.sql
+++ b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.mssql.create.app.sql
@@ -15,4 +15,4 @@ 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', '8.1.0.2', 1);
+values ('app.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.mysql.create.app.sql b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.mysql.create.app.sql
index f30bf8879f8..7d3eee8e73b 100644
--- a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.mysql.create.app.sql
+++ b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.mysql.create.app.sql
@@ -17,4 +17,4 @@ 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', '8.1.0.2', 1);
+values ('app.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.oracle.create.app.sql b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.oracle.create.app.sql
index f75cadd0dfb..7a23c9b58bb 100644
--- a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.oracle.create.app.sql
+++ b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.oracle.create.app.sql
@@ -15,4 +15,4 @@ 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', '8.1.0.2', 1);
+values ('app.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.postgres.create.app.sql b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.postgres.create.app.sql
index c57d8ab015b..c0bb107c4e1 100644
--- a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.postgres.create.app.sql
+++ b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.postgres.create.app.sql
@@ -15,4 +15,4 @@ 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', '8.1.0.2', 1);
+values ('app.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/upgrade/flowable.all.upgradestep.8102.to.8103.app.sql b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/upgrade/flowable.all.upgradestep.8102.to.8103.app.sql
new file mode 100644
index 00000000000..3c1c5c02723
--- /dev/null
+++ b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/upgrade/flowable.all.upgradestep.8102.to.8103.app.sql
@@ -0,0 +1 @@
+update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'app.schema.version';
diff --git a/modules/flowable-app-rest/src/test/java/org/flowable/test/persistence/SqlUpgradeValidationTest.java b/modules/flowable-app-rest/src/test/java/org/flowable/test/persistence/SqlUpgradeValidationTest.java
index cb29a6ecdb0..2e12bdebc79 100644
--- a/modules/flowable-app-rest/src/test/java/org/flowable/test/persistence/SqlUpgradeValidationTest.java
+++ b/modules/flowable-app-rest/src/test/java/org/flowable/test/persistence/SqlUpgradeValidationTest.java
@@ -35,7 +35,8 @@ class SqlUpgradeValidationTest {
"7.1.0.2",
"7.2.0.1",
"7.2.0.2",
- "8.1.0.2"
+ "8.1.0.2",
+ "8.1.0.3"
);
@ParameterizedTest
diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.db2.create.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.db2.create.cmmn.sql
index b34f6e99ad6..62e88e88208 100644
--- a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.db2.create.cmmn.sql
+++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.db2.create.cmmn.sql
@@ -268,4 +268,4 @@ CREATE TABLE ACT_CMMN_HI_PLAN_ITEM_INST
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', '8.1.0.2', 1);
+values ('cmmn.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.h2.create.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.h2.create.cmmn.sql
index 840620d6ea8..fa0fd2a57b9 100644
--- a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.h2.create.cmmn.sql
+++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.h2.create.cmmn.sql
@@ -268,4 +268,4 @@ CREATE TABLE ACT_CMMN_HI_PLAN_ITEM_INST
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', '8.1.0.2', 1);
+values ('cmmn.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.hsql.create.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.hsql.create.cmmn.sql
index 840620d6ea8..fa0fd2a57b9 100644
--- a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.hsql.create.cmmn.sql
+++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.hsql.create.cmmn.sql
@@ -268,4 +268,4 @@ CREATE TABLE ACT_CMMN_HI_PLAN_ITEM_INST
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', '8.1.0.2', 1);
+values ('cmmn.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.mssql.create.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.mssql.create.cmmn.sql
index 12f427bd3c9..9900bee294b 100644
--- a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.mssql.create.cmmn.sql
+++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.mssql.create.cmmn.sql
@@ -268,4 +268,4 @@ CREATE TABLE ACT_CMMN_HI_PLAN_ITEM_INST
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', '8.1.0.2', 1);
+values ('cmmn.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.mysql.create.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.mysql.create.cmmn.sql
index c74b15e194a..9fe85875027 100644
--- a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.mysql.create.cmmn.sql
+++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.mysql.create.cmmn.sql
@@ -268,4 +268,4 @@ CREATE TABLE ACT_CMMN_HI_PLAN_ITEM_INST
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', '8.1.0.2', 1);
+values ('cmmn.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.oracle.create.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.oracle.create.cmmn.sql
index da331c17d2d..eb096d81cf1 100644
--- a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.oracle.create.cmmn.sql
+++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.oracle.create.cmmn.sql
@@ -268,4 +268,4 @@ CREATE TABLE ACT_CMMN_HI_PLAN_ITEM_INST
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', '8.1.0.2', 1);
+values ('cmmn.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.postgres.create.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.postgres.create.cmmn.sql
index 10e6e9f0f3d..162ebcb875a 100644
--- a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.postgres.create.cmmn.sql
+++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.postgres.create.cmmn.sql
@@ -268,4 +268,4 @@ CREATE TABLE ACT_CMMN_HI_PLAN_ITEM_INST
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', '8.1.0.2', 1);
+values ('cmmn.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/CaseDefinition.xml b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/CaseDefinition.xml
index 1fe7896b091..8c631ad9c3f 100644
--- a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/CaseDefinition.xml
+++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/CaseDefinition.xml
@@ -276,29 +276,27 @@
and (RES.TENANT_ID_ = '' or RES.TENANT_ID_ is null)
- AND
+
+ AND exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_DEFINITION_ID_ = RES.ID_ and IDN.SCOPE_TYPE_ = 'cmmn' and
-
- exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_DEFINITION_ID_ = RES.ID_ and IDN.SCOPE_TYPE_ = 'cmmn' and IDN.USER_ID_ = #{authorizationUserId, jdbcType=NVARCHAR})
-
-
- OR exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_DEFINITION_ID_ = RES.ID_ and IDN.SCOPE_TYPE_ = 'cmmn' and
- (
-
-
- or
-
- IDN.GROUP_ID_ IN
-
- #{authorizationGroup, jdbcType=NVARCHAR}
-
-
- )
- )
+
+ IDN.USER_ID_ = #{authorizationUserId, jdbcType=NVARCHAR}
+
+
+ OR
+
+
+ or
+
+ IDN.GROUP_ID_ IN
+
+ #{authorizationGroup, jdbcType=NVARCHAR}
+
+
-
+ )
diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/CaseInstance.xml b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/CaseInstance.xml
index dcead35b4cf..e9c8eccab72 100644
--- a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/CaseInstance.xml
+++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/CaseInstance.xml
@@ -909,35 +909,32 @@
and P.STATE_ = 'active')
-
- or EXISTS(select ID_ from ${prefix}ACT_RU_IDENTITYLINK I where I.SCOPE_ID_ = RES.ID_ and I.SCOPE_TYPE_ = 'cmmn' and I.USER_ID_ =
- #{orQueryObject.involvedUser, jdbcType=NVARCHAR})
-
-
- or EXISTS(select ID_ from ${prefix}ACT_RU_IDENTITYLINK I where I.SCOPE_ID_ = RES.ID_ and I.SCOPE_TYPE_ = 'cmmn' and
- I.USER_ID_ = #{orQueryObject.involvedUserIdentityLink.userId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedUserIdentityLink.type, jdbcType=NVARCHAR})
-
-
+
+
or EXISTS(
select ID_ from ${prefix}ACT_RU_IDENTITYLINK I where I.SCOPE_ID_ = RES.ID_ and I.SCOPE_TYPE_ = 'cmmn' and
- (
-
-
- or
+
+
+ or I.USER_ID_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR}
- I.GROUP_ID_ IN
-
- #{involvedGroup, jdbcType=NVARCHAR}
-
-
- )
+
+ or (I.USER_ID_ = #{orQueryObject.involvedUserIdentityLink.userId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedUserIdentityLink.type, jdbcType=NVARCHAR})
+
+
+
+ or I.GROUP_ID_ IN
+
+ #{involvedGroup, jdbcType=NVARCHAR}
+
+
+
+
+ or (I.GROUP_ID_ = #{orQueryObject.involvedGroupIdentityLink.groupId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedGroupIdentityLink.type, jdbcType=NVARCHAR})
+
+
)
-
- or EXISTS(select ID_ from ${prefix}ACT_RU_IDENTITYLINK I where I.SCOPE_ID_ = RES.ID_ and I.SCOPE_TYPE_ = 'cmmn' and
- I.GROUP_ID_ = #{orQueryObject.involvedGroupIdentityLink.groupId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedGroupIdentityLink.type, jdbcType=NVARCHAR})
-
or EXISTS(select 1 from ${prefix}ACT_RU_ENTITYLINK LINK where
LINK.SCOPE_ID_ = #{orQueryObject.parentScopeId, jdbcType=NVARCHAR}
diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/HistoricCaseInstance.xml b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/HistoricCaseInstance.xml
index 7e2109e9b88..14d221ee3db 100644
--- a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/HistoricCaseInstance.xml
+++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/HistoricCaseInstance.xml
@@ -1056,35 +1056,32 @@
and P.STATE_ = 'active')
-
- or EXISTS(select ID_ from ${prefix}ACT_HI_IDENTITYLINK I where I.SCOPE_ID_ = ${queryTablePrefix}ID_ and I.SCOPE_TYPE_ = 'cmmn' and I.USER_ID_ =
- #{orQueryObject.involvedUser, jdbcType=NVARCHAR})
-
-
- or EXISTS(select ID_ from ${prefix}ACT_HI_IDENTITYLINK I where I.SCOPE_ID_ = ${queryTablePrefix}ID_ and I.SCOPE_TYPE_ = 'cmmn' and
- I.USER_ID_ = #{orQueryObject.involvedUserIdentityLink.userId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedUserIdentityLink.type, jdbcType=NVARCHAR})
-
-
+
+
or EXISTS(
- select ID_ from ${prefix}ACT_HI_IDENTITYLINK I where I.SCOPE_ID_ = ${queryTablePrefix}ID_ and I.SCOPE_TYPE_ = 'cmmn' and
- (
-
-
- or
+ select ID_ from ${prefix}ACT_HI_IDENTITYLINK I where I.SCOPE_ID_ = ${queryTablePrefix}ID_ and I.SCOPE_TYPE_ = 'cmmn' and
+
+
+ or I.USER_ID_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR}
- I.GROUP_ID_ IN
-
- #{involvedGroup, jdbcType=NVARCHAR}
-
-
- )
+
+ or (I.USER_ID_ = #{orQueryObject.involvedUserIdentityLink.userId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedUserIdentityLink.type, jdbcType=NVARCHAR})
+
+
+
+ or I.GROUP_ID_ IN
+
+ #{involvedGroup, jdbcType=NVARCHAR}
+
+
+
+
+ or (I.GROUP_ID_ = #{orQueryObject.involvedGroupIdentityLink.groupId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedGroupIdentityLink.type, jdbcType=NVARCHAR})
+
+
)
-
- or EXISTS(select ID_ from ${prefix}ACT_HI_IDENTITYLINK I where I.SCOPE_ID_ = ${queryTablePrefix}ID_ and I.SCOPE_TYPE_ = 'cmmn' and
- I.GROUP_ID_ = #{orQueryObject.involvedGroupIdentityLink.groupId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedGroupIdentityLink.type, jdbcType=NVARCHAR})
-
or EXISTS(select 1 from ${prefix}ACT_HI_ENTITYLINK LINK where
LINK.SCOPE_ID_ = #{orQueryObject.parentScopeId, jdbcType=NVARCHAR}
diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/upgrade/flowable.all.upgradestep.8102.to.8103.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/upgrade/flowable.all.upgradestep.8102.to.8103.cmmn.sql
new file mode 100644
index 00000000000..d924cf33fe5
--- /dev/null
+++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/upgrade/flowable.all.upgradestep.8102.to.8103.cmmn.sql
@@ -0,0 +1 @@
+update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'cmmn.schema.version';
diff --git a/modules/flowable-cmmn-engine/src/test/java/org/flowable/cmmn/test/history/HistoricCaseInstanceQueryImplTest.java b/modules/flowable-cmmn-engine/src/test/java/org/flowable/cmmn/test/history/HistoricCaseInstanceQueryImplTest.java
index 43bf49ad152..47c139d7dec 100644
--- a/modules/flowable-cmmn-engine/src/test/java/org/flowable/cmmn/test/history/HistoricCaseInstanceQueryImplTest.java
+++ b/modules/flowable-cmmn-engine/src/test/java/org/flowable/cmmn/test/history/HistoricCaseInstanceQueryImplTest.java
@@ -1738,6 +1738,61 @@ public void getCaseInstanceByInvolvedGroupIdentityLink() {
}
}
+ @Test
+ public void getCaseInstanceByOrInvolvedUsersAndGroupsWithIdentityLinkTypes() {
+ CaseInstance userTypeInstance = startOneTaskCase();
+ cmmnRuntimeService.addUserIdentityLink(userTypeInstance.getId(), "kermit", "specialLink");
+ CaseInstance userOtherTypeInstance = startOneTaskCase();
+ cmmnRuntimeService.addUserIdentityLink(userOtherTypeInstance.getId(), "kermit", "otherLink");
+ CaseInstance groupTypeInstance = startOneTaskCase();
+ cmmnRuntimeService.addGroupIdentityLink(groupTypeInstance.getId(), "sales", "specialLink");
+ CaseInstance groupOtherTypeInstance = startOneTaskCase();
+ cmmnRuntimeService.addGroupIdentityLink(groupOtherTypeInstance.getId(), "sales", "otherLink");
+ CaseInstance groupsInstance = startOneTaskCase();
+ cmmnRuntimeService.addGroupIdentityLink(groupsInstance.getId(), "testGroup", "otherLink");
+
+ if (CmmnHistoryTestHelper.isHistoryLevelAtLeast(HistoryLevel.ACTIVITY, cmmnEngineConfiguration)) {
+ assertThat(cmmnHistoryService.createHistoricCaseInstanceQuery()
+ .or().involvedUser("kermit", "specialLink").involvedGroup("sales", "specialLink").endOr()
+ .list())
+ .extracting(HistoricCaseInstance::getId)
+ .containsExactlyInAnyOrder(userTypeInstance.getId(), groupTypeInstance.getId());
+
+ assertThat(cmmnHistoryService.createHistoricCaseInstanceQuery()
+ .or().involvedUser("kermit", "specialLink").involvedGroups(Set.of("testGroup")).endOr()
+ .list())
+ .extracting(HistoricCaseInstance::getId)
+ .containsExactlyInAnyOrder(userTypeInstance.getId(), groupsInstance.getId());
+
+ assertThat(cmmnHistoryService.createHistoricCaseInstanceQuery()
+ .or().involvedUser("kermit").involvedGroup("sales", "specialLink").involvedGroups(Set.of("testGroup")).endOr()
+ .list())
+ .extracting(HistoricCaseInstance::getId)
+ .containsExactlyInAnyOrder(userTypeInstance.getId(), userOtherTypeInstance.getId(), groupTypeInstance.getId(), groupsInstance.getId());
+
+ assertThat(cmmnHistoryService.createHistoricCaseInstanceQuery()
+ .or()
+ .involvedUser("kermit", "specialLink")
+ .involvedGroup("sales", "specialLink")
+ .involvedGroups(Set.of("testGroup"))
+ .caseInstanceId(groupOtherTypeInstance.getId())
+ .endOr()
+ .count())
+ .isEqualTo(4);
+
+ assertThat(cmmnHistoryService.createHistoricCaseInstanceQuery()
+ .or().involvedUser("kermit", "wrongType").involvedGroup("sales", "wrongType").endOr()
+ .count())
+ .isZero();
+ }
+ }
+
+ protected CaseInstance startOneTaskCase() {
+ return cmmnRuntimeService.createCaseInstanceBuilder()
+ .caseDefinitionKey("oneTaskCase")
+ .start();
+ }
+
@Test
public void getCaseInstanceByInvolvedGroupOrUser() {
CaseInstance caseInstance = cmmnRuntimeService.createCaseInstanceBuilder()
diff --git a/modules/flowable-cmmn-engine/src/test/java/org/flowable/cmmn/test/runtime/CaseInstanceQueryImplTest.java b/modules/flowable-cmmn-engine/src/test/java/org/flowable/cmmn/test/runtime/CaseInstanceQueryImplTest.java
index 7fe4a27a470..45fa4e14baa 100644
--- a/modules/flowable-cmmn-engine/src/test/java/org/flowable/cmmn/test/runtime/CaseInstanceQueryImplTest.java
+++ b/modules/flowable-cmmn-engine/src/test/java/org/flowable/cmmn/test/runtime/CaseInstanceQueryImplTest.java
@@ -1396,6 +1396,59 @@ public void getCaseInstanceByInvolvedGroupIdentityLink() {
.isZero();
}
+ @Test
+ public void getCaseInstanceByOrInvolvedUsersAndGroupsWithIdentityLinkTypes() {
+ CaseInstance userTypeInstance = startOneTaskCase();
+ cmmnRuntimeService.addUserIdentityLink(userTypeInstance.getId(), "kermit", "specialLink");
+ CaseInstance userOtherTypeInstance = startOneTaskCase();
+ cmmnRuntimeService.addUserIdentityLink(userOtherTypeInstance.getId(), "kermit", "otherLink");
+ CaseInstance groupTypeInstance = startOneTaskCase();
+ cmmnRuntimeService.addGroupIdentityLink(groupTypeInstance.getId(), "sales", "specialLink");
+ CaseInstance groupOtherTypeInstance = startOneTaskCase();
+ cmmnRuntimeService.addGroupIdentityLink(groupOtherTypeInstance.getId(), "sales", "otherLink");
+ CaseInstance groupsInstance = startOneTaskCase();
+ cmmnRuntimeService.addGroupIdentityLink(groupsInstance.getId(), "testGroup", "otherLink");
+
+ assertThat(cmmnRuntimeService.createCaseInstanceQuery()
+ .or().involvedUser("kermit", "specialLink").involvedGroup("sales", "specialLink").endOr()
+ .list())
+ .extracting(CaseInstance::getId)
+ .containsExactlyInAnyOrder(userTypeInstance.getId(), groupTypeInstance.getId());
+
+ assertThat(cmmnRuntimeService.createCaseInstanceQuery()
+ .or().involvedUser("kermit", "specialLink").involvedGroups(Set.of("testGroup")).endOr()
+ .list())
+ .extracting(CaseInstance::getId)
+ .containsExactlyInAnyOrder(userTypeInstance.getId(), groupsInstance.getId());
+
+ assertThat(cmmnRuntimeService.createCaseInstanceQuery()
+ .or().involvedUser("kermit").involvedGroup("sales", "specialLink").involvedGroups(Set.of("testGroup")).endOr()
+ .list())
+ .extracting(CaseInstance::getId)
+ .containsExactlyInAnyOrder(userTypeInstance.getId(), userOtherTypeInstance.getId(), groupTypeInstance.getId(), groupsInstance.getId());
+
+ assertThat(cmmnRuntimeService.createCaseInstanceQuery()
+ .or()
+ .involvedUser("kermit", "specialLink")
+ .involvedGroup("sales", "specialLink")
+ .involvedGroups(Set.of("testGroup"))
+ .caseInstanceId(groupOtherTypeInstance.getId())
+ .endOr()
+ .count())
+ .isEqualTo(4);
+
+ assertThat(cmmnRuntimeService.createCaseInstanceQuery()
+ .or().involvedUser("kermit", "wrongType").involvedGroup("sales", "wrongType").endOr()
+ .count())
+ .isZero();
+ }
+
+ protected CaseInstance startOneTaskCase() {
+ return cmmnRuntimeService.createCaseInstanceBuilder()
+ .caseDefinitionKey("oneTaskCase")
+ .start();
+ }
+
@Test
public void getCaseInstanceByInvolvedGroupOrUser() {
CaseInstance caseInstance = cmmnRuntimeService.createCaseInstanceBuilder()
diff --git a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.db2.create.dmn.sql b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.db2.create.dmn.sql
index ebf78d27cf1..d71beafe6da 100644
--- a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.db2.create.dmn.sql
+++ b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.db2.create.dmn.sql
@@ -16,4 +16,4 @@ CREATE UNIQUE INDEX ACT_IDX_DMN_DEC_UNIQ ON ACT_DMN_DECISION(KEY_, VERSION_, TEN
CREATE INDEX ACT_IDX_DMN_INSTANCE_ID ON ACT_DMN_HI_DECISION_EXECUTION(INSTANCE_ID_);
insert into ACT_GE_PROPERTY
-values ('dmn.schema.version', '8.1.0.2', 1);
+values ('dmn.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.h2.create.dmn.sql b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.h2.create.dmn.sql
index 5ef25020ecf..f7c4bff9a5a 100644
--- a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.h2.create.dmn.sql
+++ b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.h2.create.dmn.sql
@@ -16,4 +16,4 @@ CREATE UNIQUE INDEX ACT_IDX_DMN_DEC_UNIQ ON ACT_DMN_DECISION(KEY_, VERSION_, TEN
CREATE INDEX ACT_IDX_DMN_INSTANCE_ID ON ACT_DMN_HI_DECISION_EXECUTION(INSTANCE_ID_);
insert into ACT_GE_PROPERTY
-values ('dmn.schema.version', '8.1.0.2', 1);
+values ('dmn.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.mssql.create.dmn.sql b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.mssql.create.dmn.sql
index 66d930f625b..f95dfb4f3a4 100644
--- a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.mssql.create.dmn.sql
+++ b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.mssql.create.dmn.sql
@@ -16,4 +16,4 @@ CREATE UNIQUE NONCLUSTERED INDEX ACT_IDX_DMN_DEC_UNIQ ON ACT_DMN_DECISION(KEY_,
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', '8.1.0.2', 1);
+values ('dmn.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.mysql.create.dmn.sql b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.mysql.create.dmn.sql
index 2a48ea91c28..5b09d6a8449 100644
--- a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.mysql.create.dmn.sql
+++ b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.mysql.create.dmn.sql
@@ -16,4 +16,4 @@ CREATE UNIQUE INDEX ACT_IDX_DMN_DEC_UNIQ ON ACT_DMN_DECISION(KEY_, VERSION_, TEN
CREATE INDEX ACT_IDX_DMN_INSTANCE_ID ON ACT_DMN_HI_DECISION_EXECUTION(INSTANCE_ID_);
insert into ACT_GE_PROPERTY
-values ('dmn.schema.version', '8.1.0.2', 1);
+values ('dmn.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.oracle.create.dmn.sql b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.oracle.create.dmn.sql
index 8c8d42a9d59..1bdcd2b34c8 100644
--- a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.oracle.create.dmn.sql
+++ b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.oracle.create.dmn.sql
@@ -16,4 +16,4 @@ CREATE UNIQUE INDEX ACT_IDX_DMN_DEC_UNIQ ON ACT_DMN_DECISION(KEY_, VERSION_, TEN
CREATE INDEX ACT_IDX_DMN_INSTANCE_ID ON ACT_DMN_HI_DECISION_EXECUTION(INSTANCE_ID_);
insert into ACT_GE_PROPERTY
-values ('dmn.schema.version', '8.1.0.2', 1);
+values ('dmn.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.postgres.create.dmn.sql b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.postgres.create.dmn.sql
index f1b989bf29b..f9ef5a9727a 100644
--- a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.postgres.create.dmn.sql
+++ b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.postgres.create.dmn.sql
@@ -16,4 +16,4 @@ CREATE UNIQUE INDEX ACT_IDX_DMN_DEC_UNIQ ON ACT_DMN_DECISION(KEY_, VERSION_, TEN
CREATE INDEX ACT_IDX_DMN_INSTANCE_ID ON ACT_DMN_HI_DECISION_EXECUTION(INSTANCE_ID_);
insert into ACT_GE_PROPERTY
-values ('dmn.schema.version', '8.1.0.2', 1);
+values ('dmn.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/upgrade/flowable.all.upgradestep.8102.to.8103.dmn.sql b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/upgrade/flowable.all.upgradestep.8102.to.8103.dmn.sql
new file mode 100644
index 00000000000..d5baaf85e83
--- /dev/null
+++ b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/upgrade/flowable.all.upgradestep.8102.to.8103.dmn.sql
@@ -0,0 +1 @@
+update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'dmn.schema.version';
diff --git a/modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/FlowableVersions.java b/modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/FlowableVersions.java
index 07cd9e7b69b..402d28e638f 100644
--- a/modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/FlowableVersions.java
+++ b/modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/FlowableVersions.java
@@ -23,7 +23,7 @@
*/
public class FlowableVersions {
- public static final String CURRENT_VERSION = "8.1.0.2"; // Note the extra .x at the end. To cater for snapshot releases with different database changes
+ public static final String CURRENT_VERSION = "8.1.0.3"; // Note the extra .x at the end. To cater for snapshot releases with different database changes
public static final List FLOWABLE_VERSIONS = new ArrayList<>();
@@ -152,6 +152,7 @@ public class FlowableVersions {
FLOWABLE_VERSIONS.add(new FlowableVersion("8.0.0.0"));
FLOWABLE_VERSIONS.add(new FlowableVersion("8.1.0.0"));
FLOWABLE_VERSIONS.add(new FlowableVersion("8.1.0.1"));
+ FLOWABLE_VERSIONS.add(new FlowableVersion("8.1.0.2"));
/* Current */
FLOWABLE_VERSIONS.add(new FlowableVersion(CURRENT_VERSION));
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.cockroachdb.create.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.cockroachdb.create.common.sql
index 191d3d7242a..942eb9270bc 100644
--- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.cockroachdb.create.common.sql
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.cockroachdb.create.common.sql
@@ -16,7 +16,7 @@ CREATE TABLE if not exists ACT_GE_BYTEARRAY (
);
insert into ACT_GE_PROPERTY
-values ('common.schema.version', '8.1.0.2', 1);
+values ('common.schema.version', '8.1.0.3', 1);
insert into ACT_GE_PROPERTY
values ('next.dbid', '1', 1);
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.db2.create.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.db2.create.common.sql
index 41b1e39884f..78e2af59395 100644
--- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.db2.create.common.sql
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.db2.create.common.sql
@@ -16,7 +16,7 @@ create table ACT_GE_BYTEARRAY (
);
insert into ACT_GE_PROPERTY
-values ('common.schema.version', '8.1.0.2', 1);
+values ('common.schema.version', '8.1.0.3', 1);
insert into ACT_GE_PROPERTY
values ('next.dbid', '1', 1);
@@ -108,6 +108,7 @@ create table ACT_HI_IDENTITYLINK (
);
create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_);
+create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_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_);
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.h2.create.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.h2.create.common.sql
index dbb2abdeff4..4230cb40cbb 100644
--- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.h2.create.common.sql
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.h2.create.common.sql
@@ -16,7 +16,7 @@ create table ACT_GE_BYTEARRAY (
);
insert into ACT_GE_PROPERTY
-values ('common.schema.version', '8.1.0.2', 1);
+values ('common.schema.version', '8.1.0.3', 1);
insert into ACT_GE_PROPERTY
values ('next.dbid', '1', 1);
@@ -172,6 +172,7 @@ create table ACT_HI_IDENTITYLINK (
);
create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_);
+create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_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_);
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.hsql.create.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.hsql.create.common.sql
index dbb2abdeff4..4230cb40cbb 100644
--- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.hsql.create.common.sql
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.hsql.create.common.sql
@@ -16,7 +16,7 @@ create table ACT_GE_BYTEARRAY (
);
insert into ACT_GE_PROPERTY
-values ('common.schema.version', '8.1.0.2', 1);
+values ('common.schema.version', '8.1.0.3', 1);
insert into ACT_GE_PROPERTY
values ('next.dbid', '1', 1);
@@ -172,6 +172,7 @@ create table ACT_HI_IDENTITYLINK (
);
create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_);
+create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_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_);
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.mssql.create.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.mssql.create.common.sql
index 7c8b2d1ed5c..292a18aba8a 100644
--- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.mssql.create.common.sql
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.mssql.create.common.sql
@@ -16,7 +16,7 @@ create table ACT_GE_BYTEARRAY (
);
insert into ACT_GE_PROPERTY
-values ('common.schema.version', '8.1.0.2', 1);
+values ('common.schema.version', '8.1.0.3', 1);
insert into ACT_GE_PROPERTY
values ('next.dbid', '1', 1);
@@ -108,6 +108,7 @@ create table ACT_HI_IDENTITYLINK (
);
create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_);
+create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_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_);
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.mysql.create.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.mysql.create.common.sql
index 1fd1ca8a61d..a19171f3329 100644
--- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.mysql.create.common.sql
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.mysql.create.common.sql
@@ -16,7 +16,7 @@ create table ACT_GE_BYTEARRAY (
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
insert into ACT_GE_PROPERTY
-values ('common.schema.version', '8.1.0.2', 1);
+values ('common.schema.version', '8.1.0.3', 1);
insert into ACT_GE_PROPERTY
values ('next.dbid', '1', 1);
@@ -108,6 +108,7 @@ create table ACT_HI_IDENTITYLINK (
) 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_GROUP on ACT_HI_IDENTITYLINK(GROUP_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_);
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.oracle.create.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.oracle.create.common.sql
index 9514a9c0170..712def1a757 100644
--- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.oracle.create.common.sql
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.oracle.create.common.sql
@@ -16,7 +16,7 @@ create table ACT_GE_BYTEARRAY (
);
insert into ACT_GE_PROPERTY
-values ('common.schema.version', '8.1.0.2', 1);
+values ('common.schema.version', '8.1.0.3', 1);
insert into ACT_GE_PROPERTY
values ('next.dbid', '1', 1);
@@ -108,6 +108,7 @@ create table ACT_HI_IDENTITYLINK (
);
create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_);
+create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_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_);
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.postgres.create.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.postgres.create.common.sql
index 64a08b56776..76a569be70c 100644
--- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.postgres.create.common.sql
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.postgres.create.common.sql
@@ -16,7 +16,7 @@ create table ACT_GE_BYTEARRAY (
);
insert into ACT_GE_PROPERTY
-values ('common.schema.version', '8.1.0.2', 1);
+values ('common.schema.version', '8.1.0.3', 1);
insert into ACT_GE_PROPERTY
values ('next.dbid', '1', 1);
@@ -108,6 +108,7 @@ create table ACT_HI_IDENTITYLINK (
);
create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_);
+create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_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_);
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.db2.drop.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.db2.drop.common.sql
index 53ee0c19775..a15e3f4130e 100644
--- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.db2.drop.common.sql
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.db2.drop.common.sql
@@ -36,6 +36,7 @@ drop index ACT_IDX_IDENT_LNK_SCOPE_DEF;
drop table ACT_RU_IDENTITYLINK;
drop index ACT_IDX_HI_IDENT_LNK_USER;
+drop index ACT_IDX_HI_IDENT_LNK_GROUP;
drop index ACT_IDX_HI_IDENT_LNK_SCOPE;
drop index ACT_IDX_HI_IDENT_LNK_SUB_SCOPE;
drop index ACT_IDX_HI_IDENT_LNK_SCOPE_DEF;
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.h2.drop.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.h2.drop.common.sql
index ded6c3530e4..c2b3734b67f 100644
--- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.h2.drop.common.sql
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.h2.drop.common.sql
@@ -35,6 +35,7 @@ drop index if exists ACT_IDX_IDENT_LNK_SCOPE_DEF;
drop table if exists ACT_HI_IDENTITYLINK cascade constraints;
drop index if exists ACT_IDX_HI_IDENT_LNK_USER;
+drop index if exists ACT_IDX_HI_IDENT_LNK_GROUP;
drop index if exists ACT_IDX_HI_IDENT_LNK_SCOPE;
drop index if exists ACT_IDX_HI_IDENT_LNK_SUB_SCOPE;
drop index if exists ACT_IDX_HI_IDENT_LNK_SCOPE_DEF;
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.hsql.drop.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.hsql.drop.common.sql
index ded6c3530e4..c2b3734b67f 100644
--- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.hsql.drop.common.sql
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.hsql.drop.common.sql
@@ -35,6 +35,7 @@ drop index if exists ACT_IDX_IDENT_LNK_SCOPE_DEF;
drop table if exists ACT_HI_IDENTITYLINK cascade constraints;
drop index if exists ACT_IDX_HI_IDENT_LNK_USER;
+drop index if exists ACT_IDX_HI_IDENT_LNK_GROUP;
drop index if exists ACT_IDX_HI_IDENT_LNK_SCOPE;
drop index if exists ACT_IDX_HI_IDENT_LNK_SUB_SCOPE;
drop index if exists ACT_IDX_HI_IDENT_LNK_SCOPE_DEF;
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.mssql.drop.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.mssql.drop.common.sql
index b615d8aa698..0db086f2a70 100644
--- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.mssql.drop.common.sql
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.mssql.drop.common.sql
@@ -34,6 +34,7 @@ IF EXISTS (SELECT name FROM sysindexes WHERE name = 'ACT_IDX_IDENT_LNK_SCOPE_DEF
if exists (select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_NAME = 'ACT_RU_IDENTITYLINK') drop table ACT_RU_IDENTITYLINK;
IF EXISTS (SELECT name FROM sysindexes WHERE name = 'ACT_IDX_HI_IDENT_LNK_USER') drop index ACT_HI_IDENTITYLINK.ACT_IDX_HI_IDENT_LNK_USER;
+IF EXISTS (SELECT name FROM sysindexes WHERE name = 'ACT_IDX_HI_IDENT_LNK_GROUP') drop index ACT_HI_IDENTITYLINK.ACT_IDX_HI_IDENT_LNK_GROUP;
IF EXISTS (SELECT name FROM sysindexes WHERE name = 'ACT_IDX_HI_IDENT_LNK_SCOPE') drop index ACT_HI_IDENTITYLINK.ACT_IDX_HI_IDENT_LNK_SCOPE;
IF EXISTS (SELECT name FROM sysindexes WHERE name = 'ACT_IDX_HI_IDENT_LNK_SUB_SCOPE') drop index ACT_HI_IDENTITYLINK.ACT_IDX_HI_IDENT_LNK_SUB_SCOPE;
IF EXISTS (SELECT name FROM sysindexes WHERE name = 'ACT_IDX_HI_IDENT_LNK_SCOPE_DEF') drop index ACT_HI_IDENTITYLINK.ACT_IDX_HI_IDENT_LNK_SCOPE_DEF;
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.mysql.drop.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.mysql.drop.common.sql
index 5cb9c1fb01c..a3cb86272bd 100644
--- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.mysql.drop.common.sql
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.mysql.drop.common.sql
@@ -36,6 +36,7 @@ drop index ACT_IDX_IDENT_LNK_SCOPE_DEF on ACT_RU_IDENTITYLINK;
drop table if exists ACT_RU_IDENTITYLINK;
drop index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK;
+drop index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK;
drop index ACT_IDX_HI_IDENT_LNK_SCOPE on ACT_HI_IDENTITYLINK;
drop index ACT_IDX_HI_IDENT_LNK_SUB_SCOPE on ACT_HI_IDENTITYLINK;
drop index ACT_IDX_HI_IDENT_LNK_SCOPE_DEF on ACT_HI_IDENTITYLINK;
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.oracle.drop.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.oracle.drop.common.sql
index d4641eea246..609f5763d2d 100644
--- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.oracle.drop.common.sql
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.oracle.drop.common.sql
@@ -36,6 +36,7 @@ drop index ACT_IDX_IDENT_LNK_SCOPE_DEF;
drop table ACT_RU_IDENTITYLINK;
drop index ACT_IDX_HI_IDENT_LNK_USER;
+drop index ACT_IDX_HI_IDENT_LNK_GROUP;
drop index ACT_IDX_HI_IDENT_LNK_SCOPE;
drop index ACT_IDX_HI_IDENT_LNK_SUB_SCOPE;
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.db2.upgradestep.8102.to.8103.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.db2.upgradestep.8102.to.8103.common.sql
new file mode 100644
index 00000000000..b6e4cb89068
--- /dev/null
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.db2.upgradestep.8102.to.8103.common.sql
@@ -0,0 +1,3 @@
+create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_);
+
+update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'common.schema.version';
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.h2.upgradestep.8102.to.8103.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.h2.upgradestep.8102.to.8103.common.sql
new file mode 100644
index 00000000000..b6e4cb89068
--- /dev/null
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.h2.upgradestep.8102.to.8103.common.sql
@@ -0,0 +1,3 @@
+create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_);
+
+update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'common.schema.version';
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.hsql.upgradestep.8102.to.8103.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.hsql.upgradestep.8102.to.8103.common.sql
new file mode 100644
index 00000000000..b6e4cb89068
--- /dev/null
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.hsql.upgradestep.8102.to.8103.common.sql
@@ -0,0 +1,3 @@
+create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_);
+
+update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'common.schema.version';
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.mssql.upgradestep.8102.to.8103.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.mssql.upgradestep.8102.to.8103.common.sql
new file mode 100644
index 00000000000..b6e4cb89068
--- /dev/null
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.mssql.upgradestep.8102.to.8103.common.sql
@@ -0,0 +1,3 @@
+create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_);
+
+update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'common.schema.version';
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.mysql.upgradestep.8102.to.8103.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.mysql.upgradestep.8102.to.8103.common.sql
new file mode 100644
index 00000000000..b6e4cb89068
--- /dev/null
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.mysql.upgradestep.8102.to.8103.common.sql
@@ -0,0 +1,3 @@
+create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_);
+
+update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'common.schema.version';
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.oracle.upgradestep.8102.to.8103.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.oracle.upgradestep.8102.to.8103.common.sql
new file mode 100644
index 00000000000..b6e4cb89068
--- /dev/null
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.oracle.upgradestep.8102.to.8103.common.sql
@@ -0,0 +1,3 @@
+create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_);
+
+update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'common.schema.version';
diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.postgres.upgradestep.8102.to.8103.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.postgres.upgradestep.8102.to.8103.common.sql
new file mode 100644
index 00000000000..b6e4cb89068
--- /dev/null
+++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.postgres.upgradestep.8102.to.8103.common.sql
@@ -0,0 +1,3 @@
+create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_);
+
+update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'common.schema.version';
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.cockroachdb.create.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.cockroachdb.create.engine.sql
index d8dbb626822..0a465a87997 100644
--- a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.cockroachdb.create.engine.sql
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.cockroachdb.create.engine.sql
@@ -352,7 +352,7 @@ alter table ACT_PROCDEF_INFO
unique (PROC_DEF_ID_);
insert into ACT_GE_PROPERTY
-values ('schema.version', '8.1.0.2', 1);
+values ('schema.version', '8.1.0.3', 1);
insert into ACT_GE_PROPERTY
values ('schema.history', 'create(8.1.0.2)', 1);
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.db2.create.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.db2.create.engine.sql
index d072d4b1666..e2ded506e49 100644
--- a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.db2.create.engine.sql
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.db2.create.engine.sql
@@ -347,7 +347,7 @@ alter table ACT_PROCDEF_INFO
unique (PROC_DEF_ID_);
insert into ACT_GE_PROPERTY
-values ('schema.version', '8.1.0.2', 1);
+values ('schema.version', '8.1.0.3', 1);
insert into ACT_GE_PROPERTY
values ('schema.history', 'create(8.1.0.2)', 1);
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.h2.create.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.h2.create.engine.sql
index 53b734f42c9..88da6be4bdb 100644
--- a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.h2.create.engine.sql
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.h2.create.engine.sql
@@ -323,7 +323,7 @@ alter table ACT_PROCDEF_INFO
unique (PROC_DEF_ID_);
insert into ACT_GE_PROPERTY
-values ('schema.version', '8.1.0.2', 1);
+values ('schema.version', '8.1.0.3', 1);
insert into ACT_GE_PROPERTY
values ('schema.history', 'create(8.1.0.2)', 1);
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.hsql.create.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.hsql.create.engine.sql
index a7149709417..aab31a80b49 100644
--- a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.hsql.create.engine.sql
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.hsql.create.engine.sql
@@ -323,7 +323,7 @@ alter table ACT_PROCDEF_INFO
unique (PROC_DEF_ID_);
insert into ACT_GE_PROPERTY
-values ('schema.version', '8.1.0.2', 1);
+values ('schema.version', '8.1.0.3', 1);
insert into ACT_GE_PROPERTY
values ('schema.history', 'create(8.1.0.2)', 1);
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.mssql.create.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.mssql.create.engine.sql
index c96de161961..b2e1cac850f 100644
--- a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.mssql.create.engine.sql
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.mssql.create.engine.sql
@@ -343,7 +343,7 @@ alter table ACT_PROCDEF_INFO
unique (PROC_DEF_ID_);
insert into ACT_GE_PROPERTY
-values ('schema.version', '8.1.0.2', 1);
+values ('schema.version', '8.1.0.3', 1);
insert into ACT_GE_PROPERTY
values ('schema.history', 'create(8.1.0.2)', 1);
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.mysql.create.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.mysql.create.engine.sql
index 7fd45810d25..4443de4cc22 100644
--- a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.mysql.create.engine.sql
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.mysql.create.engine.sql
@@ -324,7 +324,7 @@ alter table ACT_PROCDEF_INFO
unique (PROC_DEF_ID_);
insert into ACT_GE_PROPERTY
-values ('schema.version', '8.1.0.2', 1);
+values ('schema.version', '8.1.0.3', 1);
insert into ACT_GE_PROPERTY
values ('schema.history', 'create(8.1.0.2)', 1);
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.oracle.create.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.oracle.create.engine.sql
index 83d536eb475..0d6afc0cbb0 100644
--- a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.oracle.create.engine.sql
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.oracle.create.engine.sql
@@ -352,7 +352,7 @@ alter table ACT_PROCDEF_INFO
unique (PROC_DEF_ID_);
insert into ACT_GE_PROPERTY
-values ('schema.version', '8.1.0.2', 1);
+values ('schema.version', '8.1.0.3', 1);
insert into ACT_GE_PROPERTY
values ('schema.history', 'create(8.1.0.2)', 1);
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.postgres.create.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.postgres.create.engine.sql
index 0c2c3c8f915..68e36d97865 100644
--- a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.postgres.create.engine.sql
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.postgres.create.engine.sql
@@ -352,7 +352,7 @@ alter table ACT_PROCDEF_INFO
unique (PROC_DEF_ID_);
insert into ACT_GE_PROPERTY
-values ('schema.version', '8.1.0.2', 1);
+values ('schema.version', '8.1.0.3', 1);
insert into ACT_GE_PROPERTY
values ('schema.history', 'create(8.1.0.2)', 1);
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/Execution.xml b/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/Execution.xml
index 291d52fdd4e..b65ad7dbe27 100644
--- a/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/Execution.xml
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/Execution.xml
@@ -1362,33 +1362,31 @@
and A.END_TIME_ is null)
-
- or EXISTS(select ID_ from ${prefix}ACT_RU_IDENTITYLINK I where I.PROC_INST_ID_ = RES.ID_ and I.USER_ID_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR})
-
-
- or EXISTS(select ID_ from ${prefix}ACT_RU_IDENTITYLINK I where I.PROC_INST_ID_ = RES.ID_ and
- I.USER_ID_ = #{orQueryObject.involvedUserIdentityLink.userId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedUserIdentityLink.type, jdbcType=NVARCHAR})
-
-
- or EXISTS(select ID_ from ${prefix}ACT_RU_IDENTITYLINK I where I.PROC_INST_ID_ = RES.ID_ and
- (
-
-
- or
+
+
+ or EXISTS(select ID_ from ${prefix}ACT_RU_IDENTITYLINK I where I.PROC_INST_ID_ = RES.ID_ and
+
+
+ or I.USER_ID_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR}
- I.GROUP_ID_ IN
-
- #{groupId, jdbcType=NVARCHAR}
-
-
- )
+
+ or (I.USER_ID_ = #{orQueryObject.involvedUserIdentityLink.userId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedUserIdentityLink.type, jdbcType=NVARCHAR})
+
+
+
+ or I.GROUP_ID_ IN
+
+ #{groupId, jdbcType=NVARCHAR}
+
+
+
+
+ or (I.GROUP_ID_ = #{orQueryObject.involvedGroupIdentityLink.groupId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedGroupIdentityLink.type, jdbcType=NVARCHAR})
+
+
)
-
- or EXISTS(select ID_ from ${prefix}ACT_RU_IDENTITYLINK I where I.PROC_INST_ID_ = RES.ID_ and
- I.GROUP_ID_ = #{orQueryObject.involvedGroupIdentityLink.groupId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedGroupIdentityLink.type, jdbcType=NVARCHAR})
-
or
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/HistoricProcessInstance.xml b/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/HistoricProcessInstance.xml
index d259d25f1e9..93d60585f1a 100644
--- a/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/HistoricProcessInstance.xml
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/HistoricProcessInstance.xml
@@ -1142,34 +1142,32 @@
and A.END_TIME_ is null)
-
- or (exists(select LINK.USER_ID_ from ${prefix}ACT_HI_IDENTITYLINK LINK where USER_ID_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR} and LINK.PROC_INST_ID_ = ${queryTablePrefix}ID_))
-
-
- or EXISTS(select ID_ from ${prefix}ACT_HI_IDENTITYLINK I where I.PROC_INST_ID_ = ${queryTablePrefix}ID_ and
- I.USER_ID_ = #{orQueryObject.involvedUserIdentityLink.userId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedUserIdentityLink.type, jdbcType=NVARCHAR})
-
-
+
+
or EXISTS(
- select ID_ from ${prefix}ACT_HI_IDENTITYLINK LINK where LINK.PROC_INST_ID_ = ${queryTablePrefix}ID_ and
- (
-
-
- or
+ select ID_ from ${prefix}ACT_HI_IDENTITYLINK LINK where LINK.PROC_INST_ID_ = ${queryTablePrefix}ID_ and
+
+
+ or LINK.USER_ID_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR}
- LINK.GROUP_ID_ IN
-
- #{group, jdbcType=NVARCHAR}
-
-
- )
+
+ or (LINK.USER_ID_ = #{orQueryObject.involvedUserIdentityLink.userId, jdbcType=NVARCHAR} and LINK.TYPE_ = #{orQueryObject.involvedUserIdentityLink.type, jdbcType=NVARCHAR})
+
+
+
+ or LINK.GROUP_ID_ IN
+
+ #{group, jdbcType=NVARCHAR}
+
+
+
+
+ or (LINK.GROUP_ID_ = #{orQueryObject.involvedGroupIdentityLink.groupId, jdbcType=NVARCHAR} and LINK.TYPE_ = #{orQueryObject.involvedGroupIdentityLink.type, jdbcType=NVARCHAR})
+
+
)
-
- or EXISTS(select ID_ from ${prefix}ACT_HI_IDENTITYLINK I where I.PROC_INST_ID_ = ${queryTablePrefix}ID_ and
- I.GROUP_ID_ = #{orQueryObject.involvedGroupIdentityLink.groupId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedGroupIdentityLink.type, jdbcType=NVARCHAR})
-
or ${queryTablePrefix}START_USER_ID_ = #{orQueryObject.startedBy, jdbcType=NVARCHAR}
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/ProcessDefinition.xml b/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/ProcessDefinition.xml
index 33eda936fa0..71d5b475e9c 100644
--- a/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/ProcessDefinition.xml
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/ProcessDefinition.xml
@@ -268,28 +268,27 @@
and exists(select 1 from ${prefix}ACT_RU_EVENT_SUBSCR EVT where RES.ID_ = EVT.CONFIGURATION_ and EVT.EVENT_TYPE_ = #{eventSubscriptionType, jdbcType=NVARCHAR} and EVT.EVENT_NAME_ = #{eventSubscriptionName, jdbcType=NVARCHAR})
- AND
+
+ AND exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.PROC_DEF_ID_ = RES.ID_ and
- exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.PROC_DEF_ID_ = RES.ID_ and IDN.USER_ID_ = #{authorizationUserId, jdbcType=NVARCHAR})
+ IDN.USER_ID_ = #{authorizationUserId, jdbcType=NVARCHAR}
-
- OR exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.PROC_DEF_ID_ = RES.ID_ and
- (
-
-
- or
-
- IDN.GROUP_ID_ IN
-
- #{groupId, jdbcType=NVARCHAR}
-
-
- )
- )
+
+ OR
+
+
+ or
+
+ IDN.GROUP_ID_ IN
+
+ #{groupId, jdbcType=NVARCHAR}
+
+
+ )
diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/upgrade/flowable.all.upgradestep.8102.to.8103.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/upgrade/flowable.all.upgradestep.8102.to.8103.engine.sql
new file mode 100644
index 00000000000..81ff4add4dc
--- /dev/null
+++ b/modules/flowable-engine/src/main/resources/org/flowable/db/upgrade/flowable.all.upgradestep.8102.to.8103.engine.sql
@@ -0,0 +1 @@
+update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'schema.version';
diff --git a/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/mgmt/ExternalWorkerJobQueryTest.java b/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/mgmt/ExternalWorkerJobQueryTest.java
index a08ab858d40..e6b6ccb48eb 100755
--- a/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/mgmt/ExternalWorkerJobQueryTest.java
+++ b/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/mgmt/ExternalWorkerJobQueryTest.java
@@ -564,7 +564,76 @@ public void testAcquireForUserOrGroups() {
.extracting(ExternalWorkerJob::getId)
.containsExactlyInAnyOrder(userAndGroupJob.getId());
}
-
+
+ @Test
+ @Deployment(resources = "org/flowable/engine/test/api/mgmt/ExternalWorkerJobQueryTest.bpmn20.xml")
+ public void testOrQueryForUserOrGroups() {
+ runtimeService.createProcessInstanceBuilder()
+ .processDefinitionKey("externalWorkerJobQueryTest")
+ .start();
+
+ runtimeService.createProcessInstanceBuilder()
+ .processDefinitionKey("externalWorkerJobQueryTest")
+ .start();
+
+ List jobs = managementService.createExternalWorkerJobQuery().list();
+ assertThat(jobs).hasSize(4);
+
+ ExternalWorkerJob onlyUserJob = jobs.get(0);
+ ExternalWorkerJob onlyGroupJob = jobs.get(1);
+ ExternalWorkerJob userAndGroupJob = jobs.get(2);
+ ExternalWorkerJob noLinkJob = jobs.get(3);
+
+ addUserIdentityLinkToJob(onlyUserJob, "gonzo");
+ addGroupIdentityLinkToJob(onlyGroupJob, "bears");
+ addGroupIdentityLinkToJob(userAndGroupJob, "frogs");
+ addUserIdentityLinkToJob(userAndGroupJob, "fozzie");
+
+ assertThat(managementService.createExternalWorkerJobQuery()
+ .or()
+ .forUserOrGroups("kermit", Collections.singleton("muppets"))
+ .jobId("invalid")
+ .endOr()
+ .list())
+ .isEmpty();
+
+ assertThat(managementService.createExternalWorkerJobQuery()
+ .or()
+ .forUserOrGroups("gonzo", Collections.singleton("bears"))
+ .jobId("invalid")
+ .endOr()
+ .list())
+ .extracting(ExternalWorkerJob::getId)
+ .containsExactlyInAnyOrder(onlyUserJob.getId(), onlyGroupJob.getId());
+
+ assertThat(managementService.createExternalWorkerJobQuery()
+ .or()
+ .forUserOrGroups("fozzie", Collections.singleton("bears"))
+ .jobId(noLinkJob.getId())
+ .endOr()
+ .list())
+ .extracting(ExternalWorkerJob::getId)
+ .containsExactlyInAnyOrder(onlyGroupJob.getId(), userAndGroupJob.getId(), noLinkJob.getId());
+
+ assertThat(managementService.createExternalWorkerJobQuery()
+ .or()
+ .forUserOrGroups(null, Collections.singleton("frogs"))
+ .jobId("invalid")
+ .endOr()
+ .list())
+ .extracting(ExternalWorkerJob::getId)
+ .containsExactlyInAnyOrder(userAndGroupJob.getId());
+
+ assertThat(managementService.createExternalWorkerJobQuery()
+ .or()
+ .forUserOrGroups("gonzo", Collections.emptyList())
+ .jobId("invalid")
+ .endOr()
+ .list())
+ .extracting(ExternalWorkerJob::getId)
+ .containsExactlyInAnyOrder(onlyUserJob.getId());
+ }
+
@Test
@Deployment(resources = "org/flowable/engine/test/api/mgmt/ExternalWorkerJobQueryTest.bpmn20.xml")
public void testUnaquireWithJobId() {
diff --git a/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/runtime/InstanceInvolvementTest.java b/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/runtime/InstanceInvolvementTest.java
index 143798fb90e..1e772719681 100644
--- a/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/runtime/InstanceInvolvementTest.java
+++ b/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/runtime/InstanceInvolvementTest.java
@@ -24,6 +24,7 @@
import org.flowable.common.engine.impl.AbstractEngineConfiguration;
import org.flowable.common.engine.impl.history.HistoryLevel;
+import org.flowable.engine.history.HistoricProcessInstance;
import org.flowable.engine.history.HistoricProcessInstanceQuery;
import org.flowable.engine.impl.test.HistoryTestHelper;
import org.flowable.engine.impl.test.PluggableFlowableTestCase;
@@ -401,6 +402,162 @@ public void testOrOneInvolvedUserTogetherWithGroup() {
involvedUser("kermit").involvedGroups(Collections.singleton("testGroup")).endOr().count()).isEqualTo(1);
}
+ @Test
+ @Deployment(resources = { "org/flowable/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" })
+ public void testOrInvolvedUserOrGroupsInMultiple() {
+ ProcessInstance userInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess");
+ runtimeService.addUserIdentityLink(userInstance.getId(), "kermit", IdentityLinkType.PARTICIPANT);
+ ProcessInstance groupInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess");
+ runtimeService.addGroupIdentityLink(groupInstance.getId(), "testGroup2", IdentityLinkType.CANDIDATE);
+ ProcessInstance otherInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess");
+ runtimeService.addUserIdentityLink(otherInstance.getId(), "gonzo", IdentityLinkType.PARTICIPANT);
+ runtimeService.addGroupIdentityLink(otherInstance.getId(), "otherGroup", IdentityLinkType.PARTICIPANT);
+
+ Set groups = Set.of("testGroup", "testGroup2");
+ assertThat(runtimeService.createProcessInstanceQuery().or().involvedUser("kermit").involvedGroups(groups).endOr().list())
+ .extracting(ProcessInstance::getId)
+ .containsExactlyInAnyOrder(userInstance.getId(), groupInstance.getId());
+ assertThat(runtimeService.createProcessInstanceQuery().or().involvedUser("kermit").involvedGroups(groups).endOr().count())
+ .isEqualTo(2);
+
+ assertThat(runtimeService.createProcessInstanceQuery()
+ .or().involvedUser("kermit").involvedGroups(groups).processInstanceId(otherInstance.getId()).endOr()
+ .list())
+ .extracting(ProcessInstance::getId)
+ .containsExactlyInAnyOrder(userInstance.getId(), groupInstance.getId(), otherInstance.getId());
+
+ assertThat(runtimeService.createProcessInstanceQuery()
+ .processInstanceId(groupInstance.getId())
+ .or().involvedUser("kermit").involvedGroups(groups).endOr()
+ .list())
+ .extracting(ProcessInstance::getId)
+ .containsExactly(groupInstance.getId());
+
+ assertThat(runtimeService.createProcessInstanceQuery().or().involvedUser("fozzie").involvedGroups(Set.of("unknownGroup")).endOr().count())
+ .isZero();
+ }
+
+ @Test
+ @Deployment(resources = { "org/flowable/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" })
+ public void testHistoryOrInvolvedUserOrGroupsInMultiple() {
+ ProcessInstance userInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess");
+ runtimeService.addUserIdentityLink(userInstance.getId(), "kermit", IdentityLinkType.PARTICIPANT);
+ ProcessInstance groupInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess");
+ runtimeService.addGroupIdentityLink(groupInstance.getId(), "testGroup2", IdentityLinkType.CANDIDATE);
+ ProcessInstance otherInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess");
+ runtimeService.addUserIdentityLink(otherInstance.getId(), "gonzo", IdentityLinkType.PARTICIPANT);
+ runtimeService.addGroupIdentityLink(otherInstance.getId(), "otherGroup", IdentityLinkType.PARTICIPANT);
+ taskService.complete(taskService.createTaskQuery().processInstanceId(groupInstance.getId()).singleResult().getId());
+
+ if (HistoryTestHelper.isHistoryLevelAtLeast(HistoryLevel.AUDIT, processEngineConfiguration)) {
+ Set groups = Set.of("testGroup", "testGroup2");
+ assertThat(historyService.createHistoricProcessInstanceQuery().or().involvedUser("kermit").involvedGroups(groups).endOr().list())
+ .extracting(HistoricProcessInstance::getId)
+ .containsExactlyInAnyOrder(userInstance.getId(), groupInstance.getId());
+ assertThat(historyService.createHistoricProcessInstanceQuery().or().involvedUser("kermit").involvedGroups(groups).endOr().count())
+ .isEqualTo(2);
+
+ assertThat(historyService.createHistoricProcessInstanceQuery()
+ .or().involvedUser("kermit").involvedGroups(groups).processInstanceId(otherInstance.getId()).endOr()
+ .list())
+ .extracting(HistoricProcessInstance::getId)
+ .containsExactlyInAnyOrder(userInstance.getId(), groupInstance.getId(), otherInstance.getId());
+
+ assertThat(historyService.createHistoricProcessInstanceQuery()
+ .finished()
+ .or().involvedUser("kermit").involvedGroups(groups).endOr()
+ .list())
+ .extracting(HistoricProcessInstance::getId)
+ .containsExactly(groupInstance.getId());
+
+ assertThat(historyService.createHistoricProcessInstanceQuery().or().involvedUser("fozzie").involvedGroups(Set.of("unknownGroup")).endOr().count())
+ .isZero();
+ }
+ }
+
+ @Test
+ @Deployment(resources = { "org/flowable/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" })
+ public void testOrInvolvedUsersAndGroupsWithIdentityLinkTypes() {
+ ProcessInstance userTypeInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess");
+ runtimeService.addUserIdentityLink(userTypeInstance.getId(), "kermit", "specialLink");
+ ProcessInstance userOtherTypeInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess");
+ runtimeService.addUserIdentityLink(userOtherTypeInstance.getId(), "kermit", "otherLink");
+ ProcessInstance groupTypeInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess");
+ runtimeService.addGroupIdentityLink(groupTypeInstance.getId(), "sales", "specialLink");
+ ProcessInstance groupOtherTypeInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess");
+ runtimeService.addGroupIdentityLink(groupOtherTypeInstance.getId(), "sales", "otherLink");
+ ProcessInstance groupsInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess");
+ runtimeService.addGroupIdentityLink(groupsInstance.getId(), "testGroup", "otherLink");
+
+ assertThat(runtimeService.createProcessInstanceQuery()
+ .or().involvedUser("kermit", "specialLink").involvedGroup("sales", "specialLink").endOr()
+ .list())
+ .extracting(ProcessInstance::getId)
+ .containsExactlyInAnyOrder(userTypeInstance.getId(), groupTypeInstance.getId());
+
+ assertThat(runtimeService.createProcessInstanceQuery()
+ .or().involvedUser("kermit", "specialLink").involvedGroups(Set.of("testGroup")).endOr()
+ .list())
+ .extracting(ProcessInstance::getId)
+ .containsExactlyInAnyOrder(userTypeInstance.getId(), groupsInstance.getId());
+
+ assertThat(runtimeService.createProcessInstanceQuery()
+ .or().involvedUser("kermit").involvedGroup("sales", "specialLink").involvedGroups(Set.of("testGroup")).endOr()
+ .list())
+ .extracting(ProcessInstance::getId)
+ .containsExactlyInAnyOrder(userTypeInstance.getId(), userOtherTypeInstance.getId(), groupTypeInstance.getId(), groupsInstance.getId());
+
+ assertThat(runtimeService.createProcessInstanceQuery()
+ .or()
+ .involvedUser("kermit", "specialLink")
+ .involvedGroup("sales", "specialLink")
+ .involvedGroups(Set.of("testGroup"))
+ .processInstanceId(groupOtherTypeInstance.getId())
+ .endOr()
+ .count())
+ .isEqualTo(4);
+
+ assertThat(runtimeService.createProcessInstanceQuery()
+ .or().involvedUser("kermit", "wrongType").involvedGroup("sales", "wrongType").endOr()
+ .count())
+ .isZero();
+
+ if (HistoryTestHelper.isHistoryLevelAtLeast(HistoryLevel.AUDIT, processEngineConfiguration)) {
+ assertThat(historyService.createHistoricProcessInstanceQuery()
+ .or().involvedUser("kermit", "specialLink").involvedGroup("sales", "specialLink").endOr()
+ .list())
+ .extracting(HistoricProcessInstance::getId)
+ .containsExactlyInAnyOrder(userTypeInstance.getId(), groupTypeInstance.getId());
+
+ assertThat(historyService.createHistoricProcessInstanceQuery()
+ .or().involvedUser("kermit", "specialLink").involvedGroups(Set.of("testGroup")).endOr()
+ .list())
+ .extracting(HistoricProcessInstance::getId)
+ .containsExactlyInAnyOrder(userTypeInstance.getId(), groupsInstance.getId());
+
+ assertThat(historyService.createHistoricProcessInstanceQuery()
+ .or().involvedUser("kermit").involvedGroup("sales", "specialLink").involvedGroups(Set.of("testGroup")).endOr()
+ .list())
+ .extracting(HistoricProcessInstance::getId)
+ .containsExactlyInAnyOrder(userTypeInstance.getId(), userOtherTypeInstance.getId(), groupTypeInstance.getId(), groupsInstance.getId());
+
+ assertThat(historyService.createHistoricProcessInstanceQuery()
+ .or()
+ .involvedUser("kermit", "specialLink")
+ .involvedGroup("sales", "specialLink")
+ .involvedGroups(Set.of("testGroup"))
+ .processInstanceId(groupOtherTypeInstance.getId())
+ .endOr()
+ .count())
+ .isEqualTo(4);
+
+ assertThat(historyService.createHistoricProcessInstanceQuery()
+ .or().involvedUser("kermit", "wrongType").involvedGroup("sales", "wrongType").endOr()
+ .count())
+ .isZero();
+ }
+ }
+
@Test
@Deployment(resources = { "org/flowable/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" })
public void testInvolvedGroupsWithHistoricProcessInstance() {
diff --git a/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/task/TaskQueryTest.java b/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/task/TaskQueryTest.java
index ba0ea516879..5afbb81bd67 100644
--- a/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/task/TaskQueryTest.java
+++ b/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/task/TaskQueryTest.java
@@ -27,6 +27,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import org.flowable.common.engine.api.FlowableException;
import org.flowable.common.engine.api.FlowableIllegalArgumentException;
@@ -904,6 +905,52 @@ public void testQueryByInvolvedGroupOrOwner() {
}
}
+ @Test
+ public void testQueryByOrInvolvedUserOrInvolvedGroups() {
+ try {
+ Task userLinkTask = taskService.newTask();
+ taskService.saveTask(userLinkTask);
+ taskService.addUserIdentityLink(userLinkTask.getId(), "involvedUser", IdentityLinkType.PARTICIPANT);
+ Task groupLinkTask = taskService.newTask();
+ taskService.saveTask(groupLinkTask);
+ taskService.addGroupIdentityLink(groupLinkTask.getId(), "involvedGroup2", IdentityLinkType.CANDIDATE);
+ Task assigneeTask = taskService.newTask();
+ assigneeTask.setAssignee("involvedUser");
+ taskService.saveTask(assigneeTask);
+ Task ownerTask = taskService.newTask();
+ ownerTask.setOwner("involvedUser");
+ taskService.saveTask(ownerTask);
+ Task otherTask = taskService.newTask();
+ taskService.saveTask(otherTask);
+ taskService.addUserIdentityLink(otherTask.getId(), "otherUser", IdentityLinkType.PARTICIPANT);
+ taskService.addGroupIdentityLink(otherTask.getId(), "otherGroup", IdentityLinkType.CANDIDATE);
+
+ Set groups = Set.of("involvedGroup1", "involvedGroup2");
+ assertThat(taskService.createTaskQuery().or().taskInvolvedUser("involvedUser").taskInvolvedGroups(groups).endOr().list())
+ .extracting(Task::getId)
+ .containsExactlyInAnyOrder(userLinkTask.getId(), groupLinkTask.getId(), assigneeTask.getId(), ownerTask.getId());
+ assertThat(taskService.createTaskQuery().or().taskInvolvedUser("involvedUser").taskInvolvedGroups(groups).endOr().count())
+ .isEqualTo(4);
+ assertThat(taskService.createTaskQuery().or().taskInvolvedUser("involvedUser").taskInvolvedGroups(groups).taskId(otherTask.getId()).endOr().list())
+ .extracting(Task::getId)
+ .containsExactlyInAnyOrder(userLinkTask.getId(), groupLinkTask.getId(), assigneeTask.getId(), ownerTask.getId(), otherTask.getId());
+ assertThat(taskService.createTaskQuery().or().taskInvolvedUser("unknownUser").taskInvolvedGroups(Set.of("unknownGroup")).endOr().count())
+ .isZero();
+
+ if (isHistoryLevelAtLeast(HistoryLevel.AUDIT)) {
+ assertThat(historyService.createHistoricTaskInstanceQuery().or().taskInvolvedUser("involvedUser").taskInvolvedGroups(groups).endOr().list())
+ .extracting(HistoricTaskInstance::getId)
+ .containsExactlyInAnyOrder(userLinkTask.getId(), groupLinkTask.getId(), assigneeTask.getId(), ownerTask.getId());
+ assertThat(historyService.createHistoricTaskInstanceQuery().or().taskInvolvedUser("unknownUser").taskInvolvedGroups(Set.of("unknownGroup"))
+ .endOr().count())
+ .isZero();
+ }
+
+ } finally {
+ deleteAllTasks();
+ }
+ }
+
@Test
public void testQueryByInvolvedGroupAndAssignee() {
try {
diff --git a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.db2.create.eventregistry.sql b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.db2.create.eventregistry.sql
index 5a21132870b..8488da5a471 100644
--- a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.db2.create.eventregistry.sql
+++ b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.db2.create.eventregistry.sql
@@ -16,4 +16,4 @@ CREATE TABLE FLW_CHANNEL_DEFINITION (ID_ VARCHAR(255) NOT NULL, NAME_ VARCHAR(25
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', '8.1.0.2', 1);
+values ('eventregistry.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.h2.create.eventregistry.sql b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.h2.create.eventregistry.sql
index a51e426895c..aca7bb907c1 100644
--- a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.h2.create.eventregistry.sql
+++ b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.h2.create.eventregistry.sql
@@ -16,4 +16,4 @@ CREATE TABLE FLW_CHANNEL_DEFINITION (ID_ VARCHAR(255) NOT NULL, NAME_ VARCHAR(25
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', '8.1.0.2', 1);
+values ('eventregistry.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.mssql.create.eventregistry.sql b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.mssql.create.eventregistry.sql
index 06654243387..8ef4239f1b3 100644
--- a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.mssql.create.eventregistry.sql
+++ b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.mssql.create.eventregistry.sql
@@ -16,4 +16,4 @@ CREATE TABLE FLW_CHANNEL_DEFINITION (ID_ varchar(255) NOT NULL, NAME_ nvarchar(2
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', '8.1.0.2', 1);
+values ('eventregistry.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.mysql.create.eventregistry.sql b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.mysql.create.eventregistry.sql
index f48d0d329c7..3dedab8fda7 100644
--- a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.mysql.create.eventregistry.sql
+++ b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.mysql.create.eventregistry.sql
@@ -16,4 +16,4 @@ CREATE TABLE FLW_CHANNEL_DEFINITION (ID_ VARCHAR(255) NOT NULL, NAME_ VARCHAR(25
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', '8.1.0.2', 1);
+values ('eventregistry.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.oracle.create.eventregistry.sql b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.oracle.create.eventregistry.sql
index 7ced0b858ad..9f22332713a 100644
--- a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.oracle.create.eventregistry.sql
+++ b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.oracle.create.eventregistry.sql
@@ -16,4 +16,4 @@ CREATE TABLE FLW_CHANNEL_DEFINITION (ID_ VARCHAR2(255) NOT NULL, NAME_ VARCHAR2(
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', '8.1.0.2', 1);
+values ('eventregistry.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.postgres.create.eventregistry.sql b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.postgres.create.eventregistry.sql
index 70b521fd133..8928a670e13 100644
--- a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.postgres.create.eventregistry.sql
+++ b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.postgres.create.eventregistry.sql
@@ -16,4 +16,4 @@ CREATE TABLE FLW_CHANNEL_DEFINITION (ID_ VARCHAR(255) NOT NULL, NAME_ VARCHAR(25
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', '8.1.0.2', 1);
+values ('eventregistry.schema.version', '8.1.0.3', 1);
diff --git a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/upgrade/flowable.all.upgradestep.8102.to.8103.eventregistry.sql b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/upgrade/flowable.all.upgradestep.8102.to.8103.eventregistry.sql
new file mode 100644
index 00000000000..dfa0db338c8
--- /dev/null
+++ b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/upgrade/flowable.all.upgradestep.8102.to.8103.eventregistry.sql
@@ -0,0 +1 @@
+update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'eventregistry.schema.version';
diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.cockroachdb.create.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.cockroachdb.create.identity.sql
index a5b4c4bab7d..6a39872630e 100644
--- a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.cockroachdb.create.identity.sql
+++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.cockroachdb.create.identity.sql
@@ -6,7 +6,7 @@ create table ACT_ID_PROPERTY (
);
insert into ACT_ID_PROPERTY
-values ('schema.version', '8.1.0.2', 1);
+values ('schema.version', '8.1.0.3', 1);
create table ACT_ID_BYTEARRAY (
ID_ varchar(64),
diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.db2.create.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.db2.create.identity.sql
index ecec3f94bac..40ab5742c42 100644
--- a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.db2.create.identity.sql
+++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.db2.create.identity.sql
@@ -6,7 +6,7 @@ create table ACT_ID_PROPERTY (
);
insert into ACT_ID_PROPERTY
-values ('schema.version', '8.1.0.2', 1);
+values ('schema.version', '8.1.0.3', 1);
create table ACT_ID_BYTEARRAY (
ID_ varchar(64) not null,
diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.h2.create.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.h2.create.identity.sql
index f323f3fd21d..7fd1eb60f10 100644
--- a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.h2.create.identity.sql
+++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.h2.create.identity.sql
@@ -6,7 +6,7 @@ create table ACT_ID_PROPERTY (
);
insert into ACT_ID_PROPERTY
-values ('schema.version', '8.1.0.2', 1);
+values ('schema.version', '8.1.0.3', 1);
create table ACT_ID_BYTEARRAY (
ID_ varchar(64),
diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.hsql.create.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.hsql.create.identity.sql
index 8d2d203b3a1..60a111bd0fe 100644
--- a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.hsql.create.identity.sql
+++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.hsql.create.identity.sql
@@ -6,7 +6,7 @@ create table ACT_ID_PROPERTY (
);
insert into ACT_ID_PROPERTY
-values ('schema.version', '8.1.0.2', 1);
+values ('schema.version', '8.1.0.3', 1);
create table ACT_ID_BYTEARRAY (
ID_ varchar(64),
diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.mssql.create.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.mssql.create.identity.sql
index feef8c730c8..33a32c054fd 100644
--- a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.mssql.create.identity.sql
+++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.mssql.create.identity.sql
@@ -6,7 +6,7 @@ create table ACT_ID_PROPERTY (
);
insert into ACT_ID_PROPERTY
-values ('schema.version', '8.1.0.2', 1);
+values ('schema.version', '8.1.0.3', 1);
create table ACT_ID_BYTEARRAY (
ID_ nvarchar(64),
diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.mysql.create.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.mysql.create.identity.sql
index cdc92dc05fa..bce026ae956 100644
--- a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.mysql.create.identity.sql
+++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.mysql.create.identity.sql
@@ -6,7 +6,7 @@ create table ACT_ID_PROPERTY (
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
insert into ACT_ID_PROPERTY
-values ('schema.version', '8.1.0.2', 1);
+values ('schema.version', '8.1.0.3', 1);
create table ACT_ID_BYTEARRAY (
ID_ varchar(64),
diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.oracle.create.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.oracle.create.identity.sql
index 8541d92857f..fd49f0a5e40 100644
--- a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.oracle.create.identity.sql
+++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.oracle.create.identity.sql
@@ -6,7 +6,7 @@ create table ACT_ID_PROPERTY (
);
insert into ACT_ID_PROPERTY
-values ('schema.version', '8.1.0.2', 1);
+values ('schema.version', '8.1.0.3', 1);
create table ACT_ID_BYTEARRAY (
ID_ NVARCHAR2(64),
diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.postgres.create.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.postgres.create.identity.sql
index 58b6f23cf75..936514d7d86 100644
--- a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.postgres.create.identity.sql
+++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.postgres.create.identity.sql
@@ -6,7 +6,7 @@ create table ACT_ID_PROPERTY (
);
insert into ACT_ID_PROPERTY
-values ('schema.version', '8.1.0.2', 1);
+values ('schema.version', '8.1.0.3', 1);
create table ACT_ID_BYTEARRAY (
ID_ varchar(64),
diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/upgrade/flowable.all.upgradestep.8102.to.8103.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/upgrade/flowable.all.upgradestep.8102.to.8103.identity.sql
new file mode 100644
index 00000000000..cea487ebf51
--- /dev/null
+++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/upgrade/flowable.all.upgradestep.8102.to.8103.identity.sql
@@ -0,0 +1 @@
+update ACT_ID_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'schema.version';
diff --git a/modules/flowable-job-service/src/main/resources/org/flowable/job/service/db/mapping/entity/ExternalWorkerJob.xml b/modules/flowable-job-service/src/main/resources/org/flowable/job/service/db/mapping/entity/ExternalWorkerJob.xml
index 1f65b54fda1..13f72d30c22 100755
--- a/modules/flowable-job-service/src/main/resources/org/flowable/job/service/db/mapping/entity/ExternalWorkerJob.xml
+++ b/modules/flowable-job-service/src/main/resources/org/flowable/job/service/db/mapping/entity/ExternalWorkerJob.xml
@@ -86,19 +86,23 @@
-
-
- exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_ID_ = RES.CORRELATION_ID_ and IDN.SCOPE_TYPE_ = 'externalWorker' and IDN.USER_ID_ = #{parameter.authorizedUser, jdbcType=NVARCHAR})
-
-
- OR exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_ID_ = RES.CORRELATION_ID_ and IDN.SCOPE_TYPE_ = 'externalWorker' and IDN.GROUP_ID_ IN
-
- #{groupId, jdbcType=NVARCHAR}
-
- )
-
-
+
+
+ and exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_ID_ = RES.CORRELATION_ID_ and IDN.SCOPE_TYPE_ = 'externalWorker' and
+
+
+ IDN.USER_ID_ = #{parameter.authorizedUser, jdbcType=NVARCHAR}
+
+
+ OR IDN.GROUP_ID_ IN
+
+ #{groupId, jdbcType=NVARCHAR}
+
+
+
+ )
+
and LOCK_EXP_TIME_ is null
${orderBy}
@@ -292,19 +296,23 @@
and (RES.SCOPE_TYPE_ = '' or RES.SCOPE_TYPE_ is null)
-
-
- exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_ID_ = RES.CORRELATION_ID_ and IDN.SCOPE_TYPE_ = 'externalWorker' and IDN.USER_ID_ = #{authorizedUser, jdbcType=NVARCHAR})
-
-
- OR exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_ID_ = RES.CORRELATION_ID_ and IDN.SCOPE_TYPE_ = 'externalWorker' and IDN.GROUP_ID_ IN
-
- #{groupId, jdbcType=NVARCHAR}
-
- )
-
-
+
+
+ and exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_ID_ = RES.CORRELATION_ID_ and IDN.SCOPE_TYPE_ = 'externalWorker' and
+
+
+ IDN.USER_ID_ = #{authorizedUser, jdbcType=NVARCHAR}
+
+
+ OR IDN.GROUP_ID_ IN
+
+ #{groupId, jdbcType=NVARCHAR}
+
+
+
+ )
+
and
@@ -427,20 +435,20 @@
or (RES.SCOPE_TYPE_ = '' or RES.SCOPE_TYPE_ is null)
- or
+ or exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_ID_ = RES.CORRELATION_ID_ and IDN.SCOPE_TYPE_ = 'externalWorker' and
- exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_ID_ = RES.CORRELATION_ID_ and IDN.SCOPE_TYPE_ = 'externalWorker' and IDN.USER_ID_ = #{orQueryObject.authorizedUser, jdbcType=NVARCHAR})
+ IDN.USER_ID_ = #{orQueryObject.authorizedUser, jdbcType=NVARCHAR}
- OR exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_ID_ = RES.CORRELATION_ID_ and IDN.SCOPE_TYPE_ = 'externalWorker' and IDN.GROUP_ID_ IN
+ OR IDN.GROUP_ID_ IN
#{groupId, jdbcType=NVARCHAR}
- )
+ )
diff --git a/modules/flowable-task-service/src/main/resources/org/flowable/task/service/db/mapping/entity/HistoricTaskInstance.xml b/modules/flowable-task-service/src/main/resources/org/flowable/task/service/db/mapping/entity/HistoricTaskInstance.xml
index 0bfd6acdaa6..31f726aba4b 100644
--- a/modules/flowable-task-service/src/main/resources/org/flowable/task/service/db/mapping/entity/HistoricTaskInstance.xml
+++ b/modules/flowable-task-service/src/main/resources/org/flowable/task/service/db/mapping/entity/HistoricTaskInstance.xml
@@ -1862,30 +1862,36 @@
)
-
- or (
- EXISTS(select LINK.ID_ from ${prefix}ACT_HI_IDENTITYLINK LINK where LINK.USER_ID_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR} and LINK.TASK_ID_ = ${queryTablePrefix}ID_)
- or ${queryTablePrefix}ASSIGNEE_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR}
- or ${queryTablePrefix}OWNER_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR}
- )
-
-
+
+
or
- EXISTS(select ID_ from ${prefix}ACT_HI_IDENTITYLINK LINK where LINK.TASK_ID_ = ${queryTablePrefix}ID_ and
+ EXISTS(select LINK.ID_ from ${prefix}ACT_HI_IDENTITYLINK LINK where LINK.TASK_ID_ = ${queryTablePrefix}ID_ and
(
-
-
- or
-
- LINK.GROUP_ID_ IN
-
- #{group, jdbcType=NVARCHAR}
+
+ LINK.USER_ID_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR}
+
+
+ or
+
+
+
+
+ or
+
+ LINK.GROUP_ID_ IN
+
+ #{group, jdbcType=NVARCHAR}
+
-
+
)
)
+
+ or ${queryTablePrefix}ASSIGNEE_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR}
+ or ${queryTablePrefix}OWNER_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR}
+
or EXISTS(select 1 from ${prefix}ACT_HI_ENTITYLINK LINK where
LINK.SCOPE_ID_ = #{orQueryObject.parentScopeId, jdbcType=NVARCHAR}
diff --git a/modules/flowable-task-service/src/main/resources/org/flowable/task/service/db/mapping/entity/Task.xml b/modules/flowable-task-service/src/main/resources/org/flowable/task/service/db/mapping/entity/Task.xml
index 673a26fb924..3a8e1942f27 100644
--- a/modules/flowable-task-service/src/main/resources/org/flowable/task/service/db/mapping/entity/Task.xml
+++ b/modules/flowable-task-service/src/main/resources/org/flowable/task/service/db/mapping/entity/Task.xml
@@ -1484,31 +1484,35 @@
)
)
-
- or (
- exists(select LINK.ID_ from ${prefix}ACT_RU_IDENTITYLINK LINK where LINK.USER_ID_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR} and LINK.TASK_ID_ = RES.ID_)
- or RES.ASSIGNEE_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR}
- or RES.OWNER_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR}
- )
-
-
- or (
- EXISTS(select LINK.ID_ from ${prefix}ACT_RU_IDENTITYLINK LINK where LINK.TASK_ID_ = RES.ID_ and
+
+
+ or EXISTS(select LINK.ID_ from ${prefix}ACT_RU_IDENTITYLINK LINK where LINK.TASK_ID_ = RES.ID_ and
(
-
-
+
+ LINK.USER_ID_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR}
+
+
or
-
- LINK.GROUP_ID_ IN
-
- #{groupId, jdbcType=NVARCHAR}
+
+
+
+
+ or
+
+ LINK.GROUP_ID_ IN
+
+ #{groupId, jdbcType=NVARCHAR}
+
-
+
)
- )
)
+
+ or RES.ASSIGNEE_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR}
+ or RES.OWNER_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR}
+
or EXISTS(select 1 from ${prefix}ACT_RU_ENTITYLINK LINK where
LINK.SCOPE_ID_ = #{orQueryObject.parentScopeId, jdbcType=NVARCHAR}