Mapper
L'azione Mapper consente di creare un output personalizzato combinando gli output di varie azioni e ristrutturando gli oggetti, le raccolte, le matrici o le stringhe dell'output in base alle esigenze. È inoltre possibile eseguire varie funzioni per l'output. In questo modo si elimina la necessità di scrivere codici Node.js complessi per recuperare e combinare determinati valori di campo oppure output di più azioni. Mapper fornisce una serie di funzioni modulari che consentono di ottenere quanto segue.
Combinare gli output
Iterare oggetti, matrici, stringhe e raccolte
Manipolare e verificare i valori
Utilizzo dell'azione Mapper
Per utilizzare questa azione nel workflow, connetterla a ThingWorx Flow. Per connettersi al flusso, attenersi alla procedura descritta di seguito.
1. Fare clic su , trascinare l'azione Mapper presente nell'utilità Strumenti di sviluppo nell'area di lavoro, posizionare il puntatore del mouse sull'azione, quindi fare clic su o fare doppio clic sull'azione. Viene visualizzata la finestra di azione Mapper.
2. Se necessario, modificare il nome dell'Etichetta. Per default, il nome dell'etichetta corrisponde al nome dell'azione.
3. Fare clic su per creare una nuova coppia chiave-valore.
a. Rinominare il campo della chiave e immettere il valore. È possibile mappare l'output delle azioni precedenti come input al campo del valore.
b. Fare clic su </> per aggiungere funzioni sull'input specificato.
Fare clic su per aggiungere più coppie chiave-valore.
4. Fare clic su Fine.
Tipi di dati Mapper
Mapper accetta i valori di input dei tipi di dati Matrice, Raccolta, Oggetto e Stringa.
Array: utilizzato quando la chiave specificata restituisce una matrice. Per impostare il tipo di dati matrice, fare clic su e selezionare Matrice nell'elenco. È possibile applicare le funzioni alle matrici facendo clic su </>.
Raccolta: questo tipo di dati viene utilizzato quando la chiave specificata restituisce una matrice di oggetti. È possibile mappare direttamente una raccolta di un'azione precedente al campo del valore come chiave di raccolta oppure aggiungere separatamente coppie chiave-valore nella chiave di raccolta.
Per impostare il tipo di dati raccolta, fare clic su e selezionare Raccolta nell'elenco. È possibile applicare le funzioni alle raccolte facendo clic su </>.
Oggetto: utilizzato quando la chiave specificata restituisce un oggetto. È possibile mappare direttamente un oggetto di un'azione precedente al campo del valore come chiave di oggetto oppure aggiungere separatamente coppie chiave-valore nella chiave di oggetto.
Per impostare il tipo di dati oggetto, fare clic su e selezionare Oggetto nell'elenco. Qui è necessario specificare un nome per l'oggetto, quindi fare clic sul link "+" fornito accanto al campo Chiave per aggiungere coppie chiave-valore. È quindi possibile selezionare qualsiasi tipo di dati per ognuna di queste proprietà.
Il link (</>) della console tramite il quale è possibile applicare le funzioni si trova accanto al campo "Nome oggetto" e accanto a ciascun campo "Nome proprietà" dell'oggetto stesso.
Stringa: utilizzato quando la chiave specificata restituisce un valore stringa. Per default, tutte le coppie chiave-valore sono del tipo di dati stringa. È possibile applicare le funzioni alle stringhe facendo clic su </>.
Utilizzo delle funzioni integrate in Mapper
Mapper consente di eseguire varie funzioni sull'output delle azioni precedenti. L'azione offre una serie di funzioni integrate (provenienti dalla libreria "lodash") che è possibile utilizzare. In alternativa, si possono scrivere funzioni personalizzate.
Funzioni per le matrici
_.Compact - Rimuove i valori false dalla matrice specificata. Ulteriori informazioni
_.difference - Restituisce una matrice con i valori univoci della prima matrice della serie di matrici specificata. Ulteriori informazioni
_.flatten - Appiattisce una matrice di un singolo livello. Ulteriori informazioni
_.flattenDeep - Appiattisce un'intera matrice. Ulteriori informazioni
_.intersection - Restituisce una matrice con i valori comuni in tutte le matrici specificate. Ulteriori informazioni
_.first - Recupera il primo elemento della matrice specificata. Ulteriori informazioni
_.last - Recupera l'ultimo elemento della matrice specificata. Ulteriori informazioni
_.uniq - Rimuove i valori duplicati dalla matrice specificata. Ulteriori informazioni
Funzioni per gli oggetti
_.pick - Restituisce un oggetto con gli elementi corrispondenti alla proprietà di oggetto specificata. Ulteriori informazioni
_.get - Restituisce il valore di un elemento presente nel percorso specificato in un oggetto. Ulteriori informazioni
_.keys - Crea una matrice dei nomi delle proprietà enumerabili di un oggetto. Ulteriori informazioni
Funzioni per le stringhe
_.camelCase - Converte la stringa in camel case. Ulteriori informazioni
_.capitalize - Converte il primo carattere della stringa in maiuscolo e i caratteri rimanenti in minuscolo. Ulteriori informazioni
_.kebabcase - Converte la stringa in kebab case. Ulteriori informazioni
_.lowercase - Converte la stringa specificata in minuscolo. Ulteriori informazioni
_.lowerfirst - Converte il primo carattere della stringa in minuscolo. Ulteriori informazioni
_.replace - Sostituisce la stringa corrispondente alla condizione specificata con una determinata stringa. Ulteriori informazioni
_.repeat - Ripete la stringa specificata per il numero di volte indicato. Ulteriori informazioni
_.escape - Converte i caratteri &, <, >, ' e " presenti nella stringa nelle entità HTML corrispondenti. Ulteriori informazioni
_.trim - Rimuove gli spazi bianchi iniziali e finali e i caratteri indicati dalla stringa specificata. Ulteriori informazioni
_.unescape - Converte le entità HTML &, <, >, ", ' e ' presenti nella stringa specificata nei caratteri corrispondenti. Ulteriori informazioni
Funzioni per i numeri
_.add - Addiziona due numeri. Ulteriori informazioni
_.ceil - Arrotonda per eccesso il numero per la precisione specificata. Ulteriori informazioni
_.divide - Divide due numeri. Ulteriori informazioni
_.floor - Arrotonda per difetto il numero per la precisione specificata. Ulteriori informazioni
_.multiply - Moltiplica due numeri. Ulteriori informazioni
_.subtract - Sottrae due numeri. Ulteriori informazioni
Funzioni per le raccolte
_.filter - Restituisce la matrice con gli elementi che soddisfano la condizione di filtro specificata. Ulteriori informazioni
_.find - Restituisce il primo elemento che soddisfa la condizione specificata. Ulteriori informazioni
Esempio: Utilizzo delle funzioni integrate in Mapper
Recuperare valori univoci dagli elenchi di matrici dati in una singola matrice. A tale scopo, utilizzare l'azione Operazioni matrice per concatenare due matrici contenenti alcuni valori comuni. Utilizzare quindi l'output in Mapper ed eseguire la funzione _.uniq per escludere i valori duplicati.
1. Aggiungere le azioni Operazioni matrice, Mapper e Invia e-mail nell'area di lavoro e connetterle come illustrato di seguito:
2. Configurare l'azione Operazioni matrice come illustrato di seguito:
Seleziona operazione di matrice - Selezionare Concatena dall'elenco.
Matrice di origine 1 - Immettere la prima matrice che si desidera concatenare.
Matrice di origine 2 - Immettere la seconda matrice che si desidera concatenare.
Fare clic su Aggiungi per aggiungere altre matrici.
"R2-D2" e "Han" sono stati utilizzati appositamente in entrambe le matrici. Viene così creata una matrice contenente valori ripetitivi. Fare clic su Fine. Viene visualizzata di nuovo l'area di lavoro.
3. Configurare l'azione Mapper come descritto di seguito:
Key1 - Immettere il nome della chiave.
Fare clic su per selezionare il tipo di dati Matrice e quindi su per aggiungere la funzione.
Fare clic su e quindi su per aggiungere l'output dell'azione Operazioni matrice come input nella finestra della console.
Fare clic su Funzioni, quindi selezionare la funzione _.uniq per rimuovere i valori duplicati dalla matrice.
Fare clic su SALVA. La scheda Custom Function viene aggiunta come input nel campo Valore.
4. Configurare l'azione Invia e-mail come descritto di seguito:
A - Immettere l'ID e-mail del destinatario.
Oggetto - Immettere l'oggetto dell'e-mail.
Tipo di corpo - Selezionare il tipo di corpo dell'e-mail Testo.
Corpo - Aggiungere l'output dell'azione Mapper, fornita sul lato destro della finestra di configurazione, come input del campo.
5. Fare clic su Fine ed eseguire il workflow. Vengono recuperati valori univoci dagli elenchi di matrici dati in una singola matrice e vengono inviati al destinatario specificato.
Aggiunta di funzioni personalizzate in Mapper
L'azione Mapper consente inoltre di scrivere funzioni personalizzate per eseguire operazioni su un valore di input specificato. Per comprendere le funzioni personalizzate, vedere l'esempio riportato di seguito.
Esempio
Proseguendo con l'esempio precedente, si supponga di voler applicare una funzione personalizzata sull'output della funzione _.uniq implementata in precedenza.
1. Apportare al codice esistente le modifiche illustrate nella figura seguente:
2. Dopo aver aggiunto la funzione personalizzata nella console, fare clic su SALVA e quindi su Esegui per eseguire il workflow.
* 
È anche possibile scrivere solo funzioni personalizzate implementabili sugli input specificati.
Schema di output
Lo schema di output restituito dall'azione Mapper dipende dalle coppie chiave-valore immesse. Per un esempio dello schema di output, vedere la figura seguente: