ThingWorx Flow > Benutzerdefinierte Aktionen erstellen und verwalten > Benutzerdefinierte Aktionen in ThingWorx Flow 8.4.x erstellen
Benutzerdefinierte Aktionen in ThingWorx Flow 8.4.x erstellen
Erstellen Sie benutzerdefinierte Aktionen auf der Seite ThingWorx Flow Einstellungen oder in einem Workflow auf der Registerkarte Benutzerdefiniert im Fensterbereich "Aktionen".
Führen Sie die folgenden Schritte aus, um eine benutzerdefinierte Aktion zu erstellen:
1. Um eine benutzerdefinierte Aktion zu ThingWorx Flow hinzuzufügen, führen Sie einen der folgenden Schritte aus:
Gehen Sie auf der Seite "ThingWorx Flow Einstellungen" zu BENUTZERDEFINIERTE AKTIONEN, und klicken Sie auf .
Wechseln Sie im Workflow-Editor vom Fensterbereich AKTIONEN zur Registerkarte Benutzerdefiniert, und klicken Sie auf .
Das Fenster "Benutzerdefinierte Aktion" wird geöffnet.
2. Geben Sie im Feld Beschriftung einen geeigneten Namen für die Aktion ein. Dies ist erforderlich.
3. Bearbeiten Sie im Code-Editor die vorab gefüllte Vorlage, um den Code für die Aktion zu schreiben. Details zum Definieren der verschiedenen Teile der Aktion finden Sie unter Benutzerdefinierte Aktionen definieren.
4. Klicken Sie auf KOMPILIEREN. Wenn Fehler im Code vorhanden sind, werden sie im Code-Editor hervorgehoben. Nach einer erfolgreichen Kompilierung werden alle Eingabefelder, die im Eingabebereich der benutzerdefinierten Aktion definiert sind, im linken Fensterbereich angezeigt.
5. Klicken Sie auf SPEICHERN. Die Aktion wird der Liste der verfügbaren Aktionen auf der Registerkarte Benutzerdefiniert des Fensterbereichs Aktionen hinzugefügt und kann zur Verwendung im Workflow in den Zeichenbereich gezogen werden.
Benutzerdefinierte Aktionen definieren
Eine benutzerdefinierte Aktion besteht aus einer Node.js-JavaScript-Funktion, die die Aktion definiert. Wenn Sie eine benutzerdefinierte Aktion erstellen, wird im Code-Editor eine Beispielvorlage vorab gefüllt. Verwenden Sie diese Vorlage als Ausgangspunkt, um Ihre benutzerdefinierte Aktion zu erstellen.
Number
Beschreibung
1
Verwenden Sie die Funktion require() am Anfang des Codes, um Node.js-Module für die Verwendung in der benutzerdefinierten Aktion zu importieren. Im Beispielcode importiert die Aktion das request-Modul, um einfache HTTP-Aufrufe an Drittanbieter-Systeme vorzunehmen.
* 
Um eine Fehlanwendung zu verhindern, können nur die folgenden Node.js-Module zur Verwendung in benutzerdefinierten Aktionen importiert werden:
assert, buffer, crypto, events, http, https, lodash, path, punycode, querystring, request, soap, string_decoder, url, ws, xml2js, zlib
2
this.id – Attribut, das als eindeutige ID für die benutzerdefinierte Aktion verwendet wird.
3
this.label – Attribut, das den Namen der benutzerdefinierten Aktion angibt.
* 
Wenn Sie this.label zum Festlegen des Titels für die Aktion verwenden, wird damit automatisch die Aktionsbeschriftung überschrieben, die Sie in das Fenster "Benutzerdefinierte Aktion" eingegeben haben.
4
this.input – JSON-Attribut, das die Eingabefelder definiert, die bei der Konfiguration der Aktion in einem Workflow angezeigt werden sollen. Es gibt drei JSON-Schlüssel, für die Sie Werte zuzuweisen müssen:
title – (erforderlich) Wird intern als Bezeichner verwendet
type – (erforderlich) Wird intern verwendet. Der Wert für diesen Schlüssel sollte immer auf "object" festgelegt und nicht geändert werden.
properties – (erforderlich) Ein JSON-Attribut, das die Eingabefelder und Validierungsbedingungen (falls vorhanden) definiert, die für die Aktion angezeigt werden. Jedes Eingabefeld muss einen eindeutigen Schlüssel wie z.B. "first_name" aufweisen und Werte für die folgenden Elemente definieren:
title – (erforderlich) Die Beschriftung, die für das Feld angezeigt wird, z.B. "Vorname".
type – (erforderlich) Der Typ des Felds. Gültige Typen sind "string", "object", "array" und "any".
description – (optional) Eine Meldung, die als Tooltip angezeigt wird.
minLength – (optional) Gibt die Mindestanzahl von Zeichen an, die angegeben werden müssen.
* 
Um ein Feld zu einem Pflichtfeld zu machen, legen Sie den Wert von "minLength" auf 1 fest.
5
this.output – Ein JSON-Attribut, das die Ausgabefelder definiert, die die Aktion zurückgibt und im übrigen Workflow verfügbar macht. Es gibt drei JSON-Schlüssel, für die Sie Werte zuzuweisen müssen:
title – (erforderlich) Wird intern als Bezeichner verwendet.
type – (erforderlich) Wird intern verwendet. Der Wert für diesen Schlüssel sollte immer auf "object" festgelegt und nicht geändert werden.
properties – (erforderlich) Ein JSON-Attribut, das die Ausgabefelder definiert. Jedes Ausgabefeld muss einen eindeutigen Schlüssel wie z.B. "status" aufweisen und Werte für die folgenden Elemente definieren:
title – (erforderlich) Die Beschriftung, die für das Feld angezeigt wird, z.B. "Status".
type – (erforderlich) Der Typ des Felds. Gültige Typen sind "string", "object", "array" und "any".
6
this.execute – Funktion, die die Programmlogik definiert, die bei Ausführung der Aktion innerhalb eines Workflows ausgeführt wird. Die Funktion muss die folgenden zwei Funktionsparameter definieren:
input – Ein JSON-Objekt, das die Werte der Eingabeparameter zum Zeitpunkt der Workflow-Ausführung enthält. Die Werte können mit den Eingabefeldschlüsseln entsprechend der Definition im Attribut this.input der Aktion referenziert werden.
output – Eine Callback-Funktion, die aufgerufen werden muss, um die Ausgabewerte an den Workflow zu übergeben. Sie gibt an, dass die Aktion abgeschlossen ist. Die Funktion hat das Format callback(err,output):
err – Wird verwendet, um alle Fehler zu melden, die möglicherweise für den Workflow aufgetreten sind. Wenn keine Fehler auftreten, verwenden Sie "null".
output – Ein JSON-Objekt mit Werten für jeden der Schlüssel, die im Attribut this.output der Aktion definiert sind.
* 
Wenn Sie von ThingWorx Flow 8.4.x zu ThingWorx Flow 8.5 migrieren, funktionieren benutzerdefinierte Aktionen, die in ThingWorx Flow 8.4.x erstellt wurden, in ThingWorx Flow 8.5 weiterhin. Sie können Lokalisierungsunterstützung für Eingabe- und Ausgabefelder der benutzerdefinierten Aktion hinzufügen. Sie können jedoch die Beschriftung der benutzerdefinierten Aktion, die in ThingWorx Flow 8.4.x erstellt wurde, nicht lokalisieren.