Ka andmete importimine on huvitav teema

23.10.2006  |  Gunnar

On pühapäeva õhtu. Minu jaoks ideaalne aeg tegeleda millegi huvipakkuvaga. Nokitsen vaikselt ühe andmete importimise süsteemi kallal ning mõtlen importimise teema peale, mida meil hiljuti on õhus olnud päris üksjagu. Ettevõtted kasvavad ja laienevad, vanad süsteemid muutuvad järjest enam piiratud võimalustega mängumaaks, järjest enam suureneb vajadus panna erinevaid süsteeme omavahel suhtlema. Samuti peavad andmed liikuma ühest firma osakonnast teise ja teisest kolmandasse. Osakonnad asuvad erinevates riikides ning seega on andmeid vahetavad süsteemid oma võimalustelt, vanuselt ja tehnoloogilistelt lahendustelt suhteliselt erinevad.

Lugesin kunagi mingit veebipõhist raamatut ettevõtte infosüsteemide integreerimise (EAI - Enterprise Applications Integration) teemadel. Kahjuks on tolle teose link mul kaduma läinud, kuid õnneks on mul meeles paremad palad sellest raamatust. Integreerimise teema võeti seal läbi tõesti vist igast aspektist. Kuni selleni, et üks programm simuleerib teise peal inimkasutajat ja loeb teise programmi kasutusliidesest siis andmeid. Kõik see maailm tundus mulle suht utoopia, millega vast iga programmeerija oma elus kokku ei puutu. Utoopiline tundub see maailm mulle siiani, kuid nüüd juba oluliselt vähem.

Üks lõbus juhtum

Üks lõbus juhtum andmete importimisega leidis aset mõni aeg tagasi. Importer suutis juba kenasti oma sisendfaile lugeda ning tekitas ka väljundi sellises formaadis nagu vaja. Või midagi sinna kanti, sest väljundi paika saamine kujunes täna Eesti suurtele majandustarkvara heerostele parajaks õnnemänguks. Ükspäev saime siis teate, et importer ei taha mitte kuidagi importida. Ei loe ühtegi faili, ei tekita väljundfaile. See oli lihtne probleem, sest importer polnud ära konfigureeritud ning katalooge, mida ta vaikimisi kasutab, ei taibanud keegi kontrollida.

Järgmine mure oli juba vaimukas. Nimelt ei toimunud importimine õigesti, sest osad tellimused loeti impordifailist sisse kuidagi poolikult või jäeti üldse lugemata. Siinkohal olgu märgitud, et failidel on kindel struktuur, millele seal sees olevad andmed peavad vastama, et neid kuidagi lugeda oleks võimalik. Peen huumor seisnes antud probleemi juures selles, et välismaal asuv müügiosakond sisestas impordifailidesse käsitsi vabas tekstis kommentaare tellimuse ridade vahele ja eeldas, et küll süsteem kuidagi aru saab, mis seal on.

Huvitav impordi sisend

Küllaltki huvitav on aga importer, mis mul praegu käsil on. Teda ei tee huvitavaks mitte tema väljund, milleks on üks lihtne andmebaas. Selle importeri teeb huvitavaks ja omapäraseks tema sisend, milleks on printeri spool-fail. See on siis fail, mis sisaldab antud juhul arveid sellisel kujul, nagu nad printerisse lähevad. Õnneks pole küll tegemist mingisuguse keeruka formaadiga, kuid suhteliselt omapärane on see lahendus siiski.

Spool-failist saab antud juhul andmed kätte enam-vähem kenasti. Tuli vaid kirjutada üks küllaltki primitiivne parser, mis spool-faili töötleb ja väike mehhanism, mis arvete n.ö. toore info põhjal loob vastavad objektid, mille ma siis juba andmebaasi poole teele panen. Kuigi koodi mõttes on parser ja arvete loomise mehhanism suhteliselt pisikesed jubinad, on nende peale kulunud aega kõige enam, sest spool-failid, mida on mul testimiseks lausa uhkes külluses, sisaldavad endas kõiksugu vahvaid üllatusi. Eelkõige seepärast, et väga harva leidub n.ö. maksimaalselt täidetud arveid, kus oleks kõik andmed olemas.

Huvitav impordi väljund

Ka väljund on eelmainitud importeril huvitav. Õigemini, üks tema kahest väljundist. Üheks väljundiks on andmebaas, kuid andmete pumpamine andmebaasi on asi, mis on suhteliselt igapäevane nähtus. Teine väljund on spetsiaalses formaadis e-mail, mis saadetakse postitusfirmasse, kes saadab siis edasi arved tellijatele välja. Suhteliselt huvitav lahendus omaette.

Andmete importimise ja eksportimise juurde luban ka kunagi tagasi pöörduda. Näiteks siis, kui antud alal midagi suuremat ja huvitavamat on valmis saanud. Aga seniks lõpetan ära pisemad importerid.

Kommenteeri

sulge
Saada link e-postiga

© DT 2012 | Creative Commons Attribution-Noncommercial 3.0 License | WordPress