---
title: "Een snelle oplossing voor complexe functies"
date: "2011-06-27"
tags: 
  - "data-integration"
  - "data-mapping"
  - "mapforce"
  - "version-2011"
description: Altova MapForce 2011 vereenvoudigt complexe datatransformaties door gebruikers in staat te stellen functies grafisch te combineren. Het ondersteunt stapsgewijze tests voor nauwkeurige dataconversies.
---
Status: #blog

Tags:  #data-integration #data-mapping #mapforce #version-2011

Categories: [Altova](/blog/nl/category/altova.md) 
# Een snelle oplossing voor complexe functies

Sommige gegevensconversies vereisen meerdere stappen om te voldoen aan de complexe eisen van moderne data-communicatie. [Altova MapForce 2011](https://www.altova.com/nl/mapforce.html) stelt u in staat om grafisch een breed scala aan wiskundige, logische, tekstuele en andere [gespecialiseerde functies](https://www.altova.com/nl/mapforce/data-processing-functions.html) te combineren, zodat u complexe "data-vergelijkingen" kunt maken om de gewenste resultaten te verkrijgen. Als u werkt aan een grote, complexe mapping, als u een functie gebruikt die u nog niet kent, of wanneer uw functie een tussenresultaat produceert dat verder verwerkt moet worden, is het nuttig om uw werk bij elke stap te testen terwijl u het opbouwt. U kunt een [eenvoudig tekstbestand](https://www.altova.com/nl/mapforce/flat-file-mapping.html) gebruiken als een tijdelijk doel om de output van uw functie, die u nog aan het ontwikkelen bent, te bekijken. Stel dat we een datum- en tijdstempel willen toevoegen aan een bestaande koppeling tussen een uitvoerbestand en een registratie, om vast te leggen wanneer de data is gegenereerd. We kunnen nu eenvoudig experimenteren met de "MapForce now" functie in een nieuwe mapping, waarbij we simpelweg een verbinding maken met een tekstbestand. 

[![Een functie die verbonden is met een tekstbestand](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)

Door op de knop "Output" (uitvoer) onderaan het venster voor de mapping te klikken, zien we direct het resultaat: 

[![De uitvoer van de functie "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) 

Oké, dat werkt, maar misschien wil de gebruiker van het uitvoerbestand een eleganter opgemaakte versie zien. We kunnen gebruikmaken van verschillende functies voor datums en strings en een complexe functie bouwen, totdat onze mapping er als volgt uitziet: 

[![Complexe functie om een string te genereren](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) 

Of we kunnen simpelweg de functie voor het converteren van datums en tijden gebruiken, in combinatie met een string constante, om het formaat te definiëren: 

[![Het gebruik van de functie "format-dateTime" voor een aangepaste uitvoer](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) 

Tijdens het werken kunnen we op elk moment op de knop "Uitvoer" drukken, totdat we tevreden zijn met een resultaat dat er zo uitziet: 

[![Aangepaste string voor datum en tijd](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) 

Als u niet dagelijks met datatypes voor datum en tijd werkt, is het moeilijk om bij de eerste poging een opmaakstring te maken die het gewenste resultaat oplevert! Na verschillende pogingen, variaties en consultaties van de MapForce-help, is dit de opmaak die we hebben ontwikkeld en opgeslagen in de stringconstante die is verbonden met de opmaakingang van de functie voor het converteren van datum en tijd 

[![String om het formaat voor datum en tijd te definiëren](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)

Tot nu toe hebben we een tekstbestand gebruikt dat is gedefinieerd als een eenvoudig CSV-bestand met slechts één veld, maar u kunt het dialoogvenster "Eigenschappen" van het bestand openen en velden toevoegen of een meer aangepast uitvoerbestand maken.

[![Instellingen voor een eenvoudig tekstbestand](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) 

Een voordeel van het gebruik van een tekstbestand als uitvoerbestemming is dat er geen typecontrole wordt uitgevoerd op het resultaat van de functie. Dit betekent dat u met een tekstbestand als uitvoerbestemming de output van elke functie kunt bekijken en verifiëren. Op de onderstaande screenshot zien we hoe we een wiskundige functie hebben gemaakt en een tweede veld aan de tekstbestandsuitvoer hebben toegevoegd om het resultaat weer te geven. 

[![Tekstbestand met twee doelvelden](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)

Het resultaat is nu een enkele rij met komma's als scheidingsteken, zoals dit:

[![Twee velden in een eenvoudig tekstbestand](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) 

Als ons uiteindelijke doel een databaseveld of een XML-element met een integer-datatype is, dan kunnen we direct zien dat deze wiskundige functie niet het verwachte datatype oplevert. Zodra u uw functie in de testomgeving hebt geperfectioneerd, kunt u deze eenvoudig selecteren, kopiëren en direct in uw grotere mapping plakken. Vervolgens kunt u de uitvoer van de functie verbinden met uw uiteindelijke doel. Op de onderstaande screenshot is onze functie voor het formatteren van datums en tijden (dateTime) gekoppeld aan een element in een XML-schema dat is gedefinieerd als een string.

[![Functie ingevoegd in een grotere mapping](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) 

Als dit een functie is die u waarschijnlijk in de toekomst nog vaak zult willen gebruiken, kunt u deze omzetten in een door de gebruiker gedefinieerde functie en opslaan in uw bibliotheek, zodat u deze gemakkelijk kunt hergebruiken. 

[![Altova MapForce: Menu met functies](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) 

U kunt zelfs een tekstbestand gebruiken als een tijdelijk doel om een complexe functie te bouwen en te testen, direct binnen uw grotere mapping. In dat geval bevat uw mapping meerdere mogelijke uitvoerbestanden. De knop met het oogje rechtsboven elk uitvoerbestand bepaalt welk uitvoerbestand wordt weergegeven in het uitvoervenster.

[![Een tekstbestand als tijdelijk doel binnen een grotere mapping](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) 

Wanneer u een tekstbestand selecteert als de uitvoerweergave, verwerkt de MapForce-uitvoerengine niet de volledige mapping, maar alleen de functie die verbonden is met het tekstbestand. Dit kan veel tijd besparen wanneer u alleen het resultaat van de functie wilt bekijken en uw grotere mapping een grote hoeveelheid gegevens verwerkt, of als u het risico wilt vermijden om ongeldige gegevens in een database in te voeren, en in veel andere situaties. **Ontdek zelf hoe eenvoudig het is om MapForce toe te passen op uw eigen datamappingprojecten!** [**Download een gratis proefversie van 30 dagen**](https://www.altova.com/nl/download/mapforce/data_mapping_enterprise.html) **van MapForce.**
