---
title: "Meerdere invoerbestanden verwerken in één datamapping"
date: "2013-01-29"
categories: 
  - "applications"
  - "data-integration"
tags: 
  - "data-mapping"
  - "mapforce"
description: Ontdek hoe u met Altova MapForce efficiënt meerdere invoerbestanden kunt verwerken voor data-mapping. Deze handleiding behandelt wildcards, functies voor bestandspaden en filtertechnieken.
---
Status: #blog

Tags:  #data-mapping #mapforce

Categories: [ETL](/blog/nl/category/etl.md) | [data-integration](/blog/nl/category/data-integration.md)
# Meerdere invoerbestanden verwerken in één datamapping

Typische taken voor dataomzetting vereisen het verwerken van een groot aantal invoerbestanden die in batches worden ontvangen. [Altova MapForce](https://www.altova.com/nl/mapforce.html) biedt functies waarmee u groepen bestanden met minimale tussenkomst kunt verwerken. Zo hebben we onlangs een set bestanden van de geheugenkaart van een digitale camera met GPS-ondersteuning gekopieerd. Elk .LOG-bestand is een CSV-bestand dat GPS-coördinaten bevat voor een specifieke route.

![Lijst van bronbestanden voor dataomzetting](https://lh4.ggpht.com/-Y_WZhryIjkY/UPl5wriQH7I/AAAAAAAAA9Q/EsluCIUq068/clip_image001%25255B3%25255D.png?imgmax=800 "Directory list of source files for data conversion")

We hebben snel een conversieprocedure ontworpen om de CSV-gegevens om te zetten naar het XML-gebaseerde .gpx-formaat, en vervolgens alle drie de bestanden verwerkt om in één keer drie uitvoerbestanden te genereren:

![Lijst van automatisch gegenereerde uitvoerbestanden](https://lh3.ggpht.com/-_QzOFmBto78/UPl5xBjlsjI/AAAAAAAAA9Y/DIJBSZ6AdMw/clip_image002%25255B3%25255D.png?imgmax=800 "List of automatically generated output files")

<!--more-->

Allereerst hebben we een wildcard-teken gebruikt in de bestandsnaam van het invoerbestand in het dialoogvenster "Eigenschappen" voor het invoercomponent van de mapping. Dit instrueert MapForce om elk bestand in de werkmap dat overeenkomt met het wildcard afzonderlijk te verwerken.

![Het gebruik van een wildcard voor het invoerbestand van de mapping](https://lh3.ggpht.com/-iqz0XDhHvLQ/UPl5xo-viaI/AAAAAAAAA9g/TO9klug7KLc/clip_image003%25255B3%25255D.png?imgmax=800 "Using a wildcard for the mapping input file")

Als u een complexe conversie uitvoert, of als de invoerbestanden erg groot zijn, kunt u een unieke bestandsnaam gebruiken om de conversie-instellingen in te stellen. Zodra u tevreden bent met het resultaat, kunt u overschakelen naar een wildcard.

**Functies voor bestandspaden**

De ingebouwde MapForce-functiebibliotheek bevat functies voor bestandspaden waarmee we de namen van uitvoerbestanden kunnen beheren. Als we één uitvoerbestand definiëren, wordt dit aangevuld met nieuwe gegevens wanneer we elk volgend invoerbestand verwerken.

![Bestands pad functies in de MapForce functiebibliotheek](https://lh5.ggpht.com/-JxIKHZXrzEo/UPl5xzHgSnI/AAAAAAAAA9o/6APxltAkffU/clip_image004%25255B3%25255D.png?imgmax=800 "File path functions in the MapForce function library")

U kunt bestandspadfuncties combineren met andere stringfuncties om volledige controle te krijgen over de namen en locaties van de uitvoerbestanden. We hebben besloten om de uitvoerbestanden in dezelfde map te plaatsen als de invoerbestanden, maar om beschrijvender bestandsnamen te gebruiken en de bestandsextensie .gpx te gebruiken.

Het onderstaande fragment van de mapping gebruikt de functie voor het samenvoegen van strings, in combinatie met functies voor bestandspaden, om het uitvoerbestand "1211190converted.gpx" te genereren op basis van "1211190.LOG", en zo verder.

![Het gebruik van padfuncties in combinatie met een stringfunctie](https://lh4.ggpht.com/-l6ypssdA9Mg/UPl5ydkZBjI/AAAAAAAAA9w/2IfnpeT0TDY/clip_image005%25255B3%25255D.png?imgmax=800 "Using path functions with a string function")

U kunt ook bestandspadfuncties gebruiken om strings te genereren en deze als uitvoer in te voegen. Het XML-schema voor .gpx-bestanden bevat een element voor metadata. We hebben besloten om de naam van het invoerbestand in de metadata op te nemen, om de uitvoerbestanden expliciet te koppelen aan de oorspronkelijke gegevens. Deze aanpak maakt het uitvoerbestand zelfdocumenterend en kan helpen bij het opsporen van fouten als u onverwachte uitvoer terug moet traceren naar de oorspronkelijke bron.

Het volgende fragment van de code voegt de naam van het bronbestand in een string en koppelt deze string aan het metagegevenselement `<desc>`:

![De bestandsnaam als uitvoerdata weergeven](https://lh4.ggpht.com/-_NjzoK77594/UPl5zLiSFyI/AAAAAAAAA94/3E_Qvk6srt8/clip_image006%25255B3%25255D.png?imgmax=800 "Mapping the file name as output data")

De resulterende beschrijving staat op regel 4 van de "[Voorbeeldweergave van de resultaten van de mapping](https://www.altova.com/nl/mapforce/mapping-output.html)":

**[Afbeelding van voorbeeldgegevens met een bestandsnaam]**

**Het filteren van invoergegevens**

De kern van deze datamapping vereiste een filter op het invoerbestand. De GPS-logbestanden van de camera worden volgens de specificatie van de National Marine Electronics Association (NMEA) opgeslagen. Een fragment van een van de invoerbestanden wordt hieronder weergegeven:

![Voorbeeldgegevens uit het GPS-logbestand van de camera](https://lh6.ggpht.com/-My1iWbnP1Fs/UPl5z4xF7tI/AAAAAAAAA-I/dmH9bWwphCI/clip_image008%25255B3%25255D.png?imgmax=800 "Sample data from the camera GPS log")

Na de eerste regel wordt elk geregistreerd punt beschreven door twee NMEA-zinnen, waarbij het type zin wordt aangegeven in het eerste veld. Elke GGA-zin bevat de tijd, breedtegraad, lengtegraad, hoogte en aanvullende gegevens over de nauwkeurigheid van de positiebepaling. Elke RMC-zin bevat de tijd, breedtegraad, lengtegraad en de datum.

Een RMC-zin bevat de minimale gegevens die we nodig hebben om een .gpx-bestand te genereren `<trkpt>` element, waardoor we een filter kunnen gebruiken om alleen die regels uit de invoer te selecteren, zoals hieronder wordt getoond:

![Het filteren van de invoergegevens om rijen te selecteren](https://lh5.ggpht.com/-u3MGw07n5Jg/UPl50MRDs2I/AAAAAAAAA-M/Jdm8sOiyLko/clip_image009%25255B3%25255D.png?imgmax=800 "Filtering the input data to extract rows")

Als het type bericht in het eerste veld van een rij "$GPRMC" bevat, wordt de rij doorgestuurd voor verwerking. Anders wordt de rij genegeerd.

De daadwerkelijke gegevens in het invoerbestand vereisten ook enige bewerking. Voor elke breedte- en lengtegraad moesten we meerdere velden in de bron combineren die graden, minuten en seconden definieerden, en deze omzetten naar decimale graden. We moesten de velden voor tijd en datum combineren en het resultaat opslaan in het ISO 8601-formaat, zoals vereist door .gpx, bijvoorbeeld 2012-11-19T20:43:23Z. We hebben elke van deze conversies gedefinieerd als gebruikersfuncties om hun complexiteit te isoleren en ze te scheiden van de hoofdfunctionaliteit van de kaartapplicatie.

Deze mapping biedt ook de mogelijkheid om de gebruikersfunctie `getElevationUS` die we eerder in de post "[Verwacht het onverwachte - Altova MissionKit lost een probleem met getallenformaten op](https://www.altova.com/blog/2013/01/expect-unexpected-altova-missionkit.html)" hebben gedefinieerd, opnieuw te gebruiken. Deze keer hebben we de hoogtedata afgerond op drie decimalen, wat overeenkomt met het dichtstbijzijnde millimeter.

Het belangrijkste onderdeel van de data-omzetting van Camerlog naar GPX, met behulp van gebruikersfuncties, ziet er als volgt uit:

![De kern van de datamapping met behulp van gebruikersfuncties](https://lh6.ggpht.com/-2HVaK82dfyo/UPl50fC_aHI/AAAAAAAAA-Y/1rMavSy31hM/clip_image010%25255B3%25255D.png?imgmax=800 "Core of the data mapping with user functions")

Hier is een van de uitvoerbestanden, waarin een `<trk>`, een `<trkseg>` en verschillende `<trkpt>` elementen worden weergegeven.

![Voorbeeld van uitvoergegevens](https://lh6.ggpht.com/-HQudomQ_V9o/UPl51JbUgXI/AAAAAAAAA-g/OH2DiYSvrZU/clip_image011%25255B3%25255D.png?imgmax=800 "Sample output data")

Het menu "Output" in MapForce biedt een selectie waarmee we de gegenereerde bestanden kunnen valideren aan de hand van het .gpx XML-schema:

![Validatieresultaten](https://lh6.ggpht.com/-9PvYWtWIYh0/UPl51dQrWfI/AAAAAAAAA-o/1NI8SHJzfLg/clip_image012%25255B3%25255D.png?imgmax=800 "Validation results")

**Als u** [**Altova MapForce**](https://www.altova.com/nl/download-trial.html) **wilt gebruiken om invoerbestanden in batches te verwerken voor uw eigen datamappingen,** [**klik hier om een gratis proefversie te downloaden](https://www.altova.com/nl/download-trial.html).****
