Mappatura dei dati strutturati con funzionalità avanzate per i nodi

In precedenza, abbiamo parlato del supporto per le funzioni dei nodi, che semplificano la mappatura dei dati strutturati eliminando la necessità di copiare e incollare una funzione più volte all'interno della mappatura. Ripetere la stessa funzione inutilmente rende il layout della mappatura più complesso e rende più difficile comprendere o modificare la mappatura dei dati.

MapForce include anche filtri aggiuntivi disponibili per definire le funzioni dei nodi. Questi parametri consentono agli sviluppatori di applicare funzioni e valori predefiniti a nodi specifici, in base a criteri personalizzati. Ad esempio, è possibile applicare una funzione a un nodo in base ai metadati del nodo, come il nome del nodo, la lunghezza del nodo, la precisione del tipo di dati del nodo, annotazioni personalizzate e altro ancora.

Esaminiamo una mappatura con funzionalità dei nodi potenziate.

La mappatura dei dati mostrata di seguito è un esempio della funzione del nodo PriceCalculation.mfd, installata con MapForc. Questo esempio calcola il prezzo finale di vendita per un elenco di articoli, basandosi sul loro costo originale e su un fattore di ricarico. I dati di origine sono un file di testo in formato CSV, mentre l'output è un file XML.

In questa mappatura, viene definita e applicata una funzione nodo all'elemento "Articoli" nel file di output e ai suoi elementi figli. Facendo doppio clic sull'icona della funzione, evidenziata in grassetto, a sinistra dell'elemento "Articoli", si apre la definizione della funzione nodo.

Il menu a tendina "Applica a" situato nell'angolo in alto a sinistra indica che la funzione è progettata per essere applicata a tutti gli elementi figli di "Article". La sezione "Descrizione della funzione" ci informa che questa funzione utilizza l'elemento di metadati del nodo "node_fractionDigits" come parametro per la funzione di arrotondamento. Se "node_fractionDigits" non è definito per un qualsiasi elemento figlio, verrà utilizzato il valore zero al suo posto.

Possiamo approfondire l'analisi della funzione del nodo cliccando sul pulsante "Modifica" che si trova nella parte superiore centrale dell'immagine. Questo apre la funzione in una finestra dedicata alla mappatura dei dati, visualizzandola in modo simile a una funzione definita dall'utente:

L'elemento di configurazione "node_fractionDigits", situato nell'angolo in basso a sinistra, fornisce un valore di input alla funzione, basandosi sulla struttura dei dati di destinazione. Esaminiamo più nel dettaglio i metadati del nodo per individuare l'elemento "node_fractionDigits".

Definizione dei metadati del nodo

I metadati disponibili per qualsiasi file di dati strutturati provengono dalla definizione stessa della struttura dei dati. Nel nostro esempio, il componente di destinazione della mappatura è un documento XML. Pertanto, i metadati disponibili per qualsiasi nodo sono definiti nello schema XML.

L'immagine sottostante mostra lo schema XML per il calcolo dei prezzi, visualizzato in forma grafica in XMLSpy:

L'elemento XML "SalePrice" evidenziato nel diagramma è definito come un'istanza del tipo "Amount", che a sua volta è un numero decimale con un massimo di 2 cifre decimali, come si può vedere nella finestra "Facets" nell'angolo in basso a destra. Pertanto, il metadato "node_fractionDigits" per il nodo "SalePrice" è 2.

I parametri della funzione nodo disponibili per qualsiasi file di dati strutturati dipenderanno sempre dal tipo di dati – XML, database relazionale, PDF, file CSV, ecc. – e dal livello di dettaglio incluso nella definizione dello schema.

Mappatura dei dati strutturati tramite parametri delle funzioni dei nodi

Quando si crea una nuova funzione nodo, inizialmente si visualizzerà un valore di input e un valore di output che non sono collegati. Cliccare sul pulsante blu "Aggiungi parametri specifici del nodo" per inserire un parametro della funzione nodo. Questo aprirà la finestra di dialogo "Parametri specifici del nodo", dove è possibile selezionare un parametro del nodo

Si noti l'opzione disponibile per i casi in cui un determinato nodo non supporta il tipo di metadati selezionato. Nella mappatura del calcolo dei prezzi, questo comportamento è gestito direttamente nella definizione della funzione del nodo. La funzione del nodo viene applicata solo a tipi di dati numerici, e per qualsiasi nodo in cui non sia specificato il parametro "fractionDigits", la funzione "substitute-missing" fornisce lo zero come valore sostitutivo.

Osservare l'esecuzione della funzione del nodo

È possibile impostare un punto di interruzione dal menu contestuale che si apre con il tasto destro del mouse su qualsiasi nodo del componente di output e utilizzare il debugger integrato di MapForce per monitorare l'esecuzione della funzione.

Nella vista parziale mostrata di seguito, il punto di interruzione è stato impostato sulla variabile "SalePrice". Abbiamo eseguito la mappatura dal menu di debug e l'esecuzione si è interrotta al punto di interruzione, visualizzando i valori intermedi nella finestra principale di mappatura.

Possiamo vedere che l'ultimo valore di "SalePrice" calcolato tramite la mappatura è stato 49.183323875. La funzione del nodo ha arrotondato il valore finale a 49.18.

L'esecuzione effettiva della funzione del nodo non viene visualizzata nei risultati del debug nella finestra principale di mappatura, ma facendo clic nella finestra "Messaggi" si apre la funzione del nodo, mostrando tutti i valori intermedi

Gli esempi inclusi con MapForce contengono diverse altre definizioni di mappature per le funzioni dei nodi. Il sistema di aiuto integrato di MapForce include persino un tutorial passo-passo per creare una mappatura di una funzione di un nodo partendo da zero.

Potete persino modificare la mappatura di esempio descritta qui per verificare direttamente come cambia l'output. Ad esempio, potreste modificare lo schema XML per consentire tre cifre decimali, oppure modificare la mappatura per permettere alla funzione del nodo di essere eseguita sul nodo "Number", che è il primo elemento figlio di "Article", e quindi esaminare il nuovo risultato.

Per vedere le funzioni dei nodi in azione, consultate questo video dimostrativo di MapForce.