Synkronisering mellem ekstern database og Excel

Redigeret d. 07-01-2016

Indledning:

Den overordnede problemstilling var i dette projekt, at der blev brugt alt for mange manuelle arbejdstimer på at synkronisere projekt-oplysningerne mellem Nyfors' Excelark og deres eksterne database-hjemmeside. Nyfors havde brug for et værktøj, som kunne aflaste medarbejderne i de daglige IT-relaterede gøremål. I samarbejde med Nyfors' teamleader, René Nielsen, blev jeg introduceret for de daglige arbejdsopgave - primært de bogføringeringsrelaterede arbejdsopgaver, og kunne dermed opbygge den fornødne forståelse for virksomhedens struktur og arbejdsmønstre.

Programmeringsopgaven var rigtig stor, og et utal af automatiseringsløsninger blev implemeneret. Herunder vil et par af de elementære problemstillinger og løsninger blive fremført.

Problemstillinger:

1) Der blev i projektet, rettet særlig fokus på synkroniseringensprocessen mellem Nyfors' eksterne database-hjemmeside og Nyfors' Excelark - som indeholdte alle kundeprojekter, kundeoplysninger og status. Nyfors foretog daglige dataudtræk fra deres eksterne database, som efterfølgende skulle manuelt overføres til deres skabelonsark - som havde den korrekte tabelopsætning og komposition. Alle gamle og nye projektoplysninger skulle krydsrevideres; noget af det eksisterende data skulle foreblive i skabelonsarket, og måtte altså ikke overskrives eller fjernes, hvor andet projektdata skulle tilføjet på ny. Det blev anset for at være en meget tidskrævende arbejdsopgave, som ofte blev foretaget aftenen forrinden, da der ikke var den fornødne tid indenfor de normale arbejdstimer.

2) Når Nyfors' fiberteknikere var ude i felten, oplevede de ofte en meget ustabil internetforbindelse, hvorved teknikerne havde meget svært ved at logge på den eksterne database. Ofte var internetforbindelsen så dårlig, at én kundeklarmelding kunne tage op til 5 minutter. Hertil skete der ofte kommunikatiosnfejl, hvor teknikeren troede at oplysningerne var indsendt korrekt, men det viste sig senere, at daten ikke var blevet modtaget korrekt på serveren.

Løsningen:

Et addin til Excel blev programmeret. Addin'et fik en grænseflade, således at brugeren nemt kunne automatisk kunne foretog csv-udtrækket, hvorefter arket blev kontrollerede for fornævnte parametre - og dermed kun overføre det korrekte data. Eksisterede projektdataen allerede, blev der tilføjet kommentarer i Excelarket, som viste ændringerne, og rækkerne blev markeret.

VBA grænseflade

Importer ny liste

For at løse 2) blev processen først automatiseret, således at indtastningen kunne foregå direkte i Excel-grænsefladen. Hermed skulle teknikeren blot indtaste kundens ID, og trykke "kundeklarmelding", hvorefter Excel-scriptet selv sørgede for at indtaste daten på den eksterne database. Skete der en fejl under indtastningensprocessen blev scriptet ved med at forsøge, indtil at det kunne afdækkes med 100% sikkerhed, at daten var blevet indtastet korrekt. Dette blev lavet ved at benytte "InternetExplorer.Application", som gør det muligt at navigere til en hvilken som helst URL-adresse, indhente/udsende data, og udføre handlinger - automatisk! Dette objekt kunne således bruges til at navigere til den pågældende kunde, udfører de ønskede handlinger, og efter udførelsen, blev en kontrol-funktion implementeret, som efterkontrollerede at kundens oplysninger var indsendt korrekt.

Afslutning:

Der blev brugt omtrent 400 arbejdstimer på kode-implementering, tweaks, fejlrettelser og dialogførelse; mellem teamleaderen, produktionschefen og Excelautomation. Hver gang blev der udarbejdet et tilbud, som indeholdte de funktioner, som Nyfors efterspurgte, og som Excelautoamtion havde forslået - dermed var alle arbejdsopgaver, og pris fastlagt inden at implementeringen blev igangsat.

  Udtalelse