Erstellen Eine Datenstromaktion
Erstellen Sie eine wiederverwendbare Aktion, um einen Stream von Antwortdaten in einem Flow zu verarbeiten.
Vorbereitungen
- Richten Sie eine Anwendung in Guided Application Creator ein Zum Speichern Workflow-Studio Inhalt.
- Deaktivieren Sie alle in Konflikt stehenden Business-Regeln oder Workflows, bevor Sie eine Aktion erstellen.
- Erforderliche Rolle: action_designer oder admin
Warum und wann dieser Vorgang ausgeführt wird
Erstellen einer anwenderdefinierten Anwendung zur Aufnahme von Workflow-Studio Mit Inhalt können Sie Folgendes tun Bereitstellen Es verwendet das Anwendungs-Repository oder ServiceNow Store.
Prozedur
- Navigieren zu Alle > Flow Designer > Designeran.
- Klicken Sie auf Aktionen Registerkarte und wählen Sie aus Datenstrom .
-
Füllen Sie die Aktionseigenschaften aus und klicken Sie auf Senden.
Feld Beschreibung Aktionsname Geben Sie einen eindeutigen Namen für Ihre Datenstromaktion ein. Beschreibung Beschreibung der Datenstromaktion. Anwendung Anwendungsbereich der Datenstromaktion. Domäne Domänenbereich der Datenstromaktion. Weitere Informationen zur Domänentrennung finden Sie unter Domain separation explained. Zusätzliche Eigenschaften Zugänglich von Zugriff von allen Anwendungsbereichen oder nur innerhalb des angegebenen Anwendungsbereichs. Kategorie Definierte Kategorie innerhalb des Anwendungsbereichs für eine Aktion. Beginnend mit Xanadu Release können Sie eine anwenderdefinierte Kategorie erstellen, um Ihre Datenstromaktionen zu organisieren. Schutz Wählen Sie aus, ob die Datenstromaktion schreibgeschützt ist. Sie können einen Wert nur auswählen, wenn Sie die Datenstromaktion in einem eigenen Anwendungsbereich erstellen. Der Standardwert ist "Kein". Aktionsanmerkung Hilfetext, der unter dem Titel der Datenstromaktion in angezeigt wird Workflow-Studio Damit die Autoren der Datenstromaktion verstehen, was die Datenstromaktion bei Verwendung in einem Flow bewirkt. Ein leerer DatenstromAktion wird geöffnet. -
Definieren Sie Aktionseingaben, um Daten für die Aktionsschritte verfügbar zu machen.
-
Wählen Sie + Eingabe erstellen und füllen Sie die Felder aus.
Eingaben werden im rechten Fensterbereich als Data-Pills dargestellt.
Weitere Informationen zu Aktionseingaben finden Sie unter Workflow-Studio – Anwenderdefinierte Aktionen werden erstelltan. -
Wählen Sie + Eingabe erstellen und füllen Sie die Felder aus.
-
Klicken Sie Auf Aktionsvorverarbeitung In DatenstromSkizzieren und konfigurieren Sie die gewünschten Optionen.
-
Wählen Sie Aus Rufen Sie die Verbindungsinformationen ab Um den Schritt „Verbindungsinformationen abrufen“ als ersten Schritt in der Aktionsvorverarbeitung hinzuzufügen.
Mit dem Schritt „Verbindungsinformationen abrufen“ können Sie Verbindungs- und Anmeldeinformationsdetails abrufen, die in Ihrer Aktion verwendet werden sollen. Weitere Informationen finden Sie unter Get Connection Info step.
-
Wählen Sie Aus Vorverarbeitungsskript aktivieren Zur Ausführung ein Vorverarbeitungsskript, bevor die Aktion die erste API-Anforderung sendet. Validieren Sie beispielsweise Aktionseingaben, oder legen Sie Standardwerte fest. Die Vorverarbeitung wird einmal pro Aktion vor der ersten API-Anforderung ausgeführt.
Durch Auswahl dieser Option wird der Aktion Datenstrom ein Skriptschritt hinzugefügt. Weitere Informationen finden Sie unter Script step.
Wichtig:Datenstromaktionen erfordern eine konstante Verbindung mit dem Antwortstrom. Sie unterstützen keine Vorverarbeitungsskripts, die die Aktion zum Aufrufen eines anhalten MID-Server Oder halten Sie die Aktion an, um auf eine Bedingung oder Dauer zu warten. Ein Vorverarbeitungsskript, das die Aktion aus beliebigem Grund anhält, gibt eine Fehlermeldung zurück.
-
Wählen Sie Aus Rufen Sie die Verbindungsinformationen ab Um den Schritt „Verbindungsinformationen abrufen“ als ersten Schritt in der Aktionsvorverarbeitung hinzuzufügen.
-
Klicken Sie Auf Anforderung In DatenstromSkizzieren und konfigurieren Sie die gewünschten Optionen.
-
In Wie erhalten Sie Daten Feld auswählen REST-Schritt , SOAP-Schritt , Oder JDBC-Schritt Um den zugehörigen Schritt zu hinzuzufügen DatenstromAktion.
Weitere Informationen finden Sie unter REST-Schritt, SOAP-Schritt, Und JDBC-Schritt .
Dieser Abschnitt kann entweder auf ausgeführt werden MID-Server Oder die Instanz. Die Umgebung wird durch bestimmt MID-Server verwenden Feld im zugehörigen Verbindungsdatensatz [sys_connection].
Hinweis:- Wenn Sie den JDBC-Schritt verwenden, müssen Sie ihn testen. Nach erfolgreicher Ausführung können Sie das Ergebnis verwenden, um die Schrittausgabe und die Ausgabe der Datenstromaktion zu erstellen.
- Wenn Sie den REST-Schritt oder SOAP-Schritt verwenden, müssen Sie die Ausgabe der Datenstromaktion manuell erstellen.
-
Wählen Sie Aus Aktivieren Sie die Paginierung Zum anfordern Ergebnisse in Stapeln. Sobald eine Seite mit Daten verarbeitet wurde, führt die Aktion Datenstrom den Anforderungsabschnitt erneut aus, um den nächsten Ergebnissatz zurückzugeben.Mit dieser Option wird der ein Paginierungssetup-Schritt hinzugefügt DatenstromGliederung.
Hinweis:Für einen JDBC-Schritt ist die Paginierung nicht anwendbar. Jede Seite kann bis zu 1 GB Daten abrufen, und eine Anforderung kann bis zu 8 GB Daten abrufen.
-
Wählen Sie Aus Führen Sie vor jeder Anforderung ein Skript aus Zum Ausführen eines Skripts vor jeder Anforderung für die nächste Seite beim Aufrufen einer paginierten API.
Schreiben Sie beispielsweise ein Skript, um Variablendatentypen aus der ersten Antwort zu transformieren, bevor Sie eine Anforderung für die nächste Seite senden.
Durch Auswahl dieser Option wird der Aktion Datenstrom ein Skriptschritt hinzugefügt. Weitere Informationen finden Sie unter Script step.
Hinweis:Für einen JDBC-Schritt gilt dies nicht.Dieser Abschnitt kann entweder auf dem MID-Server oder in der Instanz ausgeführt werden. Die Umgebung wird vom Feld Erforderliche Laufzeit des Skriptschritts bestimmt.
Wichtig:Vermeiden Sie es, die Ausführungsumgebung zwischen der Instanz und dem MID-Server mehrmals zu wechseln. Beispielsweise könnten Sie den Anforderungsskriptschritt für die Ausführung auf dem MID-Server konfigurieren, den REST-Schritt jedoch für die Instanz. In diesem Fall wechselt das System die Umgebung für jede Datenseite zwischen der Instanz und dem MID-Server, was die Leistung beeinträchtigen kann.
-
In Wie erhalten Sie Daten Feld auswählen REST-Schritt , SOAP-Schritt , Oder JDBC-Schritt Um den zugehörigen Schritt zu hinzuzufügen DatenstromAktion.
- Wahlweise:
Wenn Paginierung aktiviert ist, konfigurieren Sie den Schritt Paginierungseinrichtung.
Konfigurieren Sie den Schritt „Paginierungseinrichtung“ manuell, oder wählen Sie eine vorgefertigte Vorlage aus, um allgemeine Konfigurationen anzuwenden. Wenden Sie beispielsweise die Vorlage Grenzwert/Offset an, um die Anzahl der pro Seite zurückgegebenen Elemente (Grenze) und die Startnummer für das erste Element (Offset) anzugeben. Aktualisieren Sie nach dem Anwenden einer Vorlage die Werte, um sicherzustellen, dass die Konfiguration den API-Anforderungen entspricht.
-
Erstellen Sie Paginierungsvariablen.
Beispiel: Wenn die Drittpartei-API einen verwendet
GrenzwertParameter in der Anforderung erstellenGrenzwertVariable und legen Sie den Anfangswert fest, um die Anzahl der Ergebnisse pro Seite zu begrenzen. Der Anfangswert wird nur in der ersten Anforderung verwendet.GetNextPageIst eine reservierte, schreibgeschützte Variable. Solange diegetNextPage-Variable auf „true“ gesetzt ist und die vorherige Seite Daten enthält, sendet die Aktion weiterhin Anforderungen für die nächste Seite. -
In Nächster Wert Von Feld definieren, wie Paginierungsvariablen einen Wert für nachfolgende Anforderungen erhalten.
Wählen Sie aus:
- Skript : Schreiben Sie ein Paginierungsvariablen-Skript, um zu definieren, wie Variablen ausgefüllt werden. Paginierungsvariablen unterstützen nur den Datentyp Zeichenfolge. Zum Ausführen von mathematischen Operationen müssen Sie den Wert in eine ganze Zahl konvertieren, alle erforderlichen Vorgänge ausführen und sie dann wieder in eine Zeichenfolge konvertieren.
- Antworttext : Verwenden Sie einen Wert in der Antwort aus der vorherigen Anforderung, um die Variable auszufüllen. Wenn die Antwort das JSON-Format ist, legen Sie fest Extrahieren Sie den Wert mit Bis JSONPath-Ausdruck Und geben Sie den Pfad zum Wert in an Ausdruck Feld. Wenn die Antwort das XML-Format ist, legen Sie fest Extrahieren Sie den Wert mit Bis XPath-Ausdruck Und geben Sie den Pfad zum Wert an.
In diesem Beispiel istGetNextPageVariable ist bis zum „wahr“NextOffsetVariable erreicht den Gesamtanzahlwert, der im API-Antwortheader zurückgegeben wird. Solange diegetNextPage-Variable auf „true“ gesetzt ist und die vorherige Seite Daten enthält, sendet die Aktion weiterhin Anforderungen für die nächste Seite. Dieses Beispiel enthält eine allgemeine Limit-/Offset-Paginierungskonfiguration. Die Drittpartei-APIs, die Sie haben DatenstromDie Aktion, mit der interagiert, kann ein Seiten-Token oder eine andere Methode verwenden.Wichtig:Vermeiden Sie Endlosschleifen in Paginierungsanforderungen, indem Sie eine Bedingung erstellen, die die VariablegetNextPageauf „false“ setzt. Brechen Sie Flows mit langer Ausführungszeit ab. Testen Sie Datenstrom-Aktionen immer, bevor Sie sie in der Produktion verwenden. -
Erstellen Sie Paginierungsvariablen.
-
Klicken Sie Auf Wird Analysiert In DatenstromSkizzieren und konfigurieren Sie die gewünschten Optionen. Hinweis:Für einen JDBC-Schritt gilt dies nicht.
- In Wie werden Sie die einzelnen Datensätze identifizieren Feld auswählen JSON/XML-Splitter Zum Hinzufügen eines Splitter-Schritts zu DatenstromGliederung.
- In Wie Sie jedes Element in einem Objekt analysieren Feld auswählen Skriptparser Zum Hinzufügen eines Skriptparser-Schritts zu DatenstromGliederung.
-
Konfigurieren Sie den Schritt Splitter.
Dieser Schritt identifiziert den übergeordneten Knoten im Antwortstream, der einem komplexen Objekt zugeordnet werden soll. Identifizieren Sie beispielsweise ein Benutzerelement in einer XML-Nutzlast, um für jeden Benutzer im Antwortstream ein komplexes Objekt zu erstellen.
Hinweis:Für einen JDBC-Schritt gilt dies nicht.-
In Quellformat Wählen Sie das vom Abschnitt „Anforderung“ zurückgegebene Format aus.
- JSON: Identifiziert Objekte in einem Stream von JSON-Daten. Verwenden Sie einen JSONPath-Ausdruck, um ein JSON-Array zu identifizieren, das wiederholte Daten enthält.
- XML: Identifiziert Objekte in einem Stream von XML-Daten. Verwenden Sie einen XPath-Ausdruck, um ein XML-Element zu identifizieren, das wiederholte Daten enthält.
-
In Elementpfad Feld definieren Sie den absoluten Pfad zu dem Element im Datenstrom, den Sie einem Objekt zuordnen möchten.
- JSON
- Identifizieren Sie den absoluten Pfad zu einem Array von Objekten als JSONPath-Ausdruck. Verwenden Sie zum Beispiel
$.ErgebnisZum Trennen jedes Elements in einer JSONErgebnisArray in einErgebnisObjekt.Hinweis:Wenn Sie ein Array am Stammknoten eines JSON-Datenstroms auswählen, zeigt das System den absoluten Pfad als an$.*In Ausführungsdetails und Fehlermeldungen. - XML
- Identifizieren Sie den absoluten Pfad zu einem sich wiederholenden Datenobjekt als XPath-Ausdruck. Verwenden Sie zum Beispiel
/ErgebnisZum Trennen jeder Instanz vonErgebnisXML-Element in einErgebnisObjekt.Hinweis:Der Schritt „Splitter“ ignoriert XML-Namespaces.
Angenommen, der REST-Schritt gibt einen Stream von JSON-Daten zurück. Der Elementpfad.response.result.companies USDGibt jedes Element in zurückUnternehmenArray.{ "response": { "result": { "companies": [ { "name": "company1" }, { "name": "company2" }, { "name": "company3" } ], "metadata": { "token": 1558666526 } } } }Angenommen, der REST-Schritt gibt einen Stream von XML-Daten zurück. Der Elementpfad/Response/result/companies/CompanyGibt jeden zurückUnternehmenElement aus den XML-Daten.<response> <result> <companies> <company> <!-- company 1 info --> </company> <company> <!-- company 2 info --> </company> <company> <!-- company 3 info --> </company> <company> <!-- company 4 info --> </company> <batch>10645C53D4BED73YQ</batch> </companies> <metadata> <timestamp>1558666526</timestamp> </metadata> </result> </response>
-
In Quellformat Wählen Sie das vom Abschnitt „Anforderung“ zurückgegebene Format aus.
-
Verwenden Sie im Schritt Skriptparser JavaScript und ServiceNow APIs zum Zuordnen von Elementen im Antwortstrom einer komplexen Objektausgabe, die durch dargestellt wird
TargetObjectGlobales Objekt.Ordnen Sie beispielsweise Incident-Datensatzelemente, die im Splitter-Schritt identifiziert wurden, einem komplexen Objekt zu, das Incident-Felder enthält. Wenn der Datenstrom gleichgeordnete Elemente zu dem im Splitter-Schritt identifizierten Element enthält, die keinem komplexen Objekt zugeordnet werden sollen, schließen Sie Bedingungen ein, um diese Elemente auszuschließen.
Hinweis:Für einen JDBC-Schritt gilt dies nicht.Mit können Sie auf Ausgaben aus vorherigen Schritten in Ihrer Datenstromaktion zugreifen fd_Data Objekt, ausgenommen:- REST- oder SOAP-Schritt-Antworttext, Stream oder Ausgabe von Fehlermeldung.
- Splitter-Schrittausgaben.
Ein Beispielskript, das eine JSON-Antwort analysiert.(function parse(inputs, outputs) { var record = JSON.parse(inputs.sourceItem); outputs.targetObject.id=record.number; outputs.targetObject.name=record.short_description; })(inputs, outputs)Ein Beispielskript, das eine XML-Antwort analysiert.(function parse(inputs, outputs) { var xmlDoc = new XMLDocument(inputs.sourceItem, false); outputs.targetObject.id = xmlDoc.getNodeText("/result/number"); outputs.targetObject.name = xmlDoc.getNodeText("/result/short_description"); })(inputs, outputs) - Wahlweise:
Wenn Sie Wählen Sie den JDBC-Schritt aus. Klicken Sie auf Transformieren .
Klicken Sie nach dem erfolgreichen Testen des JDBC-Schritts auf Ergebnis Verwenden Dient zum Erstellen der Schrittausgabe- und Datenstromaktionsausgabe. Sie können dieses Ergebnis verwenden oder mithilfe des Transformationsskripts anpassen.
- Wählen Sie aus Aktivieren Sie Das Transformationsskript Kontrollkästchen zum Transformieren und Anpassen der standardmäßigen Datenstromausgabe.
-
Erstellen Sie eine komplexe Objektausgabe.
Hinweis:Für einen JDBC-Schritt gilt dies nicht.
- Wählen Sie Aus Ausgaben Klicken Sie in der Aktionsstruktur, und klicken Sie auf + Dient zum Erstellen einer Ausgabe.
-
Aktualisieren Sie Bezeichnung Feld zur Darstellung des Objekts.
Wenn die Aktion beispielsweise einen Stream von Unternehmensdatensätzen analysiert, fügen Sie hinzu Unternehmen Bezeichnung.
-
Aktualisieren Sie Typ Feld bis Objekt .
Dies ist die komplexe Objektausgabe, die durch dargestellt wird
TargetObjectGlobales Objekt im Schritt „Skriptparser“. - Fügen Sie dem komplexen Objekt untergeordnete Felder mit hinzu + Symbol.
-
Machen Sie den Namen jedes untergeordneten Felds anwenderfreundlicher, damit Sie im Skript sinnvoll darauf verweisen können.
Der Wert in Name Feld ist der interne Name, der im Schritt „Skriptparser“ verwendet wird. Um beispielsweise auf die Ausgabe „Stadt“ im Schritt „Skriptparser“ zu verweisen, würden Sie verwenden
Ausgaben.Zielobjekt.Stadt.Warnung:Nach dem Speichern von DatenstromAktion können Sie Werte in nicht ändern Name Feld.
-
Klicken Sie auf Speichern.
Workflow-Studio Speichert einen Entwurf der Aktion.