ThingWorx Flow > Creazione e gestione di azioni personalizzate > Creazione di un'azione personalizzata in ThingWorx Flow
Creazione di un'azione personalizzata in ThingWorx Flow
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.
Dal dashboard di ThingWorx Flow, fare clic su AZIONI PERSONALIZZATE, quindi su .
Nell'editor di workflow, nel pannello AZIONI, andare alla scheda Azione personalizzata e fare clic su .
Per creare la struttura di codice nell'azione personalizzata, utilizzare uno dei metodi riportati di seguito.
Modificare il modello di default precompletato per scrivere codice personalizzato.
Ereditare o copiare un'azione esistente. Per ulteriori informazioni, vedere Differenze tra eredità e copia.
2. Per ereditare o copiare un'azione esistente, attenersi alla procedura descritta di seguito.
a. Nell'elenco Seleziona azione da azioni esistenti cercare il servizio di terze parti di cui si desidera ereditare o copiare un'azione.
b. Fare clic su per espandere l'elenco delle azioni nel servizio.
c. Selezionare l'azione che si desidera ereditare o copiare.
d. Nel campo Usa azione esistente per selezionare Ereditare o Copia.
Se non si desidera ereditare o copiare un'azione esistente, è possibile modificare il modello precompletato di default per scrivere il codice dell'azione personalizzata.
3. Nel campo Includi azione in selezionare una delle opzioni descritte di seguito.
Azioni personalizzate - Aggiungere l'azione personalizzata nel gruppo Azioni personalizzate della scheda Azione personalizzata dell'editor di workflow.
Gruppo personalizzato - Aggiungere l'azione personalizzata al proprio gruppo personalizzato. Immettere il nome del gruppo personalizzato nel campo accanto a questa opzione. Il nome del Gruppo personalizzato è disponibile nella scheda Servizi dell'editor di workflow.
* 
È possibile aggiungere azioni personalizzate ereditate o copiate che non richiedono alcuna autenticazione in un gruppo personalizzato.
Nello stesso gruppo personalizzato non possono essere presenti più azioni con tipi di connettore diversi.
Se è stata copiata o ereditata un'azione esistente di un connettore, l'azione personalizzata viene aggiunta per default nello stesso servizio. Se è stata selezionata l'azione Rilevamento anomalie in Azure, ad esempio, per il campo Includi azione in viene selezionata per default l'opzione Azure.
* 
Questa opzione viene visualizzata solo se si copia o si eredita un'azione esistente.
4. Nel campo Scegli icona fare clic su Sfoglia per selezionare un'icona per l'azione personalizzata. Scegliere un'immagine JPEG o PNG 128 x 128.
* 
Se non si specifica un'icona, viene utilizzata l'icona di default dell'azione personalizzata.
Se si eredita o si copia un'azione esistente, la relativa icona viene utilizzata per default come icona dell'azione personalizzata.
5. 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.
6. 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 destra.
7. Fare clic su Salva per salvare l'azione personalizzata.
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.
La tabella seguente fornisce informazioni sulle varie sezioni del codice precompletato:
Legenda
Descrizione
1
Utilizzare la funzione require() per importare i moduli Node.js da utilizzare nell'azione personalizzata. Nel codice di esempio l'azione importa il modulo request per effettuare semplici chiamate HTTP a sistemi di terze parti.
* 
L'elenco dei moduli di nodo che è possibile utilizzare nelle azioni personalizzate è disponibile qui.
Per informazioni su come usare questi moduli di nodo nelle azioni personalizzate, vedere Personalizzazione delle azioni personalizzate.
2
this.localization.namespace:label - Attributo che specifica il nome dell'azione personalizzata. In this.localization, nelle impostazioni locali specifiche, il valore della variabile label definisce il nome dell'azione personalizzata per tali impostazioni.
* 
Se non è necessario il supporto della localizzazione, si può specificare il nome dell'azione personalizzata in questa sezione.
3
this.input - Attributo che definisce i campi di input visualizzati durante la configurazione dell'azione in un workflow. È uno schema JSON e deve essere valido. Assegnare i valori per i parametri descritti di seguito.
title (obbligatorio) - Utilizzato internamente come identificatore.
Nel codice di esempio il valore del campo title è this.localization.namespace:sample_input. In this.localization, nelle impostazioni locali specifiche, il valore della variabile sample_input imposta il valore di title per tali impostazioni.
type (obbligatorio) - Utilizzato internamente. Impostare sempre questo valore su object. Non modificare questo valore.
properties (obbligatorio) - Definire più campi di input e condizioni di convalida, se presenti, per l'azione. Definire una chiave univoca per ciascun campo di input, ad esempio first_name e i valori riportati di seguito per ciascun campo di input.
title - Nome del campo di input.
Nel codice di esempio il valore del campo title è this.localization.namespace:Custom_Action_First_Name. In this.localization, nelle impostazioni locali specifiche, il valore della variabile Custom_Action_First_Name imposta il valore di title per tali impostazioni.
* 
Se non è necessario il supporto della localizzazione, è possibile specificare qui il valore dell'etichetta.
type - Tipo di campo. Ad esempio: stringa, numero intero, numero e così via.
description - Messaggio visualizzato come descrizione comando.
Nel codice di esempio il valore del campo description è this.localization.namespace:Enter_Custom_Action_First_Name. In this.localization, nelle impostazioni locali specifiche, il valore della variabile Enter_Custom_Action_First_Name imposta il valore di description per tali impostazioni.
minLength - Impostare il valore di questo campo su 1 solo se si desidera rendere obbligatorio un campo di input. Se non si desidera rendere obbligatorio un campo di input, rimuovere l'attributo per tale campo.
4
this.output - Attributo che definisce i campi di output restituiti dall'azione e li rende disponibili per le altre azioni nel workflow. È uno schema JSON e deve essere valido. Assegnare i valori per i parametri descritti di seguito.
title (obbligatorio) - Utilizzato internamente come identificatore.
Nel codice di esempio il valore del campo title è this.localization.namespace:output. In this.localization, nelle impostazioni locali specifiche, il valore della variabile output imposta il valore di title per tali impostazioni.
type (obbligatorio) - Utilizzato internamente. Impostare sempre questo valore su object. Non modificare questo valore.
properties (obbligatorio) - Definire più campi di output per l'azione. Definire una chiave univoca per ciascun campo di output, ad esempio status e i valori riportati di seguito per ciascun campo di output.
title - Nome del campo di output.
Nel codice di esempio il valore del campo title è this.localization.namespace:status. In this.localization, nelle impostazioni locali specifiche, il valore della variabile status imposta il valore di title per tali impostazioni.
* 
Se non è necessario il supporto della localizzazione, è possibile specificare qui il valore dell'etichetta.
type - Tipo di campo. Ad esempio: stringa, numero intero, numero e così via.
5
this.localization - Attributo che definisce un token univoco per l'azione personalizzata e i campi di input e output in inglese e localizzati. Assegnare i valori per i parametri descritti di seguito.
namespace (obbligatorio) - Token generato automaticamente per l'azione personalizzata. Il valore del parametro namespace deve essere univoco in tutte le azioni personalizzate.
* 
NON modificare questo valore.
en (obbligatorio) - Nomi di campi e di identificatori utilizzati internamente. L'immagine che segue mostra i nomi dei campi e i relativi valori in inglese:
de - Nomi di campi e di identificatori utilizzati internamente per una lingua. Il codice di esempio fornisce valori equivalenti in tedesco. È possibile aggiungere più lingue e i relativi valori equivalenti.
* 
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.
6
this.execute - Attributo che definisce la logica del programma 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. Fare riferimento a questi valori utilizzando 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. Assicurarsi che il codice produca JSON di output corrispondente allo schema JSON di this.output. Il formato della funzione è callback(err,output):
err - Segnalare eventuali errori che potrebbero essersi verificati nel workflow. Se non si verificano errori, specificare null.
output - Oggetto JSON con valori per ciascuna delle chiavi definite nell'attributo this.output dell'azione.
È stato utile?