Mapper in de cloud
Sinds de introductie van BizTalk 2000 is het mappen van 2 documenten via een grafische UI binnen Microsoft tools altijd het domein geweest van BizTalk. Sinds de CTP van de Enterprise Application Integration in Azure is dat verleden tijd en zal dit ook in de Cloud mogelijk zijn.
Wat zijn de overeenkomsten:
- Bijna zelfde grafische UI
- Functoids (BizTalk) en Operations en Expressions(EAI)
- Test Map functionaliteit
- Relevance tree (toont alleen relevante info)
- Zoek mogelijkheden in de map
Voor de verschillen moeten we even naar een aantal details kijken:
- Auto link mist (alle links expliciet maken)
- Aantal functoids ontbreken
- Nieuw concept: Scopes
Zo zijn de Functoids vervangen door de Operations en Expressions, alleen ontbreken er een aantal (zoals de scripting functoid). De reden is dat de EAI omgeving een shared omgeving is waar ook de mappings van andere klanten kunnen draaien. Alle “gevaarlijke” functoids zijn momenteel verdwenen.
Alle logische functoids zijn gegroepeerd in een logical expression, hierin kunnen we nu een eigen expressie schrijven en hoeven we niet meerdere componenten achter elkaar te koppelen.
Scopes
Verder had BizTalk het standaard gedrag om bij het maken van een map met meerdere nesting niveau’s alle data plat te slaan “flatten links”. Ook maakten we vaak gebruik van de Loop functoid om duidelijk te maken welke groepering er gemaakt moest worden. Of het instellen op de bovenste link van de target link: “flatten links/match top-down/match bottom-up”.
Bij de EAI map moeten/kunnen we zelf de groeperingen definieren en we doen dit met behulp van “Scopes”. In een Scope kunnen we met een “MapEach” een kopieer actie van links naar rechts maken. De “ForEach” gebruiken we om extra nesting niveau’s door te “loopen”. Kortom, de BizTalk Loop functoid lijkt dus gesplitst in 2 concepten.
In bovenstaande afbeelding is de ForEach gebruikt om door alle categorieen te itereren, maar alle subcategorieen worden aan de destination kant getoond, dankzij de MapEach. Als laatste worden alle producten met een MapEach gekopieerd. In de MapEach_Product is een Uppercase Operatie geplaatst.
De mapper bewaakt de nesting, iedere scope heeft de mogelijkheid om “actief” te zijn (working scope). Vergeet niet naar de warnings te kijken, niet alles genereert een error, en de warnings over de scope krijg je daar te zien.