Designüberlegungen für Flow Designer
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.
- 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.
varhinzufügen zufor (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
- 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
- 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.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.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 verwendenFlow 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 - 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
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.
varzufor (i=0; i< Länge; i++) hinzufügenundfor (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.