Det kan være en langsommelig og omstændig affære at lægge ordrer ind ind i tracezilla: der kan være mange ordrelinjer på en ordre, der skal måske indtastes andre priser end dem i prisliste, kunden bestiller i stk. men vi arbejder med kolli, etc. Og så er der risikoen for, fordi man selv taster ordrerne ind, at man laver fejl, som man enten ikke opdager eller bruger lang tid på finde.
Som tidligere programmør så jeg en mulighed for at lave et hjælpeværktøj til at lette mit arbejde, og det vil jeg gerne fortælle lidt om nu, til eventuel inspiration for andre.
Hvad gør programmet
De fleste af vores kunder sender ordrerne som vedhæftede filer i emails i hvert deres format og opstilling. De kommer som PDF-filer, CSV-filer, tekstfiler eller regneark. Men det, at de kommer i et læsbart format og med samme opstilling, gør, at det er muligt at automatisere opgaven med at oprette ordrerne i tracezilla.
Programmets primære opgave er at trække ordrelinjerne ud af disse ordrer og gemme dataene i en CSV-fil. Denne CSV-fil kan jeg enten importere ind i tracezilla på en ordre, jeg selv opretter, eller som det nyeste bruge som input til at oprette hele ordren direkte i tracezilla via REST API.
En anden vigtig opgave for programmet er at sikre høj kvalitet i dataene, inden de skal ind i tracezilla. Programmet foretager derfor en række kontroller og korrektioner efter udtrækningen af dataene. Disse opgaver kan for eksempel være:
- At kontrollere, at varearten stadig er aktiv
- At kontrollere, at varenummeret stemmer overens med stregkoden, hvis kunden sender begge oplysninger?
- At korrigere det antal styk, som kunden bestiller, så det stemmer med hele kolli
- At kontrollere, at priserne holder sig inden for et interval.
- At lægge flere ordrelinjer med samme varenummer sammen til én ordrelinje.
For at kunne lave disse kontroller skal jeg blandt andet bruge oplysninger om varearterne. Oplysningerne henter jeg ud af tracezilla og gemmer på pc’en i en simpel CSV-fil.
Eventuelle fejl i de udtrukne data retter jeg udenfor programmet ved at jeg åbner CSV-filen i en editor og foretage rettelserne der.
Værktøjet i brug
”Ordrebehandling”, ser i sin nuværende form sådan ud:
Venstre panel viser ordrefilerne, som jeg downloader fra vores mailprogram. Når jeg vælger en af filerne og trykker på Enter-knappen, finder værktøjet ud af hvem ordren er fra og trækker derefter data ud fra filen.
I dette eksempel består ordren af 24 ordrelinjer, ekstern reference er fundet, og leveringsdato og afhentningsdato er beregnet ud fra dags dato + 4 arbejdsdage 1 I Ordrelinje fem er kundens bestilling på 24 stk. EK340 regnet om til 6 kolli á 4 stk. da vi afregner denne vare i kolli.
Knappen ”Opret ordre (F10)” er vist, hvilket betyder, at jeg kan oprette ordren direkte i tracezilla ved et kald til tracezillas REST API.
Hvis knappen ikke vises, skal man over i tracezilla og oprette ordren. Derefter kan man importere ordrelinjerne, som min værktøj gemmer i en CSV-fil.
Her kommer den store fordel med programmet: der er trukket 188 ordrelinjer ud af ordrefilen på på knap to sekunder. Oprettelse af ordren i tracezilla tager lidt længere tid. Hvis jeg skulle gøre det manuelt i tracezilla, ville det måske tage mig en halv time at blive færdig med denne ene ordre.
Teknikken bag programmet
Programmet er lavet i Python med nogle få tilføjelser til samt et lille eksternt program der kan læse PDF-filer.
Der er løbende tilføjet ny funktionalitet uden at der er tænkt så meget over designet. Der er derfor ting, jeg gerne vil forbedre, men overordnet set er det rimeligt robust.