22. december: Blue Eye Macro – automatisering af processer

Har I nogensinde oplevet situationer hvor man tænker,
at det man sidder med, er en proces der højst sandsynligt vil skulle gentages et, endnu ikke defineret, antal gange. Hvor ville det dog være smart, hvis man kunne automatisere den? Den situation røg jeg selv ud i for nyligt og det er her at Blue Eye Macro kom ind i billedet.

Det er bestemt ikke altid at det kan betale sig at bruge den mængde energi og penge det koster at automatisere en proces. Man bør altid vurdere i hvor høj grad den pågældende proces er repeterende og tidskrævende nok til at være en kandidat til automatisering. Det er en god ide at lave en simpel costbenefit-analyse (proportionel med omkostningerne af processen), for at finde ud af om det kan betale sig, i den specifikke situation, at foretage sig de nødvendige skridt, der kræves for at automatisere den pågældende proces. Udover den tidsbesparende faktor, som automatisering bringer med sig, fjerner man også sandsynligheden for menneskelige fejl i form af fejlagtige indtastninger og mulige forskelligheder i de gentagne processer. Automatisering sikrer derved en langt højere grad af ensartethed end den menneskelige udførelse ville kunne bibringe.

Baggrund for at vælge automatisering

I bund og grund startede hele problematikken da jeg fik udleveret en WSDL (Web Services Description Language) og en bunke underliggende skemaer, med den urovækkende besked, at disse skemaer ville kunne risikere at skulle ændres med jævne mellemrum i en længere opstartsperiode.

Der skulle nu genereres en Web Service via BizTalk, på baggrund af den førnævnte WSDL og dertilhørende skemaer, hvilket jeg med stor møje og besvær fik gjort. Det var en lang og tung proces, på grund af den omfattende mængde skemaer, der skulle søges igennem for hver af de mange request/response operationer der skulle defineres. Da jeg, langt om længe, var blevet færdig med at generere Web Servicen og havde udstillet den på BizTalk Serveren, gik der ikke mange dage før de varslede ændringer på skemaerne blev en realitet. Nu begyndte det at blive et reelt irritationsmoment at skulle til at gentage den tidskrævende proces igen, og igen – og igen uden at vide hvornår ændringerne ville få en ende.

Ved at automatisere genereringen af denne omfattende Web Service, var der i mit tilfælde ganske åbenlyse tidsbesparelser involveret, da det tog mig ca. 3 timer hver gang der manuelt skulle genereres en ny version. Endvidere var den repeterende proces så ensartet, at det rent praktisk, var muligt at definere samtlige steps. Det gav derfor udemærket mening at indføre automatisering.

Jeg var på et tidligere tidspunkt, blevet anbefalet at gøre brug af et automatiseringsværktøj, ved navn Blue Eye Macro, og besluttede mig for at denne situation var mere oplagt end nogen anden, til at give det et forsøg.

Blue Eye Macro

Blue Eye Macro (BEM) er et program hvori man, i store træk, kan definere egne makroer til at automatisere forudsigelige processer. Et af programmets største styrker er brugervenligheden. Det er muligt for folk, uden nogen form for programmeringsviden, at lave en makro, da makroerne kan oprettes via et ”grafisk design view”, som forhindrer brugeren i at vælge noget ugyldigt. For mere avancerede brug af BEM kan man udvikle makroerne i ”code view”.

Automatiseret generering af Web Service i BizTalk Web Services Publishing Wizard

De steps, der skulle til for at generere den ønskede Web Service automatisk, var de samme som der skulle til for at generere den manuelt:

  1. Start programmet BizTalk Web Services Publishing Wizard
  2. Navngiv Web Service, Web Methods etc.
  3. Tilføj de operations, som servicen skal udstille og hvorvidt de skal være request/response operations
  4. Navngiv hver enkelt operation
  5. Navngiv request og response OG associér det specifikke skema, fra den buildede dll (Dynamic Link Libraries), som man ønsker at operationen skal udstille. Jo flere skemaer der er i dll’en, jo længere tid er wizard’en om at indlæse dem. Denne proces skal udføres individuelt for hver enkelt requets/response på operationerne. Det kan være en langsommelig proces at identificere det korrekte skema, hvis der er mange skemaer i dll’en og især hvis navngivningen på skemaerne er ensartede i deres udformning
  6. Til slut, skal der angives namespace, IIS folder etc. på Web Servicen
  7. Færdiggør BizTalk Web Services Publishing Wizard ved at gennemse resultatet og klikke ’Finish’

Disse ovenstående steps, ville skulle udføres hver gang der kom ændringer til skemaerne eller hvis der skulle tilføjes, slettes eller omdøbes operations.

I denne travle juletid. er det ikke ligefrem tid man har mest af. Der skal købes julegaver, hygges med familien og afsluttes løse ender på jobbet inden juleferien. Tid er penge – så hvorfor ikke bruge tiden på mere fornuftige ting end tidskrævende repetition og automatisere det der rent faktisk KAN automatiseres. Samtlige af de ovenstående steps er jo i bund og grund intet andet end repeterende museklik og keyboard indtastninger og er derfor nemme at beskrive.

BEM gjorde det, i høj grad, nemt at beskrive disse steps og det var tilmed muligt for mig at benytte regulære udtryk. Dette var nødvendigt, da der var en vis grad af ikke-statisk data over de data som makroen skulle fremfinde og indtaste. Selvfølgelig skal der eksistere et eller anden form for forudsigeligt mønster, i forbindelse med de regulære udtryk, for at man kan automatisere det.

Da alt var beskrevet til sidste detalje i BEM, var det blot at starte makroen og så blot se til, imens al arbejdet blev udført på skærmen, uden at jeg løftede en finger.

Det tog ca. 1½ time at udvikle makroen én gang for alle (dog vil der selvfølgelig skulle beregnes lidt tid til videreudvikling af makroen, hvis der kommer ændringer til selve strukturen på Web Servicen). Derfor havde selve makroen allerede betalt sig selv ind første gang den blev taget i brug. For hver gang makroen udføres – nu og i fremtiden, spares der de 3 timer, som der ellers skulle have været smidt efter at generere Web Servicen manuelt. Nu kan man altså bare læne sig tilbage og se BEM gøre hvert enkelt af de steps, som man skulle have foretaget sig aktivt ellers.

Nu kan vi, i juledagene, koncentrere os om at spise juleand og se Disneys Juleshow, i stedet for at udføre uendelige repeterende processer. Se, DET er da nemt!

Hvis du har fået blod på tanden til at automatisere nogle processer i Blue Eye Macro, kan programmet downloades her: http://www.blueeye-macro.com/

God fornøjelse med at automatisere 🙂

Gry Jensen
Vertica A/S

Skriv et svar

Udfyld dine oplysninger nedenfor eller klik på et ikon for at logge ind:

WordPress.com Logo

Du kommenterer med din WordPress.com konto. Log Out / Skift )

Twitter picture

Du kommenterer med din Twitter konto. Log Out / Skift )

Facebook photo

Du kommenterer med din Facebook konto. Log Out / Skift )

Google+ photo

Du kommenterer med din Google+ konto. Log Out / Skift )

Connecting to %s