Palvelusta voidaan viedä palkkatapahtumia Visma LTR -järjestelmään. Viennissä käytetään Visman tarjoamaa REST-rajapintaa.
Vaatimukset
- Jotta palkkatapahtumia voidaan viedä Visma LTR -järjestelmään REST-rajapinnan kautta, tulee projektit tuoda Visma L7:stä, jotta projektit on synkronisoitu oikein järjestelmien kesken. Lue lisää Visma L7 / LTR kokonaisratkaisusta ja Visma L7 projektien tuonnista.
- Kaikissa LTR:ään vietävissä tapahtumissa tulee olla projektimerkintä.
- Siirrettävien kenttien tulee olla määritetty Visma LTR:n kirjauslomakkeen asetuksissa rivitasolle.
Käyttötarkoitus ja rajoitukset
- Vienti tukee vain uusien tapahtumien vientiä. Jo kerran vietyjä tapahtumia ei päivitetä LTR:ään, vaan tapahtumat luodaan uudelleen. Jos siirto täytyy tehdä uudestaan jo siirretylle ajanjaksolle, täytyy tämän ajanjakson tapahtumat poistaa ensin LTR:stä.
- Kun palkkajakson kirjaukset ovat tehty ja hyväksytty, siirretään Neptonista tulkinta LTR:n REST-rajapintaan. Siirto käynnistetään Neptonissa, ja valitun ajanjakson mukainen tulkinta siirtyy LTR:n käsiteltäväksi. Siirto muodostaa aineiston sen sääntöjoukon mukaisena, mikä on valittu siirrettäväksi.
Määrittäminen
Viennin määrittäminen tapahtuu sääntöjoukkojen avulla. Uusi sääntöjoukko voidaan lisätä osiosta Työaika > Hallinta > Liittymät > Poimintasäännöt > Lisää integraation sääntöjoukko. Kun sääntöjoukko on lisätty, voidaan sen määritykset avata klikkaamalla sääntöjoukon nimeä.
Poimintasäännöt
Sääntöjoukolle tulee määrittää poimintasäännöt, joiden avulla lähetettävät tiedot poimitaan ja määritetään viennille.
Poimintasääntö tulee muodostaa siten, että palkkalajikoodit vastaavat LTR:ssä olevia koodeja. Alla on esimerkki mahdollisesta poimintasäännöstä, mutta kaikkien OverrideSalaryCode -kentälle määritettävien palkkalajikoodien tulee vastata LTR-ratkaisussa olevia palkkalajikoodeja ko. palkkalajille.
SELECT
*,
CASE
WHEN CompensationType = 'OvertimeDaily100' THEN '0410' -- If 0410 would be salary code for 100% daily overtime in LTR
WHEN CompensationType = 'YearLeave' THEN '3600' -- If 3600 would be salary code for year leave in LTR
WHEN CompensationType = 'UnpaidBasicTime' THEN '6199' -- If 6199 would be salary code for unpaid basic time
WHEN CompensationType = 'BasicTime' THEN '0001' -- If 0001 would be salary code for basic work in LTR
WHEN CompensationType = 'WorkRise' THEN WorkRiseSalaryCode -- Salary code is set for Work rises in settings
WHEN CompensationType = 'WorkIncrement' THEN WorkIncrementCode -- Salary code is set for Supplements in settings
ELSE 'NOT_DEFINED'
END as OverrideSalaryCode,
CASE
WHEN isApproved = 'Y' THEN '2'
ELSE '1'
END AS VismaLTRStatus, -- If correct license to send approval status updates to LTR
CASE
WHEN CompensationType = 'BasicTime' THEN '00012' -- If 00012 would be the correct billing code for this compensationtype in LTR
ELSE ''
END as VismaLTRBillingCode -- If compensationtype would require a specific billing code
FROM
UserSalaryData
WHERE
(
CompensationType IN (
"BasicTime","ReducedRateTime","UnpaidBasicTime",
"AdditionalWork","OvertimeDaily50","OvertimeDaily100",
"OvertimeWeekly50","OvertimeWeekly100","OvertimeSunday50",
"OvertimeSunday100","OvertimeBaseFixed","OvertimeExtraFixed",
"LevellingPeriodAdditional","LevellingPeriodOvertime50",
"LevellingPeriodOvertime100","LevellingPeriodUnderTarget",
"WorkRise","WorkIncrement","PublicHoliday","WeeklyRestTime",
"YearLeave","PayLevellingPeriodToSalary",
"TESOvertime50","TESOvertime100"
)
OR (
CompensationType = "MarkedTime"
AND ActivityTypeCode = 33
)
)
AND OverrideSalaryCode != 0
AND SickLeaveTypeId IS NULL
AND AbsenceTypeId IS NULL
AND IsTimeBorrowedFromBalance = 'N'
Viennin asetukset
Sääntöjoukon poimintasääntöjen alta löytyvät viennin asetukset. Viennin tiedostomuodoksi asetetaan Visma LTR. Projektitieto sisältyy Visma LTR -vientiin automaattisesti. Jos rajapinta-tunnuksia on useampia per työnantaja, voidaan määrittää "Jaa tulokset" kohtaan Työnantaja. Lisätietoja Työnantajalla jakamiseesta seuraavassa kappaleessa.
Tämän jälkeen yhteysasetukset määritetään kohdassa "Vie web serviceen". Viennin web service -osoite kohtaan määritetään Visman REST-rajapinnan osoite. API-käyttäjäksi määritetään rajapinnan API-käyttäjä (LTR-dokumentaatiossa hash) ja API avain -kohtaan rajapinnan tunnisteavain (LTR-dokumentaatiossa authkey). Jos API-tunnukset vaihtuvat riippuen siitä mikä henkilön työnantaja on, voidaan tunnukset määrittää niin, että asetetaan viennin asetuksiin "Jaa tulokset" -kohtaan "Työnantaja", ja asetetaan esimerkiksi API-käyttäjän tai avaimen kohtaan työnantajan lisätietoihin viittaava kentän nimi {} -merkkien ympäröimänä. Esimerkki:
- Työnantajalle "Yritys Oy" on asetettu työntaja-osiossa lisätietokenttiin LTRApiUser, jonka arvoksi on asetettu "exampleuserhash"
- Työnantajalle "Yritys 2 Oy" on asetettu työntaja-osiossa lisätietokenttiin LTRApiUser, jonka arvoksi on asetettu "esimerkkikayttaja"
- Kenttään API käyttäjä asetetaan {LTRApiUser}, jolloin liittymä käyttää työnantajakohtaista arvoa liittymässä.
- Kenttään API avain asetetaan {LTRApiKey}, jolloin liittymä käyttää työnantajakohtaista arvoa liittymässä.
- Tämä mahdollistaa sen että jos LTR:ssä on useampi rajapinnan käyttäjätunnus per työnantaja, saadaan tiedot välitettyä oikein sen mukaan, miten henkilölle on Neptonissa asetettu työnantaja
Alla esimerkki työnantajasta jolle on asetettu LTRApiUser- ja LTRApiKey-lisätiedot työnantajan tietoihin. Kenttien nimen voi määrittää itse, mutta sen on hyvä olla kuvaava ja kentän nimen täytyy täsmätä annetun määrityksen kanssa. Lue lisää työnantajista täältä.
Rajapintasanoma
Liittymä kutsuu Visma LTR REST-rajapinnan post_tasks-metodia. Löydät lisätietoja Visma LTR teknisestä kuvauksesta.
TASO | KENTÄN NIMI | MUOTO | SELITE |
juuri | id | numero | Aina 0, liittymä tukee vain uusien tapahtumien luomista, ei päivittämistä |
juuri | personnumber | merkkijono | Henkilön henkilönumero |
juuri | ts_start | merkkijono | Tapahtuman alkuajankohta muodossa YYYY-MM-DD HH:ii:ss |
juuri | ts_end | merkkijono | Tapahtuman alkuajankohta muodossa YYYY-MM-DD HH:ii:ss |
juuri | workid | numero | Aina 0, liittymä tukee vain uusien tapahtumien luomista, ei päivittämistä |
juuri | title | merkkijono | Tapahtuman tyyppi |
juuri | description | merkkijono | Tapahtuman kuvaus |
juuri | rows | Joukko tapahtuman rivejä | Rivit sisältävät tapahtumaan liittyvät tiedot kuten tehty työaika, mahdolliset työlisät yms. |
rows - rivijoukko | row | Tapahtumaan liittyvä rivi | Rivi sisältää tapahtumaan liittyvän yksittäisen palkkalajin, työlisän tmv. merkinnän tiedon |
row - rivin tieto | id | numero | Aina 0, liittymä tukee vain uusien tapahtumien luomista, ei päivittämistä |
row - rivin tieto | type | merkkijono |
Tapahtuman rivin tyyppi
|
row - rivin tieto | costcenter | merkkijono |
Henkilön kustannuspaikka. Voidaan yliajaa sääntöjoukossa arvolle VismaCostCentre |
row - rivin tieto | wagetype | merkkijono |
Palkkalajikoodi |
row - rivin tieto | ts_start | merkkijono |
Merkinnnän alkuaika |
row - rivin tieto | ts_end | merkkijono |
Merkinnän loppuaika |
row - rivin tieto | ts_directed | merkkijono |
Päivämäärä jolle merkintä lisätään LTR:ssä |
row - rivin tieto | costamount | numero |
Merkinnän määrä, jos tuntiperusteinen niin tuntien määrä, jos kulu niin aina 1 ja varsinainen kulu määritetään costprice - tietueessa |
row - rivin tieto | description | merkkijono |
Merkinnän kuvaus |
row - rivin tieto | unit | merkkijono |
Yksikkö tekstimuotoisena. Voidaan yliajaa sääntöjoukossa arvolle VismaLTRUnit |
row - rivin tieto | project | merkkijono |
Ylänumeron projektin tunniste. Tulee vastata Visma L7:ssä olevaa ylänumeron projektin tunnistetta. Voidaan yliajaa sääntöjoukossa arvolle VismaLTRProject |
row - rivin tieto | work | merkkijono |
Alanumeron projektin tunniste. Tulee vastata Visma L7:ssä olevaa alanumeron projektin tunnistetta. Voidaan yliajaa sääntöjoukossa arvolle VismaLTRWork |
row - rivin tieto | billingcode | merkkijono |
Merkinnän laskutuskoodi, jos Visma LTR:ssä on määritetty että palkkalaji vaatii laskutuskoodin. Voidaan määrittää sääntöjoukossa arvolle VismaLTRBillingCode |
row - rivin tieto | status | numero |
Merkinnän hyväksynnän tila, |
row - rivin tieto | acceptor | merkkijono |
Jos hyväksytty, hyväksyjän nimi. Viedään automaattisesti jos status - tieto viedään hyväksyttynä |
row - rivin tieto | ts_accepted | merkkijono |
Jos hyväksytty, hyväksynnän ajankohta. Viedään automaattisesti jos status - tieto viedään hyväksyttynä |
row - rivin tieto | tripreason | merkkijono |
Liitetään vientiin jos kyseessä matkalasku, matkalaskun kuvaus. Voidaan yliajaa sääntöjoukossa arvolle VismaLTRTripReason |
row - rivin tieto | triproute | merkkijono |
Liitetään vientiin jos kyseessä matkalasku, matkalaskun reitit. Voidaan yliajaa sääntöjoukossa arvolle VismaLTRTripRoute |
row - rivin tieto | trippassenger | merkkijono |
Liitetään vientiin jos kyseessä matkalasku, matkalaskun matkustajat. Määritetään sääntöjoukossa arvolle VismaLTRTripPassengerAmount |
Esimerkkisanoma JSON-muodossa:
{
"id": 0,
"personnumber": "123456",
"ts_start": "2023-03-02 08:00:00",
"ts_end": "2023-03-02 16:00:00",
"workid": 0,
"title": "Työ",
"description": "",
"rows": [
{
"row": {
"id": 0,
"type": "HO",
"costcenter": "CostCenterName",
"wagetype": "40",
"ts_start": "2023-03-02 08:00:00",
"ts_end": "2023-03-02 16:00:00",
"ts_directed": "2023-03-02 00:00:00",
"costamount": 8,
"description": "",
"unit": "H",
"project": "SomeProjectCode",
"work": "SubProjectCode",
"billingcode": "987654321",
"status": 2,
"acceptor": "Acceptor Name",
"ts_accepted": "2023-03-04 16:00:00"
}
},
{
"row": {
"id": 0,
"type": "IV",
"costcenter": "CostCenterName",
"wagetype": "567890",
"ts_start": "2023-03-02 08:00:00",
"ts_end": "2023-03-02 16:00:00",
"ts_directed": "2023-03-02 00:00:00",
"costamount": 1,
"description": "",
"unit": "C",
"costprice": 51,
"project": "SomeProjectCode",
"work": "SubProjectCode",
"billingcode": "12345678",
"status": 2,
"acceptor": "Acceptor Name",
"ts_accepted": "2023-03-04 16:00:00"
}
}
]
}