Survo - muiden ohjelmien isäntärenki

[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!

Etusivu  |  Keskustelu
Copyright © Survo Systems 2001-2013. All rights reserved.
Updated 2013-06-15.