ThingWorx Flow > Benutzerdefinierte Aktionen erstellen und verwalten > Benutzerdefinierte Aktionen in ThingWorx Flow erstellen
Benutzerdefinierte Aktionen in ThingWorx Flow erstellen
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 im ThingWorx Flow Dashboard zu BENUTZERDEFINIERTE AKTIONEN, und klicken Sie auf .
Wechseln Sie im Workflow-Editor vom Fensterbereich AKTIONEN zur Registerkarte Benutzerdefiniert, und klicken Sie auf .
Verwenden Sie eine der folgenden Methoden, um die Codestruktur in der benutzerdefinierten Aktion zu erstellen:
Bearbeiten Sie die vorab gefüllte Standardvorlage, um Ihren eigenen Code zu schreiben.
Erben oder kopieren Sie eine vorhandene Aktion. Weitere Informationen finden Sie unter Unterschiede zwischen erben und kopieren.
2. Um eine vorhandene Aktion zu erben oder zu kopieren, gehen Sie wie folgt vor:
a. Suchen Sie in der Liste Aktion aus vorhandenen Aktionen auswählen den Drittanbieter-Dienst, dessen Aktion Sie erben oder kopieren möchten.
b. Klicken Sie auf , um die Liste der Aktionen unter dem Dienst zu erweitern.
c. Wählen Sie die Aktion aus, die Sie erben oder kopieren möchten.
d. Wählen Sie im Feld Vorhandene Aktion verwenden für: die Option Erben oder Kopieren aus.
Wenn Sie keine vorhandene Aktion erben oder kopieren möchten, können Sie die vorab gefüllte Vorlage bearbeiten, um den Code für Ihre benutzerdefinierte Aktion zu schreiben.
3. Wählen Sie im Feld Aktion einschließen unter eine der folgenden Optionen aus:
Benutzerdefinierte Aktionen – Fügen Sie die benutzerdefinierte Aktion unter der Gruppe Benutzerdefinierte Aktionen auf der Registerkarte Benutzerdefiniert im Workflow-Editor hinzu.
Benutzerdefinierte Gruppe – Fügen Sie Ihre benutzerdefinierte Aktion zu Ihrer eigenen benutzerdefinierten Gruppe hinzu. Geben Sie den Namen der benutzerdefinierten Gruppe in das Feld neben dieser Option ein. Der Name von Benutzerdefinierte Gruppe ist auf der Registerkarte Dienste im Workflow-Editor verfügbar.
* 
Sie können geerbte oder kopierte benutzerdefinierte Aktionen hinzufügen, die keine Authentifizierung unter einer benutzerdefinierten Gruppe erfordern.
Es können nicht mehrere Aktionen mit unterschiedlichen Konnektortypen in derselben benutzerdefinierten Gruppe ausgeführt werden.
Wenn Sie eine vorhandene Aktion kopiert oder geerbt haben, wird die benutzerdefinierte Aktion standardmäßig unter demselben Dienst hinzugefügt. Wenn Sie beispielsweise die Aktion Anomalieerkennung unter Azure ausgewählt haben, wird standardmäßig Azure für das Feld Aktion einschließen unter ausgewählt.
* 
Diese Option wird nur angezeigt, wenn Sie eine vorhandene Aktion kopieren oder erben.
4. Klicken Sie im Feld Symbol wählen auf Durchsuchen, um ein Symbol für die benutzerdefinierte Aktion auszuwählen. Stellen Sie sicher, dass Sie ein JPEG- oder PNG-Bild (128 x 128) wählen.
* 
Wenn Sie kein Symbol angeben, wird das standardmäßige Symbol für die benutzerdefinierte Aktion verwendet.
Wenn Sie eine vorhandene Aktion erben oder kopieren, wird standardmäßig das Aktionssymbol als benutzerdefiniertes Aktionssymbol verwendet.
5. 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.
6. 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 rechten Fensterbereich angezeigt.
7. Klicken Sie auf SPEICHERN, um die benutzerdefinierte Aktion zu speichern.
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.
Die folgende Tabelle enthält Informationen zu den verschiedenen Abschnitten des vorab gefüllten Codes:
Legende
Beschreibung
1
Verwenden Sie die Funktion require(), 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 bei Drittanbieter-Systemen vorzunehmen.
* 
Die Liste der Node-Module, die Sie in benutzerdefinierten Aktionen verwenden können, ist hier verfügbar.
Informationen zur Verwendung dieser Node-Module in Ihren benutzerdefinierten Aktionen finden Sie unter Benutzerdefinierte Aktionen anpassen.
2
this.localization.namespace:label – Attribut, das den Namen der benutzerdefinierten Aktion angibt. Unter this.localization, unter dem spezifischem Gebietsschema, definiert der Wert der Variablen label den Namen der benutzerdefinierten Aktion für dieses Gebietsschema.
* 
Wenn keine Lokalisierungsunterstützung erforderlich ist, können Sie hier den Namen der benutzerdefinierten Aktion angeben.
3
this.input – Attribut, das die Eingabefelder definiert, die beim Konfigurieren der Aktion in einem Workflow angezeigt werden. Dies ist ein JSON-Schema und muss gültig sein. Weisen Sie Werte für die folgenden Parameter zu:
title (erforderlich) – intern als ID verwendet.
Im Beispielcode ist this.localization.namespace:sample_input der Wert des Feldes title. Unter this.localization, unter dem spezifischem Gebietsschema, legt der Wert der Variablen sample_input den Wert title für dieses Gebietsschema fest.
type (erforderlich) – intern verwendet. Legen Sie diesen Wert immer auf object fest. Ändern Sie diesen Wert nicht.
properties (erforderlich) – Definieren Sie ggf. mehrere Eingabefelder und Validierungsbedingungen für die Aktion. Definieren Sie einen eindeutigen Schlüssel für jedes Eingabefeld, z.B. first_name, und die folgenden Werte für jedes Eingabefeld:
title – Name des Eingabefelds.
Im Beispielcode ist this.localization.namespace:Custom_Action_First_Name der Wert des Feldes title. Unter this.localization, unter dem spezifischem Gebietsschema, legt der Wert der Variablen Custom_Action_First_Name den Wert title für dieses Gebietsschema fest.
* 
Wenn keine Lokalisierungsunterstützung erforderlich ist, können Sie hier den Beschriftungswert angeben.
type – Feldtyp. Beispiel: Zeichenfolge, Ganzzahl, Nummer usw.
description – Meldung, die als Tooltip angezeigt wird.
Im Beispielcode ist this.localization.namespace:Enter_Custom_Action_First_Name der Wert des Feldes description. Unter this.localization, unter dem spezifischem Gebietsschema, legt der Wert der Variablen Enter_Custom_Action_First_Name den Wert description für dieses Gebietsschema fest.
minLength – Legen Sie den Wert dieses Feldes nur dann auf 1 fest, wenn Sie ein Eingabefeld zu einem Pflichtfeld machen möchten. Wenn Sie ein Eingabefeld nicht zu einem Pflichtfeld machen möchten, entfernen Sie das Attribut für dieses Eingabefeld.
4
this.output – Attribut, das die Ausgabefelder definiert, die die Aktion zurückgibt, und sie für die anderen Aktionen im Workflow verfügbar macht. Dies ist ein JSON-Schema und muss gültig sein. Weisen Sie Werte für die folgenden Parameter zu:
title (erforderlich) – intern als ID verwendet.
Im Beispielcode ist this.localization.namespace:output der Wert des Feldes title. Unter this.localization, unter dem spezifischem Gebietsschema, legt der Wert der Variablen output den Wert title für dieses Gebietsschema fest.
type (erforderlich) – intern verwendet. Legen Sie diesen Wert immer auf object fest. Ändern Sie diesen Wert nicht.
properties (erforderlich) – Definieren Sie mehrere Ausgabefelder für die Aktion. Definieren Sie einen eindeutigen Schlüssel für jedes Ausgabefeld, z.B. status, und die folgenden Werte für jedes Ausgabefeld:
title – Name des Ausgabefelds.
Im Beispielcode ist this.localization.namespace:status der Wert des Feldes title. Unter this.localization, unter dem spezifischem Gebietsschema, legt der Wert der Variablen status den Wert title für dieses Gebietsschema fest.
* 
Wenn keine Lokalisierungsunterstützung erforderlich ist, können Sie hier den Beschriftungswert angeben.
type – Feldtyp. Beispiel: Zeichenfolge, Ganzzahl, Nummer usw.
5
this.localization – Attribut, das ein eindeutiges Token für die benutzerdefinierte Aktion definiert, und die englischen und lokalisierten Eingabe- und Ausgabefelder. Weisen Sie Werte für die folgenden Parameter zu:
namespace (erforderlich) – Automatisch generiertes Token für die benutzerdefinierte Aktion. Der Wert des Parameters namespace muss für alle benutzerdefinierten Aktionen eindeutig sein.
* 
Ändern Sie diesen Wert NICHT.
en (erforderlich) – Feldnamen und intern verwendete ID-Namen. Die folgende Abbildung zeigt die Feldnamen und ihre englischen Werte:
de – Feldnamen und intern verwendete ID-Namen für eine Sprache. Der Beispielcode stellt äquivalente deutsche Werte bereit. Sie können mehrere Sprachen und deren äquivalente Werte hinzufügen.
* 
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.
6
this.execute – Attribut, das die Programmlogik definiert, die bei Ausführung der Aktion innerhalb eines Workflows ausgeführt wird. Die Funktion muss die folgenden zwei Funktionsparameter definieren:
input – JSON-Objekt, das die Werte der Eingabeparameter zum Zeitpunkt der Workflow-Ausführung enthält. Referenzieren Sie diese Werte mithilfe der Eingabefeldschlüssel, wie im Attribut this.input der Aktion definiert.
output – Callback-Funktion, die aufgerufen werden muss, um die Ausgabewerte an den Workflow zu übergeben. Sie gibt an, dass die Aktion abgeschlossen ist. Stellen Sie sicher, dass der Code eine Ausgabe-JSON erzeugen muss, die dem JSON-Schema this.output entspricht. Die Funktion hat das Format callback(err,output):
err – Meldet alle Fehler, die möglicherweise im Workflow aufgetreten sind. Wenn keine Fehler auftreten, geben Sie null an.
output – JSON-Objekt mit Werten für jeden der Schlüssel, die im Attribut this.output der Aktion definiert sind.
War dies hilfreich?