Workflow-Management
Veröffentlichungs-/Auscheck-Workflows
Workflows wirken sich auf Ihre Abläufe aus, sobald Sie sie veröffentlicht haben. Bis zur Veröffentlichung eines gültigen Workflows bleibt jeder Entwurf ein Arbeitsentwurf:

Bevor ESM einen Workflow in den aktiven Betrieb überführt, prüft es, ob das Workflow-Design gravierende Fehler enthält, wie z. B. fehlende Bedingungsanweisungen in Bedingungsaktivitäten. Elemente mit fehlerhafter Konfiguration werden auf der Editor-Leinwand mit roten Rändern markiert, bis die Konfiguration gültig ist.
Sobald ein Workflow im aktiven Dienst veröffentlicht wird, lösen alle neuen eingehenden Probleme die Ausführung des Workflows aus, wenn die Auswahlkriterien erfüllt sind.
Wenn Sie nach der Veröffentlichung eines Workflows feststellen, dass dieser nicht wie erwartet funktioniert oder Sie ihn abschaffen möchten, können Sie ihn aus dem aktiven Dienst entfernen, indem Sie ihn auschecken. Dadurch wird der Arbeitsentwurf auf die ausgecheckte Workflow-Definition zurückgesetzt. Alle laufenden Vorgänge, die vom ausgecheckten Workflow bearbeitet wurden, bleiben aktiv und ESM versucht, sie gemäß der ausgecheckten Workflow-Definition abzuschließen. Sie müssen Vorgänge manuell beenden, wenn sie sich nicht von selbst erledigen. Neue Vorgänge für die Vorlage werden nicht mehr vom ausgecheckten Workflow bearbeitet, sondern müssen manuell oder durch einen Ersatz-Workflow bearbeitet werden.
Workflow-Lebenszyklus
ESM verfolgt mehrere Versionen ein und desselben Workflows:
- Ein Arbeitsentwurf, der die letzte von Ihnen gespeicherte Version darstellt.
- Der zuletzt veröffentlichte Workflow, mit dem neu erstellte oder aktualisierte Datenkarten verarbeitet werden, wenn sie die Workflow-Auswahlkriterien erfüllen.
- Alle zuvor veröffentlichten Versionen von Workflow-Konfigurationen, solange noch Datenkarten verarbeitet werden.
Wenn Sie einen Workflow im Workflow-Editor öffnen, arbeiten Sie standardmäßig immer mit der Arbeitsentwurfsversion. Wenn Sie einen Workflow aus dem aktiven Dienst auschecken (d. h. die Veröffentlichung rückgängig machen), wird die Arbeitsentwurfsversion des Workflows auf die gerade ausgecheckte Workflow-Version zurückgesetzt.
Änderungen am Arbeitsentwurf werden nicht automatisch in der Datenbank gespeichert. Sie sollten die Änderungen speichern oder verwerfen, bevor Sie weitere Aktionen in ESM durchführen.
Notiz:
Durch das Speichern allein wird ein Workflow nicht im aktiven Dienst veröffentlicht. Durch das Speichern allein werden keine Änderungen an einem aktiv ausgeführten Workflow veröffentlicht.
Sie müssen Ihre Änderungen immer veröffentlichen, um sie für neue oder aktualisierte Datenkarten zu aktivieren. Wenn Sie einen Workflow im aktiven Dienst veröffentlichen, wird diese Version automatisch als neuer Arbeitsentwurf gespeichert.
Sie können Workflows aus ESM löschen, indem Sie die Schaltfläche „Löschen“ auswählen. Sie können jedoch nur Workflows löschen, die keine offenen Vorgänge haben. Um einen Workflow zu löschen, müssen Vorgänge entweder die gesamte Workflow-Sequenz durchlaufen haben oder von einem ESM-Benutzer beendet worden sein. Sie können alte Versionen von Workflow-Konfigurationen nicht manuell löschen. Diese werden vom System entfernt, sobald die letzte Datenkarte verarbeitet wurde.
Das Auschecken eines Workflows reicht nicht aus, um das Löschen zu ermöglichen, da möglicherweise noch Probleme mit dem Workflow aktiv bearbeitet werden. ESM überprüft immer, ob noch Probleme vorliegen, bevor das Löschen des Workflows zugelassen wird.
Exportieren/Importieren von Workflows
Jeder Workflow kann auf Ihre Workstation exportiert und anschließend wieder importiert werden, beispielsweise in ein Produktionssystem. Wählen Sie zum Exportieren und Importieren von Workflows aus dem Dropdown-Menü „Workflow“ die entsprechende Aktion aus. Denken Sie daran, auch die entsprechenden Vorlagen zu exportieren und zu importieren.
Beim Exportieren wird die zuletzt veröffentlichte Version des ausgewählten Workflows exportiert. Nur wenn keine veröffentlichte Version vorhanden ist, wird der Arbeitsentwurf exportiert.
Exportieren/Importieren von Workflow-Knoten
Es ist möglich, einen einzelnen Workflow-Knoten zu exportieren und ihn in einem anderen Workflow einer anderen Vorlage wiederzuverwenden. Wählen Sie dazu zunächst den entsprechenden Workflow-Knoten aus und wählen Sie anschließend im Workflow-Dropdown-Menü „Workflow-Knoten exportieren“. Der Workflow-Knoten wird anschließend auf Ihren Computer heruntergeladen.
Um einen Workflow-Knoten zu importieren, müssen Sie zunächst den Workflow auswählen, in den Sie den Workflow-Knoten importieren möchten. Attribute und Attributwerte, die in der Zielvorlage nicht übereinstimmen, werden nach dem Import durch leere Felder ersetzt. Die übliche Workflow-Validierung identifiziert mögliche Korrekturen, die im importierten Workflow-Knoten vorgenommen werden müssen.
Überprüfen des Workflow-Status eines Problems
Die Workflow-Engine verwaltet den Status des Workflows für jedes Problem. Der Status des Workflows wird in der Datenkartenansicht des Problems selbst angezeigt. Mögliche Status sind: Läuft, Beendet, Fehler oder Abgebrochen. Der Workflow-Status ist ein Systemwert, kann aber durch die Zuweisung des WorkflowStatusHandlers zu einem Attribut sichtbar gemacht werden.

