Allgemeine Richtlinien für Workflow-Studio -Flows, Subflows und Aktionen

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 32 Minuten Lesedauer
  • Erstellen, Ausführen, Behandeln und Überwachen Ihrer Workflow-Studio -Komponenten effektiver. Verwenden Sie diese Richtlinien, um die Leistung Ihrer Workflow-Studio -Komponenten zu optimieren.

    Übersicht über Workflow-Studio

    Integrieren Sie die Workflow-Erstellung, -Konfiguration und -Überwachung auf einer einzigen Seite. Konsolidieren Sie Playbooks, Flows, Aktionen, Entscheidungstabellen und Integrationen in einer Designumgebung.

    App-Entwicklung

    Beachten Sie beim Entwerfen einer Aktion oder eines Flow die folgenden allgemeinen Richtlinien.

    Verwenden Sie die StandardNow Platformanwendungsentwicklungsfunktionen zum Erstellen, Verwalten, Schützen und Bereitstellen Workflow-Studio 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 Workflow-Studio .
    • 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, ist sie wahrscheinlich zu lang und kann effizienter sein.

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

    Verhindern Sie in Konflikt stehende oder doppelte Geschäftslogik

    Automatisierungen können mit Flow Designer, Geschäftsregeln, Workflows und Integration Hub erstellt werden. Bevor Sie Workflow-Studio verwenden, machen Sie sich mit der Funktionsweise vorhandener Now Platform Automatisierungen vertraut. Deaktivieren Sie Automatisierungen, bevor Sie sie durch Workflow-Studio -Flows und -Aktionen ersetzen. Siehe Über die Architektur, um zu erfahren, wie Workflow-Studio innerhalb von Now Platformfunktioniert.

    Überprüfen Sie bei Bedarf die Dokumentation zu Flows, Subflowsund Aktionen.

    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 die gleichen Daten als Eingabe für Flows. Wenn Sie stattdessen eine Variableneingabe zum Initiieren eines Flows benötigen, erstellen Sie einen Subflow.
    Geschäftslogik wiederverwenden
    Erstellen Sie einen Satz wiederverwendbarer Vorgänge als Subflow, der dann in mehreren Flows verwendet werden kann.
    Erteilen Sie Flow-Rollen, um auf rollengeschützte Daten zuzugreifen und Benutzerinformationen zu erhalten
    Mit Flow-Rollen können Sie Berechtigungen für Ihre Flows einfach halten. Verwenden Sie Flow-Rollen, um Benutzerinformationen zu erhalten 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 nicht die gs.sleep()- Methode, um innerhalb eines Flows zu warten. Die gs.sleep() -Methode 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 den -Flow, wenn eine Verzweigung auf die Ausgabe von einer anderen Verzweigung warten muss. Anstatt parallele Verzweigungen innerhalb eines Flows zu erstellen, rufen Sie einen Subflow auf, und geben Sie die Ergebnisse an den Haupt-Flow zurück.
    Umfangsschleifenzähler

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

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

    „Für jedes begrenzen“ und „Tut bis“ durchlaufen Schleifen auf 1000 Iterationen
    Iterationen mit 1000 oder mehr Schleifen können zu Arbeitsspeicherproblemen 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, die standardmäßig auf 1000 festgelegt ist.
    • Bei geschachtelten Schleifen hat jede Schleife ihre eigene maximale Anzahl von Iterationen.
    • Erwägen Sie bei der Verarbeitung großer Datenmengen die Batchverarbeitung in kleinere Batches.
    • Berücksichtigen Sie bei Massenimporten gleichzeitige Importe.
    QuickAPI für schnellere Ausführungen verwenden (Business-Regel-Alternative)
    • QuickAPI- Ausführungen sind viel schneller, es steht jedoch weniger Debugging-Fähigkeit zur Verfügung.
    • QuickAPI-Ausführungen im Vordergrund werden in der Benutzersitzung als der Benutzer ausgeführt, der den Flow aufgerufen hat.
    • QuickAPI-Ausführungen im Hintergrund werden in einem Hintergrund-Thread in der Anwendersitzung „System“ ausgeführt.
    Verwenden Sie Bis-Schleifen, anstatt Flows von sich selbst aufzurufen
    Eine direkte Rekursion, bei der sich ein Flow selbst aufruft, ist nicht zulässig und führt zu Fehlern. Indirekte Rekursion, bei der Flow A Flow B aufruft, der Flow A aufruft, ist bis zu dreimal zulässig. Anstatt einen Flow rekursiv aufzurufen, können Sie mit der Flow-Logik „Ausführen bis“ die Arbeit an Datensätzen fortsetzen, 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 Anwendersitzung 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 Anwenderoberflä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 Probleme mit dem Arbeitsspeicher vermeiden. Anstatt eine große Nutzlast im Arbeitsspeicher zu speichern, fügen Sie Aktionen hinzu, um die Nutzlast zu verarbeiten. Je früher Sie eine abgerufene Nutzlast verarbeiten, desto eher kann das System Arbeitsspeicher für die Verarbeitung anderer Aktionen freigeben.
    Minimieren Sie dieHexereien zwischen Umgebungen
    Ein ständiger Wechsel zwischen Schritten der Instanz und dem MID-Server in einem Flow kann zu Verzögerungen bei der Verarbeitungvon führen. Um das Risiko von Verzögerungen zu minimieren, beschränken Sie den Wechsel zwischen Instanz und MID auf einmal.
    Vom Flow generierte sys_complex_object-Datensätze in Update-Sätze einschließen
    Das Fehlen komplexer Datenschemas kann zu Ausführungsproblemen führen. Achten Sie darauf, die vom Flow generierten sys_complex_object-Datensätze in Update-Sätze aufzunehmen. Anstatt Update Sets manuell zu erstellen, sollten Sie Flows mithilfe des Anwendungs-Repository von einer Instanz zu einer anderen übertragen.
    Rufen Sie Flows aus einem Skript auf, wenn Sie einen anwenderdefinierten Auslöser benötigen
    Wenn keiner der vorhandenen Auslöser Ihre Geschäftsanforderungen erfüllt, können Sie ein Skript erstellen, um einen Flow zu starten, wenn seine anwenderdefinierten Auslöserbedingungen erfüllt sind. Anstatt einen Flow mit einem unnötigen Auslöser zu erstellen, sollten Sie stattdessen einen Subflow ohne Auslöser erstellen. Verwenden Sie Ihr Skript, um die erforderlichen Subflow-Eingaben nur bereitzustellen, wenn Ihre Skriptbedingungen erfüllt sind. Durch das Aufrufen eines Subflows anstelle eines Flows wird vermieden, dass die Bedingungen für den Flow-Auslöser erfüllt werden und der Flow unerwartet ausgeführt wird.
    Vermeiden Sie die Bereitstellung neuerer Release-Flows für Instanzen mit älteren Releases
    Workflow-Studio bietet keine Unterstützung für die Bereitstellung von neueren Release-Flows für Instanzen, die unter früheren Releases ausgeführt werden.
    Gefahr:
    Das Flow-Datenmodell kann sich zwischen Releases ändern. Dies kann die Ausführung neuerer Flows verhindern oder zu unerwarteten Ergebnissen führen, wenn sie auf früheren Release-Instanzen ausgeführt werden. Aktualisieren Sie Ihre Instanzen, damit sie dieselben Release-Versionen verwenden, bevor Sie sie bereitstellen.
    Flow-Reporting in der Produktion deaktivieren
    Minimieren Sie die Menge an Arbeitsspeicher, der für die Ausführung von Flows erforderlich ist, indem Sie die Flow-Berichterstellungdeaktivieren. Flow-Reporting speichert Konfigurations- und Laufzeitinformationen für die Seite „Ausführungsdetails“. Diese Berichte eignen sich gut für die Fehlerbehebung, erfordern jedoch, dass eine große Datenmenge sowohl im Arbeitsspeicher als auch in der Datenbank aufbewahrt wird. Standardmäßig ist das Flow-Reporting deaktiviert, und das System generiert Ausführungsdetails nur, wenn Sie einen Flow oder eine Aktion manuell testen. Stattdessen können Sie Protokolldateien verwenden, die auch dann verfügbar sind, wenn die Berichterstellung deaktiviert ist.
    Reduzieren Sie den Speicherverbrauch in Flows mit geschachtelten Schleifen
    Wenn die Berichterstellung aktiviert ist, legen Sie „com.snc.process_flow.reporting.iteration.lastn“ auf den Wert „1“ fest, um die Menge des Arbeitsspeichers zu reduzieren, die vorherige Schleifeniterationen verbrauchen. Je mehr Iterationen Sie berichten, desto mehr Arbeitsspeicher wird benötigt.

    Subflows

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

    Folgende Gründe sprechen für die Verwendung eines Subflow anstelle eines Flow:

    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 liefern immer die gleichen Daten als Eingabe für Flows. Wenn Sie stattdessen eine Variableneingabe zum Initiieren eines Flows benötigen, 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 für jeden Anruf andere Eingabewerte
    Konfigurieren Sie die Eingabewerte eines Subflows bei jedem Aufruf unterschiedlich. 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 spezifischen Flow zu schreiben.
    Verbessern Sie die 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 werden. Beschränken Sie einen Flow jedoch auf 25 Aktionen, um eine optimale Leistung zu erzielen.

    Übergeben Sie Eingaben und Ausgaben mit Subflows
    Rufen Sie Subflows auf, wenn Sie Eingaben 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 Subflow verfügbar sind.
    Lösen Sie mehrere Flows für ein einzelnes Ereignis 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. Durch die Aufgliederung können Sie zwischen Subflows unterscheiden, die ähnliche Funktionen ausführen, z. B. Subflows für IntegrationHub -Spokes.
    Vermeiden Sie die Beschränkung auf 10 Elemente im Fehlerbehandlungsprozess
    Anstatt zu erzwingen, dass Ihr Fehlerbehandlungsprozess innerhalb einer Grenze von 10 Elementen liegt, 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 Sie Korrekturmaßnahmen
    Anstatt dieselbe Folge 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 liefern immer die gleichen Daten als Eingabe für Flows. Wenn Sie stattdessen eine Variableneingabe zum Initiieren eines Flows benötigen, erstellen Sie einen Subflow.
    Fügen Sie Bedingungen hinzu, um anzugeben, welche Datensatzwerte Ihren Flow starten
    Einen Flow nur bei Bedarf zu starten verbraucht weniger Systemressourcen, als wenn Sie einen Flow starten, anhalten und auf die Fortsetzung warten, bis eine bestimmte Datensatzbedingung gilt. Anstatt einen Flow zu erstellen, der mit einer Aktion Warten auf Bedingung beginnt, entwerfen Sie den Flow so, dass die Wartebedingung als Teil des Datensatzauslösers aufgenommen wird.
    Erstellen Sie eindeutige Bedingungen für Datensatzauslöser in derselben Tabelle
    Um zu verhindern, dass Flows sich 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 präzisere, kleinere Gruppe 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 Set 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 Servicekatalog-Tabellen durch Servicekatalog-Anwendungsauslöser
    Flow Designer zeigt keine Servicekatalog-Tabellen mehr als Optionen für Datensatzauslöser an. Erstellen Sie stattdessen Flows, die den Auslösertyp der Servicekatalog-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 eintreten können
    Verhindern Sie, dass Ihre Flows unbegrenzt warten, indem Sie mit Flow-Logik für „Flow beenden“.Flow-Stopp-Bedingungen angeben. Um Systemressourcen freizugeben, können Sie auch jeden Flow abbrechen, dessen Fortsetzungsbedingungen niemals erfüllt werden können. Sie können beispielsweise Flows abbrechen, die auf die Aktualisierung von Incident-Datensätzen warten, bei denen der zugehörige Incident geschlossen wird.
    Wartebedingungen auf Felder beschränken, die in der aktuellen Tabelle vorhanden sind
    Die Aktion „Auf Bedingung warten“ 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 beispielsweise eine Aktion auf Änderungen an einem Incident-Datensatz wartet, können Änderungen an zugehörigen Datensätzen wie Katalogelementen oder Change-Aufgabendatensätzen nicht erkannt werden. 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 oder Subflows mit Phasen

    Befolgen Sie diese allgemeinen Richtlinien, wenn Sie Flows oder Subflows mit Phasen erstellen.
    Vermeiden Sie es, Phasen zu definieren, die von einer Für-Jeden-Flow-Logik abhängen
    Flow Designer verhindert das Hinzufügen von Phasen innerhalb eines „For each“ -Blocks. Sie können nur Phasen vor oder nach einem Für-jeden- Block hinzufügen.
    Vermeiden Sie das Erstellen von Phasen für dieselben Datensätze in verschiedenen Flows oder Subflows
    Ein Stufenfeld zeigt immer die Stufeninformationen an, die vom letzten Flow oder Subflow bereitgestellt wurden, der für den Datensatz einer Tabelle ausgeführt wurde. Wenn mehrere Flows oder Subflows für dieselben Datensätze ausgeführt werden, können die in einem Flow oder Subflow definierten Phasen prinzipiell die Phasen eines anderen Flows oder Subflows überschreiben. Um zu vermeiden, dass mehrere Flows oder Subflows die Phasen der anderen überschreiben, definieren Sie eindeutige Auslöser- oder Startbedingungen für jeden Flow oder Subflow.
    Vermeiden Sie es, Phasenfelder von außerhalb eines Flows oder Subflows zu aktualisieren
    Wenn Sie Phasen mit einem Flow oder Subflow verwalten, vermeiden Sie es, Datensatzphasenfelder direkt von außerhalb des Flows oder Subflows zu aktualisieren. Das manuelle Aktualisieren des Werts eines Phasenfelds kann zu unerwarteten oder unerwünschten Ergebnissen führen.
    Stellen Sie sicher, dass jeder Flow in einer Tabelle eindeutige Auslöserbedingungen hat
    Durch Hinzufügen eindeutiger Auslöserbedingungen für jeden 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. Das Angeben eindeutiger Auslöserbedingungen erleichtert die Problembehandlung bei Flows, indem die Anzahl der Flow-Ausführungen begrenzt wird, die zu Datensatzänderungen führen können.
    Verwenden Sie Fehlerphasen, um mit dem Benutzer zu kommunizieren
    Der Flow-Fehlerstatus hat keine Auswirkungen auf die Flow-Ausführung. Ein Flow wird weiter ausgeführt, auch wenn er eine Fehlerphase erreicht hat. Verwenden Sie einen bedingten Flow-Logikblock, um die Fehlerphase festzulegen und dem Anwender mitzuteilen, dass der Status der aktuellen Phase „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 zu beenden
    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 zu beenden oder eine Korrekturaktion durchzuführen. Beispielsweise können Sie den Datensatzstatus oder die Zuweisung ändern, wenn ein Flow einen Fehlerstatus erreicht.

    Führen Sie die folgenden Schritte in paralleler Flow-Logik aus

    Vermeiden Sie das Erstellen von Datenabhängigkeiten zwischen Pfaden
    Da ein Flow Pfade in beliebiger Reihenfolge ausführen kann, vermeiden Sie die Erstellung von Datenabhängigkeiten zwischen separaten Pfaden. 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 kann vor dem Pfad zum Erstellen des Datensatzes ausgeführt werden.
    Geben Sie keine Daten zwischen Pfaden frei
    Workflow-Studio verhindert, dass Sie Datenpillen zwischen Pfaden ziehen, da das System nicht bestimmen kann, welcher Pfad zuerst abgeschlossen wird, um den Ausgabewert bereitzustellen.

    Flow-Logik für dynamische Flows

    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. Durch die Aufgliederung 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 einen 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.

    Password2-Datenpillen

    Befolgen Sie diese allgemeinen Richtlinien, wenn Sie Flows entwerfen, die Passwortdaten (zweifach verschlüsselt) enthalten.
    Weisen Sie Werte mithilfe vorhandener Passwort-Datenpillen (zweifach verschlüsselt) zu.
    Sie können einer Passwort2-Variablen nur einen Wert zuweisen, indem Sie eine vorhandene Passwort2-Datenpille auswählen. Die Auswahl von Werten aus anderen Feldtypen wird nicht unterstützt. Workflow-Studio zeigt eine Warnmeldung an, wenn ungültige Datenpillentypen ausgewählt sind.

    Die Warnmeldung, die beim Ziehen einer Nicht-Passwort2-Datenpille auf ein Passwort2-Feld angezeigt wird.

    Hinweis:
    Sie können Passwortwerte (zweifach verschlüsselt) nicht manuell eingeben.
    Verwenden Sie Passwortvariablen (zweifach verschlüsselt) nur für gültige Feldtypen
    Workflow-Studio verhindert, dass Password2-Datenpillen als Wert für ungültige Feldtypen ausgewählt werden. Das System zeigt eine Warnmeldung an, wenn das Feld ein inkompatibler Typ ist.

    Die Warnung, die beim Ziehen eines Passwort2-Felds in ein unzulässiges Feld angezeigt wird.

    Workflow-Studio ermöglicht nur das Ziehen von Password2-Datenpillen in die folgenden Feldtypen:
    • E-Mail-Textfelder
    • HTML-Felder
    • Passwort 2 Felder
    • PowerShell-Eingabevariablen
    • REST-Felder
      • Variablen
      • REST-Nutzlasttext
      • Abfrageparameter
      • Header
      • Mehrteilige REST-Formularwerte
      • URL-codierte Werte bilden
    • SOAP-Felder
      • Header
      • Umschlag
    Hinweis:
    Sie können Passwortvariablen (zweifach verschlüsselt) nicht als Bedingungen verwenden

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

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

    Aktionen für SLA-Prozentsatz-Timer

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

    Fügen Sie SLA-Prozentsatz-Timer-Aktionen nur zu Flows mit einem SLA-Aufgabenauslöser hinzu
    Eine Aktion für einen SLA-Prozent-Timer 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 eine 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-Prozentsatz-Timer den Status Abgeschlossenhat.
    Weisen Sie jeder SLA-Prozentsatz-Timer-Aktion einen eindeutigen kumulativen Wert für Warten auf Prozentsatz zu
    Jede SLA-Prozent-Timer-Aktion berechnet ihr eigenes geplantes Enddatum und ihre eigene geplante Endzeit anhand des Werts für „Warten auf Prozentsatz“. Wenn Sie mehrere SLA-Prozentsatz-Timer-Aktionen erstellen, geben Sie jeder Aktion einen eigenen eindeutigen kumulativen Wert für Warten auf Prozentsatz. Erstellen Sie beispielsweise drei separate Aktionen mit unterschiedlichen Werten für den Fertigstellungsgrad, z. B. 25 %, 50 % und 75 % abgeschlossen. Wenn Sie alle drei Aktionen auf denselben Fertigstellungsgrad-Wert festlegen, z. B. 25 %, werden die Timer gleichzeitig abgeschlossen.
    Kopieren Sie vorhandene Flows, um Anpassungen vorzunehmen
    Reduzieren Sie die Entwicklungszeit, indem Sie die Standard-SLA-Flows kopieren und die Kopien mit Ihrer eigenen Logik anpassen. Wählen Sie einen anwenderdefinierten Flow aus, der aus der SLA-Definition ausgeführt werden soll. Weitere Informationen finden Sie unter SLA-Definition 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 Workflow-Studiofinden 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 sie ablaufen. Wenn Ihre Datensammlungsaktion 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 Timeout-Werte für interaktive Flows, bei denen ein Endanwender einen Wert eingeben oder auswählen muss.
    Beachten Sie Skriptfehler
    Da alle Datensammlungsaktionen einen Skriptschritt verwenden, können beim Skripting Fehler auftreten. Wenn Sie Skripts zur Ausgabe von JSON-Variablen für Ihre dynamischen Eingaben verwenden, können Fehler auftreten, die verhindern, dass die Eingaben die benötigten JSON-Werte erhalten. Wenn ein Skriptfehler bei der dynamischen Eingabe auftritt, wird möglicherweise die folgende Warnmeldung angezeigt.
    Abbildung : 1. Meldung, die für den Skriptfehler angezeigt wird
    Fehlermeldung für dynamische Aktion
    Beschränken Sie 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 es im Arbeitsspeicher zu speichern. 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.
    Beschränken Sie die JSON-Ausgabe auf 5000 Array-Elemente für dynamische Vorlagen und dynamische Auswahlmöglichkeiten
    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 Datensammlungsaktion Daten für eine dynamische Vorlage oder eine dynamische Auswahl sammelt, beschränken Sie die maximale Anzahl der zurückgegebenen Array-Elemente auf 5000. Die Beschränkung von 5000 Array-Elementen verhindert, dass die Instanz Leistungsprobleme beim Rendern der Auswahlmöglichkeiten oder Feldwerte hat.

    Dynamische Ausgaben

    Verwenden Sie dynamische Ausgaben für Drittanbieterintegrationen
    Verwenden Sie dynamische Ausgaben, um zu introspektieren und während des Flow-Designs 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 Workflow-Studiofinden 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 das System sie stoppt. Wenn Ihre Datensammlungsaktion 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 Endanwender erwartet, dass er einen Wert eingibt oder auswählt.
    Beachten Sie Skriptfehler
    Da alle Datensammlungsaktionen einen Skriptschritt verwenden, können beim Skripting Fehler auftreten. Überprüfen Sie alle Skripts, die zur Ausgabe von JSON-Variablen verwendet werden, da Skriptfehler möglicherweise verhindern, dass die Ausgaben die benötigten JSON-Werte erhalten. Wenn ein Fehler beim Erstellen des dynamischen Ausgabeskripts auftritt, wird möglicherweise die folgende Warnmeldung angezeigt.
    Abbildung : 2. Meldung, die bei einem Skriptfehler angezeigt wird
    Fehlermeldung für dynamische Aktion

    Liste.[Tabelle] Daten

    Fügen Sie einen Referenzqualifizierer hinzu, um Listendatensätze zu filtern
    Filtern Sie die Datensätze, die von der Listenvariablen als gültige Optionen angezeigt werden, 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 die Auswahl von Standarddatensätzen für Aktionen, die für den ServiceNow Store vorgesehen sind
    Vermeiden Sie die Auswahl von Standarddatensätzen für eine Liste, 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 anwenderdefinierte Aktion installieren. Wenn Sie eine anwenderdefinierte 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 „Für jeden“.
    Sie können eine Listenvariable verwenden, um die Datensätze anzugeben, die innerhalb der For-Each-Flow-Logik verarbeitet werden sollen. Die For-Each-Flow-Logik ignoriert alle Nicht-Datensätze sys_id, die in den Daten vorhanden sind. Wenn beispielsweise die Listenvariable eine E-Mail-Adresse enthält, wird sie von der Flow-Logik ignoriert.

    Genehmigungsregeln

    Einen Standardwert angeben
    Erstellen Sie eine Genehmigungsregel, oder wählen Sie sie 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 erzeugen, die vom System nicht analysiert werden können. Beispiel: Wenn eine Zeichenfolge in ein Datum umgewandelt wird, 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 die ursprüngliche Datenpille nicht. Wenn Sie dieselbe Datenpille über mehrere Aktionen oder Schritte hinweg verwenden, müssen die Transformationsfunktionen daher auf jede einzelneEingabe angewendet werden.
    Zeigen Sie die endgültigen transformierten Werte in den Flow-Ausführungsdetails an
    In den Flow-Ausführungsdetailswird nur der endgültige transformierte Wert und nicht der Wert für jede angewendete Transformation angezeigt.
    Testen Sie die Transformationsfunktionen, um sicherzustellen, dass sie die erwarteten Ergebnisse liefern
    Stellen Sie sicher, dass Ihre Transformationsfunktionen die erwarteten Laufzeitwerte für die Datenpillen liefern. Weitere Informationen finden Sie unter Flow testen und Aktion 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
    Workflow-Studio bietet eine Liste der Standardtransformationsfunktionen für Datenkonvertierungen und Formatierungsvorgänge. Anstatt eine anwenderdefinierte Skriptlösung zu schreiben und zu verwalten, wählen Sie eine vorhandene Transformationsfunktion aus, falls verfügbar.
    Rufen Sie Skripteinbindungen aus einem Inline-Skript auf
    Rufen Sie eine Skripteinbindung aus Ihrem Inline-Skript auf, um die Menge des von Ihnen geschriebenen Codes zu reduzieren und allgemeinen Code an einem zentralen Ort zu verwalten. Verwenden Sie den Klassenkonstruktor, um Ihre Skripteinbindung aufzurufen. Weitere Informationen zum Erstellen von Skripteinbindungen finden Sie unter Script includes.
    var si = new MyScriptInclude();
    si.functionOne();
    Erstellen Sie anwenderdefinierte Aktionen oder Subflows für wiederverwendbaren Code anstelle von Inline-Skripts
    Erstellen Sie anwenderdefinierte Aktionen oder Subflows für wiederverwendbare oder komplexe Datenlogik, z. B. das Ändern des Datentyps von Quelldaten. Unter Umständen möchten Sie auch anwenderdefinierte Aktionen oder Subflows für Flow Designer bereitstellen, die sich mit Code nicht auskennen.
    Vermeiden Sie die Duplizierung von Aktions- und Flow-Funktionen
    Vermeiden Sie es, Inline-Skripts zu schreiben, die Aktions- und Flow-Funktionen duplizieren. Beispielsweise können Sie zum Ausführen von Datensatzvorgängen kein Inline-Skript schreiben, sondern die Baseline-Aktionen zum Erstellen und Aktualisieren von Datensätzen verwenden.
    Vermeiden Sie Datentypänderungen
    Vermeiden Sie Laufzeitfehler, indem Sie überprüfen, ob Ihr Inline-Skript Informationen im gleichen Datentyp bereitstellt, wie die Eingabe 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 im richtigen JavaScript-Bereich bleiben. Wenn Sie eine Variable erstellen, indem Sie ihr einen Wert zuweisen, kann sie von JavaScript an das globale Objekt angehängt werden. Dies kann dazu führen, dass Variablenwerte außerhalb des lokalen Bereichs erhalten bleiben und Fehler verursachen.
    Verarbeiten Sie Datensätze mit der Flow-Logik „Für jeden“ und dem Flow-Datenobjekt
    Das Inline-Skript kann nur auf die Datensatzausgabe einer Aktion „Datensätze suchen“ der Flow-Logik „Für jeden“ zugreifen. Fügen Sie dem Flow die Aktion Datensätze suchen hinzu, um die Datensatzausgabe zu generieren. Fügen Sie dem Flow die Flow-Logik „Für jeden“ hinzu, um jeden Datensatz in der Datensatzausgabe zu verarbeiten. Erstellen Sie mithilfe der Objekte „fd_data“ und „item“ einen Inline-Skriptverweis auf die Flow-Logik „Für jeden“. Diese Referenz geht beispielsweise davon aus, dass die Flow-Logik „Für jeden“ das zweite Element in Ihrer Flow-Modellierung fd_data._2__for_each.itemist.
    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. Wenn Sie fd_dataeingeben, zeigt der Skript-Editor Vorauseingabe-Vorschläge für vorhandene Flow- und Aktionsdaten an. Wählen Sie einen Vorschlag aus, um Verweise auf Flow- und Aktionsdaten zu erstellen.
    Hinweis:
    Beziehen Sie sich auf das Aufzeichnen von Daten in einer For-Each-Flow-Logik mithilfe des Elementobjekts.
    Umfangsschleifenzähler

    Skriptschleifen haben keine maximale Anzahl von Iterationen, daher werden Schleifen unbegrenzt 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; ill) hinzufügen und für (var i=0; i< Länge; ill)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 komplexer ist es, eine Datenvariable anzuzeigen und in der Hierarchie auszuwählen. Sie können zwar Datenstrukturen mit einer beliebigen Anzahl von untergeordneten Ebenen erstellen, aber es wird schwierig, in Datenstrukturen mit mehr als sieben untergeordneten Ebenen zu navigieren und sie zu verstehen. Vermeiden Sie für eine optimale Anwender-Experience das Erstellen von Datenstrukturen mit so vielen untergeordneten Ebenen, dass Sie horizontal scrollen müssen, um sie anzuzeigen und zu füllen.
    Erstellen Sie ein separates Objekt für jeden Typ von Datensatzdaten
    Die meisten Workflow-Studio -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.
    Erstellen Sie die Datenstrukturen des Datensatzes neu
    Ü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 entsprechende Objektdatenstrukturen. Angenommen, ein Objekt soll Daten aus den Tabellen „Incident“ und „Konfigurationselement“ 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 Tabelle Konfigurationselementerstellen.
    Erstellen Sie Objekte, um verschiedene Arten von Datensätzen zu kombinieren
    Wenn Sie Informationen aus mehreren Arten von Datensätzen benötigen, erstellen Sie ein Objekt, das alle benötigten Informationen enthält. Anschließend können Sie das Objekt zum Formatieren oder Analysieren von Daten in Workflow-Studioverwenden.

    Skripting mit komplexen Daten

    Beachten Sie bei der Skripterstellung 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 Workflow-Studio 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 für den Zugriff auf vorherige Daten
    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 zum Speichern komplexer Daten
    Erstellen Sie eine Skriptausgabevariable, um komplexe Daten zu speichern, die Ihr Skript erstellt. Die Skriptausgabevariablen müssen mit den im Skript definierten Werten übereinstimmen. Erstellen Sie beispielsweise ein Kontakt-Array von Objekten, um mehrere Kontaktobjekte zu speichern. Speichern Sie das Kontaktobjekt als Vorlage, damit Sie es wiederverwenden können.
    Ordnen Sie die Aktionsausgabe der Skriptausgabevariablen zu
    Wenn eine anwenderdefinierte Aktion komplexe Daten ausgeben soll, fügen Sie eine Aktionsausgabe hinzu, und ordnen Sie sie der Datenpille für die Ausgabevariable Ihres Skriptschritts zu. Erstellen Sie beispielsweise ein Kontakt-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 Domain Separation

    Befolgen Sie diese allgemeinen Richtlinien, wenn Sie Domain Separation mit Workflow-Studioverwenden.

    Stellen Sie sicher, dass Mandanten-Flows, Aktionen und Subflows für Domänen ordnungsgemäß ausgeführt werden
    Da Mandanten die Inhalte Workflow-Studio 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 Domänen höher 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 Workflow-Studio -Inhalte sehen, die in ihrer aktuellen Domäne und in übergeordneten Domänen in der Hierarchie verfügbar sind. Workflow-Studio zeigt keine Inhalte an, die in Domänen vom Typ „Enthält“ sichtbar sind.
    Geben Sie einen eindeutigen Namen für jeden Flow, jede Aktion und jeden Subflow an
    Da alle Domänen den Inhalt Workflow-Studio von gemeinsam nutzen, muss ein 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 vorgesehen 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. Validate incidents - TOP (Incidents validieren – TOP), Validate incidents – ACME (Incidents validieren – ACME) und Validate incidents – INITECH (Incidents validieren – INITECH).
    Stellen Sie sicher, dass Flows und Aktionen nur Artefakte aus aktuellen oder übergeordneten Domänen enthalten
    Workflow-Studio verhindert die Aktivierung von Flows, die Artefakte enthalten, die für die aktuelle oder übergeordnete Domänen 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 Workflow-Studio in der Domäne, zu der er gehört
    Benutzer in einer übergeordneten Domäne können Flows, Aktionen und Subflows in einer untergeordneten Domäne nicht anzeigen. Sie müssen zu der Domäne wechseln, zu der sie gehören, um sie bearbeiten zu können. Beispielsweise kann ein Administrator in der TOP-Domäne keine Flows aus der ACME-Domäne sehen. Um sie anzuzeigen und zu bearbeiten, muss der Administrator zur ACME-Domäne wechseln.

    Bereitstellung

    Vermeiden Sie die Bereitstellung neuerer Release-Flows für Instanzen mit älteren Releases
    Workflow-Studio bietet keine Unterstützung für die Bereitstellung von neueren Release-Flows für Instanzen, die unter früheren Releases ausgeführt werden.
    Gefahr:
    Das Flow-Datenmodell kann sich zwischen Releases ändern. Dies kann die Ausführung neuerer Flows verhindern oder zu unerwarteten Ergebnissen führen, wenn sie auf früheren Release-Instanzen ausgeführt werden. Aktualisieren Sie Ihre Instanzen, damit sie dieselben Release-Versionen verwenden, bevor Sie sie bereitstellen.

    Flow-Fehlerbehandlung

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

    Vermeiden Sie es, dem Hauptabschnitt des Flow Elemente zur Fehlerbehandlung hinzuzufügen
    Die Ausführung eines Flows wird normalerweise beendet, 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 er einen Fehler zurückgegeben hat. Durch Hinzufügen von Fehlerbehandlungsaktionen und Subflows zum Fehler-Handler-Abschnitt wird sichergestellt, dass sie bei einem Fehler ausgeführt werden.
    Erfassen Sie Fehlerstatusinformationen
    Das Fehlerstatusobjekt enthält Informationen zu der Aktion, die zu einem Fehler geführt hat. Sie können diese Informationen verwenden, um die Ursache des Fehlers zu identifizieren und Daten aufzuzeichnen, die möglicherweise korrigiert werden müssen.
    Unterdrücken Sie Subflow-Fehlermeldungen
    Sie können den Fehler-Handler für einen Subflow aktivieren, um zu verhindern, dass seine Fehler auf einen übergeordneten Flow kaskadieren. Wenn Sie den Abschnitt für den Subflow-Fehler-Handler leer lassen, wird sichergestellt, dass immer der Status Abgeschlossen (Fehler erfasst) generiert wird.
    Verwenden Sie Subflows, um die Beschränkung auf 10 Elemente zu umgehen
    Anstatt zu erzwingen, dass Ihr Fehlerbehandlungsprozess innerhalb einer Grenze von 10 Elementen liegt, 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 zu ergreifen
    Anstatt dieselbe Folge 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.

    Fehlerbewertung der Aktion

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

    Nur unabhängige Schritte zulassen, um die Ausführung fortzusetzen
    Zulassen, dass ein Schritt weiter ausgeführt 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
    Es gibt zwar keine Begrenzung für die Anzahl der Fehlerbedingungen, die Sie erstellen können, aber jede Fehlerbedingung muss bewertet werden. Je mehr Fehlerbedingungen Ihre Aktion auswerten muss, desto potenziell langsamer kann sie ausgeführt werden.
    Identifizieren Sie bestimmte Schrittfehler
    Sie können den Schrittstatus verwenden, um zu identifizieren, wann ein bestimmter Schritt fehlschlägt. Das Identifizieren eines bestimmten Schritts kann nützlich sein, wenn Ihre Aktion mehrere Instanzen des gleichen Schritttyps enthält. Möglicherweise möchten Sie auch einen bestimmten Schritt identifizieren, damit ein Flow-Fehlerhandler entsprechende Korrekturmaßnahmen für den Fehler ergreifen kann.
    Platzieren Sie spezifische Fehlerbedingungen vor allgemeine Fehlerbedingungen
    Die Fehlerauswertung wird beendet, wenn die Aktion eine übereinstimmende Fehlerbedingung findet. Wenn Sie allgemeine Fehlerbedingungen an die erste Stelle setzen, 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 werden bei der Bearbeitung nur Fehlerbedingungen angezeigt.

    Flow-Administrator

    Flow-Reporting in der Produktion deaktivieren
    Minimieren Sie die Menge an Arbeitsspeicher, der für die Ausführung von Flows erforderlich ist, indem Sie die Flow-Berichterstellungdeaktivieren. Flow-Reporting speichert Konfigurations- und Laufzeitinformationen für die Seite „Ausführungsdetails“. Diese Berichte eignen sich gut für die Fehlerbehebung, erfordern jedoch, dass eine große Datenmenge sowohl im Arbeitsspeicher als auch in der Datenbank aufbewahrt wird. Standardmäßig ist das Flow-Reporting deaktiviert, und das System generiert Ausführungsdetails nur, wenn Sie einen Flow oder eine Aktion manuell testen. Stattdessen können Sie Protokolldateien verwenden, die auch dann verfügbar sind, wenn die Berichterstellung deaktiviert ist.
    Reduzieren Sie den Speicherverbrauch in Flows mit geschachtelten Schleifen
    Wenn die Berichterstellung aktiviert ist, legen Sie „com.snc.process_flow.reporting.iteration.lastn“ auf den Wert „1“ fest, um die Menge des Arbeitsspeichers zu reduzieren, die vorherige Schleifeniterationen verbrauchen. Je mehr Iterationen Sie berichten, desto mehr Arbeitsspeicher wird benötigt.
    Zeigen Sie die endgültigen transformierten Werte in den Flow-Ausführungsdetails an
    In den Flow-Ausführungsdetailswird nur der endgültig transformierte Wert angezeigt, nicht der Wert für jede angewendete Transformation.

    Flow-Priorität

    Beachten Sie beim Festlegen der Flow-Priorität die folgenden Designüberlegungen.

    Vermeiden Sie es, alle Flows auf eine Ausführung mit hoher Priorität festzulegen
    Verwenden Sie eine Mischung aus 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 das Festlegen der Flow-Priorität für Flows, die angehalten werden müssen
    Flows, die angehalten werden müssen, mit standardmäßiger mittlerer Priorität, da ein angehaltener Flow seinen Prioritätswert verliert, wenn er wieder ausgeführt wird.
    Verwenden Sie eine hohe Priorität für geschäftskritische Flows
    Beschränken 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, Flows mit hohem Volumen auf eine hohe Priorität zu setzen, da dies die Anzahl der verfügbaren Worker-Threads für die Ausführung anderer Flows begrenzt. Ein Flow mit langer Laufzeit und hoher Priorität kann auch die Anzahl der für die 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 mit niedriger Priorität aus, sodass andere zeitkritische Flows zuerst ausgeführt werden können. Flows mit niedriger Priorität dürfen nicht zeitabhängig sein.
    Verwenden Sie eine mittlere Priorität für zeitkritische Flows
    Verwenden Sie die Standard-Flow-Priorität, wenn ein Flow im Vergleich zu anderen Flows eine zeitliche Dringlichkeit aufweist.