This article has not been translated.
Poimintojen periaatteet
Sääntöjoukolla määritetään siirrettävään aineistoon poimittava sisältö. Sääntöjoukoista yleisesti voit lukea täältä.
HUOM! Aineisto muodostuu aina henkilöittäin. GROUP BY -ehdolla voidaan ryhmitellä henkilölle muodostuva aineisto muilla ehdoilla. Tämä on syytä huomioida, kun tehdään omia SQL-pohjaisia raportteja.
Sääntöjoukossa esitetään 100 riviä poimintasäännöille. Kullakin rivillä on poimintasäännön nimi, käytettävä palkkalaji, poimintasääntö ja yksikkötieto (tuntia, kappaletta, desimaalia), jossa tieto siirretään aineistoon.
Poimintasäännöt kirjoitetaan SQL-lausekkeina, käyttäen SQLiten muotoa. Poimintasääntöjen lähdeaineistona on käytettävissä eri tietokantatauluja. Kun aineistoa muodostetaan, käydään jokainen aineistomuodostuksessa valittu henkilö yksitellen läpi ja poimittavassa tietokantataulussa on tiedot vain kyseistä henkilöä koskien.
Poimintasäännöt kirjoitetaan SQL-muotoon:
SELECT ... FROM <taulun nimi> WHERE ...
SQL-kielestä voidaan käyttää myös muuta toiminnallisuutta kuten JOIN, aggrekaattifunktiot (SUM, COUNT, jne).
SQL-syntaksista ja toiminnallisuuksista voit tarkemmin lukea SQLiten omasta dokumentaatiosta.
SQLiten toimintojen lisäksi palveluun on toteutettu apufunktioita, joiden avulla voidaan helpommin käsitellä esimerkiksi merkkijonoja kuin käyttäen SQLiten toiminnallisuutta.
Löydät kattavan listan sääntöjoukon poimintasääntöjen SQL-esimerkeistä täältä.
Sääntöjoukon käyttäminen aineistosiirrossa
Sääntöjoukolla kuvataan poiminnan sisältö. Sääntöjoukon muodostamisen jälkeen aineisto voidaan ladata missä tahansa muodossa. Mikäli käytetty aineistomuoto käyttää sellaisia tietokenttiä, joita poimintasäännössä ei ole määritetty, siirtyvät ne aineistomuodosta riippuen oletusarvoisena tai tyhjänä.
Asetusryhmän ylätasolla määritetty sääntö on mahdollista korvata asettamalla aliryhmään toinen sääntö. Asetusryhmien selkeyden vuoksi emme suosittele tätä vaihtoehtoa. Ylätasolle muodostettava sääntö voi jo poissulkea tiedon poiminnan alaryhmässä. Tällöin käyttöympäristöön ei muodosteta alaryhmiin poikkeuksia, vaan kaikkia sääntöjoukon sääntöjä voidaan hallita yhtenä listana. Esimerkiksi jos tietyn palkkalajin muodostuminen halutaan estää alaryhmässä, niin yläryhmän sääntöön voidaan määritellä poissulkeva ehto alla olevan esimerkin mukaisesti. Tällöin sääntöjoukossa nähdään selkeästi aineiston muodostumisen säännöt kokonaisuudessaan ilman jakoa useiden asetusryhmien asetuksiin.
Esimerkki, jossa kysely kohdistetaan UserSalaryData-tauluun ja tuloksista jätetään pois henkilöt asetusryhmästä, jonka koodi on "tuntipalkkaiset urakkamiehet":
SELECT ...,
IFNULL(
(
SELECT ui.Value FROM UserInfoData ui
WHERE ui.InfoTypeName = 'SettingGroupCode_SDSQL' AND
datetime(UserSalaryData.SalaryRenderingDate) BETWEEN ui.ValidFrom AND ui.ValidTo
LIMIT 1
),
''
) AS _SettingGroupCode
FROM UserSalaryData
WHERE _SettingGroupCode NOT IN ('tuntipalkkaiset urakkamiehet')
Override-sarakenimen käyttö
Kun tietoa siirretään, tietokentät saavat automaattisesti sen sisällön, joka siirrettävässä aineistomuodossa on määritetty. Minkä tahansa kentän arvo voidaan korvata poimimalla SQL-säännöllä sarake, jonka nimi sisältää tekstin Override+sarakkeen nimi.
Esimerkiksi useassa liittymässä siirretään tunti- tai kappalemääriä. Tulkinta voi muodostaa useita rivejä samalle päivälle ja usein näitä tuloksia halutaan laskea yhteen päivätasolla. Tällöin siirtyvä sarake 'Amount' voidaan korvata uudella arvolla poimimalla sisältö sarakkeeksi 'OverrideAmount'. Vastaavalla tavalla esimerkiksi kommenttikenttään voi liittää muutakin tietoa muodostamalla kyselyssä sarakkeen 'OverrideComment'. Siirtoaineiston sisältämä kenttä voidaan korvata käyttämällä tätä override-sarakenimeä. Tarkemmat tiedot sarakkeiden nimistä on esitetty liittymäkohtaisissa kuvauksissa täällä.
Käsiteltävän ajanjakson määrittely
Sääntöjoukon poimintasäännöt poimivat sisältöä aina joltakin ajanjaksolta. Käsiteltävä ajanjakso määritellään joko sääntöjoukon siirron automatisointi - artikkelissa tai käyttöliittymässä sääntöjoukon tuloksia noudettaessa. Poimintasäännöt kohdistuvat käsiteltävään ajanjaksoon ja palauttavat tulokset siltä ajanjaksolta.
Tapahtumia voidaan poimintasäännössä rajata :exportPeriodStart ja :exportPeriodEnd -muuttujilla. :exportPeriodStart korvataan kyselyä suoritettaessa käsiteltävän jakson alkupäivällä YYYY-MM-DD HH:MM:SS -muotoisena. Vastaavasti :exportPeriodEnd korvataan vietävän jakson loppupäivällä.
Poimintasäännön voimassaolo ja siihen liittyvät ongelmatilanteet
Poimintasäännöille voi asetusten tapaan määrittää voimassaolon, mikä mahdollistaa säännön toiminnan muuttamisen tietyn päivän kohdalla. Jos sääntö on määritetty asetusryhmätasolle, voi sääntö henkilön kohdalla muuttua myös sen takia, että henkilö on vaihdettu toiseen asetusryhmään. Järjestelmä käsittelee tilanteet, joissa sääntö on voimassa vain osan valitusta ajanjaksosta tai muuttuu sen aikana.
Jos käyttäjän kohdalla esiintyy kuvanmukainen tilanne, järjestelmä ajaa säännön ensimmäisen version päiville 1. - 9. ja säännön toisen version 10. päivälle ja siitä eteenpäin. Kummankin sääntöversion tuottamat rivit lisätään lopputulokseen. Jos yhdessä tai molemmissa säännöistä on käytetty jonkinlaista ryhmittelyä tai rivien yhdistämistä (esim. yhteenlaskettu tuntimäärä per henkilö), voi rivien lisääminen kummastakin tuottaa ei-halutun lopputuloksen. Järjestelmä lisää lokiin varoitusviestin tällaisesta tilanteesta.
Jos ylläolevan kuvanmukainen tilanne esiintyy ajetaan käyttäjän työaikatiedot säännön mukaisesti, mutta vain päiville 1. - 9. Lokiin jää viesti tällaisesta tilanteesta. Poimintasäännöstä ja käytettävästä liittymästä riippuen siirtotiedostosta ei välttämättä käy ilmi, että tiedot on poimittu vain osasta valittua ajanjaksoa.
Joskus voi olla tarpeen välttää tilanteita, joissa sääntö muuttuu kesken raportointijakson. Säännön muuttumista kesken raportointijakson voi välttää seuraavasti:
- Määritä sääntö työyhteisön asetuksiin. Työyhteisötasolle määritetty sääntö ei muutu vaikka henkilöitä siirrellään asetusryhmien välillä. UserInfo-taulun avulla on mahdollista säännössä poimia vain ne tuntimerkinnät, joiden aikana henkilö kuului esim. tiettyyn palkkaryhmään. Myös asetusryhmää voi käyttää tässä, mutta sääntökyselyn ehtolausekkeessa voi määrittää vain aliryhmiä.
- Jos sääntöä tarvitsee muuttaa, aseta muutos historiatyökalua käyttäen niin, että se tapahtuu raportointijaksojen välissä. Esim. jos tiedot siirretään kuukausi kerrallaan tulisi säännön muutos asettaa voimaan kuun alussa.
Ero UserEventData- ja UserSalaryData-taulujen ajan määrässä
Kun tapahtuma merkitään palveluun, merkitty aika on taulussa UserEventData ja ajasta muodostettu tieto taulussa UserSalaryData. Molemmissa tauluissa on kenttä MarkedTime, mutta niiden arvot voivat poiketa toisistaan riippuen siitä, onko tapahtuma tehty reaaliaikaisena eli ns. kellotettuna vai ei.
Reaaliaikasesti merkityn tapahtuman alku- ja loppuajassa on mukana myös sekuntiosuus, esim. alku 08:02:57 ja loppu 16:13:12. Vastaava merkintä ei-reaaliaikaisena olisi alku 08:02:00 ja loppu 16:13:00. UserEventData-taulussa olisi määrä (Amount) 08h10min15sek, UserSalaryData-taulussa määrä olisi 08h11min00sek eli 45 sekuntia enemmän. Tällä on harvoin merkitystä, mutta mikäli tietoja poimitaan molemmista tauluista, saattaa olla tarve saada sama määrä riippumatta tapahtuman merkintätavasta.
Alla olevalla esimerkillä saadaan UserEventData- ja UserSalaryData-taulusta poimittua sama määrä riippumatta tapahtuman merkintätavasta.
CAST(strftime('%s', strftime('%Y-%m-%d %H:%M:00', EndDateTime)) AS INT) - CAST(strftime('%s', strftime('%Y-%m-%d %H:%M:00', StartDateTime)) AS INT)
Ajat ja aikavyöhykkeet
Tapahtumien ja palkkatietojen alku- ja päättymisajat tallennetaan ja noudetaan "kuten ne on kirjattu" eli käyttäjän tarkoituksen mukaisesti. On tärkeää huomata, että emme välttämättä tiedä aikavyöhykettä, jolla aika on tallennettu, ellei tätä tietoa ole määritelty palveluun.
Esimerkkejä löydät ohjeesta Aikavyöhykkeet ja tapahtumien luonti.
On myös tärkeää huomata, että sääntöjoukon kysely käyttää SQLitea, jonka päivämäärä- ja aika-avustajat käyttävät oletusarvoisesti UTC-aikastandardia.
Tästä seuraa, että jos käytät kyselyssä käsitettä 'nyt' tai CURRENT_TIMESTAMP hakeaksesi nykyisen ajan ja sen muodon, se näytetään 2-3 tuntia todellisesta ajasta jäljessä (olettaen, että olet Suomen aikavyöhykeellä ja riippuen siitä, vaikuttaako kesäaika).
Alla esimerkki mahdollisesti ongelmallisesta kyselystä, joka palauttaa tiedot vain kuun 1. päivänä:
SELECT * FROM UserEventData WHERE strftime('%d', 'now') = '01'
Koska strftimelle ei anneta aikavyöhyketietoja, se käyttää UTC-aikaa ja sen jälkeen kysely ei palauta tuloksia, jos se suoritetaan 00:00 ja 02:00 välillä 1. päivänä (Suomessa). Voimme tarjota palvelun paikallisen aikavyöhykkeen tämän odottamattoman toiminnan korjaamiseksi mm:
SELECT * FROM UserEventData WHERE strftime('%d', 'now', 'localtime') = '01'
Lisätietoja UTC:stä ja aikavyöhykkeistä SQLitessa löytyy SQLiten omasta dokumentaatiosta.
Rajoituksia
Kirjainkoolla on merkitystä muilla kuin ASCII-merkeillä
Jos esimerkiksi poimitaan tapahtumatyypin koodin perusteella, kun koodina on YÖ
, koodin jälkimmäinen merkki tulee esittää samalla kirjainkoolla millä se on tapahtumatyypin koodiin asetettu.
Esimerkiksi seuraava lauseke toimii, koska tapahtumatyypin koodin Ö-merkki on kyselyssä isolla kirjankoolla. Pienellä kirjainkoolla kysely ei toimisi:
SELECT * FROM UserSalaryData
WHERE CompensationType = 'BasicTime' AND ActivityTypeCode = 'YÖ'
Voit lukea enemmän ASCII-merkeistä / merkistöstä Wikipedian artikkelista.
Uusia tietotyyppejä saatetaan lisätä myöhemmin
Joihinkin tietokantatauluihin saatetaan lisätä rivejä ja uusia tietotyyppejä järjestelmän päivityksissä. Mikäli kyselyssä rajataan tietoja jonkin tyypin perusteella, kannattaa rajaus tehdä niin, ettei kysely ala päivityksen jälkeen poimimaan myös uusia tietotyyppejä.
Esimerkiksi seuraavissa lausekkeissa on riskinä, että ne poimivat myös jonkin myöhemmin lisätyn työaikatulkinnan.
SELECT * FROM UserSalaryData WHERE CompensationType != 'BasicTime';
SELECT * FROM UserSalaryData WHERE CompensationType NOT IN ('PublicHoliday', 'MarkedTime');
Tietokantataulujen sisältö
Alla on kuvattu tietokantataulut, joiden sisältöä voi poimia siirtoihin.
Tietokantataulun nimi | Kuvaus | Tuettu asetusarvojen poikkeuksissa |
---|---|---|
UserSalaryData |
Taulu sisältää henkilön tulkitun työaikatiedon voimassa olevien sääntöjen mukaisesti. Poimittaessa tulkittuja tapahtumia, kannattaa poimintajakso pitää mahdollisimman lyhyenä, jotta tietojen hakuaika ei kasvaisi pitkäksi. Suosittelemme poimintajaksoksi enintään kaksi kuukautta eteen- ja taaksepäin. |
Ei |
UserEventData |
Taulu sisältää henkilölle kirjatut tapahtumat sellaisena kuin ne on kirjattu. Poimittaessa kirjattuja tapahtumia, voi poimintajakso olla pidempi kuin tulkittuja tapahtumia poimittaessa. Suosittelemme poimintajaksoksi enintään yksi vuosi eteen- ja taaksepäin. |
Kyllä, pois lukien asetukset, joilla määritetään työvuorokauden ajoittuminen. UserCostGroup-tieto ei ole käytettävissä. Tieto löytyy UserInfoData-taulusta. |
UserEventHistoryData | Taulu sisältää henkilölle kirjatut tapahtumat sellaisina kuin ne on kirjattu mukaan lukien muokattujen tapahtumien aiemmat versiot, poistetut tapahtumat ja asetetulla aikavälillä muokatut tapahtumat. Tapahtumien eri versiot saattavat ajoittua myös asetetun aikavälin ulkopuolelle, jos tapahtuman jonkin version muokkaus- tai tapahtuma-aika sijoittuu kuitenkin annetulle välille. |
Kyllä, pois lukien ne asetukset, joilla määritetään työvuorokauden ajoittuminen. UserCostGroup-tieto ei ole käytettävissä. Tieto löytyy UserInfoData-taulusta. |
UserEventProjectData | Jokaiselle tapahtumaan liitetylle projektille on tässä taulukossa rivi, joka sisältää projektin tunnuksen ja muistiinpanot. |
Kyllä |
UserTravelExpenseTripData | Taulu sisältää henkilön matkalaskuille kirjattujen matkojen tiedot. |
Ei |
UserEventExternalIdentifierData | Taulu sisältää tapahtumien ulkoisten tunnisteiden tiedot. |
Kyllä, pois lukien ne asetukset joilla määritetään työvuorokauden ajoittuminen. |
UserData | Taulu sisältää voimassa olevat henkilö- sekä työsuhdetiedot. Voidaan yhdistää kyselyihin UserSalaryData- sekä UserEventData-tauluista. | Kyllä |
UserInfoData |
Taulu sisältää henkilö- ja työsuhdetietoja historia-arvoineen. Voidaan yhdistää kyselyihin UserSalaryData- sekä UserEventData-tauluista Lista saatavilla olevista tiedoista:
Myös yrityksen omat lisätietokentät ovat oletuksena saatavilla tiedoissa. |
Kyllä, lukuunottamatta arkaluontoisia tietoja:
|
UserGroupData |
Taulu sisältää henkilöryhmätiedot henkilöille, jotka ovat aineistossa. Valittujen henkilöryhmien kaikki ylähenkilöryhmät löytyvät taulusta. | Kyllä |
ProjectData | Sisältää täydelliset projektitiedot projekteista, joita käyttäjä käyttää raportointikaudella. | Kyllä |
PaymentGroupDateData | Sisältää maksuryhmien maksukausien tiedot henkilöille, jotka ovat aineistossa. | Kyllä |
UserSalaryData
Kentän nimi | Tyyppi | Kuvaus |
---|---|---|
CompensationType | enum |
Käytettävissä ainoastaan SalaryData-taulun dataan.
|
AccrualType | enum|null |
Käytettävissä kertymien ja kertymien muutosten kanssa |
Amount | decimal | Määrä. Arvo sekunneissa kaikissa muissa kuin kokonaisluvuissa. Kokonaisluvuissa arvo esitetään kokonaislukuna (katso UnitType). |
UnitType | enum|null |
|
SalaryRenderingDate | date | Päivä, johon maksu/vuoro kuuluu. Formaatti: YYYY-MM-DD. |
PaymentDate | date | Maksupäivä. Formaatti: YYYY-MM-DD. |
StartDateTime | datetime | Alkupäivä ja -aika, milloin salary data on ansaittu (jos käytettävissä). Huom. Pitkät merkinnät, kuten sairauslomat jaetaan laskentapäiville. Formaatti: YYYY-MM-DD HH:MM:SS Aikavyöhyke: Käyttäjän paikallinen aikavyöhyke. |
EndDateTime | datetime | Loppupäivä ja -aika, milloin salary data on ansaittu (jos käytettävissä). Huom. Pitkät merkinnät, kuten sairauslomat jaetaan laskentapäiville. Formaatti: YYYY-MM-DD HH:MM:SS Aikavyöhyke: Käyttäjän paikallinen aikavyöhyke. |
EventStartDateTime | datetime | Alkupäivä ja -aika, milloin tulkittuun työaikaan liittyvä tapahtuma on merkitty kalenteriin (jos käytettävissä). Formaatti: YYYY-MM-DD HH:MM:SS Aikavyöhyke: Käyttäjän paikallinen aikavyöhyke. |
EventEndDateTime | datetime | Loppupäivä ja -aika, milloin tulkittuun työaikaan liittyvä tapahtuma on merkitty kalenteriin (jos käytettävissä). Formaatti: YYYY-MM-DD HH:MM:SS Aikavyöhyke: Käyttäjän paikallinen aikavyöhyke. |
CreatedDatetime | datetime|null | Päivä ja aika, milloin tähän riviin liittyvä tapahtuma on luotu. Formaatti: YYYY-MM-DD HH:MM:SS Aikavyöhyke: Suomen aikavyöhyke |
ModifiedDatetime | datetime|null |
Päivä ja aika, milloin riviin liittyvää tapahtumaa on viimeksi muokattu. Tasoittumisjakson ja viikkolepojan korvauksissa käytetään jakson viimeisen viikon viimeisintä tapahtuman muokkausaikaa. |
ActivityId | int|null | Tapahtuman yksilöllinen tunniste Tapahtumat-taulusta. Hyödyllinen, jos haluaa ryhmitellä saman tapahtuman aikoja, esim. vuosilomapalkka. |
ActivityTypeCode | string|null | Tapahtumatyypin koodi. |
WorkRiseNumber | int|null | Työkorotuksen numero asetuksissa. |
WorkRiseSalaryCode | string|null | Työkorotuksen palkkakoodi asetuksissa. |
WorkRisePercentageIncrease | decimal(4,1)|null | Prosentti, jota käytetään työkorotuksen keston laskentaan "WorkRisePercentagePart"-rivillä. |
WorkRiseMinutesPerHourIncrease | smallint|null |
Minuuttia/tunti-lisä, jota käytetään työkorotuksen keston laskentaan "WorkRisePercentagePart"-rivillä. |
WorkRisePayTarget | string|null |
Työkorotuksen korvauksen kohdenne. Tuetut valinnat ovat:
Kohde voidaan valita myös tapahtuman ylityökohdenteen perusosalta tai korotusosalta. |
WorkIncrementName |
string|null | Työlisän nimi. |
WorkIncrementNumber | int|null | Työlisän numero/indeksi asetuksissa. |
WorkIncrementTripNumber | int | Matkalaskun matkan juokseva numero tapahtumalla, johon työlisä liittyy. Jos työlisä ei liity matkaan, arvona on null . |
WorkIncrementPercentageIncrease | decimal(4,1)|null | Prosentti, jota käytetään Työlisän keston laskentaan "WorkIncrementPercentagePart"-rivillä. |
WorkIncrementPercentageAccrualTarget | string|null | Sisäinen nimi kertymälle, johon "work increment percentage part" kohdennetaan. |
WorkIncrementCode | string|null | Työlisän palkkalajinumero, joka voidaan asettaa Työlisän asetuksissa (Työyhteisö- tai Asetusryhmätasolla). |
WorkIncrementDate | date|null | If the supplement has the date field enabled, the date will appear here (YYYY-MM-DD) Aikavyöhyke: Käyttäjän paikallinen aikavyöhyke |
WorkIncrementComment | string|null | If the supplement has the comment field enabled, the comments will appear here |
WorkIncrementType | enum|null |
|
WorkRiseEarnedAtCompensationType | enum|null | Suodattaa työkorotukset perustuen korvaustyyppiin (compensationtype), jolla se ansaittiin. Katso CompensationType-lista tuetuista arvoista |
ProjectId1 | int|null |
Tapahtumalla ensimmäisenä olevan projektin sisäinen tunniste. Sarake toistuu liitetylle projektille siten että ensimmäinen projekti on numerolla 1, toinen projekti numerolla 2 ja niin edelleen. Sarake esiintyy numeroille liitetyille projekteille 1-6. |
EventProjectRowId1 | int|null |
Järjestelmän sisäinen tunniste tapahtuman ja projektin välisestä suhteesta. Voidaan liittää kyselyyn parametrillä UserSalaryData.EventProjectRowId1 = UserEventProjectData.Id Sarake toistuu liitetylle projektille siten että ensimmäinen projekti on numerolla 1, toinen projekti numerolla 2 ja niin edelleen. Sarake esiintyy numeroille liitetyille projekteille 1-6. |
ProjectExternalIdentifier1 | string|null |
Tapahtumalla ensimmäisenä olevan projektin ulkoinen tunniste. Sarake toistuu liitetylle projektille siten että ensimmäinen projekti on numerolla 1, toinen projekti numerolla 2 ja niin edelleen. Sarake esiintyy numeroille liitetyille projekteille 1-6. |
ProjectCode1 | string|null |
Tapahtumalla ensimmäisenä olevan projektin koodi. Sarake toistuu liitetylle projektille siten että ensimmäinen projekti on numerolla 1, toinen projekti numerolla 2 ja niin edelleen. Sarake esiintyy numeroille liitetyille projekteille 1-6. |
ProjectName1 | string|null |
Tapahtumalla ensimmäisenä olevan projektin nimi. Sarake toistuu liitetylle projektille siten että ensimmäinen projekti on numerolla 1, toinen projekti numerolla 2 ja niin edelleen. Sarake esiintyy numeroille liitetyille projekteille 1-6. |
ProjectType1 | string|null |
Tapahtumalla ensimmäisenä olevan projektin sisäinen nimi projektin tyypille. Esimerkiksi: "toimipiste" (location), "projektityö" (project_work), and "yksikkö" (unit). Sarake toistuu liitetylle projektille siten että ensimmäinen projekti on numerolla 1, toinen projekti numerolla 2 ja niin edelleen. Sarake esiintyy numeroille liitetyille projekteille 1-6. |
BasePartTarget | string|null |
Päivän pituuden ylittävä työ jaetaan ylityön perusosan kohdistukseen "BasePartTarget" sekä ylityöosan kohdistukseen "OvertimeTarget". BasePartTarget kertoo kuinka kirjauksen perusosa on kohdistettu. Esimerkiksi kun korvataan tunti-tunnista saldoon, niin korotusosaa ei korvata, jolloin korvattu aika sisältää kohdistukset BasePartTarget = 'balance' ja OvertimeTarget = 'uncompensated'. Tuetut valinnat ovat:
|
OvertimeTarget | string|null |
Päivän pituuden ylittävä työ jaetaan ylityön perusosan kohdistukseen "BasePartTarget" sekä ylityöosan kohdistukseen "OvertimeTarget". OvertimeTarget kertoo kuinka kirjauksen ylityöosa on kohdistettu. Esimerkiksi kun työ korvataan ylityönä niin OvertimeTarget saa muun arvon kuin NULL tai 'uncompensated'. Ylityönä pankkiin kohdistettu työ sisältäisi BasePartTarget = 'bank' ja OvertimeTarget = 'bank'. Tuetut valinnat ovat:
|
OvertimePercentage | int|null | Tapahtuman ylityöprosentti. Jos asetus "Ylityöstä maksetaan kiinteä korvaus" on päällä eli kalenterissa näkyy "Ylityö 1/2", on arvo null. |
WorkRiseEarnedAtOvertimePercentage | Tapahtuman ylityöprosentti, josta työkorotus on muodostunut. Jos asetus "Ylityöstä maksetaan kiinteä korvaus" on päällä eli kalenterissa näkyy "Ylityö 1/2", on arvo null. | |
UserId | int | Henkilön palvelun sisäinen tunniste. Ei ole esillä käyttöliittymässä, ja aina kun mahdollista tulisi käyttää henkilön muita tunnisteita. |
ApprovedByUserId | int|null |
Tapahtuman hyväksyneen käyttäjän UserId. Tasoittumisjakson ja viikkolepojan korvauksissa käytetään jakson viimeisen viikon viimeistä hyväksyjää. |
UserCostGroup | string | Henkilön oletuskustannuspaikka |
EmployeeSalaryType | enum |
|
EmployeeWorkContractActive | enum |
Onko henkilö työsuhteessa kyseisenä päivänä
|
EmployeeWorkContractStartDate | date | Työsuhteen alkupäivä, null, jos tyhjä. Muoto: YYYY-MM-DD |
EmployeeWorkContractEndDate | date | Työsuhteen loppupäivä, null, jos tyhjä. Muoto: YYYY-MM-DD |
Comment | string | Kommentti, rajattu 2000 merkkiin |
IsTimeBorrowedFromBalance | enum |
Jos työntekijä, jolla on käytössä saldopankki, ei ole töissä päivänä, jolloin hänellä on työvelvoite, työtunnit lainataan saldopankista
|
IsTesOvertime | enum |
Onko TES-ylityötä?
|
IsEmergencyWork | enum |
Onko hälytystyötä?
|
IsApproved | enum |
Onko tapahtuma hyväksytty?
|
SickLeaveCompensationTypeId | int |
Sairausloman palkallisuus
|
SickLeaveTypeId | int |
Sairausloman syy
|
SickLeaveMedicalCertificateId | int |
Lääkärintodistus
|
AbsenceCompensationTypeId | int |
Poissaolon palkallisuus
|
AbsenceTypeId | int | Poissaolotyypin tunniste. NULL jos arvoa ei ole. Näkyy asetuksissa taulukossa Työtunnit->Käytössä olevat poissaolotyypit |
EarnsVacationDays | enum |
Ansaitaanko tapahtumasta vuosilomapäiviä. Tulee joko vuosiloman asetuksista tai tapahtumalle kirjatusta tiedosta.
Arvona voi myös olla |
FromRounding | enum |
|
OverlapsUnderlyingActivityTypeIds | string |
Pilkuilla erotettu lista tapahtumatyyppien koodeista, jotka ovat päällekkäin leimauksen kanssa. Nämä ovat tarkoituksella asetettu jäämän toisen leimauksen alle, esim. varallaolo. Nämä tulee käsitellä WHERE-lauseissa alla olevalla tavalla. WHERE overlapsunderlyingactivitytypeids LIKE '%,33,%' |
ActivityTypeCategoryId | int |
Tapahtumatyypin kategoria, 1 = työ, 2 = poissaolo |
AdjacencyGroupingId | int |
Yksilöllinen tunniste keskeytymättömille jaksoille, jotka tulkitaan yhdeksi työjaksoksi. Useampikin tapahtuma ryhmitellään samalle jaksolle, jos tulkittu palkanmaksu ei keskeydy. Ryhmittelemällä tulokset tämän kentän mukaan saat maksetut jaksot pitkille leimauksille, katkottuna välissä olevilla päivillä, joita ei makseta. Esimerkiksi poissaolomerkintä 2. - 22.5.2016:
|
UserEventData, UserEventHistoryData
Kentän nimi | Tyyppi | Kuvaus |
---|---|---|
ActivityId | int |
Tapahtuman yksilöllinen tunniste Tapahtumattaulusta. Hyödyllinen, jos haluaa ryhmitellä aikoja, jotka tulevat samasta tapahtumasta, esim. vuosilomapalkka. ActivityId pysyy muuttumattomana, jos tapahtumaa muokataan. |
ActivityTypeCode | string | Tapahtumatyypin koodi. |
BasePartTarget | string |
Päivän pituuden ylittävä työ jaetaan ylityön perusosan kohdistukseen "BasePartTarget" sekä ylityöosan kohdistukseen "OvertimeTarget". BasePartTarget kertoo kuinka kirjauksen perusosa on kohdistettu. Esimerkiksi kun korvataan tunti-tunnista saldoon, niin korotusosaa ei korvata, jolloin korvattu aika sisältää kohdistukset BasePartTarget = 'balance' ja OvertimeTarget = 'uncompensated'. Tuetut valinnat ovat:
|
OvertimeTarget | string |
Päivän pituuden ylittävä työ jaetaan ylityön perusosan kohdistukseen "BasePartTarget" sekä ylityöosan kohdistukseen "OvertimeTarget". OvertimeTarget kertoo kuinka kirjauksen ylityöosa on kohdistettu. Esimerkiksi kun työ korvataan ylityönä niin OvertimeTarget saa muun arvon kuin NULL tai 'uncompensated'. Ylityönä pankkiin kohdistettu työ sisältäisi BasePartTarget = 'bank' ja OvertimeTarget = 'bank'. Tuetut valinnat ovat:
|
AccrualType | enum |
Käytössä kertymän Muutos- ja Asetustapahtumilla. Tuetut tyypit ovat:
|
Amount | decimal | Määrä sekunteina |
UnitType | enum |
|
StartDatetime | datetime |
Päivä ja aika, jolloin tapahtuma alkaa. Formaatti: YYYY-MM-DD HH:MM:SS |
EndDatetime | datetime |
Päivä ja aika, jolloin tapahtuma loppuu. Formaatti: YYYY-MM-DD HH:MM:SS |
CreatedDatetime | datetime |
Päivä ja aika, jolloin tapahtuma on luotu. Muoto: YYYY-MM-DD HH:MM:SS |
ModifiedDatetime | datetime |
Päivä ja aika, jolloin tapahtumaa on viimeksi muokattu. Huom! UserEventHistoryData-taulussa, jos kyseessä on muokatun tapahtuman aiempi versio, ModifiedDatetime osoittaa muokkausajan, jolloin kyseinen versio on luotu. Muoto: YYYY-MM-DD HH:MM:SS |
ProjectId1 | int | Tapahtumalla ensimmäisenä olevan projektin sisäinen tunniste |
ProjectCode1 | string | Tapahtumalla ensimmäisenä olevan projektin koodi |
ProjectExternalIdentifier1 | string | Tapahtumalla ensimmäisenä olevan projektin ulkoinen tunniste |
ProjectName1 | string | Tapahtumalla ensimmäisenä olevan projektin nimi |
ProjectType1 | string | Tapahtumalla ensimmäisenä olevan projektin sisäinen nimi projektin tyypille. Esimerkiksi "toimipiste" (location), "projektityö" (project_work), tai "yksikkö" (unit). |
UserId | int | Henkilön palvelun sisäinen tunniste. Ei ole esillä käyttöliittymässä, ja aina kun mahdollista tulisi käyttää henkilön muita tunnisteita. |
ApprovedByUserId | int | Tapahtuman hyväksyneen henkilön sisäinen tunniste. |
ApprovedByFirstname | string | Tapahtuman hyväksyneen henkilön etunimi. |
ApprovedByLastname | string | Tapahtuman hyväksyneen henkilön sukunimi. |
ApprovedByPersonnelNumber | string | Tapahtuman hyväksyneen henkilön henkilönumero. |
ApprovedByNeptonGUID | string | Tapahtuman hyväksyneen henkilön sisäinen tunniste. |
UserCostGroup | string | Henkilön kalleusluokka |
EmployeeSalaryType | enum |
Henkilön palkkaustyyppi
|
EmployeeWorkContractActive | enum |
Onko henkilöllä voimassa oleva työsopimus käsiteltävänä päivänä.
|
EmployeeWorkContractStartDate | date | Työsuhteen alkupäivä, null, jos tyhjä. Muoto: YYYY-MM-DD |
EmployeeWorkContractEndDate | date | Työsuhteen loppupäivä, null, jos tyhjä. Muoto: YYYY-MM-DD |
Comment | string | Kommentti, rajattu 2000 merkkiin |
IsApproved | enum |
Onko tapahtuma hyväksytty?
|
IsRequestType | enum |
Onko tapahtuma tyyppiä, joka vaatii esimiehen hyväksynnän etukäteen?
|
IsEmergencyWork | enum |
Onko hälytystyötä?
|
SickLeaveCompensationTypeId | int |
Sairausloman palkallisuus
|
SickLeaveTypeId | int |
Sairausloman syy
|
SickLeaveMedicalCertificateId | int |
Lääkärintodistus
|
AbsenceCompensationTypeId | int |
Poissaolon palkallisuus
|
AbsenceTypeId | int | Poissaolotyypin tunniste, voi olla myös asiakaskohtaisesti määritetty. Näkyy asetuksissa taulukossa Työtunnit->Käytössä olevat poissaolotyypit |
EarnsVacationDays | enum |
Ansaitaanko tapahtumasta vuosilomapäiviä. Tulee joko vuosiloman asetuksista tai tapahtumalle kirjatusta tiedosta.
|
TravelBeginDateTime | datetime | Matkan alkamispäivä Formatti: YYYY-MM-DD HH:MM:SS Aikavyöhyke: Käyttäjän vakituinen aikavyöhyke |
TravelEndDateTime | datetime | Matkan päättymispäivä Formatti: YYYY-MM-DD HH:MM:SS Aikavyöhyke: Käyttäjän vakituinen aikavyöhyke |
IsActive | string | Käytössä vain UserEventHistoryData-taulussa.
|
OriginalActivityId | int|null |
Käytössä vain UserEventHistoryData-taulussa. Sisäinen tunniste muokatulle tapahtumalle, josta tämä tapahtuma on aiempi versio. Tapahtuman OriginalActivityId on sama kuin sen viimeisimmän version ActivityId. Jos OriginalActivityId on |
TerminalId |
int|null |
|
PlannedActivityTypeCode | string|null |
Suunnitellun vuoron suunnitellun tapahtumatyypin koodi. |
PlannedActivityAlias | string|null |
Suunnitellun vuoron lyhenne. |
UserEventProjectData
Kentän nimi | Tyyppi | Kuvaus |
---|---|---|
Id | int | Järjestelmän sisäinen tunniste tapahtuman ja projektin välisestä suhteesta. Voidaan liittää kyselyyn parametrillä UserSalaryData.eventprojectrowidX |
ActivityId | int | Järjestelmän sisäinen tunniste tapahtumalle johon projektimerkintä on liitetty. |
ProjectId | int | Järjstelmän sisäinen tunniste projektitiedolle. Voidaan liittää kyselyparametrillä ProjectData.id |
ProjectDurationMarked | string | Projektille tallennettu kesto joko prosentteina tai aika-arvona kuten henkilö on projektin keston merkinnyt tapahtumalle. Eri asia kuin laskettu projektin kesto (katso UserSalaryData) |
ApprovedByUserId | int | Projektimerkinnän hyväksyneen henkilön järjestelmän sisäinen tunniste. Tätä ei tule sekoittaa tapahtuman hyväksymiseen, projektitason hyväksynnät tehdään usein projektijohtajien toimesta Projektituntien hyväksyntä -työkalulla. |
InternalNotes | string | Projektimerkinnän sisäinen huomautus |
PublicNotes | string | Projektimerkinnän ulkoinen huomautus |
UserTravelExpenseTripData
Kentän nimi | Tyyppi | Kuvaus |
---|---|---|
ActivityId | int | Tapahtuman yksilöllinen tunniste Tapahtumataulusta. |
TripNumber | int | Matkan juokseva numero tapahtumalla. |
TransportationMethodId | int | Käytetyn matkustusmuodon tunnus. Voi sisältää seuraavat arvot:
|
StartDateTime | datetime | Matkan lähtöpäivä ja -aika. Muoto YYYY-MM-DD HH:MM:SS
|
StartTimeZone | string | Matkan lähtöajan aikavyöhyke. Esimerkiksi Europe/Helsinki
|
EndDateTime | datetime | Matkan päättymispäivä ja -aika. Muoto YYYY-MM-DD HH:MM:SS
|
EndTimeZone | string | Matkan päättymisajan aikavyöhyke. Esimerkiksi Europe/Helsinki
|
StartLocation | string | Lähtöpaikan osoite |
StartRegion | string | Lähtöpaikan maa |
EndLocation | string | Kohdepaikan osoite |
EndRegion | string | Kohdepaikan maa |
ReasonForTrip | string | Matkan tarkoitus |
UserEventExternalIdentifierData
Kentän nimi | Tyyppi | Kuvaus |
---|---|---|
ActivityId | int | Tapahtuman yksilöllinen tunniste Tapahtumataulusta. |
ExternalIdentifier | string | Tapahtuman ulkoinen tunniste |
IdentifierType | string | Ulkoisen tunnisteen tyyppi. Tällä hetkellä ainoa tuettu tyyppi on External
|
UserData
Kentän nimi | Tyyppi | Kuvaus |
---|---|---|
UserId | int | Henkilön palvelun sisäinen tunniste. Ei ole esillä käyttöliittymässä, ja aina kun mahdollista tulisi käyttää henkilön muita tunnisteita. |
UserIntegrationId | string |
Henkilön liittymässä yksilöivä tunniste. Muodostuu valitun liittymän mukaisesti. Voi olla jokin seuraavista:
|
FirstName | string | Henkilön etunimi |
LastName | string | Henkilön sukunimi |
DefaultProjectId1 | int | Henkilön oletusprojektin sisäinen tunniste |
DefaultProjectCode1 | string | Henkilön oletusprojektin koodi |
DefaultProjectType1 | string | Henkilön oletusprojektin sisäinen nimi projektin tyypille. Esimerkiksi "toimipiste" (location), "projektityö" (project_work), tai "yksikkö" (unit). |
DefaultCostGroup | string | Henkilön kalleusluokka |
UserGroupCode | string | Henkilön henkilöryhmän koodi |
RootGroupCode | string | Juuritason henkilöryhmän koodi, mihin henkilön henkilöryhmä kuuluu. |
ContractType | string | Person's working contract type e.g. "hourly" or "monthly" |
UserInfoData
Kentän nimi | Tyyppi | Kuvaus |
---|---|---|
UserId | int | Henkilön palvelun sisäinen tunniste. Ei ole esillä käyttöliittymässä, ja aina kun mahdollista tulisi käyttää henkilön muita tunnisteita. |
InfoTypeName | string |
Henkilötiedon tunniste. Taulu sisältää henkilölle luodut lisätietokentät. Arvo voi esimerkiksi olla:
|
InfoTypeId | int |
Henkilötiedon tyypin sisäinen tunnus. Tätä tietoa ei tule käyttää tunnisteena tiedon hyödyntämisessä, sillä se voi muuttua.
|
ValidFrom | datetime |
Päivä ja aika, mistä lähtien henkilötieto on voimassa. Jos henkilötiedolle ei ole asetettu voimassaolon alkupäivää, arvona on 1970-01-01 00:00:00 Formaatti: |
ValidTo | datetime |
Päivä ja aika, mihin asti henkilötieto on voimassa. Jos henkilötiedolle ei ole asetettu voimassaolon päättymispäivää, arvona on 2999-12-31 23:59:59 Formaatti: |
Value | string |
Kentän arvo merkkijonona. Tieto esitetään tietokentän tyypin perusteella seuraavassa muodossa:
|
UserGroupData
Kentän nimi | Tyyppi | Kuvaus |
---|---|---|
Id | kokonaisluku | Neptonin sisäinen henkilöryhmän tunniste |
Name | merkkijono | Henkilöryhmän nimi |
Code | merkkijono | Henkilöryhmän koodi |
Description | merkkijono | Henkilöryhmän kuvaus |
ParentId | kokonaisluku | Yläryhmän Neptonin sisäinen tunnista. Jos henkilöryhmällä ei ole yläryhmää, arvona on null
|
IsRoot | merkki |
Onko henkilöryhmä juuritason ryhmä, eli ryhmä jolla ei ole yläryhmää.
|
Depth | kokonaisluku |
Numeerinen arvo siitä, kuinka syvällä henkilöryhmä on puurakenteessa. Esimerkiksi:
|
ProjectData
Kentän nimi | Tyyppi | Kuvaus |
---|---|---|
Id | kokonaisluku | Neptonin sisäinen projektin tunniste |
ExternalId | kokonaisluku | Projektille annettu ulkoinen tunniste. Lue lisää ulkoisesta tunnisteesta täällä. |
Name | merkkijono | Projektin nimi projektin tiedot -sivulla |
Code | merkkijono | Projektin koodi projektin tiedot -sivulla |
Description | merkkijono | Projektin kuvaus projektin tiedot -sivulla |
ParentId | kokonaisluku | Yläprojektin Neptonin sisäinen tunnista. Jos projektilla ei ole yläprojektia, arvona on null
|
StartDate | päivämäärä | Projektin alkamispäivä projektin tiedot -sivulla. Muotona YYYY-MM-DD
|
EndDate | päivämäärä | Projektin päättymispäivä projektin tiedot -sivulla. Muotona YYYY-MM-DD
|
TypeInternalName | merkkijono | Projektityypin sisäinen nimi. Lue lisää projektityypeistä täällä. |
IsLeaf | merkki |
Onko projekti ns. lehtisolmu (leaf node), eli projekti, jolla ei ole alaprojekteja.
|
IsRoot | merkki |
Onko projekti juuritason projekti, eli projekti, jolla ei ole yläprojektia.
|
IsAssignedProject | merkki |
Onko projekti tapahtumalle kirjattu projekti.
Arvona on kyllä, jos projekti on suoraan tapahtumalle kirjattu projekti. Arvona on ei jos projekti on tapahtumalle kirjatun projektin yläprojekti. |
Depth | kokonaisluku |
Numeerinen arvo siitä, kuinka syvällä projekti on puurakenteessa. Esimerkiksi:
|
PaymentGroupDateData
Kentän nimi | Tyyppi | Kuvaus |
---|---|---|
Id | kokonaisluku | Neptonin sisäinen maksuryhmän maksukauden tunniste |
NeptonPaymentGroupDateIdentifier | merkkijono | Neptonin maksuryhmän maksukauden tunniste |
PaymentGroupId | kokonaisluku | Neptonin sisäinen maksuryhmän tunniste johon maksuryhmän maksukausi liittyy |
NeptonPaymentGroupIdentifier | merkkijono | Neptonin maksuryhmän tunniste johon maksuryhmän maksukausi liittyy |
PaymentPeriodStartDate | päivämäärä | Maksuryhmän maksukauden alkupäivä |
PaymentPeriodEndDate | päivämäärä | Maksuryhmän maksukauden loppupäivä |
PaymentDate | päivämäärä | Maksuryhmän maksukauden maksupäivä |
ValueDate | päivämäärä | Maksuryhmän maksukauden arvopäivä |