Alle Benutzer können die Workflow-Ausführung manuell abbrechen, indem sie auf die Workflow-Statusanzeige klicken.
Notiz:
Wenn Genehmigungen über Efecte Self-Service ausgeführt werden, führt das manuelle Abbrechen von Workflows in ESM zu ausstehenden Genehmigungen in ESS, da diese nach dem manuellen Abbrechen in der aktuellen Software nicht entfernt werden.
Auditing-Workflow-Konfigurationen
ESM protokolliert Änderungen an den Workflows automatisch im systemweiten Konfigurationsprotokoll. Das Erstellen neuer Workflows, das Löschen, Veröffentlichen, Bearbeiten und Auschecken wird mit Zeitstempel und Benutzer-ID protokolliert. Sie können alle Änderungen an den Workflows anhand der Konfigurationsprotokolldatei überprüfen.
Protokollierung der Workflow-Ausführung
Zur Vereinfachung der Administration und Fehlerbehebung werden für jede Workflow-Ausführung Protokolleinträge generiert. Diese Einträge werden in der Datei workflow.log gespeichert. Um diese Protokolldatei herunterzuladen, navigieren Sie zu Administration > Wartung > Protokolle > Protokolle herunterladen . Nachfolgend sehen Sie ein Beispiel dafür, wie die Ausführung eines Workflow-Knotens in den Protokollen aufgezeichnet wird. Die fett hervorgehobenen Abschnitte stellen die wichtigsten Aspekte des Protokolls dar. Zur leichteren Bezugnahme ist der Protokollauszug fortlaufend nummeriert. Diese Nummern entsprechen denen im beigefügten Screenshot des jeweiligen Workflows, der nach dem Protokollauszug bereitgestellt wird.
1. WorkflowLogger|INFO|2023-03-22 10:12:12,123|datacard {id: 123456789, name: Ticket name| EFE-123456, templateName: Agreement checklist} run workflow {id: 371441422, name: Checklist approval workflow NEW , templateId: 119733870, wrapperId: 366102831}
2. WorkflowLogger|INFO|2023-03-22 10:12:12,123|datacard {id: 123456789, name: Ticket name| EFE-123456, templateName: Agreement checklist} running StartpointNode {id: 371440955, name: Begin}
3. WorkflowLogger|INFO|2023-03-22 10:12:12,273|datacard {id: 123456789, name: Ticket name| EFE-123456, templateName: Agreement checklist} running ConditionNode {id: 371441271, name: LOB SMB escalation or risk amount 1,5m}
4. WorkflowLogger|INFO|2023-03-22 10:12:12,275|datacard {id: 123456789, name: Ticket name| EFE-123456, templateName: Agreement checklist} run then path:Then
5. WorkflowLogger|INFO|2023-03-22 10:12:12,430|datacard {id: 123456789, name: Ticket name| EFE-123456, templateName: Agreement checklist} running ApprovalNode {id: 371441119, name: LOB SMB Approval }
WorkflowLogger|INFO|2023-03-29 13:46:25,469|datacard {id: 123456789, name: Ticket name| EFE-123456, templateName: Agreement checklist} running ApprovalNode {id: 371441119, name: LOB SMB Approval}
WorkflowLogger|INFO|2023-03-29 13:49:40,790|datacard {id: 123456789, name: Ticket name| EFE-123456, templateName: Agreement checklist} running ApprovalNode {id: 371441119, name: LOB SMB Approval}
6. WorkflowLogger|INFO|2023-03-29 13:49:41,748|datacard {id: 123456789, name: Ticket name| EFE-123456, templateName: Agreement checklist} running ApprovalNode {id: 371441165, name: Credit Committee Approval }'
WorkflowLogger|INFO|2023-03-31 06:47:55,392|datacard {id: 123456789, name: Ticket name| EFE-123456, templateName: Agreement checklist} running ApprovalNode {id: 371441165, name: Credit Committee Approval}
7. WorkflowLogger|INFO|2023-03-31 06:47:56,496|datacard {id: 123456789, name: Ticket name| EFE-123456, templateName: Agreement checklist} running EmailNode {id: 371441190, name: Notify onboarding team }
8. WorkflowLogger|INFO|2023-03-31 06:47:56,748|datacard {id: 123456789, name: Ticket name| EFE-123456, templateName: Agreement checklist} running ConditionNode {id: 371440832, name: Check risk amount }
9. WorkflowLogger|INFO|2023-03-31 06:47:56,748|datacard {id: 123456789, name: Ticket name| EFE-123456, templateName: Agreement checklist} run then path:Then
10. WorkflowLogger|INFO|2023-03-31 06:47:56,892|datacard {id: 123456789, name: Ticket name| EFE-123456, templateName: Agreement checklist} running WaitConditionNode {id: 371440854, name: Waiting for initial approval }
WorkflowLogger|INFO|2023-03-31 06:47:56,892|datacard {id: 123456789, name: Ticket name| EFE-123456, templateName: Agreement checklist} Conditions were not met. NodeId: WaitConditionNode{id='371440854', name='Waiting for initial approval', criteria=ConditionCollection[booleanOperator=AND,conditions=[SimpleCondition[operator=EQUAL_TO,leftOperand=AttributeOperand[groupAttributeId=119738157,ids=[371440842]],rightOperand=StaticValueOperand[value=StaticValueDTO[value=Initial approval,code=initial_approval,staticValueId=133859530],isOpen=false,id=371440844],id=371440847]],id=371440851]}. Workflow is pending for conditions of this node to be met before continuing.
11. WorkflowLogger|INFO|2023-03-31 08:53:03,606|datacard {id: 123456789, name: Ticket name| EFE-123456, templateName: Agreement checklist} running WaitConditionNode {id: 371440854, name: Waiting for initial approval }
WorkflowLogger|INFO|2023-03-31 08:53:03,606|datacard {id: 123456789, name: Ticket name| EFE-123456, templateName: Agreement checklist} Conditions were met. NodeId: WaitConditionNode{id='371440854', name='Waiting for initial approval', criteria=ConditionCollection[booleanOperator=AND,conditions=[SimpleCondition[operator=EQUAL_TO,leftOperand=AttributeOperand[groupAttributeId=119738157,ids=[371440842]],rightOperand=StaticValueOperand[value=StaticValueDTO[value=Initial approval,code=initial_approval,staticValueId=133859530],isOpen=false,id=371440844],id=371440847]],id=371440851]}. Workflow proceeds.
12. WorkflowLogger|INFO|2023-03-31 08:53:03,883|datacard {id: 123456789, name: Ticket name| EFE-123456, templateName: Agreement checklist} running SetValueNode {id: 371441300, name: Set decision to approved }
13. WorkflowLogger|INFO|2023-03-31 08:53:04,060|datacard {id: 123456789, name: Ticket name| EFE-123456, templateName: Agreement checklist} running EndpointNode {id: 371440960, name: Closed }
Beispiel eines Workflows mit nummerierten Verweisen auf den Workflow-Protokollausschnitt:

