You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added support for case and process instance migration validation in rest api and improved case instance migration with an option to automatically create plan item instances for new plan items
Copy file name to clipboardExpand all lines: modules/flowable-cmmn-api/src/main/java/org/flowable/cmmn/api/migration/CaseInstanceMigrationDocument.java
+2Lines changed: 2 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -28,6 +28,8 @@ public interface CaseInstanceMigrationDocument {
Copy file name to clipboardExpand all lines: modules/flowable-cmmn-api/src/main/java/org/flowable/cmmn/api/migration/CaseInstanceMigrationDocumentBuilder.java
+2Lines changed: 2 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -26,6 +26,8 @@ public interface CaseInstanceMigrationDocumentBuilder {
Copy file name to clipboardExpand all lines: modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/migration/CaseInstanceMigrationBuilderImpl.java
+7Lines changed: 7 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -47,6 +47,7 @@ public CaseInstanceMigrationBuilder fromCaseInstanceMigrationDocument(CaseInstan
Copy file name to clipboardExpand all lines: modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/migration/CaseInstanceMigrationDocumentBuilderImpl.java
+9Lines changed: 9 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -38,6 +38,7 @@ public class CaseInstanceMigrationDocumentBuilderImpl implements CaseInstanceMig
Copy file name to clipboardExpand all lines: modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/migration/CaseInstanceMigrationDocumentConstants.java
+2Lines changed: 2 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,8 @@ public interface CaseInstanceMigrationDocumentConstants {
Copy file name to clipboardExpand all lines: modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/migration/CaseInstanceMigrationDocumentConverter.java
+14Lines changed: 14 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -65,6 +65,10 @@ public static JsonNode convertToJson(CaseInstanceMigrationDocument caseInstanceM
65
65
if (caseInstanceMigrationDocument.getMigrateToCaseDefinitionTenantId() != null) {
Copy file name to clipboardExpand all lines: modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/migration/CaseInstanceMigrationDocumentImpl.java
+10Lines changed: 10 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -37,6 +37,7 @@ public class CaseInstanceMigrationDocumentImpl implements CaseInstanceMigrationD
Copy file name to clipboardExpand all lines: modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/migration/CaseInstanceMigrationManagerImpl.java
validationResult.addValidationMessage("Invalid mapping for add waiting for repetition plan item definition '" + planItemDefinitionId + "' cannot be found in the case definition");
for (StringplanItemDefinitionId : removeWaitingForRepetitionMappingLookupMap.keySet()) {
193
+
if (!hasPlanItemDefinition(cmmnModel, planItemDefinitionId)) {
194
+
validationResult.addValidationMessage("Invalid mapping for remove waiting for repetition plan item definition '" + planItemDefinitionId + "' cannot be found in the case definition");
195
+
}
196
+
}
197
+
198
+
for (ChangePlanItemDefinitionWithNewTargetIdsMappingchangePlanItemDefinitionIdMapping : document.getChangePlanItemDefinitionWithNewTargetIdsMappings()) {
199
+
if (!hasPlanItemDefinition(cmmnModel, changePlanItemDefinitionIdMapping.getNewPlanItemDefinitionId())) {
200
+
validationResult.addValidationMessage("Invalid mapping for changing the plan item definition id from '" + changePlanItemDefinitionIdMapping.getExistingPlanItemDefinitionId() +
201
+
"' to '" + changePlanItemDefinitionIdMapping.getNewPlanItemDefinitionId() + "', because the target can not be found in the case definition");
for (RemoveWaitingForRepetitionPlanItemDefinitionMappingplanItemDefinitionMapping : document.getRemoveWaitingForRepetitionPlanItemDefinitionMappings()) {
for (ChangePlanItemDefinitionWithNewTargetIdsMappingchangePlanItemDefinitionWithNewTargetIdsMapping : document.getChangePlanItemDefinitionWithNewTargetIdsMappings()) {
for (PlanItemDefinitionchildPlanItemDefinition : stage.getPlanItemDefinitions()) {
458
+
if (!mappedPlanItemDefinitionIds.contains(childPlanItemDefinition.getId()) && !planItemDefinitionIdsWithPlanItemInstanceMap.containsKey(childPlanItemDefinition.getId())) {
0 commit comments