« Hem

Ta ett steg tillbaks

Igår jobbade jag med en integration där jag hade följande scenario:

  1. En lagrad procedur i SQL Server levererar data till BizTalk
  2. BizTalk tar emot datan som XML via SQL adaptern och debatchar den, dvs. bryter ner datan i olika meddelanden
  3. Baserat på properties i meddelandet olika saker hända i en orkestrering

Jag började med att skapa ett schema för meddelandet i BizTalk, men fick genast problem med att få proceduren att leverera data enligt schemat. Jag testade alla möjliga varianter, men kom ingenstans. Det kändes ungefär som att dunka huvudet mot en betongvägg på olika ställen för att se om den skulle ge vika. Det gjorde den inte.

Till slut gav jag upp och lämnade datorn. Vilket såklart var det bästa jag kunde göra. Lite distans till skärmen och diskussion med kollegor gav mig en ny vinkling på problemet: jag ska såklart inte försöka tvinga in data från SQL i en struktur som jag skapat i BizTalk, utan låta SQL definiera schemat för den data som ska skickas. Jag tog då bort det gamla schemat och genererade ett nytt baserat på proceduren, vilket fungerade fint, och med hjälp av den här guiden lyckades jag få till hela flödet.

Jaha, och vad vill jag säga med detta?

Jo, jag vill påminna er (och kanske framförallt mig själv) om vad en bör göra när en kört fast i ett problem, nämligen att ta ett steg tillbaks. Lämna datorn, ta en promenad, gör något annat en stund. Du får då distans till problemet och kan se bortom det där hörnet som du har målat in dig i. Jag tycker det här gäller alla typer av problem, men det är extra tydligt när det gäller systemutveckling och integration. Ofta fastnar man i fel angreppssätt, som jag gjorde, och inser att problemet inte bör, eller ens kan, lösas på det sätt en tänkt från början, men att det inte alls är lika svårt från en annan infallsvinkel.

Bildresultat för step back

Best practices i Biztalk

BizTalk Server är en otroligt kraftfull integrationsplattform, men precis som med all mjukvara handlar mycket om hur man använder produkten. För att få ut det mesta av BizTalk, och för att skapa integrationer som är lätta att förstå och underhålla, finns det en del best practices som är bra att följa. Jag har sammanställt en lista av sådana som är viktiga för oss integrationsutvecklare i början på karriären. Enjoy!

Bildresultat för biztalk server

Sortera artefakter

Om du ska göra en mindre integration, med bara enstaka komponenter skapade i Visual Studio, kan du lägga alla filer i samma projekt. Så länge det handlar om ett fåtal filer är det enkelt att få överblick över integrationen, men när du börjar få flera olika pipelinekomponenter, orkestreringar och scheman och projektet växer, blir det lätt rörigt. Om du vet att det kommer tillkomma filer, lägg dem från början i olika projekt, baserat på vilken typ av artefakt det handlar om; ett projekt för scheman, ett för orkestreringar osv.

Namnstandard

Ofta finns det en namnstandard som antingen kunden eller ni själva har kommit överens om, så se till att följa den. Det här är förstås generellt för all utveckling och något jag tror de flesta har med sig detta från skolan, men det är faktiskt inte helt lätt i praktiken alla gånger. Jag sitter just nu med en integration där allt ska skrivas på svenska, vilket känns väldigt ovant, och jag har redan kommit på mig själv med att vilja bryta standarden flera gånger…

MSI

När du ska deploya integrationer och ändringar till BizTalk kan du göra på flera sätt, och det rekommenderade tillvägagångssättet är att använda en MSI, Microsoft Installer Package. Det gör installationen enkel och standardiserad och du minimerar risken missa något i installationen, eftersom MSIn innehåller alla dll-er du behöver.

Automatisera

Ytterligare ett steg i att minimera risker att något går fel i en deploy är att automatisera så många steg som möjligt. Ofta är det den mänskliga faktorn som ställer till det, och genom att skripta installationer standardiserar du tillvägagångssättet ytterligare och du behöver inte vara rädd att missa något steg i processen.

Visual Studio deploy

Om du har jobbat med BizTalk projekt i Visual Studio, har du säkert sett att det finns ett menyval som heter ”deploy”. Det här är jättesmidigt när du sitter på din egen utvecklingsmiljö och testar saker lokalt, men det alternativet ska aldrig användas i produktionsmiljö. Visual Studio stoppar nämligen portar och orkestreringar och du har ingen kontroll på hur det sker, och eventuella hjälp-klasser (dvs projekt i lösningen som inte är av typen BizTalk) följer inte med.

Kanoniska scheman

Väldigt många integrationer handlar om att konvertera ett meddelande till ett annat format för leverans mellan olika system, och vi använder då mappningar för att översätta dessa. En best practice är att alltid använda kanoniska scheman vid mappningar, dvs. att ha ett internt meddelandeformat som mellanhand, vilket gör att vi får en lösare koppling mellan systemen och att ändringar hos någon av parterna blir lättare att hantera.

Capture

Nu är det dags för mig att återgå till min integration! Det är fredag, och idag är vi många på kontoret: Magnus, Stefan, Micke och jag sitter här, tillsammans med Rikard som precis kommit tillbaks från sin föräldraledighet och sedan vår nya stjärna Stefan Rulli, som började här i mitten på augusti. Några av oss (eller okej, en av oss) kör på traditionen ”fancy friday” med slips och kavaj. Någon hade försökt lura Rulli att vi har ”pant-less friday”, men som tur är gick han inte på det…

Trevlig helg! :)

 

 

Back in business!

Jajemän, nu är både jag och bloggen tillbaks efter semestern! Jag jobbar första dagen idag efter en ledighet på drygt två veckor. Inte så mycket kan tyckas, men det känns som att jag varit borta länge! Så idag har jag gått runt lite såhär på kontoret:

Vad var det jag höll på med innan semestern? Vad skulle jag ta tag i nu? Och vad hade jag för lösenord nu igen?

Min semester i sommar har främst bestått av olika festivaler (Metallsvenskan, Sweden rock, Rockviken, Skogsröjet och Subkult för den som är nyfiken) och det har varit intensivt med att kolla på band och campa. Speciellt under sista festivalen nu i helgen, då temperaturen sjönk ner mot 6 grader på natten. BURR!

Det finns nog alltid en känsla av melankoli över skiftet mellan sommar och höst, semester och jobb, men i år känns det faktiskt inte speciellt jobbigt. Det tror jag är ett gott tecken, att även om det är lite tråkigt att semestern är över, så har jag ingen back-to-work-ångest. Jag minns ett tidigare jobb jag hade, då jag nästan grät första dagen på jobbet efter semestern eftersom det kändes så jobbigt och ångestfyllt. Inget sådant idag, bara som sagt en lätt förvirring över vad jag höll på med.

Något som underlättar är vi har otroligt mycket spännande projekt på gång under hösten, hos flera av våra kunder. Sommaren har varit ganska lugn på den fronten, men nu känns det att alla börjar vakna till liv. Sprintar planeras, projektplaner skapas, krav samlas in och möten genomförs. Det känns som att alla är taggade på att dra igång med en rivstart nu och det smittar av sig, vilket är en härlig känsla! Nu kör vi stenhårt fram till jul!

Language: