Přeskočit na hlavní obsah

Nastavení osoby v personalistice pomocí REST API

Jak změnit nastavení osoby v personalistice přes REST API

Autor: Petr Pech

Pro správu zaměstnanců a jejich pracovních poměrů slouží v REST API dvě evidence — osoba s osobními údaji zaměstnance a pracovni-pomer s pracovním poměrem, který je na osobu navázaný.

ℹ️ Vedle nich existují ještě „hlavičkové" evidence osoba-hlavicka a pracovni-pomer-hlavicka. Ty drží zaměstnance jako celek, zatímco osoba a pracovni-pomer obsahují jeho jednotlivá časově platná nastavení.


Získání dat

Data o osobách vyčtete metodou GET; použít lze standardní filtrování i úroveň detailu:

GET https://demo.flexibee.eu/c/demo/osoba.xml
GET https://demo.flexibee.eu/c/demo/pracovni-pomer.json?detail=full


Verzování nastavení

Obě evidence používají verzování pomocí vlastností platiOd a platiDo. Každý zaměstnanec i pracovní poměr tak může mít více verzí nastavení s různou časovou platností. Při importu s novým platiOd:

  1. systém najde existující nastavení, které se s novým datem překrývá,

  2. to překrývající se automaticky zkrátí — nastaví mu platiDo na den před novým platiOd,

  3. vytvoří novou verzi nastavení s hodnotami zkopírovanými z předchozí verze,

  4. a na novou verzi aplikuje hodnoty z importu.

<winstrom version="1.0">
<osoba>
<osbCis>123</osbCis>
<platiOd>2026-07-01</platiOd>
<prijmeni>Novotná</prijmeni>
</osoba>
</winstrom>

Tento import vytvoří novou verzi nastavení od 1. 7. 2026; předchozí verze bude automaticky ukončena k 30. 6. 2026. Odpověď obsahuje ID nové i zkrácené verze.

📝 Odpověď u osob často obsahuje řadu varování k nevyplněným legislativním údajům — například osobaOicPrazdne nebo osobaNejvyssiVzdelaniK. Import tím neblokují, jen upozorňují, že údaje bude potřeba doplnit.

Propsání do budoucna

Atribut propsatDoBudoucna="true" promítne provedenou změnu i do všech budoucích verzí nastavení. Systém uloží změnu do adresovaného nastavení, najde všechna nastavení s pozdějším platiOd a aplikuje na ně stejnou změnu:

<winstrom version="1.0">
<pracovni-pomer propsatDoBudoucna="true">
<idPpv>PP-001</idPpv>
<uvazHodDenne>6.0</uvazHodDenne>
</pracovni-pomer>
</winstrom>

Bez tohoto atributu se změna projeví pouze v adresovaném nastavení a budoucí verze zůstanou nedotčené. Nikdy se nepropagují tyto vlastnosti:

  • u osoby platiOd, platiDo a password,

  • u pracovního poměru platiOd a platiDo.


Odeslání dat

Pro zápis použijte metodu POST nebo PUT:

POST https://demo.flexibee.eu/c/demo/osoba.xml
<?xml version="1.0"?>
<winstrom version="1.0">
<osoba>
<platiOd>2021-07-01</platiOd>
<osbCis>PP123456</osbCis>
<prijmeni>Pavelka</prijmeni>
<jmeno>Pavel</jmeno>
<stredisko>code:C</stredisko>
</osoba>
</winstrom>

Identifikace záznamů

Osoba se hledá v tomto pořadí: interní ID (<id>123</id>), osobní číslo (<osbCis>1</osbCis>), rodné číslo v normalizovaném formátu (<rodCis>9002020005</rodCis>), kombinace rodCis + ecp a nakonec samotné EČP.

Pracovní poměr se hledá takto: interní ID, kodCsszPP + platiOd, idPpv + platiOd, idPpv + aktivní smlouva (není-li platiOd uvedeno) a nakonec osoba spolu s kodCsszPP nebo idPpv.

Pro identifikaci záznamů platí obvyklé tvary 123, code:ZKRATKA, ext:ID a ext:SYSTEM:ID. Datumy se zapisují v ISO 8601, s časovou zónou (2026-01-01+01:00) i bez ní.

Vnořené kolekce

Víceslovné názvy kolekcí používají camelCase pro obal a pomlčkový zápis pro položky:

Kolekce

Obal

Položka

Bankovní spojení osoby

bankovniSpojeni

mzdy-bankovni-spojeni

Pracovní poměry osoby

pracovniPomery

pracovni-pomer

Děti

deti

dite

Osoby blízké

osobyBlizke

osoba-blizka

Srážky

srazky

srazka

Stálé mzdové složky poměru

staleMzdoveSlozky

stala-mzdova-slozka

Nepřítomnosti

nepritomnosti

nepritomnost

praceProStrediska

prace-pro-stredisko

Kompletní import osoby s pracovním poměrem

Pracovní poměr vnořený v kolekci pracovniPomery se automaticky propojí s osobou, takže vše lze poslat v jednom požadavku:

<winstrom version="1.0">
<osoba>
<osbCis>1</osbCis>
<jmeno>Jan</jmeno>
<prijmeni>Novák</prijmeni>
<datNaroz>1990-05-15+01:00</datNaroz>
<rodCis>9005150001</rodCis>
<pohlaviK>pohlavi.muz</pohlaviK>
<zpusPlatbyK>zpusobPlatby.ucet</zpusPlatbyK>
<zdravPoj>code:201</zdravPoj>
<bankovniSpojeni>
<mzdy-bankovni-spojeni>
<buc>1234567890</buc>
<smerKod>code:0100</smerKod>
<primarni>true</primarni>
</mzdy-bankovni-spojeni>
</bankovniSpojeni>
<pracovniPomery>
<pracovni-pomer>
<idPpv>PP-001</idPpv>
<kod>PP-001</kod>
<nazev>Hlavní pracovní poměr</nazev>
<typPracPom>code:1-STANDARD</typPracPom>
<aktivniOd>2026-01-01+01:00</aktivniOd>
<zacatek>2026-01-01+01:00</zacatek>
<hlavni>true</hlavni>
<uvazHodDenne>8.0</uvazHodDenne>
<uvazDnuTydne>5</uvazDnuTydne>
<staleMzdoveSlozky>
<stala-mzdova-slozka>
<cisMzdSloz>code:MĚSÍČNÍ MZDA</cisMzdSloz>
<zaklMzd>45000</zaklMzd>
</stala-mzdova-slozka>
</staleMzdoveSlozky>
<nepritomnosti>
<nepritomnost>
<platiOd>2026-07-01+01:00</platiOd>
<platiDo>2026-07-14+01:00</platiDo>
<cisMzdSloz>code:DOVOLENÁ</cisMzdSloz>
</nepritomnost>
</nepritomnosti>
</pracovni-pomer>
</pracovniPomery>
</osoba>
</winstrom>

Mazání nastavení

Importem lze přidávat nová nastavení s uvedeným začátkem platnosti a mazat vybraná nastavení — kromě posledního zbývajícího. Platnosti ostatních nastavení se adekvátně upraví. Ke smazání použijte akci delete:

<?xml version="1.0"?>
<winstrom version="1.0">
<osoba action="delete">
<id>1</id>
</osoba>
</winstrom>


Na co si dát pozor

  • Vlastnosti kodELDP a kodCsszPP nelze po uložení pracovního poměru změnit.

  • platiOd by mělo být prvním dnem měsíce — jinak systém zobrazí varování.

  • Při importu pracovního poměru musí navázaná osoba už existovat.


Související

Dostali jste odpověď na svou otázku?