diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiGrid.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiGrid.java
index 276f59c..358ac4b 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiGrid.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiGrid.java
@@ -20,12 +20,35 @@
 import org.eclipse.openk.gridfailureinformation.bpmn.base.ProcessGrid;
 import org.eclipse.openk.gridfailureinformation.bpmn.base.ProcessTask;
 import org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.DecisionTask;
-import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.*;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.DecideFailureInfoCanceled;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.DecideFailureInfoHasSubordinatedInfos;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.DecideFailureInfoPlanned;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.DecideFailureInfoPublished;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.DecideFailureInfoUpdated;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.PublishFailureToChannelsTask;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.RePublishFailureToMailChannelsTask;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.ResetPublishedFlagOnChannelsTask;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.SetEndDateTask;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.ShortcutTask;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.StoreEditStatusOfParentToChildrenTask;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.StorePublishStatusTask;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.UIStoreFailureInformationTask;
 import org.eclipse.openk.gridfailureinformation.constants.Constants;
 import org.springframework.stereotype.Component;
 
-import static org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.DecisionTask.OutputPort.*;
-import static org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState.*;
+import static org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.DecisionTask.OutputPort.NO;
+import static org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.DecisionTask.OutputPort.PORT1;
+import static org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.DecisionTask.OutputPort.PORT2;
+import static org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.DecisionTask.OutputPort.PORT3;
+import static org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.DecisionTask.OutputPort.YES;
+import static org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState.CANCELED;
+import static org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState.CHECKED_FOR_PUBLISH_;
+import static org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState.COMPLETED;
+import static org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState.CREATED;
+import static org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState.NEW;
+import static org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState.PLANNED;
+import static org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState.QUALIFIED;
+import static org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState.UPDATED;
 
 @Log4j2
 @Component
@@ -68,8 +91,11 @@
         ProcessTask storeEditStatusUpdated = new ShortcutTask( UPDATED );
         ProcessTask resetPublishedFlagOnChannels = new ResetPublishedFlagOnChannelsTask();
 
-        DecisionTask<GfiProcessSubject> decideHasSubordinatedInfos = new DecideFailureInfoHasSubordinatedInfos();
-        ProcessTask storeEditStatusOfParentForChildren = new StoreEditStatusOfParentToChildrenTask();
+        DecisionTask<GfiProcessSubject> decideHasSubordinatedInfosCompleted = new DecideFailureInfoHasSubordinatedInfos();
+        ProcessTask storeEditStatusOfParentForChildrenCompleted = new StoreEditStatusOfParentToChildrenTask();
+
+        DecisionTask<GfiProcessSubject> decideHasSubordinatedInfosCancelled = new DecideFailureInfoHasSubordinatedInfos();
+        ProcessTask storeEditStatusOfParentForChildrenCancelled = new StoreEditStatusOfParentToChildrenTask();
 
         ProcessTask completedEndpoint = register( COMPLETED,
                 new UIStoreFailureInformationTask( "State COMPETED UI Task", true));
@@ -105,16 +131,19 @@
         rePublishToMailChannelsCompleted.connectOutputTo(decidePublishedOnComplete);
         decidePublishedOnComplete.connectOutputTo(YES, storePublicationStatusWithdrawn);
 
-        decidePublishedOnComplete.connectOutputTo(NO, decideHasSubordinatedInfos);
-        storePublicationStatusWithdrawn.connectOutputTo(decideHasSubordinatedInfos);
-        decideHasSubordinatedInfos.connectOutputTo(NO, completedEndpoint);
-        decideHasSubordinatedInfos.connectOutputTo(YES, storeEditStatusOfParentForChildren);
-        storeEditStatusOfParentForChildren.connectOutputTo(completedEndpoint);
+        decidePublishedOnComplete.connectOutputTo(NO, decideHasSubordinatedInfosCompleted);
+        storePublicationStatusWithdrawn.connectOutputTo(decideHasSubordinatedInfosCompleted);
+        decideHasSubordinatedInfosCompleted.connectOutputTo(NO, completedEndpoint);
+        decideHasSubordinatedInfosCompleted.connectOutputTo(YES, storeEditStatusOfParentForChildrenCompleted);
+        storeEditStatusOfParentForChildrenCompleted.connectOutputTo(completedEndpoint);
 
         storeEditStatusCanceled.connectOutputTo(decidePublished);
         decidePublished.connectOutputTo( YES, storePubStatusWithdrawnOnCancel);
-        decidePublished.connectOutputTo( NO, canceledEndpoint);
-        storePubStatusWithdrawnOnCancel.connectOutputTo( canceledEndpoint );
+        decidePublished.connectOutputTo( NO, decideHasSubordinatedInfosCancelled );
+        storePubStatusWithdrawnOnCancel.connectOutputTo( decideHasSubordinatedInfosCancelled );
+        decideHasSubordinatedInfosCancelled.connectOutputTo(YES, storeEditStatusOfParentForChildrenCancelled );
+        decideHasSubordinatedInfosCancelled.connectOutputTo(NO, canceledEndpoint );
+        storeEditStatusOfParentForChildrenCancelled.connectOutputTo( canceledEndpoint );
 
         publishMessageToChannels.connectOutputTo(storePublicationStatusPublished);
         storePublicationStatusPublished.connectOutputTo(updateMessage);
