Applicazione dei modelli di mappatura dei dati

Altova MapForce include potenti componenti di mappatura che corrispondono a modelli di progettazione per le esigenze di trasformazione dei dati. Analizzare preventivamente una sfida di mappatura dei dati e seguire alcune linee guida semplici può rivelare modelli di mappatura dei dati che aiutano a semplificare la creazione del progetto di mappatura e a raggiungere una soluzione ottimale. Il progetto "Esempi di MapForce" fornisce file di mappatura di esempio e set di dati che illustrano molti modelli comuni di mappatura dei dati. Esaminare questi esempi ed eseguirli utilizzando il motore di esecuzione integrato di MapForce è un altro ottimo modo per aiutare a selezionare il modello migliore per il proprio progetto.

Corrispondenza esatta rispetto alla corrispondenza condizionale

Innanzitutto, verificate se le vostre variabili di input e output presentano una relazione diretta e univoca, oppure se è necessario analizzare una condizione più complessa, come intervalli "da-a" o una struttura "se-altrimenti".

La corrispondenza esatta consente di esprimere la propria esigenza tramite una semplice tabella a due colonne, e l'algoritmo "cerca una corrispondenza esatta del valore di input fornito nella colonna di sinistra e utilizza il valore presente nella stessa riga, nella colonna di destra". Si noti che gli elementi nella colonna di sinistra devono essere tutti univoci, mentre nella colonna di destra possono esserci valori duplicati.

Esempi di corrispondenza esatta includono la conversione dei nomi dei mesi in numeri, oppure la trasformazione dei codici ISBN in titoli di libri.

Opzioni di corrispondenza esatta

Se il numero di elementi nella tabella è costante e relativamente piccolo (ad esempio, fino a 20, o in casi eccezionali fino a 200), utilizzare un componente di "mappa valori". Esempi tipici includono la conversione dei nomi dei mesi in numeri, oppure la conversione di codici in altri codici (ad esempio, "F" in "XX" e "M" in "XY").

È possibile anche rinominare i nomi delle colonne di input e di output del componente value-map. Nella finestra di dialogo delle proprietà del componente value-map, basta fare doppio clic sul nome "input" o "result" (oppure cliccare sull'icona a forma di penna) e iniziare a digitare. Questo semplifica l'identificazione della funzione di più componenti value-map all'interno della mappatura.

L'esempio MapArticle.mfd illustra l'utilizzo del componente "value-map".

A volte ci viene chiesto perché non esiste un'opzione per trasmettere un valore di input sconosciuto all'output senza modificarlo. La risposta è che questo non funzionerebbe se i tipi di dati in ingresso e in uscita fossero diversi, come nel caso della conversione da un numero intero a una stringa, come mostrato nell'esempio precedente.

La soluzione consiste nel lasciare deselezionata l'opzione "Otherwise" (in questo modo, la mappatura dei valori per un input sconosciuto restituirà una sequenza vuota) e utilizzare la funzione "substitute-missing" dalla libreria di funzioni principali all'output, per sostituire la sequenza vuota con il valore di input originale.

Tabelle di ricerca più ampie

Per un numero elevato di elementi o tabelle di ricerca che cambiano frequentemente, la soluzione migliore è utilizzare una ricerca in un database. Ciò significa che i valori effettivi della tabella di ricerca non fanno parte della mappatura, ma sono memorizzati in un database. Per implementare questo approccio, è necessario aggiungere un componente di database e un componente SQL-WHERE alla mappatura. L'esempio DB_PhoneList.mfd illustra questa strategia.

Se non è possibile utilizzare un database e il numero di elementi da gestire non è molto elevato, è possibile utilizzare anche altri componenti, ad esempio XML o CSV, insieme a un componente di filtro, come si può notare in due punti dell'esempio CompletePO.mfd. Tuttavia, questa soluzione potrebbe essere più lenta durante l'esecuzione rispetto all'utilizzo di un database con la clausola WHERE.

Per alcune funzionalità, potrebbe essere necessario richiamare un servizio web per recuperare dei valori. Gli esempi BookISBNConvertWS.mfd e CurrencyConverter.mfd illustrano l'utilizzo di un servizio web per la ricerca di informazioni.

Corrispondenza condizionale

Se è necessario definire condizioni più complesse rispetto a una semplice corrispondenza esatta, come ad esempio verificare se i valori di input rientrano in un intervallo specifico, utilizzare il componente "if-else", come illustrato nell'esempio "ClassifyTemperatures.mfd".

I segni più rossi all'interno del componente "se-altrimenti" consentono di aggiungere ulteriori test, ciascuno basato su una diversa funzione logica. L'input "altrimenti" permette di definire il risultato nel caso in cui nessuno dei test logici sia vero.

Mappature complesse e riutilizzo dei componenti

Se la trasformazione dei dati richiede più input e output, è possibile includere facilmente più tabelle di corrispondenza e componenti "se-altrimenti" all'interno di una singola mappatura.

È possibile duplicare qualsiasi dei componenti descritti sopra utilizzando la funzione copia-incolla all'interno dello stesso progetto o tra diversi file di configurazione. È inoltre possibile riutilizzare qualsiasi delle soluzioni descritte qui, racchiudendole in una funzione definita dall'utente. È possibile salvare le proprie funzioni in una libreria di funzioni personalizzate per utilizzarle in seguito in altri progetti o condividerle con i colleghi.

Scoprite di persona quanto è facile utilizzare i modelli di mappatura dati di MapForce nei vostri progetti di trasformazione dati! Scarica una prova gratuita di 30 giorni di MapForce.