Designüberlegungen für Flow Designer

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 31 Minuten Lesedauer
  • Erstellen, ausführen, beheben und überwachen Sie Ihre Flows effektiver. Verwenden Sie diese Richtlinien, um die Leistung Ihrer Flows zu optimieren.

    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.

    Flows

    Flows sollten kurze, modulare und wiederverwendbare Arbeitssammlungen sein. Wenn die Ausführung länger als eine Stunde dauert, sind sie wahrscheinlich zu lang und effizienter.

    Alle allgemeinen Richtlinien, die für Flows gelten, gelten auch für Subflows.

    Verhindern Sie widersprüchliche oder doppelte Geschäftslogik

    Automatisierungen können mit Flow Designer, Business Rules, Workflows und Integration Hub erstellt werden. Bevor Sie Flow Designer verwenden, stellen Sie sicher, dass Sie verstehen, wie vorhandene Now Platform Automatisierungen funktionieren. Deaktivieren Sie Automatisierungen, bevor Sie sie durch Flow Designer Flows und Aktionen ersetzen. Unter Über die Architektur erfahren Sie, wie Flow Designer in Now Platform] funktioniert.

    Überprüfen Sie die Dokumentation zu Flows, Subflowsund Aktionen, falls erforderlich.

    Bestimmen Sie, ob Ihr Flow einen Auslöser oder eine Variableneingabe benötigt
    Flows werden immer ausgeführt, wenn ihre Auslöserbedingungen erfüllt sind, und Auslöser liefern immer dieselben Daten als Eingabe für Flows. Wenn Sie stattdessen Variableneingaben benötigen, um einen Flow zu initiieren, erstellen Sie einen Subflow.
    Geschäftslogik wiederverwenden
    Erstellen Sie einen Satz wiederverwendbarer Vorgänge als Subflow, der dann in mehreren Flows verwendet werden kann.
    Gewähren Sie Flow-Rollen, um auf rollengeschützte Daten zuzugreifen und Benutzerinformationen beizubehalten
    Flow-Rollen helfen dabei, die Berechtigungen für Ihre Flows einfach zu halten. Verwenden Sie Flow-Rollen, um Benutzerinformationen beizubehalten und Zugriff auf Daten zu gewähren, anstatt einen Flow als Systembenutzer auszuführen. Durch das Hinzufügen von Flow-Rollen erhalten Sie auch Zugriff auf zusätzliche Daten, über die ein vom Benutzer initiierter Flow normalerweise nicht verfügt. Die gewährten Rollen gelten nur für den Flow. Sie gelten nicht für den Benutzer, der den Flow initiiert hat.
    Verwenden Sie Flow-Logik oder einen zeitplanbasierten Auslöser, um das Flow-Timing zu steuern
    Flow-Logik oder zeitplanbasierte Auslöser helfen, die Leistung Ihrer Flows zu optimieren. Verwenden Sie die gs.sleep()- Methode nicht, um innerhalb eines Flows zu warten. Die Methode gs.sleep() verhindert, dass der Thread andere Aufgaben ausführt. Um einen Flow zu einem bestimmten Zeitpunkt auszuführen, verwenden Sie einen zeitplanbasierten Auslöser. Um einen Flow für eine bestimmte Dauer anzuhalten, verwenden Sie die Flow-Logik „Warten auf Dauer“ oder „Warten auf Bedingung “.
    Vermeiden Sie Abhängigkeiten
    Parallele Verzweigungen, die voneinander abhängig sind, blockieren einen Flow, wenn eine Verzweigung auf die Ausgabe einer anderen Verzweigung warten muss. Anstatt parallele Verzweigungen innerhalb eines Flows zu erstellen, rufen Sie einen Subflow auf und geben die Ergebnisse an den Haupt-Flow zurück.
    Umfangsschleifenzähler

    Skriptschleifen haben keine maximale Anzahl von Iterationen, daher werden Schleifen unendlich ausgeführt, wenn keine gültige Austrittsbedingung vorhanden ist.

    Um sicherzustellen, dass eine gültige Austrittsbedingung vorhanden ist, legen Sie Schleifenzähler in Inline-Skripts oder in Skriptschritten innerhalb einer Aktion fest.var hinzufügen zu for (i=0; i< Länge; i++) :for (var i=0; i< Länge; i++)

    „Für alle begrenzen“ und „Ausführen bis“-Schleifen auf 1000 Iterationen
    Iterationen mit 1000 oder mehr Schleifen können zu Speicherproblemen führen , da Ausführungsdetails und Kontextdatensätze gespeichert werden müssen.
    • Legen Sie die maximale Anzahl von Datensätzen für „Datensätze suchen“ fest.
    • Vermeiden Sie es, die Eigenschaft sn_flow_designer.max_iterations zu ändern, deren Standardwert 1000 ist.
    • Bei verschachtelten Schleifen hat jede Schleife ihre eigene maximale Anzahl von Iterationen.
    • Bei der Verarbeitung großer Datenmengen sollten Sie die Batch-Aufteilung in kleinere Batches in Betracht ziehen.
    • Berücksichtigen Sie für Massenimporte gleichzeitige Importe.
    QuickAPI für schnellere Ausführungen verwenden (Business Rule-Alternative)
    • QuickAPI- Ausführungen sind viel schneller, aber es gibt weniger Debugging-Fähigkeiten.
    • QuickAPI-Ausführungen im Vordergrund werden in der Benutzersitzung als Benutzer ausgeführt, der den Flow aufgerufen hat.
    • QuickAPI-Ausführungen im Hintergrund werden in einem Hintergrund-Thread ausgeführt und in der Benutzersitzung „System“ ausgeführt.
    Verwenden Sie Do-Bis-Schleifen, anstatt Flows aus sich selbst aufzurufen
    Direkte Rekursion, bei der ein Flow sich selbst aufruft, ist nicht zulässig und verursacht Fehler. Indirekte Rekursion, bei der Flow A Flow B aufruft, der Flow A bis zu dreimal aufruft. Anstatt einen Flow rekursiv aufzurufen, verwenden Sie die Flow-Logik Ausführen bis, um die Arbeit an Datensätzen fortzusetzen, bis eine bestimmte Bedingung erfüllt ist.
    Führen Sie Flows im Hintergrund aus
    Durch die Ausführung von Flows im Hintergrund können UI-Threads freigegeben werden, anstatt die Benutzersitzung bis zum Abschluss der Flow-Ausführung anzuhalten. Standardmäßig werden Flows asynchron im Hintergrund ausgeführt. Durch das Ausführen von Flows im Hintergrund können Benutzer in der Benutzeroberfläche weiterarbeiten, während der Flow ausgeführt wird.
    Vermeiden Sie Flow-Logik, die nach dem Sammeln einer großen Ausgabe wartet
    Die Verwendung einer großen Nutzlast unmittelbar nach dem Abruf kann dazu beitragen, Speicherprobleme zu vermeiden. Anstatt eine große Nutzlast im Speicher zu speichern, fügen Sie Aktionen hinzu, um die Nutzlast zu verarbeiten. Je früher Sie eine abgerufene Nutzlast verarbeiten, desto schneller kann das System Speicher für die Verarbeitung anderer Aktionen freigeben.
    MinimiertHexereien zwischen Umgebungen
    Ständiges Wechseln zwischen Instanzen von und MID-Serverschritten in einem Flow kann zu Verzögerungen bei der Verarbeitung vonführen. Um das Risiko von Verzögerungen zu minimieren, beschränken Sie den Wechsel zwischen Instanz und MID auf nur einmal.
    Schließen Sie vom Flow generierte sys_complex_object-Datensätze in Update Sets ein
    Fehlende komplexe Datenschemas können zu Ausführungsproblemen führen. Stellen Sie sicher, dass Sie vom Flow generierte sys_complex_object-Datensätze in Update Sets einbeziehen. Anstatt Update Sets manuell zu erstellen, sollten Sie Flows mithilfe des Anwendungs-Repository von einer Instanz in eine andere übertragen.
    Rufen Sie Flows aus einem Skript auf, wenn Sie einen benutzerdefinierten Auslöser benötigen
    Wenn keiner der vorhandenen Auslöser Ihren Geschäftsanforderungen entspricht, können Sie ein Skript erstellen, um einen Flow zu starten, wenn die benutzerdefinierten Auslöserbedingungen erfüllt sind. Anstatt einen Flow mit einem nicht benötigten Auslöser zu erstellen, sollten Sie einen Subflow ohne Auslöser erstellen. Verwenden Sie Ihr Skript nur, um die erforderlichen Subflow-Eingaben bereitzustellen, wenn die Skriptbedingungen erfüllt sind. Durch das Aufrufen eines Subflows anstelle eines Flows wird vermieden, dass die Flow-Auslöserbedingungen erfüllt sind und der Flow unerwartet ausgeführt wird.
    Vermeiden Sie die Bereitstellung neuerer Release-Flows in Instanzen älterer Releases
    Flow Designer unterstützt nicht die Bereitstellung von Flows in Instanzen, die in früheren Releases ausgeführt werden. Manchmal ändert sich das Datenmodell des Flows zwischen Releases, was die Ausführung des Flows verhindern oder zu unerwarteten Ergebnissen führen kann.
    Deaktivieren Sie die Flow-Berichterstellung in der Produktion
    Minimieren Sie die Menge an Arbeitsspeicher, die zum Ausführen von Flows erforderlich ist, indem Sie die Flow-Berichterstellungdeaktivieren. In der Flow-Berichterstellung werden Konfigurations- und Laufzeitinformationen für die Seite „Ausführungsdetails“ gespeichert. Diese Berichte eignen sich für die Fehlerbehebung, erfordern jedoch die Beibehaltung einer großen Datenmenge sowohl im Speicher als auch in der Datenbank. Standardmäßig ist die Flow-Berichterstellung deaktiviert, und das System generiert nur dann Ausführungsdetails, wenn Sie einen Flow oder eine Aktion manuell testen. Stattdessen können Sie Protokolldateien verwenden, die weiterhin verfügbar sind, wenn die Berichterstellung deaktiviert ist.
    Reduzieren Sie die Menge des in Flows mit verschachtelten Schleifen verbrauchten Arbeitsspeichers
    Wenn die Berichterstellung aktiviert ist, legen Sie com.snc.process_flow.reporting.iteration.lastn auf den Wert „1“ fest, um die Speichermengen zu reduzieren, die vorherige Schleifeniterationen verbrauchen. Je mehr Iterationen Sie melden, desto mehr Speicher ist erforderlich.

    Subflows

    Allgemeine Richtlinien, die für Flows gelten, gelten auch für Subflows.

    Gründe für die Verwendung eines Subflows anstelle eines Flows:

    Bestimmen Sie, ob Ihr Flow einen Auslöser oder eine Variableneingabe benötigt
    Flows werden immer ausgeführt, wenn ihre Auslöserbedingungen erfüllt sind. Auslöser stellen immer dieselben Daten als Eingabe für Flows bereit. Wenn Sie stattdessen Variableneingaben benötigen, um einen Flow zu initiieren, erstellen Sie einen Subflow.
    Geschäftslogik wiederverwenden
    Erstellen Sie einen Satz wiederverwendbarer Vorgänge als Subflow, der dann in mehreren Flows verwendet werden kann.
    Konfigurieren Sie unterschiedliche Eingabewerte für jeden Anruf
    Konfigurieren Sie die Eingabewerte eines Subflows bei jedem Aufruf anders. Entwerfen Sie beispielsweise einen Subflow, der verschiedene Datensatztypen als Eingabeausführung akzeptiert. Verwenden Sie diesen generischen Datensatz-Subflow erneut, anstatt für jeden Datensatztyp einen bestimmten Flow zu schreiben.
    Verbessern der Leistung und Lesbarkeit großer Flows

    Verwenden Sie Subflows, wenn ein Flow 25 Aktionen überschreitet. 50 ist die maximale Anzahl von Aktionen, die von der Systemeigenschaft sn_flow_designer.max_actions angegeben wird. Begrenzen Sie einen Flow jedoch auf 25 Aktionen, um die beste Leistung zu erzielen.

    Übergeben Sie Eingaben und Ausgaben mit Subflows
    Rufen Sie Subflows auf, wenn Sie Ein- und Ausgaben übergeben möchten. Verwenden Sie Subflows, wenn Sie die Eingaben angeben möchten, die für einen Subflow beim Start verfügbar sind, oder wenn Sie die Ausgaben angeben möchten, die für den übergeordneten Flow nach dem Ende eines Subflows verfügbar sind.
    Sie lösen mehrere Flows für ein einzelnes Event aus, anstatt parallele Subflows zu verwenden
    • Verwenden Sie parallele Subflows, wenn zusammenhängende Ausgaben vorhanden sind oder eine Aktion ausgeführt werden muss, wenn alle verfügbar sind. Wenn nicht, ist es einfacher, mehrere Flows auszulösen.
    • Um parallele Subflows zu konfigurieren, starten Sie jeden Subflow ohne Wartezeit, und verwenden Sie dann die Bedingung „Warten auf“, um zu warten, bis jeder Subflow abgeschlossen ist (Abgeschlossen, Fehler, Abgebrochen).
    Verwenden Sie dynamische Flows, wenn Sie mehrere Subflows mit ähnlicher Funktionalität haben
    Mit dynamischen Flows können Sie Ihre Prozesse aufteilen, indem Sie eine Vorlage anwenden, um die Eingaben mehrerer ähnlicher Subflows zu verarbeiten. Mit der Aufteilung können Sie zwischen Subflows unterscheiden, die ähnliche Funktionen ausführen, z. B. Subflows für IntegrationHub -Speichen.
    Vermeiden Sie die Begrenzung auf 10 Elemente im Fehlerbehandlungsprozess
    Anstatt Ihren Fehlerbehandlungsprozess innerhalb eines Limits von 10 Elementen zu erzwingen, rufen Sie Subflows auf, die viel mehr Elemente enthalten können. Sie können die Subflow-Ausgaben auch verwenden, um die Automatisierung in anderen Flows auszulösen.
    Ergreifen von Korrekturmaßnahmen
    Anstatt dieselbe Sequenz von Aktionen in mehreren Flows neu zu erstellen, erstellen Sie wiederverwendbare Subflows, um Fehler in Ihren Datensatzdaten zu korrigieren. Wenn ein Flow-Fehler Ihre Datensatzdaten in einem unerwünschten Zustand hinterlässt, verwenden Sie Subflows, um diese Datensätze zu korrigieren. Sie können den Fehler-Handler verwenden, um solche Datensatzdaten als Subflow-Ausgabe zu identifizieren.

    Wiederholungen

    Befolgen Sie diese allgemeinen Richtlinien, wenn Sie Datensatzauslöser erstellen.

    Bestimmen Sie, ob Ihr Flow einen Auslöser oder eine Variableneingabe benötigt
    Flows werden immer ausgeführt, wenn ihre Auslöserbedingungen erfüllt sind. Auslöser stellen immer dieselben Daten als Eingabe für Flows bereit. Wenn Sie stattdessen Variableneingaben benötigen, um einen Flow zu initiieren, erstellen Sie einen Subflow.
    Fügen Sie Bedingungen hinzu, um anzugeben, mit welchen Datensatzwerten Ihr Flow beginnen soll
    Das Starten eines Flows nur bei Bedarf verbraucht weniger Systemressourcen als das Starten eines Flows, das Anhalten und das Warten auf das Fortsetzen des Flows, bis eine bestimmte Datensatzbedingung erfüllt ist. Anstatt einen Flow zu erstellen, der mit einer Bedingungsaktion Warten auf beginnt, entwerfen Sie den Flow so, dass die Wartebedingung als Teil des Datensatzauslösers enthalten ist.
    Erstellen Sie eindeutige Bedingungen für Datensatzauslöser in derselben Tabelle
    Um zu verhindern, dass sich Flows gegenseitig überschreiben, erstellen Sie eindeutige Bedingungen für jeden Flow, der in derselben Tabelle ausgeführt wird. Wenn mehrere Flows in derselben Tabelle denselben Filter verwenden, gibt es keine Möglichkeit, die Reihenfolge zu ermitteln, in der die Flows ausgeführt werden. Die Verwendung von Bedingungen hilft auch, die Flow-Leistung zu optimieren, indem eine genauere, kleinere Menge von Datensätzen zurückgegeben wird.
    Durch Import und Update Sets hinzugefügte oder aktualisierte Datensätze ignorieren
    Datensatzauslöser ignorieren Datensätze, die durch Anwenden eines Update Sets oder Importieren einer XML-Datei hinzugefügt oder aktualisiert wurden. Diese Vorgänge gelten für die gesamte Anwendung oder Tabelle und nicht für einen einzelnen Datensatz.
    Ersetzen Sie Datensatzauslöser in Service Catalog-Tabellen durch Service Catalog-Anwendungsauslöser
    Flow Designer zeigt Service Catalog-Tabellen nicht mehr als Optionen für Datensatzauslöser an. Erstellen Sie stattdessen Flows, die den Auslösertyp der Service Catalog-Anwendung verwenden.

    Wartebedingungen

    Befolgen Sie diese allgemeinen Richtlinien, wenn Sie Flows erstellen, die auf eine Bedingung warten.

    Verwenden Sie Datensatzauslöser anstelle von Wartebedingungen, um Flows zu starten
    Wenn ein Flow nur ausgeführt werden soll, wenn bestimmte Datensatzbedingungen erfüllt sind, erstellen Sie einen Flow mit einem Datensatzauslöser, anstatt einen Flow zu starten und anzuhalten. Ein wartender Flow verbraucht mehr Systemressourcen als ein Flow-Auslöser.
    Brechen Sie Flows ab, deren Fortsetzungsbedingungen niemals auftreten können
    Verhindern Sie, dass Ihre Flows unbegrenzt warten, indem Sie Flow-Stopp-Bedingungen mit End-Flow-Flow-Logikangeben . Um Systemressourcen freizugeben, können Sie auch jeden Flow abbrechen, dessen Fortsetzungsbedingungen nie erfüllt werden können. Sie können beispielsweise Flows abbrechen, die auf Aktualisierungen von Incident-Datensätzen warten, bei denen der zugehörige Incident geschlossen wurde.
    Beschränken Sie die Wartebedingungen auf Felder in der aktuellen Tabelle
    Die Aktion Warten auf Bedingung kann nur Änderungen an den Feldern der Tabelle überwachen, zu der der Datensatz gehört. Die Aktion kann keine Änderungen an Feldern in zugehörigen Datensätzen oder Katalogvariablen erkennen. Wenn eine Aktion beispielsweise auf Änderungen an einem Incident-Datensatz wartet, kann sie keine Änderungen an einem zugehörigen Datensatz wie einem Katalogelement oder Change-Aufgabendatensatz erkennen. Vermeiden Sie das Erstellen von Wartebedingungen, die zu einem anderen Datensatz führen, da diese Felder tatsächlich zum zugehörigen Datensatz gehören. Vermeiden Sie das Erstellen von Wartebedingungen, die auf Katalogvariablen basieren.

    Flows mit Phasen

    Befolgen Sie diese allgemeinen Richtlinien, wenn Sie Flows mit Phasen erstellen.
    Vermeiden Sie es, Phasen zu definieren, die von einer Flow-Logik vom Typ Für alle abhängen
    Flow Designer verhindert, dass Sie Phasen innerhalb eines Für alle -Blocks hinzufügen. Sie können Phasen nur vor oder nach einem Für alle -Block hinzufügen.
    Vermeiden Sie mehrere Flows mit Phasen in derselben Tabelle
    Ein Stufenfeld zeigt immer die Stufeninformationen an, die vom letzten Flow bereitgestellt wurden, der für eine Tabelle oder einen Datensatz ausgeführt wurde. Wenn mehrere Flows für dieselben Datensätze ausgeführt werden, können die in einem Flow definierten Phasen prinzipiell die Phasen aus einem anderen Flow überschreiben. Um zu vermeiden, dass sich mehrere Flows gegenseitig überschreiben, definieren Sie eindeutige Auslöserbedingungen für jeden Flow.
    Vermeiden Sie es, Stufenfelder zu aktualisieren
    Wenn Sie Phasen mit einem Flow verwalten, vermeiden Sie es, Phasenfelder direkt mit Aktionen, Business Rules, Skriptaufrufen oder Workflows zu aktualisieren. Das manuelle Aktualisieren des Werts eines Stufenfelds kann zu unerwarteten oder unerwünschten Ergebnissen führen.
    Stellen Sie sicher, dass jeder Flow in einer Tabelle eindeutige Auslöserbedingungen aufweist
    Durch das Hinzufügen eindeutiger Auslöserbedingungen zu jedem Flow wird sichergestellt, dass die Flows nur unter diesen Bedingungen ausgeführt werden, und verhindert, dass die Phasen eines Flows die Phasen eines anderen Flows überschreiben. Die Angabe eindeutiger Auslöserbedingungen erleichtert die Problembehandlung von Flows, indem die Anzahl der Flow-Ausführungen begrenzt wird, die Datensatzänderungen bewirken können.
    Verwenden Sie Fehlerphasen, um mit dem Benutzer zu kommunizieren
    Der Flow-Fehlerstatus wirkt sich nicht auf die Flow-Ausführung aus. Ein Flow wird auch dann weiter ausgeführt, wenn er eine Fehlerstufe erreicht. Verwenden Sie einen bedingten Flow-Logikblock, um die Fehlerstufe festzulegen und dem Benutzer mitzuteilen, dass der Status der aktuellen Stufe „Fehler“ ist. Wenn beispielsweise eine Genehmigung nicht innerhalb des erforderlichen Grenzwerts genehmigt wird, möchten Sie dem Benutzer möglicherweise einen Fehler mitteilen.
    Verwenden Sie die Fehlerphase, um die Verarbeitung eines Flows anzuhalten
    Verwenden Sie einen bedingten Flow-Logikblock, um zu identifizieren, wann ein Flow in die Fehlerphase eintritt. Verwenden Sie die Flow-Logik, um die Verarbeitung des Flows anzuhalten oder eine Korrekturmaßnahme durchzuführen. Beispielsweise möchten Sie möglicherweise den Datensatzstatus oder die Zuweisung ändern, wenn ein Flow einen Fehlerstatus erreicht.

    Ablauflogik „Folgende Schritte parallel ausführen“

    Vermeiden Sie es, Datenabhängigkeiten zwischen Pfaden zu erstellen
    Da ein Flow Pfade in beliebiger Reihenfolge ausführen kann, sollten Sie keine Datenabhängigkeiten zwischen einzelnen Pfaden erstellen. Sie dürfen beispielsweise nicht einen Pfad haben, der einen Datensatz erstellt, und einen anderen Pfad, der denselben Datensatz aktualisiert. Der Pfad zum Aktualisieren des Datensatzes wird möglicherweise vor dem Pfad zum Erstellen des Datensatzes ausgeführt.
    Geben Sie keine Daten zwischen Pfaden frei
    Flow Designer verhindert, dass Sie Datenpillen zwischen Pfaden ziehen, da das System nicht bestimmen kann, welcher Pfad zuerst beendet wird, um den Ausgabewert bereitzustellen.

    Dynamische Flows Flow-Logik

    Verwenden Sie dynamische Flows, wenn Sie mehrere Subflows mit ähnlicher Funktionalität haben
    Mit dynamischen Flows können Sie Ihre Prozesse aufteilen, indem Sie eine Vorlage anwenden, um die Eingaben mehrerer ähnlicher Subflows zu verarbeiten. Mit der Aufteilung können Sie zwischen Subflows unterscheiden, die ähnliche Funktionen ausführen, z. B. Subflows für IntegrationHub -Spokes.
    Stellen Sie sicher, dass dynamisch aufgerufene Subflow-Eingaben mit Vorlagen-Flow-Eingaben übereinstimmen
    Das System löst einen Fehler aus, und der Haupt-Flow kann nicht ordnungsgemäß ausgeführt werden, wenn die Eingaben eines dynamischen Flows und einer Flow-Vorlage nicht übereinstimmen.
    Verwenden Sie den richtigen Kontext, wenn Sie Flow-Ausgaben abrufen
    Ein Kontextdatensatz identifiziert die Flow-Ausführung eindeutig. Wenn Sie einen dynamischen Flow mehrmals ausführen, stehen mehrere Kontextdatensätze zur Auswahl. Wenn Sie den dynamischen Flow mehrmals innerhalb eines Flows verwenden, stellen Sie sicher, dass Sie jedes Mal, wenn Sie Flow-Ausgaben erhalten, den richtigen Kontextdatensatz aus der richtigen Ausführung auswählen.

    Passwort2-Datenpillen

    Befolgen Sie diese Richtlinien, wenn Sie Abläufe mit (zweifach verschlüsselten) Passwort-Daten konzipieren.
    Weisen Sie Werte mithilfe vorhandener Passwort-Datenpillen (2-fach verschlüsselt) zu.
    Sie können einer password2-Variablen nur einen Wert zuweisen, indem Sie eine vorhandene password2-Datenpille auswählen. Die Auswahl von Werten aus anderen Feldtypen wird nicht unterstützt. Flow Designer zeigt eine Warnmeldung an, wenn ungültige Datenpillentypen ausgewählt werden.

    Die angezeigte Warnmeldung, wenn Sie andere als password2-Datenpillen in ein password2-Feld ziehen.

    Hinweis:
    Sie können die Werte für das Passwort (2-fach verschlüsselt) nicht manuell eingeben.
    Verwenden Sie Passwortvariablen (2-fach verschlüsselt) nur für gültige Feldtypen
    Flow Designer verhindert, dass Password2-Datenpillen als Wert für ungültige Feldtypen ausgewählt werden. Das System zeigt eine Warnmeldung an, wenn das Feld einen inkompatiblen Typ aufweist.

    Die angezeigte Warnung, wenn Sie ein password2-Feld in ein unzulässiges Feld ziehen.

    Flow Designer lässt nur das Ziehen von Passwort2-Datenpillen in die folgenden Feldtypen zu:
    • E-Mail-Text-Felder
    • HTML-Felder
    • „Passwort 2“-Felder
    • PowerShell-Eingabevariablen
    • REST-Felder
      • Variablen
      • REST-Payload-Text
      • Abfrageparameter
      • Header
      • Mehrteilige REST-Formular-Werte
      • URL-codierte Formularwerte
    • SOAP-Felder
      • Header
      • Umschlag
    Hinweis:
    Sie können Passwortvariablen (2-fach verschlüsselt) nicht als Bedingungen verwenden

    Flow Designer führt eine Validierungsprüfung durch, wenn ein Benutzer Aktionen und Abläufe speichert, veröffentlicht oder testet. Diese Prüfung zeigt, dass eine Warnung für Datenpillen in eingeschränkten Feldtypen abgelegt wurde, und verhindert, dass die Aktion oder der Flow ausgeführt wird. Aktualisieren Sie die Aktion oder den Ablauf, um die ungültige Datenpille zu entfernen, und wiederholen Sie dann den Vorgang.

    Richten Sie Verschlüsselungsmodule für die Entschlüsselung ein
    Nur Benutzer mit einem gültigen Zugriff auf das Verschlüsselungsmodul können den Inhalt von password2-Variablen entschlüsseln und anzeigen. Informationen zum Angeben des Verschlüsselungsalgorithmus und der Rollen, die auf verschlüsselte Daten zugreifen können, finden Sie unter Password2-Verschlüsselung mit KMF .

    SLA-Prozent-Timer-Aktionen

    Befolgen Sie diese allgemeinen Richtlinien, wenn Sie Flows erstellen, die Prozent-Timer-Aktionen für Servicelevel-Vereinbarungen (Service Level Agreement, SLA) enthalten.

    Fügen Sie SLA-Prozent-Timer-Aktionen nur zu Flows mit einem SLA-Aufgabenauslöser hinzu
    Eine SLA-Prozent-Timer-Aktion kann nur ausgeführt werden, wenn der Flow von einem SLA-Aufgabenauslöser gestartet wird. Sie können keinen Subflow aktivieren, der eine SLA-Prozent-Timer-Aktion enthält.
    Erstellen Sie bedingte Flow-Logik für erwartete Statuswerte
    Verwenden Sie den Wert des Felds Status als Bedingung für die Flow-Logik. Erstellen Sie Flow-Logik für erwartete Statuswerte wie Abgeschlossen, Reparaturund Übersprungen. Fügen Sie beispielsweise einen If -Flow-Logikblock hinzu, um eine Benachrichtigung zu senden, wenn der SLA-Prozent-Timer den Status Abgeschlossenhat.
    Weisen Sie jeder SLA-Prozent-Timer-Aktion einen eindeutigen kumulativen Warten auf-Prozentsatzwert zu
    Jede SLA-Prozent-Timer-Aktion berechnet ihr eigenes geplantes Enddatum und ihre eigene geplante Endzeit unter Verwendung des Warten auf-Prozentsatzwerts. Wenn Sie mehrere SLA-Prozent-Timer-Aktionen erstellen, geben Sie jeder Aktion einen eigenen eindeutigen kumulativen Warten auf-Prozentsatzwert. Erstellen Sie beispielsweise drei separate Aktionen mit unterschiedlichen Werten für den Abschluss in Prozent, z. B. 25 %, 50 % und 75 %. Wenn alle drei Aktionen auf denselben Prozentsatz der Fertigstellung festgelegt werden, z. B. 25 %, werden die Timer gleichzeitig abgeschlossen.
    Kopieren Sie vorhandene Flows, um Anpassungen vorzunehmen
    Reduzieren Sie die Entwicklungszeit, indem Sie die standardmäßigen SLA-Flows kopieren und die Kopien mit Ihrer eigenen Logik anpassen. Wählen Sie einen benutzerdefinierten Flow aus, der über die SLA-Definition ausgeführt werden soll. Weitere Informationen finden Sie unter SLA-Definitionen erstellen .

    Dynamische Eingaben

    Berücksichtigen Sie dynamische Eingaben für Drittanbieterintegrationen
    Mit dynamischen Eingaben können Sie Flows erstellen, die Daten dynamisch aus externen Quellen abrufen. In Drittanbieterintegrationen können dynamische Eingaben Datenwerte bereitstellen, die sich auf einen bestimmten Endpunkt beziehen. Weitere Informationen zum Einrichten von Drittanbieterintegrationen mit Flow Designerfinden Sie unter IntegrationHub.
    Beachten Sie die Zeit, die zum Abrufen großer Datenmengen erforderlich ist
    Standardmäßig haben dynamische Eingaben bis zu 300 Sekunden Zeit, um Daten zu sammeln, bevor eine Zeitüberschreitung auftritt. Wenn Ihre Datenerfassungsaktion mehr Zeit zum Sammeln von Daten benötigt, legen Sie die Systemeigenschaft sn_flow_designer.sync_action_execution_timeout_in_seconds auf einen höheren Wert fest. Verwenden Sie jedoch keine langen Zeitüberschreitungswerte für interaktive Flows, bei denen ein Endbenutzer einen Wert eingeben oder auswählen muss.
    Beachten Sie Skriptfehler
    Da alle Datenerfassungsaktionen einen Skriptschritt verwenden, können beim Skripting potenzielle Fehler auftreten. Wenn Sie Skripts zur Ausgabe von JSON-Variablen für Ihre dynamischen Eingaben verwenden, können Fehler auftreten, die verhindern, dass Eingaben die benötigten JSON-Werte erhalten. Wenn ein dynamischer Eingabeskriptfehler auftritt, wird möglicherweise die folgende Warnmeldung angezeigt.
    Abbildung : 1. Meldung für Skriptfehler angezeigt
    Fehlermeldung für dynamische Aktion
    Begrenzen Sie Eingaben vom Typ „Dynamische Eingaben“ auf 40 Eingabewerte
    Eine Eingabe vom Typ „dynamische Eingaben“ kann nur eine bestimmte Anzahl von Eingaben rendern, bevor das JSON-Objekt zu groß wird, um im Speicher gespeichert zu werden. Wenn Sie Ihre dynamischen Eingaben auf 40 Eingabewerte beschränken, minimieren Sie die Wahrscheinlichkeit, dass Ihnen der Arbeitsspeicher ausgeht und unerwartetes Verhalten auftritt, z. B. Darstellungsfehler oder Datenkürzung.
    Begrenzen Sie die JSON-Ausgabe für dynamische Vorlagen und dynamische Auswahlmöglichkeiten auf 5000 Array-Elemente
    Dynamische Auswahl- und dynamische Vorlageneingaben können nur bis zu 5000 Array-Elemente anzeigen. Eine dynamische Auswahl kann nur bis zu 5000 Auswahllistenoptionen anzeigen, und eine dynamische Vorlage kann nur bis zu 5000 Feldvorlagenwerte anzeigen. Wenn Ihre Datenerfassungsaktion Daten für eine dynamische Vorlage oder eine dynamische Auswahl erfasst, beschränken Sie die maximale Anzahl der zurückgegebenen Array-Elemente auf 5000. Die Beschränkung auf 5000 Array-Elemente verhindert, dass die Instanz beim Rendern der Auswahlmöglichkeiten oder Feldwerte Leistungsprobleme hat.

    Dynamische Ausgaben

    Verwenden Sie dynamische Ausgaben für Drittanbieterintegrationen
    Verwenden Sie dynamische Ausgaben, um während des Flow-Designs eine Introspektion durchzuführen und Daten aus externen Systemen abzurufen. Sie können beispielsweise Serviceendpunkte angeben oder Aktionen aufrufen, die mit bestimmten Endpunkt-APIs interagieren. Weitere Informationen zum Einrichten von Drittanbieterintegrationen mit Flow Designerfinden Sie unter IntegrationHub.
    Beachten Sie die Zeit, die zum Abrufen großer Datenmengen erforderlich ist
    Standardmäßig haben dynamische Ausgaben bis zu 300 Sekunden Zeit, um Daten zu sammeln, bevor sie vom System angehalten werden. Wenn Ihre Datenerfassungsaktion mehr Zeit zum Sammeln von Daten benötigt, legen Sie die Systemeigenschaft sn_flow_designer.sync_action_execution_timeout_in_seconds auf einen größeren Wert fest. Vermeiden Sie lange Zeitüberschreitungswerte für interaktive Flows, bei denen ein Endbenutzer erwartet, einen Wert einzugeben oder auszuwählen.
    Beachten Sie Skriptfehler
    Da alle Datenerfassungsaktionen einen Skriptschritt verwenden, können beim Skripting potenzielle Fehler auftreten. Überprüfen Sie alle Skripts, die zur Ausgabe von JSON-Variablen verwendet werden, da Skriptfehler dazu führen können, dass die Ausgaben die benötigten JSON-Werte erhalten. Wenn ein dynamischer Ausgabeskriptfehler auftritt, wird möglicherweise die folgende Warnmeldung angezeigt.
    Abbildung : 2. Meldung, die für einen Skriptfehler angezeigt wird
    Fehlermeldung für dynamische Aktion

    List.[Tabelle] Daten

    Fügen Sie einen Referenzqualifizierer hinzu, um Listendatensätze zu filtern
    Filtern Sie die Datensätze, die die Listenvariable als gültige Optionen anzeigt, indem Sie einen Referenzqualifizierer hinzufügen. Der Referenzqualifizierer fungiert als erforderlicher Listenfilter und bewirkt, dass die Listenvariable nur Datensätze anzeigt, die den Bedingungen des Referenzqualifizierers entsprechen. Um beispielsweise nur aktive Incident-Datensätze anzuzeigen, fügen Sie die Referenzqualifizierer-Bedingung [Aktiv][ist][wahr]hinzu.
    Vermeiden Sie es, Standarddatensätze für Aktionen auszuwählen, die für ServiceNow Store vorgesehen sind
    Vermeiden Sie es, Standarddatensätze für eine Liste auszuwählen, es sei denn, Sie wissen, dass alle Instanzen Zugriff auf die ausgewählten Datensätze haben. Spoke-Entwickler haben normalerweise keinen Zugriff auf die Daten der Kunden, die ihre benutzerdefinierte Aktion installieren. Wenn Sie eine benutzerdefinierte Aktion im ServiceNow Store veröffentlichen möchten, müssen Sie möglicherweise Standarddatensätze als Demodaten angeben.
    Verwenden Sie Listenvariablen in der Flow-Logik vom Typ „Für alle“.
    Sie können eine Listenvariable verwenden, um die Datensätze anzugeben, die in der Flow-Logik vom Typ „Für alle“ verarbeitet werden sollen. Die Flow-Logik „Für alle“ ignoriert alle Nicht-Datensatz-IDs [ sys_id, die in den Daten vorhanden sind. Wenn die Listenvariable beispielsweise eine E-Mail-Adresse enthält, wird sie von der Flow-Logik ignoriert.

    Genehmigungsregeln

    Einen Standardwert angeben
    Erstellen oder wählen Sie eine Genehmigungsregel als Standardwert aus.

    Transformationsfunktionen

    Wenden Sie Transformationsfunktionen auf gültige Typen von Datenpillen für die Eingabe an
    Überprüfen Sie unbedingt den Typ der Datenpille für die Eingabe, bevor Sie eine Transformationsfunktion anwenden. Das Anwenden einer Transformationsfunktion auf einen ungültigen Datenpillentyp führt dazu, dass das System die Transformation überspringt. Ein Fehler tritt auch auf, wenn Transformationsfunktionen Ergebnisse liefern, die das System nicht analysieren kann. Wenn Sie beispielsweise eine Zeichenfolge in ein Datum umwandeln, gibt das System einen Fehler aus, wenn die Umwandlung kein gültiges Datum ergibt.
    Angewendete Transformationsfunktionen für mehrere Eingaben mit derselben Datenpillebestätigen
    Eine Transformationsfunktion erstellt zur Laufzeit einen neuen Wert für eine bestimmte Eingabe und ändert nicht die ursprüngliche Datenpille. Wenn Sie dieselbe Datenpille für mehrere Aktionen oder Schritte verwenden, müssen Transformationsfunktionen daher auf jede einzelne Eingabeangewendet werden.
    Zeigen Sie die endgültigen transformierten Werte in den Details der Flow-Ausführung an
    Nur der endgültige transformierte Wert und nicht der Wert für jede angewendete Transformation wird in den Flow-Ausführungsdetailsangezeigt.
    Testen Sie Transformationsfunktionen, um sicherzustellen, dass sie die erwarteten Ergebnisse liefern
    Stellen Sie sicher, dass Ihre Transformationsfunktionen die erwarteten Laufzeitwerte für die Datenpillen erzeugen. Weitere Informationen finden Sie unter Flowstesten und Aktionen testen.

    Inline-Skripts

    Befolgen Sie diese allgemeinen Richtlinien, um wiederverwendbare und wartbare Inline-Skriptszu erstellen.

    Schreiben Sie ein Inline-Skript für kleine, nicht wiederverwendbare Logik
    Verwenden Sie das Inline-Skriptformat, oder ändern Sie die Daten für bestimmte Eingaben und Anwendungsfälle. Erstellen Sie für wiederverwendbare Logik stattdessen eine Aktion oder einen Subflow.
    Überprüfen Sie die verfügbaren Transformationsfunktionen
    Flow Designer stellt eine Liste der standardmäßigen Transformationsfunktionen für Datenkonvertierungen und Formatierungsvorgänge bereit. Anstatt eine benutzerdefinierte Skriptlösung zu schreiben und zu verwalten, wählen Sie eine vorhandene Transformationsfunktion aus, sofern eine verfügbar ist.
    Skripteinbindungen aus Inline-Skript aufrufen
    Rufen Sie eine Skripteinbindung aus Ihrem Inline-Skript auf, um die Menge des zu schreibenden Codes zu reduzieren und allgemeinen Code an einem einzigen Ort zu verwalten. Verwenden Sie den Klassenkonstruktor, um Ihre Skripteinbindung aufzurufen. Weitere Informationen zum Erstellen einer Skripteinbindung finden Sie unter Script includes.
    var si = new MyScriptInclude();
    si.functionOne();
    Erstellen Sie benutzerdefinierte Aktionen oder Subflows für wiederverwendbaren Code anstelle von Inline-Skripts
    Erstellen Sie benutzerdefinierte Aktionen oder Subflows für wiederverwendbare oder komplexe Datenlogik, z. B. das Ändern des Datentyps von Quelldaten. Möglicherweise möchten Sie auch benutzerdefinierte Aktionen oder Subflows für Flow Designer bereitstellen, die mit Code nicht vertraut sind.
    Doppelte Aktions- und Flow-Funktionalität vermeiden
    Vermeiden Sie es, Inline-Skripts zu schreiben, die Aktionen und Flow-Funktionalität duplizieren. Anstatt beispielsweise ein Inline-Skript zu schreiben, um Datensatzvorgänge auszuführen, verwenden Sie die Baseline-Aktionen zum Erstellen und Aktualisieren von Datensätzen.
    Vermeiden Sie Datentypänderungen
    Vermeiden Sie Laufzeitfehler, indem Sie überprüfen, ob Ihr Inline-Skript Informationen im gleichen Datentyp bereitstellt, wie die Ein- oder Ausgabe erwartet.
    Erstellen Sie Variablen, indem Sie sie mit dem Schlüsselwort var deklarieren
    Verwenden Sie das Schlüsselwort var, um Variablen so zu deklarieren, dass sie innerhalb des richtigen JavaScript-Bereichs bleiben. Wenn Sie eine Variable erstellen, indem Sie ihr einen Wert zuweisen, kann JavaScript sie an das globale Objekt anhängen, was dazu führen kann, dass Variablenwerte außerhalb des lokalen Bereichs verbleiben und Fehler verursachen.
    Verarbeitet Datensätze Ausgaben mit Flow-Logik vom Typ Für alle und dem Flow-Datenobjekt
    Inline-Skripts können nur über die Flow-Logik „Für alle“ auf die Datensatzausgabe einer Aktion „ Datensätze suchen“ zugreifen. Fügen Sie dem Flow eine Aktion Datensätze suchen hinzu, um die Datensatzausgabe zu generieren. Fügen Sie dem Flow eine Flow-Logik vom Typ Für alle hinzu, um jeden Datensatz in der Datensatzausgabe zu verarbeiten. Erstellen Sie mithilfe der Objekte „fd_data“ und „item“ eine Inline-Skriptreferenz für die Flow-Logik „Für alle“. In dieser Referenz wird beispielsweise davon ausgegangen, dass die Flow-Logik „Für alle“ das zweite Element in Ihrer Flow- Ggliederung fd_data._2__for_each.item ist.
    Verwenden Sie Typeahead-Vorschläge, um Verweise auf Flow- und Aktionsdaten zu generieren.
    Erstellen Sie mit dem Objekt fd_data Verweise auf Flow- und Aktionsdaten. Der Skript-Editor zeigt Typeahead-Vorschläge für vorhandene Flow- und Aktionsdaten an, wenn Sie fd_data eingeben. Wählen Sie einen Vorschlag aus, um Verweise auf Flow- und Aktionsdaten zu erstellen.
    Hinweis:
    Siehe Daten in einer Flow-Logik vom Typ „Für alle“ mit dem Elementobjekt aufzeichnen.
    Umfangsschleifenzähler

    Skriptschleifen haben keine maximale Anzahl von Iterationen, daher werden Schleifen unendlich ausgeführt, wenn keine gültige Austrittsbedingung vorhanden ist.

    Um sicherzustellen, dass eine gültige Austrittsbedingung vorhanden ist, verwenden Sie Bereichsschleifenzähler in Inline-Skripts oder in Skriptschritten innerhalb einer Aktion.var zufor (i=0; i< Länge; i++) hinzufügen und for (var i=0; i< Länge; i++) abrufen

    Komplexe Daten

    Befolgen Sie diese allgemeinen Richtlinien, um wiederverwendbare und wartbare Datenstrukturen zu erstellen.

    Minimieren Sie die Anzahl der untergeordneten Ebenen in der Hierarchie
    Je mehr untergeordnete Ebenen eine Datenstruktur hat, desto schwieriger ist es, eine Datenvariable anzuzeigen und aus der Hierarchie auszuwählen. Sie können zwar Datenstrukturen mit einer beliebigen Anzahl von untergeordneten Ebenen erstellen, es wird jedoch schwierig, in Datenstrukturen mit mehr als sieben untergeordneten Ebenen zu navigieren und sie zu verstehen. Für eine optimale Benutzer-Experience sollten Sie keine Datenstrukturen erstellen, die so viele untergeordnete Ebenen haben, dass Sie horizontal scrollen müssen, um sie anzuzeigen und auszufüllen.
    Erstellen Sie für jede Art von Datensatzdaten ein separates Objekt
    Die meisten Flow Designer Daten sind Datensatzdaten, unabhängig davon, ob sie aus einer Instanz oder einem externen System stammen. Diese Entwurfsmethode stellt sicher, dass Sie wissen, was das Objekt enthält und woher die Daten stammen.
    Datensatzdatenstrukturen neu erstellen
    Überprüfen Sie beim Erstellen von Objekten, die Datensatzdaten empfangen oder übertragen, die Datenbank-Wörterbucheinträge für diese Datensätze, und erstellen Sie übereinstimmende Objektdatenstrukturen. Angenommen, ein Objekt soll Daten aus den Tabellen „Incident“ und „Configuration Item“ enthalten. Sie können ein Zeichenfolgenelement für das Feld Kurzbeschreibung in der Tabelle Incident und ein Array von Zeichenfolgenelementen für das Feld Klasse in der TabelleKonfigurationselement erstellen.
    Erstellen Sie Objekte, um verschiedene Arten von Datensätzen zu kombinieren
    Wenn Sie Informationen aus mehreren Datensatztypen benötigen, erstellen Sie ein Objekt, das alle benötigten Informationen enthält. Sie können das Objekt dann zum Formatieren oder Analysieren von Daten in Flow Designerverwenden.

    Skripterstellung mit komplexen Daten

    Beachten Sie beim Skripting mit komplexen Daten die folgenden allgemeinen Richtlinien.

    Verwenden Sie Zeichenfolgeneingaben, um komplexe Daten in eine JSON-Zeichenfolge zu konvertieren
    Wenn Sie komplexe Daten einer Zeichenfolgeneingabe zuordnen, konvertiert Flow Designer sie automatisch in eine JSON-Zeichenfolge. Anstatt ein Skript zu schreiben, können Sie einem REST-Schritt eine Zeichenfolgeneingabe hinzufügen und sie komplexen Daten aus einer vorherigen Aktion oder einem vorherigen Schritt zuordnen.
    Speichern Sie Ihre Objekte als Vorlagen
    Speichern Sie Ihre Objekte als Vorlagen, damit Sie sie in anderen Aktionen, Flows und Skriptschritten wiederverwenden können.
    Erstellen Sie Skripteingabevariablen, um auf vorherige Daten zuzugreifen
    Erstellen Sie eine Skripteingabevariable für alle Daten, auf die Sie über die Aktionseingabe oder einen vorherigen Schritt zugreifen möchten. Ordnen Sie die Skripteingabevariable der Eingabe- oder Schrittdatenpille zu. Ordnen Sie beispielsweise die Skripteingabevariable einer Liste von Benutzerdatensätzen zu, die Sie in einem vorherigen Schritt gesucht haben.
    Erstellen Sie eine Skriptausgabevariable, um komplexe Daten zu speichern
    Erstellen Sie eine Skriptausgabevariable, um alle komplexen Daten zu speichern, die Ihr Skript erstellt. Die Skriptausgabevariablen müssen mit den im Skript definierten Werten übereinstimmen. Erstellen Sie beispielsweise ein Kontakte-Array von Objekten, um mehrere Kontaktobjekte zu speichern. Speichern Sie das Kontaktobjekt als Vorlage, damit Sie es erneut verwenden können.
    Ordnen Sie die Aktionsausgabe der Skriptausgabevariablen zu
    Wenn Sie möchten, dass eine benutzerdefinierte Aktion komplexe Daten ausgibt, fügen Sie eine Aktionsausgabe hinzu, und ordnen Sie sie der Datenpille für Ihre Skript-Schrittausgabevariable zu. Erstellen Sie beispielsweise ein Kontakte-Array, und laden Sie die Kontaktobjektvorlage, die Sie zuvor gespeichert haben. Ordnen Sie die Aktionsausgabe dem von Ihrem Skriptschritt erstellten Kontakt-Array zu.

    Flow Designer und Domänentrennung

    Befolgen Sie diese allgemeinen Richtlinien, wenn Sie die Domänentrennung mit Flow Designerverwenden.

    Stellen Sie sicher, dass Mandanten-Flows, -Aktionen und -Subflows für Domänen ordnungsgemäß ausgeführt werden
    Da Mandanten Inhalte Flow Designer nicht überschreiben können, muss ein Service Provider-Administrator (SP) aus der Domäne TOP sie erstellen und verwalten, um sicherzustellen, dass sie für Domänen ordnungsgemäß ausgeführt werden. Sie können zwar domänenspezifische Flows erstellen, aber Benutzer, die in höheren Domänen in der Hierarchie arbeiten, können mehrere untergeordnete Domänen-Flows auslösen. Beispielsweise kann ein Benutzer, der in der TOP-Domäne arbeitet, Flows in untergeordneten Domänen wie ACME und INITECH auslösen.
    Hinweis:
    Flow-Autoren können nur Flow Designer Inhalte anzeigen, die in ihrer aktuellen Domäne und übergeordneten Domänen in der Hierarchie verfügbar sind. Flow Designer zeigt keine Inhalte an, die in Domänen von Contains sichtbar sind.
    Geben Sie einen eindeutigen Namen für jeden Flow, jede Aktion und jeden Subflow an
    Da alle Domänen Inhalte von Flow Designer freigeben, lassen Sie einen SP-Administrator in der TOP-Domäne jeden Flow, jede Aktion und jeden Subflow eindeutig benennen. Dadurch wird sichergestellt, dass ein Flow, der für eine Domäne bestimmt ist, den Namen eines Flows in einer anderen Domäne nicht dupliziert. Fügen Sie beispielsweise dem Flow-Namen die Domäne hinzu, z. B. Incidents validieren – TOP, Incidents validieren – ACMEund Incidents validieren – INITECH.
    Stellen Sie sicher, dass Flows und Aktionen nur Artefakte aus aktuellen oder übergeordneten Domänen enthalten
    Flow Designer verhindert die Aktivierung von Flows, die Artefakte enthalten, die für die aktuelle oder übergeordnete Domäne nicht verfügbar sind. Wenn Sie beispielsweise einen domänenspezifischen Flow erstellen, der zur ACME-Domäne gehört, darf er keine Aktionen oder Subflows enthalten, die zur gleichgeordneten Domäne INITECH gehören.
    Bearbeiten Sie den Inhalt von Flow Designer in der Domäne, zu der er gehört
    Benutzer in einer übergeordneten Domäne können zwar Flows, Aktionen und Subflows in einer untergeordneten Domäne anzeigen, müssen sie jedoch in der Domäne bearbeiten, zu der sie gehören. Beispielsweise kann ein Administrator in der TOP-Domäne Flows aus der ACME-Domäne anzeigen, muss jedoch zur ACME-Domäne wechseln, um sie zu bearbeiten.

    Bereitstellung

    Vermeiden Sie die Bereitstellung neuerer Release-Flows in Instanzen älterer Releases
    Flow Designer unterstützt nicht die Bereitstellung von Flows in Instanzen, die in früheren Releases ausgeführt werden. Manchmal ändert sich das Datenmodell des Flows zwischen Releases, was die Ausführung des Flows verhindern oder zu unerwarteten Ergebnissen führen kann.

    Flow-Fehlerbehandlung

    Befolgen Sie diese Richtlinien, um die Vorteile der Flow-Fehlerbehandlung zu nutzen.

    Vermeiden Sie es, dem Hauptabschnitt des Flows Fehlerbehandlungselemente hinzuzufügen
    Ein Flow wird normalerweise angehalten, wenn eine Aktion oder ein Subflow im Hauptabschnitt einen Fehler zurückgibt. Ein angehaltener Flow kann keine Aktionen oder Subflows über den Punkt hinaus ausführen, an dem ein Fehler zurückgegeben wurde. Durch das Hinzufügen von Fehlerbehandlungsaktionen und Subflows zum Abschnitt „Error Handler“ wird sichergestellt, dass sie bei einem Fehler ausgeführt werden.
    Erfassen Sie Informationen zum Fehlerstatus
    Das Fehlerstatusobjekt enthält Informationen über die Aktion, die zu einem Fehler geführt hat. Sie können diese Informationen verwenden, um die Fehlerursache zu identifizieren und Daten aufzuzeichnen, die möglicherweise korrigiert werden müssen.
    Subflow-Fehlermeldungen unterdrücken
    Sie können den Fehler-Handler für einen Subflow aktivieren, um zu verhindern, dass seine Fehler in einen übergeordneten Flow kaskadieren. Wenn Sie den Abschnitt „Subflow-Fehler-Handler“ leer lassen, wird sichergestellt, dass er immer den Status „ Abgeschlossen (Fehler erfasst) “ generiert.
    Verwenden Sie Subflows, um die Grenze von 10 Elementen zu vermeiden
    Anstatt Ihren Fehlerbehandlungsprozess innerhalb eines Limits von 10 Elementen zu erzwingen, rufen Sie Subflows auf, die viel mehr Elemente enthalten können. Sie können die Subflow-Ausgaben auch verwenden, um die Automatisierung in anderen Flows auszulösen.
    Verwenden Sie Subflows, um Korrekturmaßnahmen durchzuführen
    Anstatt dieselbe Sequenz von Aktionen in mehreren Flows neu zu erstellen, erstellen Sie wiederverwendbare Subflows, um Fehler in Ihren Datensatzdaten zu korrigieren. Wenn ein Flow-Fehler Ihre Datensatzdaten in einem unerwünschten Zustand hinterlässt, verwenden Sie Subflows, um diese Datensätze zu korrigieren. Sie können den Fehler-Handler verwenden, um solche Datensatzdaten als Subflow-Ausgabe zu identifizieren.

    Aktionsfehlerbewertung

    Befolgen Sie diese Richtlinien, um die Vorteile der Aktionsfehlerbewertung zu nutzen.

    Lassen Sie zu, dass nur unabhängige Schritte ausgeführt werden
    Lassen Sie zu, dass ein Schritt fortgesetzt wird, wenn er keine Daten zurückgibt, die für einen späteren Schritt erforderlich sind. Wenn ein Schritt Daten bereitstellt, die für spätere Schritte erforderlich sind, wissen Sie, dass die späteren Schritte nicht erfolgreich ausgeführt werden können.
    Vermeiden Sie mehr als 10 Fehlerbedingungen
    Zwar gibt es keine Begrenzung für die Anzahl der Fehlerbedingungen, die Sie erstellen können, aber jede Fehlerbedingung muss ausgewertet werden. Je mehr Fehlerbedingungen Ihre Aktion auswerten muss, desto langsamer kann die Aktion ausgeführt werden.
    Identifizieren Sie bestimmte Schrittfehler
    Sie können den Schrittstatus verwenden, um zu ermitteln, wann ein bestimmter Schritt fehlschlägt. Das Identifizieren eines bestimmten Schritts kann nützlich sein, wenn Ihre Aktion mehrere Instanzen desselben Schritttyps enthält. Möglicherweise möchten Sie auch einen bestimmten Schritt identifizieren, damit ein Flow-Fehlerbehandler geeignete Korrekturmaßnahmen für den Fehler ergreifen kann.
    Platzieren Sie spezifische Fehlerbedingungen vor allgemeinen Fehlerbedingungen
    Die Fehlerauswertung wird beendet, wenn die Aktion eine übereinstimmende Fehlerbedingung findet. Wenn allgemeine Fehlerbedingungen an die erste Stelle gesetzt werden, kann dies verhindern, dass die Aktion jemals mit bestimmten Fehlerbedingungen übereinstimmt.
    Verwenden Sie beschreibende Fehlerbedingungsbezeichnungen
    Identifizieren Sie eine Fehlerbedingung, ohne sie bearbeiten zu müssen. Standardmäßig können Sie Fehlerbedingungen nur anzeigen, wenn Sie sie bearbeiten.

    Flow-Administrator

    Deaktivieren Sie die Flow-Berichterstellung in der Produktion
    Minimieren Sie die Menge an Arbeitsspeicher, die zum Ausführen von Flows erforderlich ist, indem Sie die Flow-Berichterstellungdeaktivieren. In der Flow-Berichterstellung werden Konfigurations- und Laufzeitinformationen für die Seite „Ausführungsdetails“ gespeichert. Diese Berichte eignen sich für die Fehlerbehebung, erfordern jedoch die Beibehaltung einer großen Datenmenge sowohl im Speicher als auch in der Datenbank. Standardmäßig ist die Flow-Berichterstellung deaktiviert, und das System generiert nur dann Ausführungsdetails, wenn Sie einen Flow oder eine Aktion manuell testen. Stattdessen können Sie Protokolldateien verwenden, die weiterhin verfügbar sind, wenn die Berichterstellung deaktiviert ist.
    Reduzieren Sie die Menge des in Flows mit verschachtelten Schleifen verbrauchten Arbeitsspeichers
    Wenn die Berichterstellung aktiviert ist, legen Sie com.snc.process_flow.reporting.iteration.lastn auf den Wert „1“ fest, um die Speichermengen zu reduzieren, die vorherige Schleifeniterationen verbrauchen. Je mehr Iterationen Sie melden, desto mehr Speicher ist erforderlich.
    Zeigen Sie die endgültigen transformierten Werte in den Details der Flow-Ausführung an
    Nur der endgültige transformierte Wert wird in den Details der Flow-Ausführungangezeigt und nicht der Wert für jede angewendete Transformation.

    Flow-Priorität

    Befolgen Sie diese Designüberlegungen, wenn Sie die Flow-Priorität festlegen.

    Vermeiden Sie es, alle Flows so festzulegen, dass sie mit hoher Priorität ausgeführt werden
    Verwenden Sie eine Mischung von Prioritäten, anstatt alle Flows auf eine hohe Priorität festzulegen. Worker-Threads verwenden die relative Priorität zwischen Flows, um Arbeit auszuwählen. Wenn alle Ihre Flows mit hoher Priorität ausgeführt werden, gibt es keine Flows mit niedrigerer Priorität, die warten müssen.
    Vermeiden Sie es, die Flow-Priorität für Flows festzulegen, die angehalten werden müssen
    Behalten Sie Flows, die angehalten werden müssen, bei der standardmäßigen mittleren Priorität bei, da ein Flow, der angehalten wird, seinen Prioritätswert verliert, wenn die Ausführung fortgesetzt wird.
    Verwenden Sie eine hohe Priorität für geschäftskritische Flows
    Begrenzen Sie die hohe Priorität auf Flows, die einen hohen Geschäftsnutzen haben, selten ausgeführt werden und eine kurze Laufzeit haben. Vermeiden Sie es, für Flows mit hohem Volumen eine hohe Priorität festzulegen, da dies die Anzahl der Worker-Threads begrenzt, die zum Ausführen anderer Flows verfügbar sind. Ein Flow mit langer Ausführungszeit und hoher Priorität kann auch die zur Ausführung anderer Flows verfügbaren Worker-Threads reduzieren.
    Verwenden Sie eine niedrige Priorität für Flows mit hohem Volumen
    Führen Sie Flows mit hohem Volumen und niedriger Priorität aus, damit andere zeitkritische Flows zuerst ausgeführt werden können. Flows mit niedriger Priorität sollten nicht zeitabhängig sein.
    Verwenden Sie für zeitkritische Flows eine mittlere Priorität
    Verwenden Sie die standardmäßige Flow-Priorität, wenn ein Flow im Vergleich zu anderen Flows eine gewisse zeitliche Dringlichkeit aufweist.