Über die Architektur
Verstehe wie Workflow-Studio innerhalb Now Platform arbeitet, um Flows und Aktionen zu aktivieren, auszulösen und zu verarbeiten.
Ein Ablauf besteht aus einem Auslöser und mindestens einer Aktion. Der Auslöser gibt an, wann der Flow gestartet werden soll, der rekordbasiert , zeitplanbasiert oder anwendungsbasiert sein kann. Datensatzbasierte Auslöser führen einen Flow aus, nachdem ein Datensatz erstellt, aktualisiert oder gelöscht wurde. Der Flow kann den auslösenden Datensatz als Eingabe für Aktionen verwenden. Zeitplanbasierte Auslöser führen einen Flow zum angegebenen Datum und zur angegebenen Uhrzeit aus. Der Flow kann die Ausführungszeit als Eingabe für Aktionen verwenden. Auslöser für Anwendungen werden hinzugefügt, wenn die zugehörige Anwendung aktiviert wird. Der MetricBase Auslöser ist zum Beispiel vorhanden, wenn die MetricBase Anwendung aktiv ist.
Flow-Verarbeitung
- Wenn die Flow-Auslösebedingungen eintreten oder eine API den Flow direkt aufruft, erstellt das System einen Eintrag in der Ereigniswarteschlange, um den Flow zu starten.
- Der Scheduler verarbeitet das Ereignis und startet den Flow im Hintergrund.
- Das System erstellt aus dem Flow einen Prozessplan.
- Das System führt den Prozessplan mit dem Datensatz aus, der den Flow ausgelöst hat.
- Das System speichert die Ausführungsdetails in einem Kontextdatensatz.
- 1. Verarbeiten Sie Flow-Auslöser und API-Aufrufe
- Jedes Mal, wenn Auslöserbedingungen erfüllt sind oder eine API direkt einen Flow aufruft, erstellt Workflow-Studio einen Ereigniseintrag. Die Systemvorgänge löst Datenbankvorgänge aus. Weitere Informationen finden Sie unter Ausführungsreihenfolge von Skripts und Engines. Normalerweise werden die Funktionsweise von Business-Regeln und die Betriebsreihenfolge der Workflow-Engine, die synchron ausgeführt werden, vor einem ausgelösten Flow ausgeführt.
- 2. Ereignisse in der Warteschlange verarbeiten
- Jedes Flow-Ereignis enthält eine Referenz auf den zu startenden Flow und eine Referenz entweder auf den auslösenden Datensatz oder die Ausführungszeit. Das System verarbeitet diese Ereignisse mithilfe von Events, bei denen ein Planer die aktuellen Elemente in der Ereigniswarteschlange regelmäßig in der Reihenfolge durcharbeitet, in der sie hinzugefügt wurden. Abhängig von den anderen Ereignissen in der Warteschlange startet das System möglicherweise nicht sofort einen Flow. Flow-Designer sollten mit einer Verzögerungszeit zwischen dem Auftreten der Auslösebedingungen und dem tatsächlichen Beginn des Flows rechnen.
- 3. Den Prozessplan erstellen
Wenn Workflow-Studio ein Ereignis aus der Warteschlange geholt wird, erstellt es einen Prozessplan für die tatsächliche Durchführung des Flows. Ein Prozessplan enthält alle Informationen, die zur Ausführung eines Ablaufs erforderlich sind, z. B. die Reihenfolge der veröffentlichten Aktionen oder Unterabläufe, die Eingabewerte für jeden Unterablauf oder für jede Aktion, die für jede Aktion auszuführenden Aktionsschritte und die durch den Auslöser oder die Ausgabe der Teilaufgabe bereitgestellten Daten.
Workflow-Studio verwendet ein Just-in-Time-Kompilierungsschema, um sicherzustellen, dass Prozesspläne die neuesten Änderungen an Flows, Teilaufgaben und Aktionen enthalten. Wenn keine Änderungen festgestellt werden, verwendet Workflow-Studio eine zwischengespeicherte Kopie des Prozessplans. Andernfalls wird ein neuer Prozessplan erstellt.
Durch die automatische Suche nach aktualisierten Flows, Teilaufgaben und Aktionen mit Prozessplänen ermöglicht Workflow-Studio das Anwenden von Änderungen aus Aktualisierungssätzen und Upgrades, ohne die aktuellen Flows bearbeiten zu müssen. Wenn Sie veröffentlichte Aktionen in eine Zielinstanz verschieben, wird jeder Flow, der die veröffentlichte Aktion verwendet, bei der nächsten Ausführung automatisch aktualisiert.
Warnung:Wenn Sie Unterabläufe oder Aktionen ändern, die in aktivierten Flows verwendet werden, ändern Sie nicht die Ein- und Ausgänge, die im Unterablauf oder in der Aktion verwendet werden. Das Ändern von Ein- und Ausgängen kann zu Fehlern führen, wenn der aktivierte Flow das nächste Mal ausgelöst wird, da er nicht für die Verwendung der neuen Ein- und Ausgänge konfiguriert wurde. Alle derzeit ausgeführten Flows sind von Änderungen an den Ein- oder Ausgängen nicht betroffen, da der Flow die kompilierten Unterabläufe und Aktionen aus dem Prozessplan verwendet.- 4. Den Prozessplan ausführen
Workflow-Studio führt den Prozessplan als der in den Flow-Eigenschaften angegebene Benutzer und innerhalb des Flow-Anwendungsbereichs aus.
Beim Ausführen eines Ablaufs mit einem datensatzbasierten Auslöser speichert Workflow-Studio den auslösenden Datensatz als Instanz, die in der Schnittstelle als Datenpille dargestellt wird.
Jedes Mal, wenn Sie einem Flow eine Aktion hinzufügen, fügt Flow Designer eine Datenpille hinzu, um die Ergebnisse zu speichern. Der Name der Daten-Pill gibt die Reihenfolge im Flow und den Datentyp an. Flow-Designer verwenden Daten-Pills für Aktionsergebnisse, um Eingaben für andere Flows, Aktionen oder Subflows bereitzustellen. Flow-Designer können den Sequenzwert im Namen der Data-Pill verwenden, um sicherzustellen, dass sie die richtige Data-Pill als Eingabewert auswählen. Wenn ein Flow eine Aktion ausführt, generiert er den Laufzeitwert der Datenpille entsprechend seiner Verwendung.
- 5. Flow-Ausführungsdetails speichern
Workflow-Studio speichert die Flow-Ausführungsdetails in einer Flow-Kontextaufzeichnung, die diese Informationen enthält.
- Flow-Ergebnisstatus
- Laufzeit der Flow-Zeit
- Flow-Protokollmeldungen
- Flow-Konfigurations- und Laufzeitwerte
Jedes Mal, wenn ein Flow läuft, fügt Workflow-Studio einen Eintrag zur Flow-Ausführungsliste hinzu. Jeder Eintrag verfügt über einen eigenen Kontextdatensatz und eine entsprechende Seite mit Ausführungsdetails.Hinweis:Ein Flow-Ausführungskontext wird in einem einzelnen Thread ausgeführt. Es kann jedoch vorkommen, dass Sie Flows in separaten Kontexten ausführen möchten, auch wenn dies möglicherweise mehr Ressourcen Ihrer Instanz verbraucht. Informationen zur Ausführung von Subflows in separaten Flow-Kontexten innerhalb desselben Flow finden Sie unter Dynamische Flows.Ein Flow kann einen dieser Ergebnisstatus haben.
Status Beschreibung Abgeschlossen Der Flow wurde erfolgreich abgeschlossen. In Bearbeitung Der Flow wird ausgeführt. Standardmäßig verhindert eine Quotenregel für Transaktionen, dass Flows länger als eine Stunde ausgeführt werden. Warten Der Flow wartet auf ein anderes Ereignis. Ein Benutzer muss beispielsweise eine Aufgabe oder Genehmigung aktualisieren oder ein Datensatz muss einen bestimmten Status erreichen. Im Wartezustand wird der Flow stillgelegt und in einen Kontextdatensatz serialisiert. Abgebrochen Der Flow wurde von einem Benutzer abgebrochen. Fehler Der Flow hat einen Fehler festgestellt und wurde nicht mehr ausgeführt. Beispielsweise fehlt einer Aktion ein Eingabewert oder eine Quotentregel für Transaktionen hat den Flow gestoppt.
Flow, Unterablauf und Aktionslebenszyklus
Workflow-Studio verwendet den Flow-Status oder Aktionsstatus, um den aktuellen Status von Konfigurationsänderungen zu beschreiben.
- Flow-Status und Subflow-Status und Aktivierungsstatus
Das Feld Status gibt an, ob ein Prozessplan vorhanden ist, der mit dem Flow oder Subflow verbunden ist.
Flow-Status Beschreibung Geändert Gibt an, dass nicht gespeicherte Änderungen an einem Flow oder Unterablauf vorhanden sind. Geänderte Flows oder Unterabläufe wurden nicht gespeichert. Entwurf Gibt an, dass Änderungen an einem Flow oder einem Unterablauf gespeichert wurden, die nicht in einem Prozessplan gespeichert wurden. Flows mit dem Status "Entwurf" wurden gespeichert, aber nicht aktiviert. Unterabläufe mit dem Status "Entwurf" wurden gespeichert, aber nicht veröffentlicht. Veröffentlicht Gibt an, dass ein gespeicherter Prozessplan für den Flow oder den Unterablauf vorhanden ist. Veröffentlichte Flows wurden entweder aktiviert oder deaktiviert. Das Feld Aktiv gibt an, ob das System einen Flow oder Subflow ausführt.
Aktiv Beschreibung true Gibt an, dass der Flow oder Unterablauf aktiv ist und ausgeführt wird, wenn er ausgelöst oder aufgerufen wird. Der Flow wurde aktiviert oder der Unterablauf wurde veröffentlicht. Aktive Flows werden ausgeführt, wenn die Auslösebedingungen erfüllt sind oder wenn sie aufgerufen werden. Aktive Unterabläufe werden beim Aufruf ausgeführt. false Gibt an, dass der Flow inaktiv ist und nicht ausgeführt wird, wenn er ausgelöst oder aufgerufen wird. Ein inaktiver Flow wurde entweder nie aktiviert oder wurde deaktiviert. Ein inaktiver Unterablauf wurde nie veröffentlicht. Wenn Sie mit Flows arbeiten, können Sie:- Einen Flow speichern: Erstellt einen Entwurf des Flows.
- Einen Flow aktivieren: Aktiviert den Flow-Auslöser und wandelt den Flow in einen Prozessplan um.
- Einen Flow deaktivieren: Deaktiviert den Flow-Auslöser und verhindert neue Flow-Ausführungen. Derzeit laufende Flows laufen weiterhin.
Bei der Arbeit mit Subflows können Sie:
- Einen Subflow speichern: Erstellt einen Entwurf für einen Subflow. Wenn der Unterablauf nach der Veröffentlichung geändert wird, wechselt der Unterablauf in den Status „Entwurf“. Alle aktiven Flows, die den Subflow verwenden, führen nur den veröffentlichten Subflow aus.
- Einen Subflow veröffentlichen: Mit dieser Option können Sie einen Flow aktivieren, der den Subflow enthält. Bei der Veröffentlichung wird der Subflow der Liste der verfügbaren Subflows in einem Flow hinzugefügt.
- Aktionsstatus
Die Workflow-Studio Schnittstelle zeigt den Konfigurationsstatus der Aktionen nicht an. Um den Aktionsstatus anzuzeigen, navigieren Sie zur Tabelle Aktionstypen [sys_hub_action_type_definition] und zeigen Sie das Feld Entwurfszustand an.
Aktionsentwurfsstatus Beschreibung Entwurf Gibt an, dass Änderungen an einer Aktion vorgenommen wurden, die nicht veröffentlicht wurden. Entwurfsaktionen sind nur für Flows verfügbar, wenn die Option Aktionsentwürfe anzeigen aktiviert ist. Sie können keinen Flow aktivieren, der Entwurfsaktionen enthält. Veröffentlicht Gibt an, dass die Aktion veröffentlicht wurde. Veröffentlichte Aktionen stehen allen Flows zur Verfügung und ermöglichen die Aktivierung von Flows. Bei der Arbeit mit Aktionen können Sie:
- Eine Aktion speichern: Erstellt einen Entwurf der Aktion, der nur für Flows verfügbar ist, wenn die Option Aktionsentwürfe anzeigen aktiviert ist. Wenn die Aktion nach der Veröffentlichung geändert wird, wechselt die Aktion in den Entwurfsstatus. Alle aktiven Bewegungen, die die Aktion verwenden, führen nur die veröffentlichte Aktion aus.
- Eine Aktion veröffentlichen: Ermöglicht die Aktivierung eines Flows, der die Aktion enthält. Durch das Veröffentlichen wird die Aktion der Liste der verfügbaren Aktionen in einem Flow hinzugefügt. Nur Aktionen in einem veröffentlichten Status werden während der Flow-Ausführung ausgeführt.
App-Entwicklung
Beachten Sie beim Entwerfen einer Aktion oder eines Flow die folgenden allgemeinen Richtlinien.
- Erstellen Sie eine benutzerdefinierte Anwendung zum Speichern von Flows und Aktionen.
- Legen Sie Anwendungsberechtigungen fest, um den Zugriff auf Anwendungsdaten freizugeben oder einzuschränken.
- Gewähren Sie Anwendungsentwicklern Zugriff auf Workflow-Studio .
- Veröffentlichen Sie benutzerdefinierte Anwendungen im Anwendungs-Repository, um Flows und Aktionen für andere Instanzen bereitzustellen.
Kollisionsvermeidung
Workflow-Studio unterstützt die Vermeidung von Kollisionen. Die Kollisionsvermeidung verhindert, dass ein Benutzer ein Objekt ändert, das in einem anderen Update Set geändert wird. Beispiel: Benutzer A bearbeitet einen Flow in einem bestimmten Update Set. Benutzer B, der in einem anderen Update Set arbeitet, versucht, denselben Flow zu öffnen. In dieser Situation erkennt das System eine Kollision und benachrichtigt Anwender B. Anwender B kann dann entweder Abbrechen oder Fortfahrenwählen. Wenn Sie „ Abbrechen “ auswählen, gelangt Benutzer B zurück zur Homepage Workflow-Studio. Wenn Sie „ Fortsetzen “ auswählen, wird der Flow im schreibgeschützten Modus geöffnet.
Damit die Kollisionsvermeidung funktioniert, müssen sich beide Benutzer im gleichen Anwendungsbereich befinden, und es muss sich um einen anderen Anwendungsbereich als „Global“ handeln. Darüber hinaus muss die zu ändernde Anwendung mit der Quellcodeverwaltung verknüpft sein. Weitere Informationen finden Sie unter Kollisionsvermeidung.
Sicherheit
Kontrollieren Sie den Zugriff auf Workflow-Studio Prozesse und Aufzeichnungen.
- -Administratoren können Benutzern Zugriff auf Flows Workflow-Studio ] gewähren, indem sie eine Anwendung erstellen und Benutzer als Entwickler mit der Berechtigung „ Workflow-Studio Delegierte App-Entwicklung “ zuweisen. Mit der delegierten Entwicklung können Administratoren steuern, ob Flow-Designer auf Funktionen zugreifen können, die normalerweise auf Administratorbenutzer beschränkt sind, z. B. das Zuweisen von Benutzerrollen, das Erstellen von Zugriffskontrollen oder das Erstellen von Skripts. Weitere Informationen finden Sie unter Entwicklerberechtigungen.
- Administratoren können Zugriff auf Flows Workflow-Studio gewähren, indem sie Anwendern direkt die Anwenderrolle „flow_designer“ zuweisen, die die Rolle zum Anzeigen von Flow-Ausführungsdetails umfasst.
Warnung:Einem Benutzer direkt die flow_designer-Rolle zuzuweisen, ist gleichbedeutend damit, dem Benutzer die Administratorrolle zu geben, weil Workflow-Studio als der Systembenutzer ausgeführt werden kann, der Zugriff auf alle Tabellen und alle Datenbankoperationen hat.
- Flow- und Aktionsdesigner können standardmäßige Anwendungszugriffseinstellungen verwenden, um zu verwalten, wie ihre Inhalte mit anderen Anwendungen interagieren.
Aktionslimit
Standardmäßig können Abläufe nicht mehr als 50 Aktionen umfassen. Um das Standardverhalten zu ändern, erhöhen Sie den Wert der Systemeigenschaft sn_flow_designer.max_actions. Berücksichtigen Sie jedoch die Auswirkungen, die ein großer Ablauf auf die Leistung Ihrer Instanz haben kann.
Optionen für das Auslösen von Datensatzaktualisierungen
- Erstellt oder aktualisiert
- Aktualisiert
Direkte Rekursionsverhinderung und indirekte Rekursionsgrenze
- Eine Aktion ruft den gleichen Flow auf, zu dem sie gehört. Ein Script-Schritt ruft zum Beispiel einen API-Aufruf für einen Flow auf.
- Eine Aktion oder ein Unterablauf erzeugt ein zum Flow-Auslöser passendes Ergebnis. Ein Flow, der beispielsweise ausgeführt wird, wenn ein Incident-Datensatz aktualisiert wird, enthält eine Aktualisierungsdatensatzaktion, die einen Incident-Datensatz aktualisiert.
- Derselbe Flow wird in einer Kette von Aufrufen von Unterabläufen mehrmals aufgerufen. Wenn zum Beispiel der Unterablauf A den Unterablauf B und der Unterablauf B den Unterablauf A aufruft, führt der Aufruf eines der Unterablaufs zu einer indirekten Rekursion.
- Derselbe Flow wird in einer Kette von Unterabläufen mehrmals ausgelöst. Angenommen, es gibt zwei Flows, die durch die Datensatzerstellung ausgelöst werden. Angenommen, das Erstellen des Datensatzes A löst den Flow A aus und erstellt auch den Datensatz B. Darüber hinaus löst das Erstellen des Datensatzes B den Flow B und den Datensatz A aus. Das Erstellen eines der Datensatztypen führt zu einer indirekten Rekursion.
Standardmäßig stoppt das System die Ausführung von Ablauf-Ausführungen, nachdem der Ausführungszähler die indirekte Rekursionsgrenze von drei Ausführungen erreicht hat. Administratoren können das Limit ändern, indem sie die Systemeigenschaft com.glide.hub.flow_engine.indirect_recursion_limit auf einen ganzzahligen Wert größer oder gleich eins festlegen. Das System ignoriert alle Eigenschaftswerte unter Eins und verwendet stattdessen ein Limit von Eins. Berücksichtigen Sie die Auswirkungen auf die Leistung, die eine Erhöhung des indirekten Rekursionslimits auf Ihre Instanz haben kann.
Flow- und Aktionstests
Beim Testen eines Flows werden die Auslösebedingungen umgangen und sofort ausgeführt. Zum Testen eines Flows mit einem datensatzbasierten Auslöser müssen Sie einen bestimmten Datensatz auswählen, der als Auslöser fungieren soll. Flow-Designer sollten vor dem Testen geeignete Beispieldatensätze erstellen. Weitere Informationen zum Testen von Flows finden Sie unter Abläufe testen.
Während der Designphase können Sie nicht veröffentlichte Aktionen testen, indem Sie im Flow Entwurfsaktionen anzeigen festlegen. Wenn Sie mit Entwurfsaktionen testen, verwenden Sie diese Richtlinien.
- Entwerfen Sie Flows und Aktionen in einer Nicht-Produktionsinstanz. Stellen Sie nur aktive, funktionierende Abläufe für Ihre Produktionsinstanz bereit.
- Lassen Sie „Entwurfsaktionen anzeigen “ auf „wahr“, bis sich Ihre Entwurfsaktion in einem endgültigen Status befindet. Veröffentlichen Sie jede Aktion, sobald sie abgeschlossen ist, setzen Sie die Option Aktionsentwürfe anzeigen auf "Falsch" und aktivieren Sie den Flow. Warnung:Deaktivieren Sie die Option Aktionsentwürfe anzeigen bevor das Veröffentlichen Ihrer Aktionen, alle Entwurfsaktionen aus Ihrem Flow entfernt.
- Jede Änderung, die Sie an einem aktiven Flow oder einer veröffentlichten Aktion vornehmen, führt dazu, dass er in den Entwurfszustand zurückkehrt. Wenn der Flow ausgelöst wird, führt das System nur den aktivierten Flow und die veröffentlichten Aktionen aus, und die Details zur Flow-Ausführung zeigen nur an, was ausgeführt wurde. Wenn ein Entwurf eines aktiven Flows vorhanden ist, können der Trigger und die in den Flow-Ausführungsdetails aufgeführten Aktionen von den im Entwurfs-Flow aufgeführten abweichen.