Protokollierung der Workflow-Ausführung und fehlgeschlagener Datenkartenspeicherungen
Wenn ein Listener oder Handler das Speichern einer Datenkarte durch den Workflow verhindert, wird das Ereignis in der Datei itsm.log und nicht im Workflow-Protokoll dokumentiert. Fehler dieser Art werden in Protokolleinträgen erfasst, die typischerweise wie folgt aussehen:
ErrorLogger|ERROR|2023-05-25 13:43:14,116|QuartzScheduler_Worker-3||Job (workflow.7548098#7546966#7546920#0 threw an exception.
org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: com.bitmount.boas.exception.PersistenceException: com.efecte.datamodel.entity.action.FatalDataCardActionException: Data card save failed due to fail_card attribute having a value.]
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
Caused by: com.bitmount.boas.exception.PersistenceException: com.efecte.datamodel.entity.action.FatalDataCardActionException: Data card save failed due to fail_card attribute having a value.Die letzte ID in der ersten Zeile gibt den spezifischen Workflow-Knoten an, an dem der Prozess angehalten wird.
Im Workflow-Protokoll sieht es so aus, als würde die Karte an dem Knoten anhalten, an dem der fehlgeschlagene Speichervorgang stattfindet. In der Benutzeroberfläche (UI) zeigt der Workflow-Schritt (oben rechts in der Kartenansicht) jedoch an, dass er sich an einem vorherigen Knoten befindet. Diese Diskrepanz entsteht, weil die Karte tatsächlich zum ersten vorhergehenden „Timer“- oder „Wartebedingung“-Knoten zurückkehrt, bevor der Speichervorgang fehlgeschlagen ist.