SI-745 automatischer Meldungsversand Grid angepasst
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 6289873..182e502 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
@@ -56,6 +56,7 @@
         ProcessTask storePubStatusWithdrawnOnCancel = new StorePublishStatusTask(Constants.PUB_STATUS_ZURUECKGEZOGEN);
         ProcessTask publishMessage = register( QUALIFIED,
                 new UIStoreFailureInformationTask( "State QUALIFIED UI Task", true));
+        ProcessTask rePublishToMailChannelsQualifiedAfterUpdated = new RePublishFailureToMailChannelsTask(UPDATED);
 
         ProcessTask publishMessageToChannels = register( CHECKED_FOR_PUBLISH_, new PublishFailureToChannelsTask());
         ProcessTask storePublicationStatusPublished = new StorePublishStatusTask(Constants.PUB_STATUS_VEROEFFENTLICHT);
@@ -66,7 +67,6 @@
         DecisionTask<GfiProcessSubject> decideUpdated = new DecideFailureInfoUpdated();
         ProcessTask storeEditStatusUpdated = new ShortcutTask( UPDATED );
         ProcessTask resetPublishedFlagOnChannels = new ResetPublishedFlagOnChannelsTask();
-        ProcessTask rePublishToMailChannelsUpdated = new RePublishFailureToMailChannelsTask(UPDATED);
 
         DecisionTask<GfiProcessSubject> decideHasSubordinatedInfos = new DecideFailureInfoHasSubordinatedInfos();
         ProcessTask storeEditStatusOfParentForChildren = new StoreEditStatusOfParentToChildrenTask();
@@ -92,7 +92,9 @@
         decideCanceled.connectOutputTo( YES, storeEditStatusCanceled ); //Status nicht speichern da sonst doppelt, -> nächster Porzessschritt
         decideCanceled.connectOutputTo( NO, storeEditStatusQualified ); //Status nicht speichern da sonst doppelt, -> nächster Porzessschritt
 
-        storeEditStatusQualified.connectOutputTo(publishMessage);
+        //Benachrichtigungsemail bei Qualified nachdem aktualisiert wurde und nur wenn schon veröffentlicht
+        storeEditStatusQualified.connectOutputTo(rePublishToMailChannelsQualifiedAfterUpdated);
+        rePublishToMailChannelsQualifiedAfterUpdated.connectOutputTo(publishMessage);
         publishMessage.connectOutputTo(decideUpdated);
         decideUpdated.connectOutputTo(PORT1, storeEditStatusUpdated);
         decideUpdated.connectOutputTo(PORT2, setEndDate);
@@ -117,10 +119,7 @@
         storePublicationStatusPublished.connectOutputTo(updateMessage);
 
         storeEditStatusUpdated.connectOutputTo(resetPublishedFlagOnChannels);
-
-        //Benachrichtigungsemail bei Update
-        resetPublishedFlagOnChannels.connectOutputTo(rePublishToMailChannelsUpdated);
-        rePublishToMailChannelsUpdated.connectOutputTo(qualifyMessage);
+        resetPublishedFlagOnChannels.connectOutputTo(qualifyMessage);
 
     }
 
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/RePublishFailureToMailChannelsTask.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/RePublishFailureToMailChannelsTask.java
index 600424f..6b9fdcf 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/RePublishFailureToMailChannelsTask.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/RePublishFailureToMailChannelsTask.java
@@ -19,6 +19,7 @@
 import org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.ServiceTask;
 import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState;
 import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessSubject;
+import org.eclipse.openk.gridfailureinformation.constants.Constants;
 
 @Log4j2
 public class RePublishFailureToMailChannelsTask extends ServiceTask<GfiProcessSubject> {
@@ -32,8 +33,9 @@
 
     @Override
     protected void onLeaveStep(GfiProcessSubject subject) {
-        subject.getProcessHelper().publishFailureInformation( subject.getFailureInformationDto(), true , processState );
-
+        if (Constants.PUB_STATUS_VEROEFFENTLICHT.equalsIgnoreCase(subject.getFailureInformationDto().getPublicationStatus())){
+            subject.getProcessHelper().publishFailureInformation( subject.getFailureInformationDto(), true , processState );
+        }
         log.debug("PublishFailureToChannelsTask onLeaveStep");
     }
 }