MapForce biedt dynamische toegang tot knoopnamen
Er zijn situaties, vooral wanneer u te maken krijgt met gestructureerde data, waarin u mogelijk de structurele componenten van een datastroom wilt koppelen en transformeren, samen met de inhoud. MapForce kan dynamisch toegang krijgen tot de namen van knooppunten van XML-elementen, attributen of kolommen van tekstbestanden, zoals de inhoud van CSV-bestanden, om deze te koppelen aan specifieke componenten.
Dynamische toegang tot knoopnamen maakt het mogelijk om elementen en attributen direct te creëren, waarvan de namen niet van tevoren bekend hoeven te zijn of specifiek moeten worden gedefinieerd in de datamapping. Deze functie maakt het mogelijk om veel generiekere, flexibelere en herbruikbare mappings te creëren, die minder handmatige interventie vereisen wanneer datamodellen evolueren.

Hier is een voorbeeld van een veelvoorkomend CSV-bestand waarin de gegevensvelden niet worden aangeduid met kolomnamen, maar met labels in een aangrenzende cel binnen dezelfde rij:

De gegevens in dit voorbeeld zijn niet eens consistent opgebouwd, aangezien de ene record een toevoeging na de achternaam bevat, terwijl een andere record een initiaal als tweede voornaam bevat.
Een waarschijnlijke vereiste voor het omzetten van gegevens voor bestanden zoals deze is om de cellen in kolom A te gebruiken als namen van XML-elementen en de cellen in kolom B als waarden voor elk bijbehorend element. Dit kan nu eenvoudig worden bereikt met dynamische mapping van knoopnamen. Laten we eens kijken hoe dit werkt.
Dynamische toegang tot de namen van XML-elementen
We beginnen met het maken van een zeer eenvoudig XML-schema voor het doel van de mapping. Dit schema gebruikt het element <xs:any> om een complex element

We beginnen met het maken van de structuur door het CSV-bestand te importeren en een groepsfunctie te gebruiken. Deze functie creëert telkens wanneer "FirstName" voorkomt in kolom A van de invoer, een nieuw

Vervolgens voegen we het gewenste XML-schema toe en klikken we met de rechtermuisknop op het element

We kiezen de optie "Toon onderliggende elementen met dynamische naam", waarna een dialoogvenster opent waarin we tekst als het gegevenstype voor de onderliggende elementen selecteren. Dit toont de naam en inhoud van de onderliggende elementen van

Het is nu een eenvoudig proces om de gegevens van veld 1 (kolom A van het CSV-bestand) te koppelen aan de namen van de onderliggende elementen, en de gegevens van veld 2 (kolom B) aan de inhoud van die elementen. Hieronder volgt de definitieve datakoppeling:

De functie "groep beginnend met" bovenaan creëert telkens wanneer "FirstName" in het invoerbestand wordt aangetroffen, een nieuw
De output van de bovenstaande mapping ziet er als volgt uit:

Het voordeel van een datamapping die dynamisch toegang gebruikt tot de namen van knooppunten is dat u geen uitgebreide analyse van de invoergegevens hoeft uit te voeren om elk mogelijk element te identificeren en toe te wijzen.
Stel u een veelvoorkomend scenario voor waarin u meerdere invoerbestanden ontvangt van één of meerdere externe bronnen, en waarbij u de mapping-uitvoering automatiseert met MapForce Server en FlowForce Server. Als een invoerbestand plotseling een onverwacht subelement bevat – bijvoorbeeld "OfficeLocation" of "MailStop" – dan gaan de gegevens niet verloren.
Dynamische toegang tot de namen van XML-elementen of -attributen
U kunt ook de namen van XML-attributen dynamisch toewijzen, met dezelfde mogelijkheid om doel-elementen en -attributen direct te creëren, zonder dat u deze noodzakelijkerwijs allemaal vooraf hoeft te identificeren.