ThingWorx Flow > Creazione e gestione di azioni personalizzate > Creazione di un'azione personalizzata in ThingWorx Flow 8.4.x
Creazione di un'azione personalizzata in ThingWorx Flow 8.4.x
Creare azioni personalizzate nella pagina delle impostazioni di ThingWorx Flow oppure in un workflow dalla scheda Azione personalizzata del pannello Azioni.
Per creare un'azione personalizzata, completare la procedura descritta di seguito.
1. Per aggiungere un'azione personalizzata a ThingWorx Flow, effettuare una delle operazioni descritte di seguito.
Dalla pagina delle impostazioni di ThingWorx Flow andare ad AZIONI PERSONALIZZATE e fare clic su .
Nell'editor di workflow, nel pannello AZIONI, andare alla scheda Azione personalizzata e fare clic su .
Viene visualizzata la finestra Azione personalizzata.
2. Nel campo Etichetta immettere un nome appropriato per l'azione. Questo passo è obbligatorio.
3. Nell'editor di codice modificare il modello precompletato per scrivere il codice dell'azione. Per informazioni dettagliate su come definire le varie parti dell'azione, fare riferimento alla sezione Definizione di un'azione personalizzata.
4. Fare clic su Compila. Eventuali errori presenti nel codice vengono evidenziati nell'editor di codice. Al termine della compilazione, tutti i campi di input definiti nella sezione di input dell'azione personalizzata vengono visualizzati nel pannello di sinistra.
5. Fare clic su SALVA. L'azione viene aggiunta all'elenco delle azioni disponibili nella scheda Azione personalizzata del pannello Azioni e può essere trascinata nell'area di lavoro per essere utilizzata nel workflow.
Definizione di un'azione personalizzata
Un'azione personalizzata è costituita da una funzione JavaScript Node.js che la definisce. Quando si crea una nuova azione personalizzata, nell'editor di codice viene precompletato un modello di esempio, Utilizzare questo modello come punto di partenza per creare l'azione personalizzata.
Number
Descrizione
1
Utilizzare la funzione require() all'inizio del codice per importare i moduli Node.js da usare nell'azione personalizzata. Nel codice di esempio, l'azione importa il modulo request per effettuare semplici chiamate HTTP a sistemi di terze parti.
* 
Per impedire l'uso improprio, è possibile importare solo i moduli Node.js seguenti per l'utilizzo nelle azioni personalizzate:
assert, buffer, crypto, events, http, https, lodash, path, punycode, querystring, request, soap, string_decoder, url, ws, xml2js, zlib
2
this.id - Attributo utilizzato come identificatore univoco per l'azione personalizzata.
3
this.label - Attributo che specifica il nome dell'azione personalizzata.
* 
Se si utilizza this.label per impostare il titolo dell'azione, l'etichetta dell'azione che era stata immessa nella finestra dell'azione personalizzata viene automaticamente sostituita.
4
this.input - Attributo JSON che definisce i campi di input da visualizzare durante la configurazione dell'azione in un workflow. Esistono tre chiavi JSON per cui è necessario assegnare valori:
title (obbligatoria) - Utilizzata internamente come identificatore.
type (obbligatoria) - Utilizzata internamente. Il valore di questa chiave deve sempre essere impostato su object e non deve essere modificato.
properties (obbligatoria) - Attributo JSON che definisce i campi di input e le eventuali condizioni di convalida visualizzati per l'azione. Ogni campo di input deve disporre di una chiave univoca, come ad esempio first_name, e definire valori per gli elementi seguenti:
title (obbligatorio) - Etichetta visualizzata per il campo, ad esempio First Name.
type (obbligatorio) - Tipo di campo. I tipi validi sono string, object, array ed any.
description (facoltativo) - Messaggio visualizzato come descrizione comando.
minLength (facoltativo) - Indica il numero minimo di caratteri da specificare.
* 
Per rendere un campo obbligatorio, impostare il valore di minLength su 1.
5
this.output - Attributo JSON che definisce i campi di output che l'azione restituisce e rende disponibili nel resto del workflow. Esistono tre chiavi JSON per cui è necessario assegnare valori:
title (obbligatoria) - Utilizzata internamente come identificatore.
type (obbligatoria) - Utilizzata internamente. Il valore di questa chiave deve sempre essere impostato su object e non deve essere modificato.
properties (obbligatoria) - Attributo JSON che definisce i campi di output. Ogni campo di output deve disporre di una chiave univoca, come ad esempio status, e definire valori per gli elementi seguenti:
title (obbligatorio) - Etichetta visualizzata per il campo, ad esempio status.
type (obbligatorio) - Tipo di campo. I tipi validi sono string, object, array ed any.
6
this.execute - Funzione che definisce la logica del programma che viene eseguita quando l'azione viene eseguita all'interno di un workflow. La funzione deve definire i due parametri di funzione seguenti:
input - Oggetto JSON contenente i valori dei parametri di input in fase di esecuzione del workflow. I valori possono essere referenziati mediante le chiavi dei campi di input definite nell'attributo this.input dell'azione.
output - Funzione di callback da chiamare per trasmettere i valori di output al workflow. Indica che l'azione è stata completata. Il formato della funzione è callback(err,output):
err - Viene utilizzato per segnalare eventuali errori che possono essersi verificati nel workflow. Se non si verificano errori, utilizzare null.
output - Oggetto JSON con valori per ciascuna delle chiavi definite nell'attributo this.output dell'azione.
* 
In caso di migrazione da ThingWorx Flow 8.4.x a ThingWorx Flow 8.5, le azioni personalizzate create in ThingWorx Flow 8.4.x continuano a funzionare in ThingWorx Flow 8.5. Si può aggiungere il supporto della localizzazione per i campi di input e di output dell'azione personalizzata. Non è tuttavia possibile localizzare l'etichetta dell'azione personalizzata creata in ThingWorx Flow 8.4.x.