---
title: "Una soluzione rapida per funzioni complesse"
date: "2011-06-27"
tags: 
  - "data-integration"
  - "data-mapping"
  - "mapforce"
  - "version-2011"
description: Altova MapForce 2011 semplifica la mappatura di dati complessi, consentendo agli utenti di combinare funzioni in modo grafico. Supporta test passo dopo passo per garantire conversioni dei dati accurate.
---
Status: #blog

Tags:  #data-integration #data-mapping #mapforce #version-2011

Categories: [Altova](/blog/it/category/altova.md) 
# Una soluzione rapida per funzioni complesse

Alcune conversioni di dati richiedono diverse fasi per soddisfare le complesse esigenze di comunicazione dati odierne. [Altova MapForce 2011](https://www.altova.com/it/mapforce.html) consente di combinare graficamente una vasta gamma di funzioni matematiche, logiche, di manipolazione di stringhe e altre [funzioni specializzate](https://www.altova.com/it/mapforce/data-processing-functions.html) per creare "equazioni di dati" complesse, al fine di ottenere i risultati desiderati. Se state lavorando a una mappatura complessa e articolata, se utilizzate una funzione che non conoscete bene per la prima volta, oppure quando la vostra funzione produce un risultato intermedio che necessita di ulteriori elaborazioni, è utile testare il vostro lavoro ad ogni fase del processo di sviluppo. È possibile utilizzare un [file di testo semplice](https://www.altova.com/it/mapforce/flat-file-mapping.html) come obiettivo temporaneo, per visualizzare il risultato della funzione che state sviluppando. Supponiamo di voler aggiungere una data e un'ora a una mappatura esistente che associa un file di output, al fine di registrare il momento in cui i dati sono stati generati. Ora possiamo sperimentare facilmente la funzione "MapForce" in una nuova mappatura, che semplicemente collega l'applicazione a un file di testo. 

[![Una funzione associata a un file di testo](https://lh4.ggpht.com/-NecSm6arE0g/Tf-MKZyrP4I/AAAAAAAAAZM/DyO5RHvbDpU/technote27_1_thumb%25255B2%25255D.png?imgmax=800 "A function connected to a text file")](http://lh3.ggpht.com/-nlHcCbcvjFc/Tf-MJ9mMqQI/AAAAAAAAAZI/lFddbb7blzc/s1600-h/technote27_1%25255B4%25255D.png)

Cliccando sul pulsante "Output" situato nella parte inferiore della finestra di mappatura, possiamo visualizzare immediatamente il risultato: 

[![Risultato della funzione "now"](https://lh3.ggpht.com/-d_iemv_ykrc/Tf-MLG7DA1I/AAAAAAAAAZU/tPounch7Ofc/technote27_2_thumb%25255B2%25255D.png?imgmax=800 "Output of the now function")](http://lh5.ggpht.com/-_I-NteTD0tE/Tf-MK-qeWAI/AAAAAAAAAZQ/byuCmyEmvrA/s1600-h/technote27_2%25255B4%25255D.png) 

Okay, va bene, ma forse chi utilizza il file di output preferirebbe una versione con una formattazione più curata. Possiamo utilizzare diverse funzioni per la gestione di date e orari e per la manipolazione di stringhe, e creare una funzione complessa fino a ottenere una struttura di dati che assomigli a questa: 

[![Funzione complessa per generare una stringa](https://lh3.ggpht.com/-zuEPfPxnuLY/Tf-MMIRLZKI/AAAAAAAAAZc/zj0xQr561RU/technote27_3_thumb%25255B2%25255D.png?imgmax=800 "Complicated function to produce a string")](http://lh6.ggpht.com/-429i3ML-88k/Tf-MLsxsfjI/AAAAAAAAAZY/n5PU6-z0sjs/s1600-h/technote27_3%25255B4%25255D.png) 

Oppure, potremmo semplicemente utilizzare la funzione di conversione "format-dateTime" con una stringa costante per definire il formato 

[![Utilizzo della funzione format-dateTime per ottenere un output personalizzato](https://lh3.ggpht.com/-It_hoxtBz5I/Tf-MM0Jw2oI/AAAAAAAAAZk/bsKoKQGZkNc/technote27_4_thumb%25255B2%25255D.png?imgmax=800 "Using the format-dateTime function for customized output")](http://lh5.ggpht.com/-aHLThUl46bI/Tf-MMWQUnkI/AAAAAAAAAZg/oVQM37fNsAg/s1600-h/technote27_4%25255B4%25255D.png) 

Mentre lavoriamo, possiamo premere il pulsante "Output" in qualsiasi momento, fino a ottenere un risultato che assomigli a questo: 

[![Stringa personalizzata per data e ora](https://lh4.ggpht.com/-94YVgt5hGAc/Tf-MNzI5DaI/AAAAAAAAAZs/f1hokVgdvBo/technote27_5_thumb%25255B2%25255D.png?imgmax=800 "Custom string for date and time")](http://lh3.ggpht.com/-mOgE_ufw_ds/Tf-MNTQyQvI/AAAAAAAAAZo/gMCh3pkDtSI/s1600-h/technote27_5%25255B4%25255D.png) 

Se non si lavora quotidianamente con i tipi di dati "dateTime", è difficile, al primo tentativo, scrivere una stringa di formato che produca il risultato desiderato! Dopo diversi tentativi, modifiche e consultazioni con la guida di MapForce, ecco la stringa di formato che abbiamo sviluppato e che è stata memorizzata nella costante di stringa collegata all'input di formato della funzione di conversione "format-dateTime": 

[![Stringa per definire il formato della data e dell'ora](https://lh4.ggpht.com/-vJlxfpnWDLE/Tf-MOqGOehI/AAAAAAAAAZ0/5kU5pfLXnjI/technote27_6_thumb%25255B2%25255D.png?imgmax=800 "String to define format for dateTime")](http://lh6.ggpht.com/-HT699QUkXRg/Tf-MOSslQNI/AAAAAAAAAZw/qAjirhgmTKw/s1600-h/technote27_6%25255B4%25255D.png)

Finora abbiamo utilizzato un file di testo definito come un semplice file CSV con un solo campo, ma è possibile aprire la finestra di dialogo "Proprietà" del file e aggiungere campi o creare un file di output più personalizzato.

[![Impostazioni delle proprietà per un semplice file di testo](https://lh6.ggpht.com/-uU2CKqIDYDQ/Tf-MPvuAgYI/AAAAAAAAAZ8/SzheowFYP3w/technote27_7_thumb%25255B3%25255D.png?imgmax=800 "Properties settings for a simple text file")](http://lh4.ggpht.com/-qZ5CeImVIuI/Tf-MPNq4zRI/AAAAAAAAAZ4/lfbmBTAuC_g/s1600-h/technote27_7%25255B5%25255D.png) 

Un vantaggio nell'utilizzare un file di testo come destinazione di output è che non viene eseguito alcun controllo del tipo del risultato della funzione. Questo permette di esaminare e verificare l'output di qualsiasi funzione. Nello screenshot qui sotto, abbiamo creato una funzione matematica e abbiamo aggiunto un secondo campo alla destinazione del file di testo per mappare il risultato. 

[![File di testo con due campi di destinazione](https://lh4.ggpht.com/-bkqK8zHzSGc/Tf-MQXFDV8I/AAAAAAAAAaE/lXmO7FFVIVE/technote27_8_thumb%25255B2%25255D.png?imgmax=800 "Text file with two target fields")](http://lh5.ggpht.com/-i2GuUy7xGa4/Tf-MP0AmpQI/AAAAAAAAAaA/DoEDCUBTPRw/s1600-h/technote27_8%25255B4%25255D.png)

Ora, il risultato è una singola riga, con i valori separati da virgole, come questo:

[![Due campi in un semplice file di testo](https://lh6.ggpht.com/-pZMEjI9YzCA/Tf-MRRwlbrI/AAAAAAAAAaM/H61gauIPrpw/technote27_9_thumb%25255B2%25255D.png?imgmax=800 "Two fields in a simple text file")](http://lh3.ggpht.com/-4qI-JEQq6KU/Tf-MREv_AEI/AAAAAAAAAaI/TlRYz1Ucn_o/s1600-h/technote27_9%25255B4%25255D.png) 

Se l'obiettivo finale è un campo di un database o un elemento XML con un tipo di dati intero, allora possiamo immediatamente constatare che questa funzione matematica non produce il tipo di dati previsto. Una volta perfezionata la funzione nella mappatura di prova, è possibile semplicemente selezionarla, copiarla e incollarla direttamente nella mappatura principale. Successivamente, è possibile collegare l'output della funzione all'obiettivo finale. Nello screenshot qui sotto, la nostra funzione di formattazione "dateTime" è mappata a un elemento in uno schema XML definito come stringa.

[![Funzione inserita in una mappa più ampia](https://lh4.ggpht.com/-yWufMDEjtr4/Tf-MSSrvKUI/AAAAAAAAAaU/jy-aqhTO4vI/technote27_10_thumb%25255B2%25255D.png?imgmax=800 "Function pasted into larger mapping")](http://lh3.ggpht.com/-V7xU_lpVjpA/Tf-MR4WsmXI/AAAAAAAAAaQ/hfRmKCiFRFM/s1600-h/technote27_10%25255B4%25255D.png) 

Se questa è una funzione che probabilmente vorrete utilizzare di nuovo in futuro, potete convertirla in una funzione definita dall'utente e salvarla nella vostra libreria per un utilizzo più semplice e immediato. 

[![Menu delle funzioni di Altova MapForce](https://lh6.ggpht.com/-Qx5nsgVq1MA/Tf-MS30X-JI/AAAAAAAAAac/_IyIHiUGYWE/technote27_11_thumb%25255B5%25255D.png?imgmax=800 "Altova MapForce Function menu")](http://lh6.ggpht.com/-sL7Qf6AitKg/Tf-MSuQoegI/AAAAAAAAAaY/Yz14z0P3Uvo/s1600-h/technote27_11%25255B9%25255D.png) 

È possibile utilizzare anche un file di testo come destinazione temporanea per creare e testare una funzione complessa direttamente all'interno della mappatura principale. In questo caso, la mappatura include più output possibili. Il pulsante a forma di occhio situato nell'angolo in alto a destra di ogni file di output permette di selezionare quale file di output viene visualizzato nella finestra "Output".

[![Un file di testo utilizzato come destinazione temporanea all'interno di una mappatura più ampia](https://lh6.ggpht.com/-ROHTGmMGhCc/Tf-MUbPViPI/AAAAAAAAAak/1OdyEKLbGvY/technote27_12_thumb%25255B2%25255D.png?imgmax=800 "Text file as a temporary target")](http://lh3.ggpht.com/-JEuO0O-O1d8/Tf-MTy-EOVI/AAAAAAAAAag/q10Mjah9tBQ/s1600-h/technote27_12%25255B4%25255D.png) 

Quando si seleziona un file di testo come anteprima dell'output, il motore di esecuzione di MapForce non elabora l'intera mappatura, ma solo la funzione collegata al file di testo. Questo può far risparmiare molto tempo quando si desidera semplicemente esaminare il risultato della funzione e la mappatura principale elabora un grande volume di dati, oppure se non si vuole rischiare di inserire dati non validi in un database, e in molte altre situazioni. **Scoprite di persona quanto è facile applicare MapForce ai vostri progetti di mappatura dei dati!** [**Scaricate una prova gratuita di 30 giorni**](https://www.altova.com/it/download/mapforce/data_mapping_enterprise.html) **di MapForce.**
