[viesti Survo-keskustelupalstalla (2001-2013)]
Kirjoittaja: | Juha Valtonen |
---|---|
Sähköposti: | juha.valtonen'at'sonera.com |
Päiväys: | 11.3.2002 8:05 |
Hei Vastaan osaltani haasteeseen ja kerron minäkin hieman Survon käyttötavoistani. Ensin kuitenkin hieman taustatietoa: työskentelen organisaatiossa, jossa toimistosovelluksina on MS-Officen palikat. Survo on pienen asiantuntijaryhmän työväline. Käsiteltävän datan määrä on tietyissä tapauksissa todella iso, mitä varten on omia sovelluksiaan vaihtelevissa ympäristöissä (yleensä jokin unix ja jokin tietokanta ympäristö). Survo-käytön kannalta tilanne on siis se, että data tulee jostakin lähdesovelluksesta ja lopputuote pitää taas olla jaeltavissa vähintäänkin pdf:nä (Acrobat readerilla luettavissa) tai mieluummin Excel-taulukkona. Hiljakkoin askartelin raportointisovelluksen parissa, jossa osa datasta tuotetaan unixserverin sovelluksella ascii-tiedostoksi. Osa datasta taas on Access-sovelluksessa, josta se poimitaan sql-kyselyillä pariksi Excel-taulukoksi. Kun nämä Excel-taulukot muutaman muuttujatyyppimuunnoksen jälkeen tallennetaan teksti- tiedostoiksi, voidaan siirtyä Survon käyttöön. Tekstitiedostot survotiedostoiksi, tiedostojen yhdistämiset (matchaukset) ja tarvittavat muunnokset ja lopulta valmis haluttu tieto takaisin tekstitiedoston kautta Excel-tiedostoksi. (Itseasiassa tämä Excel- tiedosto on taas syöte uudelle Access-sovellukselle). Tämän raportointisovelluksen "loppukäyttäjä" (henkilö, joka ei kovin syvällisesti tunne sovellusta tai esim. Survon käyttöä) valitti kuitenkin, että varsinkin datan määrän kasvaessa sovellus kuluttaa turhan paljon aikaa, ja vaatii manuaalisia toimenpiteitä eri sovellusten väleillä. Oli siis tarve parantaa automaatioastetta. Survo-osuudethan nyt tietysti olikin jo pitkälti rakennettu activate- sukroketjujen varaan. Siinä kyse oli enää pienen sukron laatimisesta, joka hakee kentästä oikeat aloituskohdat ja käynnistää aktivoinnin. Vaikka en omaa juuri muuta "atk-kokemusta" kuin Survon käytöstä, oli esim. Access-sovellukseen kohtalaisen helppo tehdä makro, joka teki tarvittavat temput ja tallensi tuloksen Excel-tiedostoon. Samoin Exceliinkin oli ensin nauhoitusmenettelyllä, ja sitten tulokseksi saatua VB-koodia parantamalla, tehtävissä yksinkertainen makro. Tarvittavat FTP-siirron olinkin jo alusta lähtien tehnyt "Survon sisältä" käsin komentamalla. Eli kukin sovelluksen komponentti oli automatisoitavissa; miten sitten komponentit yhteen? Tässä vaiheessa Survon oli aika siirtyä rengin asemasta isännän asemaan: Sukro aloittaa ensin FTP-vaiheella, eli tallentaa ascii-tiedostoksi ftp-siirron tarvitsemat parametrit (ftp-käskyt), ja sitten käynnistää käyttöjärjestelmäkomentona ftp-ohjelman parametritiedostolla höystettynä. Kun tiedosto on siirtynyt unix-serveriltä työasemalle, siirtää sukro kyseisen ascii-tiedoston survotiedostoksi. Seuraavassa vaiheessa sukro aloittaa Access-sovelluksen (Access 2000). Ainakin tässä 2k-versiossa on mahdollisuus antaa suoraan komennossa käynnistettävä makro x-valinnalla. (>START /I /WAIT D:\PROGRA~1\OFFICE2K\OFFICE\MSACCESS tietokanta /x makro) Excelissä (käytössä 97-versio) makron automaattinen käynnistys onnistuu, kun sen nimeää Auto_Open-nimiseksi. Excelin makroa en osannut laittaa lopettamaan Exceliä, mutta homma toimi niin, että sukro käynnistää Excelin ilman /WAIT-parametria, mutta sukroon laitetaan Excel-osuuden toiminnan ajaksi riittävä {wait}. Sen jälkeen annetaan Survon tappaa Excel pois: (>start Kill "Microsoft Excel" {act}) Pientä ihmetystä aiheutui, ennen kuin huomasin, että {wait} toimii vasta kun {tempo} on perusnopeudella, eli esim. {tempo +1}{wait 600}{tempo -1}. Eli koko homma on mahdollista tehdä "Survon läpi". Mutta paras oivallus oli vielä edessä: koko prosessin automaattinen käynnistys. Tätä yritin ensin ainakin NT:stä ja 2000:sta löytyvällä AT-komennolla (periaatteessa sama kuin unixissa). Tässä tuli kuitenkin ongelmaksi se, että at-komento käynnistää prosessin jonain systeemikäyttäjänä, jolloin käyttäjäriippuvaiset asetukset jää huomiotta (esimerkiksi verkkolevyt jäi näkymättä, mm. tässä tapauksessa tarvittu Access-tietokanta). Mutta ratkaisuna toimi Scheduled Tasks-toiminto. Sillä on mahdollisuus käynnistää sovellus, tässä tapauksessa tietenkin Survo, ajastetusti käyttäjän omana prosessina. Ja kun Survon käynnistyksessä antaa parametrina sukron, niin koko homman saa toimimaan automaattisesti ajastettuna (sovelluksen saa jopa lopettamaan itsensä, kun laittaa sukron päätteeksi {exit}-komennon). On muuten ilo tulla aamulla työpaikalle, kun Survo on tehnyt raportit jo ennen töihintuloa valmiiksi: voi keskittyä raportin sisältöön sen tekemisen sijasta!!!! :JVa
Vastaukset: |
---|
Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!