Het toepassen van datamappingschema's
Altova MapForce bevat krachtige mappingcomponenten die corresponderen met ontwerpmodellen voor gegevensomzetting vereisten. Het analyseren van een gegevensmappinguitdaging in een vroeg stadium en het volgen van een aantal eenvoudige richtlijnen kan gegevensmapping patronen blootleggen die helpen bij het vereenvoudigen van het ontwerp van de mapping en leiden tot een optimale oplossing. Het MapForce Examples-project biedt voorbeeldmappingbestanden en datasets die veelvoorkomende gegevensmappingpatronen illustreren. Het bekijken van deze voorbeelden en het uitvoeren ervan met de ingebouwde uitvoeringsomgeving van MapForce is een andere goede manier om het beste patroon voor uw eigen project te selecteren.

Exacte matching versus voorwaardelijke matching
Ten eerste, bepaal of uw invoer en uitvoer een exact één-op-één relatie hebben, of dat er een complexere relatie vereist is, zoals bijvoorbeeld bereiken van "van tot" of een "als-anders"-statement.
Met "exacte overeenkomst" kunt u uw vereiste eenvoudig formuleren met een tabel met twee kolommen. Het algoritme zoekt dan naar een exacte overeenkomst van de opgegeven invoerwaarde in de linker kolom en gebruikt de waarde in dezelfde rij uit de rechter kolom. Let op dat de items in de linker kolom allemaal uniek moeten zijn, terwijl er mogelijk dubbele waarden in de rechter kolom voorkomen.

Voorbeelden van exacte overeenkomsten zijn het omzetten van maandnamen naar cijfers, of het converteren van ISBN-nummers naar boektitels.
Exacte overeenkomstopties
Als het aantal items in de tabel constant is en relatief klein (bijvoorbeeld tot 20, of in uitzonderlijke gevallen tot 200), gebruik dan een component voor waarde-mapping. Typische voorbeelden zijn het omzetten van maandnamen naar cijfers, of het omzetten van codes naar andere codes (bijvoorbeeld "F" naar "XX" en "M" naar "XY").
U kunt zelfs de namen van de invoer- en uitvoerkolommen van het "value-map" component wijzigen. In het dialoogvenster voor de eigenschappen van het "value-map" component, dubbelklikt u op de naam "input" of "result" (of klik op het potloodpictogram) en begin met typen. Dit maakt het eenvoudig om het doel van meerdere "value-map" componenten in de mapping te identificeren.

Het voorbeeldbestand MapArticle.mfd laat zien hoe de component voor waardetoekenning (value-map) gebruikt kan worden.
Soms vragen we ons af waarom er geen instelling is om een onbekende invoerwaarde ongewijzigd door te geven aan de uitvoer. Het antwoord is dat dit niet zou werken als de datatypes aan de invoer- en uitvoerkant verschillend zijn, zoals bijvoorbeeld bij het omzetten van een integer naar een string, zoals hierboven wordt weergegeven.
De oplossing hier is om de optie "Anders" (Otherwise) niet aan te vinken (de "value-map" van een onbekende invoer geeft dan een lege reeks terug), en om de functie "substitute-missing" uit de kernfunctionaliteitsbibliotheek te gebruiken bij de uitvoer, om de lege reeks te vervangen door de oorspronkelijke invoerwaarde.
Grotere zoektabellen
Voor een groot aantal gegevens of zoektabellen die vaak veranderen, is een databaseopslag de beste oplossing. Dit betekent dat de daadwerkelijke waarden van de zoektabel niet deel uitmaken van de mapping, maar worden opgeslagen in een database. Om dit patroon te implementeren, voegt u een databasecomponent en een SQL-WHERE-component toe aan de mapping. Het voorbeeld DB_PhoneList.mfd illustreert deze strategie.
Als u geen database kunt gebruiken en het aantal gegevens niet erg groot is, kunt u ook een ander component gebruiken, bijvoorbeeld XML of CSV, en een filtercomponent, zoals te zien is in het voorbeeld CompletePO.mfd. Echter, deze oplossing kan tijdens de uitvoering langzamer zijn dan het gebruik van een database met een WHERE-clausule.
Voor bepaalde vereisten kunt u zelfs een webservice aanroepen om waarden op te zoeken. De voorbeelden BookISBNConvertWS.mfd en CurrencyConverter.mfd illustreren het gebruik van een webservice voor het opzoeken van informatie.

Voorwaardelijke overeenkomst
Als u complexere voorwaarden nodig heeft dan een exacte overeenkomst, zoals het controleren van bereiken van invoerwaarden, kunt u het "if-else"-component gebruiken, zoals te zien is in het voorbeeld "ClassifyTemperatures.mfd".

De rode plustekens in het "if-else"-component stellen u in staat om meer tests toe te voegen, die elk gebaseerd zijn op een andere logische functie. Het "anders"-veld stelt u in staat om het resultaat te definiëren in een situatie waarin geen van de logische tests waar is.
Complexe relaties en hergebruik van componenten
Als uw datatransformatie meerdere invoer- en uitvoerwaarden vereist, kunt u eenvoudig meerdere waardetoewijzingen en voorwaardelijke componenten in één enkele transformatie opnemen.
U kunt elk van de hierboven beschreven componenten dupliceren door middel van kopiëren en plakken, zowel binnen één ontwerp als tussen verschillende bestanden. U kunt ook een van de hier beschreven oplossingen hergebruiken door ze in een door de gebruiker gedefinieerde functie (User-Defined Function) te verpakken. U kunt uw eigen functies opslaan in een bibliotheek met gebruikersfuncties om ze later in andere projecten te gebruiken of met collega's te delen.
Ontdek zelf hoe eenvoudig het is om de datamappings van MapForce toe te passen in uw eigen projecten voor data-transformatie! Download een gratis proefversie van 30 dagen van MapForce.