Über die Architektur

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 12 Minuten Lesedauer
  • Verstehe wie Flow Designer 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

    Die Flow-Verarbeitung erfolgt in dieser Reihenfolge.
    1. Wenn die Flow-Auslöserbedingungen erfüllt sind oder eine API den Flow direkt aufruft, erstellt das System einen Eintrag in der Event-Warteschlange, um den Flow zu starten.
    2. Der Scheduler verarbeitet das Ereignis und startet den Flow im Hintergrund.
    3. Das System erstellt aus dem Flow einen Prozessplan.
    4. Das System führt den Prozessplan mit dem Datensatz aus, der den Flow ausgelöst hat.
    5. Das System speichert die Ausführungsdetails in einem Kontextdatensatz.

    Flow-Diagramm

    1. Prozess-Flow-Auslöser und API-Aufrufe
    Jedes Mal, wenn Auslöserbedingungen erfüllt sind oder eine API einen Flow direkt aufruft, erstellt Flow Designer einen Event-Eintrag. Die Systemvorgänge löst Datenbankvorgänge aus. Weitere Informationen finden Sie unter Ausführungsreihenfolge von Skripts und Engines. In der Regel werden die Funktionsweise von Business Rules und die Reihenfolge der Workflow-Engine-Vorgänge, 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 Events mit Events, wobei ein Planer regelmäßig die aktuellen Elemente in der Event-Warteschlange 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 Flow Designer 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.

    Flow Designer 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 Flow Designer 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 Flow Designer 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

    Flow Designer führt den Prozessplan als den in den Flow-Eigenschaften angegebenen Benutzer aus und führt ihn innerhalb des Flow-Anwendungsbereichs aus.

    Beim Ausführen eines Ablaufs mit einem datensatzbasierten Auslöser speichert Flow Designer 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 Datenpillen-Laufzeitwert, wenn er verwendet wird.

    5. Flow-Ausführungsdetails speichern

    Flow Designer 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 Flow Designer 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, obwohl dies möglicherweise mehr Ressourcen Ihrer Instanz verbraucht. Informationen zum Ausführen von Subflows in separaten Flow-Kontexten innerhalb desselben Flows 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

    Flow Designer 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.

    Flow-Lebenszyklusdiagramm
    Aktionsstatus

    Die Aktionsdesigner 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.

    Aktionslebenszyklus-Diagramm

    Anwendungsentwicklung

    Verwenden Sie beim Entwerfen einer Aktion oder eines Flows diese Designüberlegungen als Leitfaden.

    Verwenden Sie die StandardNow Platformanwendungsentwicklungsfunktionen zum Erstellen, Verwalten, Schützen und Bereitstellen Flow Designer von Inhalt. Flow- und Aktionsdesigner führen normalerweise die folgenden Anwendungsentwicklungsaufgaben aus:
    • 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 Flow Designer .
    • Veröffentlichen Sie benutzerdefinierte Anwendungen im Anwendungs-Repository, um Flows und Aktionen für andere Instanzen bereitzustellen.

    Kollisionsvermeidung

    Flow Designer unterstützt die Kollisionsvermeidung. 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 Benutzer B. Benutzer B kann dann entweder Abbrechen oder Fortfahrenwählen. Wenn Sie Abbrechen auswählen, kehrt Benutzer B zur Homepage Flow Designer zurück. Wenn Sie Fortfahren auswählen, wird der Flow im schreibgeschützten Modus geöffnet.

    Damit die Kollisionsvermeidung funktioniert, müssen sich beide Benutzer im selben 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 Flow Designer Prozesse und Aufzeichnungen.

    • Administratoren können Benutzern Zugriff auf Flow Designer gewähren, indem sie eine Anwendung erstellen und Benutzer mit der Berechtigung Flow Designer Delegierte Entwicklung als Entwickler 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 Flow Designer gewähren, indem sie Benutzern direkt die Benutzerrolle „flow_designer“ zuweisen, die die Rolle zum Anzeigen von Details zur Flow-Ausführung enthält.
      Warnung:
      Einem Benutzer direkt die flow_designer-Rolle zuzuweisen, ist gleichbedeutend damit, dem Benutzer die Administratorrolle zu geben, weil Flow Designer 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

    Flow-Designer können angeben, wie oft ein Flow einen bestimmten Datensatz mit der Option Auslöser ausführen aktualisieren kann. Verwenden Sie die Option Einmal, wenn ein Flow nur einmal ausgeführt werden soll. Wenn ein Datensatz zum ersten Mal aktualisiert wird, wird der Flow ausgeführt, aber weitere Datensatzaktualisierungen lösen den Flow nicht aus. Verwenden Sie die Option Immer, wenn der Datenfluss jedes Mal ausgeführt werden soll, wenn ein Datensatz aktualisiert wird und noch kein aktiver Datenfluss für ihn ausgeführt wird. Sie können beispielsweise einen Datenfluss festlegen, der einen Incident-Datensatz nur einmal ausführen soll, und einen Datenfluss festlegen, der die Ereignisliste darauf hinweist, immer ausgeführt zu werden. Das Feld Auslöser ausführen ist nur für diese Auslösertypen verfügbar.
    • Erstellt oder aktualisiert
    • Aktualisiert

    Direkte Rekursionsverhinderung und indirekte Rekursionsgrenze

    Um Instanzausfälle und den Verbrauch von Systemressourcen zu verhindern, ignoriert Flow Designer alle Anforderungen zum Starten eines Flows oder Subflows, die das Ergebnis einer direkten Rekursion sind. Unter diesen Bedingungen tritt eine direkte Rekursion auf.
    • 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.
    Flow Designer begrenzt auch die Anzahl an Flows, die von der indirekten Rekursion gestartet werden kann. Unter diesen Bedingungen tritt eine indirekte Rekursion auf.
    • 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.

    Hinweis:
    Standardmäßig verhindert eine Quotenregel für Transaktionen, dass Flows länger als eine Stunde ausgeführt werden.

    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 eines Flows finden Sie unter Abläufe testen.

    Während der Designphase können Sie unveröffentlichte Aktionen testen, indem Sie Entwurfsaktionen anzeigen im Flow 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 „true“, 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.