Omat loaderit
Päivitetty viimeksi: 20.8.2020
Primuksen Loaderit-rekisterissä voi tehdä omia loadereita eli tiedonsiirron määrityksiä. Loaderissa kerrotaan, mitä tietoja ja missä järjestyksessä Primukseen luettava tiedosto sisältää. Loaderit saa käyttöön kunkin rekisterin Tiedonsiirrot Primukseen -valikosta.
- Avaa Loaderit-rekisteri ja valitse Toiminnot / Uusi rekisterikortti.
- Anna Nimi-kenttään kuvaava nimi, esim. "Kurssitiedot opinto-oppaaseen" tai "Kelan toimistot".
- Täytä Kanta-kenttään se rekisteri, jossa loaderia käytetään. Kentän voi myös jättää tyhjäksi, jolloin loaderia voi käyttää kaikissa rekistereissä. Kantojen nimet oikeissa kirjoitusasuissaan näet täältä.
- Tiedoston tyyppi -kohdassa valitaan vakiomittainen tiedonsiirto, erotinmerkein eroteltu (CSV) tiedonsiirto, REST/JSON-tiedonsiirto tai XML-tiedonsiirto.
- Merkkisarjan voi tarkistaa katsomalla tiedostoa tekstieditorissa. Jos skandit näkyvät oikein, on merkkisarja Ansi. Jos skandit tulostuvat mustina suorakaiteina, on kyseessä MS-DOS -merkkisarja. Yleensä Ansi on oikea vaihtoehto.
- Erotinmerkki -kenttään merkitään saman opiskelijan/kurssin/opettajan jne. eri tietoja erottava merkki. Yleensä erotinmerkkinä on pilkku tai puolipiste. Vakiomittaisen-, XML- tai REST/JSON-siirron loaderia tehtäessä kenttä jää tyhjäksi.
- Määritys-ruudussa tehdään varsinainen loaderi.
Vakiomittainen tiedonsiirto
- rivillä olevien merkkien juokseva numero vasemmalta lukien
- pilkku (loaderissa on aina pilkku siitä riippumatta, mikä on tiedoston erotinmerkki)
- kentän nimi lainausmerkeissä
Esimerkin loaderin määritys:
1-30,"Sukunimi"
31-60,"Etunimet"
61-71,"Henkilötunnus"
72-101,"Kotipaikan postiosoite"
Primus lukee tiedoston ensimmäisen rivin alusta merkit 1-30 ja sijoittaa merkkijonon Sukunimi-kenttään. Sitten se lukee merkit 31-60 ja sijoittaa tämän merkkijonon Etunimet-kenttään jne.
Erotinmerkein eroteltu tiedonsiirto
- siirtotiedoston sarakkeen numero vasemmalta lukien
- pilkku (loaderissa on aina pilkku siitä riippumatta, mikä on tiedoston erotinmerkki)
- kentän nimi lainausmerkeissä
Esimerkin loaderin määritys:
1,"Sukunimi"
2,"Etunimet"
3,"Henkilötunnus"
4,"Kotipaikan postiosoite"
Primus lukee tiedoston ensimmäistä riviä erotinmerkkiin saakka ja sijoittaa siihen asti kertyneen merkkijonon Sukunimi-kenttään. Sitten se jatkaa lukemista toiseen erotinmerkkiin saakka ja sijoittaa seuraavan merkkijonon Etunimet-kenttään jne.
REST/JSON-tiedonsiirto
- datan tieto
- pilkku (loaderissa on aina pilkku siitä riippumatta, mikä on tiedoston erotinmerkki)
- kentän nimi lainausmerkeissä
Huom. Ensimmäisellä rivillä voi olla ROW-määritys, jolla määritetään, minkä tietueen tiedot luetaan. Jos tätä määritystä ei laiteta, luetaan kaikki datan tiedot.
Esimerkkimääritys:
Organisaatiot,,ROW
oid,"Koodi"
alkuPvm,"Koodi 1"
oppilaitosKoodi,"Tilastokeskuksen oppilaitoskoodi"
oppilaitostyyppi,"Oppilaitostyyppi"
nimi->fi,"Nimi"
Tällä määrityksellä Primus lukee tiedoston Organisaatiot-tietueessa olevat tiedot lainausmerkeissä oleviin kenttiin.
XML-tiedonsiirto
- datan tieto
- pilkku (loaderissa on aina pilkku siitä riippumatta, mikä on tiedoston erotinmerkki)
- kentän nimi lainausmerkeissä
Huom. Ensimmäisellä rivillä voi olla ROW-määritys, jolla määritetään, minkä tietueen tiedot luetaan. Jos tätä määritystä ei laiteta, luetaan kaikki datan tiedot.
Esimerkkimääritys:
Hakija,,ROW
maa,"Kotimaa->Numero (ISO 3166)"
kansalaisuus,"Kansalaisuus->Numero (ISO 3166)"
matkapuhelin,"Matkapuhelin"
muupuhelin,"Kotipuhelin"
sahkoposti,"Sähköpostiosoite"
Tällä määrityksellä Primus lukee tiedoston Hakija-tietueessa olevat tiedot lainausmerkeissä oleviin kenttiin.
MERGEDATA
Listamuotoisen JSON-datan rivillä voi olla MERGEDATA-määritys, jolla määritetään, että kaikki listan datat tallennetaan Primuksessa yhteen kenttään rivinvaihdolla eroteltuna.
Esimerkkimääritys:
lisatiedot->lisatieto,"Lisätietoja",MERGEDATA
Tällä määrityksellä Primus tallentaa lisatiedot-listan kaikki lisatieto-tietueiden arvot Primuksen Lisätietoja-memokenttään rivinvaihdolla eroteltuna. Ilman tätä määritystä Lisätietoja-kenttään tallentuisi vain viimeisin lisatiedot-listan lisatieto-tietueen arvo.
Loaderi voi myös yhdistää lähdetiedostosta kaksi erillistä tietoa yhteen ja samaan Primus-kenttään. Tiedostossa voi olla erikseen esim. postinumero ja postitoimipaikka, ja nämä halutaan yhdistää Primuksessa tiedoksi "Postiosoite".
Erotinmerkein erotellussa tiedonsiirrossa kenttien yhdistämiseen käytetään plus-merkkiä. Loaderin määritys on tällöin muotoa:
1+2,"Kentännimi"
Vakiomittaisessa tiedonsiirrossa kentät yhdistyvät, kun niille varattujen merkkien lukumäärät yhdistetään: 1-30 ja 31-60 yhdistetään 1-60. Sen jälkeen tulevat normaalisti pilkku ja kentän nimi. Rivin loppuun kirjoitetaan DELSPC, joka poistaa sarakkeiden välistä ylimääräiset välilyönnit. Loaderin määritys on tällöin muotoa:
1-60,"Kentännimi",DELSPC
REST/JSON- ja XML-tiedonsiirrossa kenttien yhdistämiseen käytetään plus-merkkiä. Loaderin määritys on tällöin muotoa:
tieto+tieto,"Kentännimi"