Blog

Voorbij de limiet: hoe we de beperkte berichtgrootte in BizTalk en Azure Logic Apps omzeilden

By: Peter Tji

Veel bedrijven werken hybride. Ze combineren de flexibiliteit en onderhoudsgemak van de cloud met de controle van een on-prem-omgeving. Toch staan beide delen niet los: je software op eigen servers verwerkt gegevens uit de cloud of omgekeerd. Maar de communicatie tussen de twee is niet altijd eenvoudig, merkten we tijdens een project bij een klant. Gelukkig valt er met een beetje creativiteit en wat nieuwe code altijd een mouw aan te passen.

Vendor Managed Inventory (VMI) dankzij de cloud

Onze klant voorziet bedrijven van onderdelen en producten voor heftrucks. Om het leven van hun klanten gemakkelijker te maken, wilden ze ervoor zorgen dat hun voorraad altijd aangevuld is. Daarom gingen ze van start met een soort voorraad-as-a-service of in vakjargon Vendor Managed Inventory waarbij ze het op peil houden van de voorraad van de klant voor hun rekening nemen. Onze klant krijgt wekelijks een voorraadstatus via de cloud die wordt verwerkt door Azure Logic Apps en vervolgens naar Microsoft BizTalk en on-premise Microsoft Dynamics NAV wordt gestuurd. Zo kunnen ze nagaan waar er een nakend tekort is en preventief aanvullen zodat hun klant nooit zonder de juiste producten en onderdelen zit.

Een te groot bericht voor de Logic Apps-adapter

Die wekelijkse voorraadupdates zijn gemiddeld een viertal megabyte groot en daar wringt het schoentje. Hoewel de Logic Apps-adapter, die communiceert met BizTalk, in theorie berichten tot 2GB kan versturen, bleek in de praktijk dat wanneer we de On Premises Data Gateway combineerde met Microsoft Internet Information Services het bericht beperkt werd tot 2MB. Te klein dus voor de voorraadstatus van onze klant. Hetzelfde probleem stelt zich trouwens ook bij de SharePoint Logic Apps-adapter. Gebruik je de On Premises Data Gateway op zichzelf om koppeling te maken met Azure, dan kun je berichten naar BizTalk sturen tot 20MB.

Helaas schrijft de gateway het bestand in schijven van 2MB weg, die bovendien allemaal dezelfde naam krijgen. BizTalk ziet dan niet of het document al volledig is gedownload of niet, en onvolledige bestanden zorgen voor foutmeldingen.

Bericht opsplitsen in tijdelijke bestanden en hernoemen

We moesten elk bestand van de connector dus kunnen wegschrijven als een tijdelijk .tmp-bestand en eenmaal gedownload, hernoemen naar bijvoorbeeld .xls. BizTalk kun je immers instellen om .tmp-bestanden te negeren en enkel de volledige .xls-bestanden in te lezen. Alleen ondersteunde de On Premises Data Gateway het hernoemen van bestanden niet.

Cnext voegt ontbrekende schakel toe

We brachten allereerst Microsoft op de hoogte van het probleem. Zij onderzochten onze vraag en lieten ons weten er actief aan te werken. Een deadline konden ze ons niet geven. Omdat er dus geen onmiddellijke oplossing was, gingen we, in samenspraak met het verantwoordelijke Microsoft-team, aan de slag om een tijdelijke workaround uit te werken. Ons team programmeerde een eigen stukje code in C#. Met de nieuwe code kunnen we bestanden hernoemen op basis van file events, logs die worden gegenereerd als er iets gebeurt met een file zoals schrijven of verwijderen.

screenshot van de code die we speciaal schreven om Azure Logic Apps met BizTalk te laten praten

Om er voor te zorgen dat BizTalk niet voortijdig bestanden wegschreef, maakten we een eigen programmatje in C#. Op de foto zie je onze code in actie.

We laten Logic Apps nu berichten sturen naar een speciale map via de Gateway-connector. Onze eigen software zoekt in die map naar bestanden die al een tijdje geen file events meer aanmaakten, wat erop duidt dat ze allemaal gedownload zijn. Vervolgens zal onze software de bestanden hernoemen zodat BizTalk het volledige bestand inleest in plaats van slechts stukjes.

Een klein beetje creativiteit volstond om met bestaande componenten alsnog de koppeling tussen cloud en on-prem te maken. Onze klant kan nu met een gerust hart aan de slag met zijn nieuwe

 

Kan uw bedrijf ook een vleugje van onze integratie- en automatisatiekunsten gebruiken? Neem gerust contact met ons op en we bespreken het met een kop koffie.

 

Schrijf je nu in voor onze gratis nieuwsbrief

Van data science tot integratietrajecten en service design, op onze blog hebben we heel wat interessante verhalen te vertellen. Wil je niks missen, maar heb je geen zin om elke keer onze website te checken voor nieuwe content? Schrijf je dan nu in voor onze gratis nieuwsbrief en krijg elk kwartaal een overzicht van onze blogs in je mailbox!

todo

Je e-mail (verplicht)

Ja, ik schrijf me in voor de nieuwsbrief.

We houden rekening met uw privacy. Om uw aanvraag op te volgen, worden uw gegevens opgeslagen. Zonder uw akkoord voegen we u echter niet toe aan onze verzendlijst voor direct marketing per e-mail. Meer informatie over wat we met uw gegevens doen, staat in onze privacyverklaring.