Interactieve debugger voor data-integratieprojecten
MapForce 2016 introduceert een revolutionaire debugger voor datamapping, waarmee ontwikkelaars die werken aan dataintegratieprojecten de output van de datamapping stap voor stap kunnen bekijken, zodat ze projecten van elke complexiteit kunnen diagnosticeren en optimaliseren. De debugger voor datamapping biedt gebruikers diepgaand inzicht in de werking van dataintegratie- en ETL-projecten, op een manier die voorheen niet mogelijk was.
De debugger werkt met alle MapForce-datamappingen voor elke combinatie van XML, XBRL, JSON, databases, platte bestanden, EDI, Excel of web services data, inclusief gekoppelde mappingen, mappingen met meerdere invoer- of uitvoercomponenten, en mappingen die gebruikersgedefinieerde functies bevatten.

De MapForce data mapping debugger ondersteunt pauzepunten en voorwaardelijke pauzepunten, en biedt verschillende opties voor handmatige stapsgewijze uitvoering, waardoor gebruikers een data mapping handmatig kunnen debuggen of de uitvoering kunnen voortzetten nadat een pauzepunt is bereikt. Hierdoor kunnen gebruikers alle details bekijken die ze nodig hebben.
We kunnen een voorbeeld van een debugsessie doorlopen om de nieuwe functies en mogelijkheden van de MapForce 2016 debugger te bekijken. De onderstaande screenshot toont een datamapping met de naam "ClassifyTemperatures" die is meegeleverd met de voorbeeldbestanden van MapForce. Deze mapping leest een invoerbestand dat een lijst met temperaturen en datums bevat, en produceert een uitvoerbestand dat classificatiebeschrijvingen toevoegt voor hoge en lage temperaturen.

De debugfunctionaliteit van MapForce, met name de mogelijkheid om "breakpoints" te plaatsen, zal bekend zijn aan ontwikkelaars met ervaring in het debuggen van broncode. Breakpoints kunnen op elke invoer- of uitvoerknoop worden geplaatst om de mapping-uitvoering op dat punt te onderbreken, en er wordt ook ondersteuning geboden voor voorwaardelijke breakpoints.
Een pauzepunt instellen
We bereiden de debugsessie voor door een "breakpoint" (onderbrekingspunt) toe te voegen aan de mapping bij het resultaat van de "greater" functie (in het midden van de afbeelding hierboven). Dit doen we eenvoudig door met de rechtermuisknop op de verbindingspijl te klikken. Het nieuwe onderbrekingspunt wordt gemarkeerd in rood.

Met hetzelfde rechtermuisklikmenu kunnen gebruikers een dialoogvenster openen om dit in te stellen als een voorwaardelijk breakpoint. Het resultaat van de functie zal ofwel "waar" ofwel "onwaar" zijn. We kunnen het breakpoint instellen, zodat de uitvoering van de datamapping alleen stopt als de functie "waar" retourneert

Interactieve debugging
Een menuoptie start interactief debuggen:

De ingebouwde uitvoeringsengine van MapForce begint met het verwerken van de mapping en blijft dit doen totdat een breakpoint wordt bereikt en de voorwaarde voor het breakpoint is vervuld. Alle tussenliggende waarden worden in rood weergegeven in het ontwerp van de mapping. Bij grote, complexe mappings kan de weergave van tussenliggende waarden erg druk worden, dus we kunnen elke waarde naar een handigere locatie in het mappingvenster verplaatsen.
Het vetgedrukte woord "true" geeft de laatste gegenereerde waarde aan, voordat de uitvoering werd onderbroken.

De debug-hulpmiddelen openen automatisch en bieden meer informatie over alles wat tijdens de uitvoering is gebeurd. Het contextvenster toont welke knooppunten zijn verwerkt vanuit het invoerbestand en welke functies zijn uitgevoerd.

De vermelding "data[7]" geeft aan dat zeven temperatuurwaarden zijn verwerkt.
Het venster "Geschiedenis" toont automatisch elk resultaat dat wordt gegenereerd door de betreffende functie, op het punt waar een breakpoint is ingesteld. Voor de eerste zes waarden was het resultaat "false". Toen de zevende waarde een resultaat opleverde van "true", was de voorwaarde vervuld en werd de uitvoering onderbroken.

Het venster "Geschiedenis" is zeer krachtig. We kunnen elk ander verbindingspunt in de mapping selecteren, en het venster "Geschiedenis" toont dan een lijst van alle waarden die door dat punt zijn gepasseerd tijdens de uitvoering. Bijvoorbeeld, we kunnen een invoerverbinding voor de functie "greater" selecteren, zoals hieronder wordt weergegeven:

Nu toont het venster "Geschiedenis" een lijst van alle waarden die door die knoop zijn gepasseerd:

Tijdens de debugsessie kunnen we schakelen tussen het "Mapping"-venster en het "Output"-venster om de gedeeltelijke resultaten te bekijken die tot nu toe zijn gegenereerd, zoals hier te zien is:

Op dit moment hebben we verschillende mogelijkheden om verder te gaan:
- Stop de debugsessie
- Ga door met de uitvoering totdat het volgende debug-onderbreekpunt wordt bereikt
- Ga verder met het debuggen door de uitvoering stap voor stap te volgen, zodat u de tussenliggende waarden nauwkeurig kunt onderzoeken
Als het debuggen fouten of tekortkomingen in het ontwerp van de mapping onthult, kunnen we onmiddellijk stoppen, de mapping indien nodig aanpassen en vervolgens de herziene versie debuggen. We kunnen nieuwe pauzepunten instellen of een optie voor handmatig doorlopen selecteren om elke tussenliggende waarde te bekijken, of om stapsgewijs door logische berekeningsgroepen te gaan.
Nadat we de code meerdere keren hebben uitgevoerd, kunnen we zien dat de waarde "hoog" wordt gegenereerd door een if-else functie en vervolgens wordt doorgegeven aan het uitvoercomponent.

We zetten nog een paar keer een stap vooruit en bekijken de gedeeltelijke output nogmaals.

De volledige beschrijving van de oorspronkelijke hoge temperatuur wordt nu weergegeven in regel 12, en er zijn aanvullende resultaten gegenereerd.
Altova MapForce is een bekroonde grafische tool voor data-mapping, -conversie en -integratie, waarmee gegevens kunnen worden omgezet tussen vrijwel elke combinatie van XML, databases, EDI, XBRL, platte bestanden, Excel, JSON en/of web services. De MapForce data-mapping debugger is een unieke functie in een visuele mapping-omgeving, en is beschikbaar tegen een fractie van de kosten van een traditioneel, uitgebreid data-integratiesysteem.
Download een volledig functionele proefversie om het zelf uit te proberen!