# Webová služba OrgStructure verze 4.0.0 (Obecné webové služby) - popis rozhraní služby

Marbes Consulting s.r.o.

EOS4

Vygenerováno z verze 4.21.0.19.0.

Podmínky omezující zveřejnění

Autorem tohoto dokumentu je společnost MARBES CONSULTING s.r.o. Dokument obsahuje informace důvěrného charakteru a ve smyslu definice autorského práva (viz § 2, odst. 1 Zákona č. 121/2000 Sb., zákon o právu autorském) je duševním vlastnictvím autora a předmětem práva autorského. Dokument smí být použit výhradně za účelem, za kterým byl poskytnut a nesmí být bez předchozího souhlasu autora citován, kopírován, vytěžován1 nebo předán třetí fyzické či právnické osobě.

© 2009 MARBES CONSULTING s.r.o.

1 Vytěžováním se podle zákona č. 121/2000 Sb. rozumí trvalý nebo dočasný přepis celého obsahu nebo jeho podstatné části na jiný podklad, a to jakýmikoli prostředky nebo jakýmkoli způsobem.

## Obsah

- Obecné informace
- Seznam poskytovaných metod
- Seznam struktur dat
- Výjimky
- Popis poskytovaných metod
- Popis struktur dat

## Obecné informace

Rozhraní umožňuje číst organizační strukturu.

### Vysvětlení pojmů

- Prvek organizační struktury - organizačí jednotka, organizační role, skupinová role nebo zařazení osoby do organizační nebo skupinové role
- Role - organizační role a skupinová role
- Agenda - obecné označení prvku stromu agend, může reprezentovat agendu, činnost, roli v agendě nebo jiný uživatelský typ, který bude definován ve stromu agend, základní typy lze zjistit z atributu typeCode u agendy
- Osoba - reprezentuje skutečnou evidovanou osobu, osoba může mít více zařazení, ale na ty není brán zřetel
- Osoba v zařazení - reprezentuje konkrétní osobu zařazenou do konkrétní role (organizační nebo skupinové)
- Primární zařazení - jedná se o zařazení osoby do role, které má nejvyšší hodnotu obsazení. Osoba nemusí mít primární zařazení pokud není nikam zařazená, nebo má více zařazení se stejnou hodnotou obsazení.
- Strom organizačních rolí - strom nadřízenosti a podřízenosti organizačních rolí
- Aplikace - aplikace evidovaná v EOS, součástí aplikace je seznam atributů
- Atribut - patří k aplikaci a definuje typy oprávnění, např. jednotlivé úrovně řízení aplikace jako je přístup k webovým službám, typy dokumentů pro přístup, zda se jedná o adminstrátora atp.
- Hodnota oprávnění - konkrétní přiřazená hodnota oprávnění pro daný atribut, např. true pro atribut administrátor, výčet konkrétních přiřazených typů dokumentů pro atribut typů dokumentů atp.
- Response filter - jedná se o objekt, který uvádí, jaká data se mají ve výstupních objektech vracet, např. pokud externí systém "zajímají" pouze základní údaje, nemusí EOS vracet další rozšiřující data, např. seznam kontaktů k osobě, když nás zajímá pouze seznam osob atp. Pokud není uveden, vrací se pouze základní data k objektu.
- Session id - jedná se i identifikátor připojení k serveru a v tuto chvíli není povinný. Tento identifikátor lze získat webovou službou pro otevárání session. V novějších verzích bude vhodné session využít pro případ, kdy bude vyžadováno čtení dat s určitými vlastnostmi, např. dat z historie atp.

### Stránkování

Pokud metoda vrací seznam objektů, může být výsledný vracený seznam stránkovaný. Informaci o stránkování obsahuje atribut paging, ve kterém se nachází i informace, zda server uchovává další data (existuje další stránka). Vychozí velikost jedné stránky je 500 záznamů. Objekt paging obsahuje identifikátor seznamu dat (lid) a ten je nutné předat do metody, která načte další stránku (typický název metody je getNextXxx).

#### Důležité upozornění

Při načítání stránkovaného seznamu nemusí vždy odpovídat počet vrácených záznamů parametru totalCount, který je uveden v objektu paging. Toto se projeví pouze v případě, že jsou během stránkovaného načítání některé vracené objekty z EOS odstraněny.

### Filtrování

Některé metody podporují filtrování dat, např. načtení seznamu aplikací. Filtr se předává formou řetězce, ve kterém je zapsána podmínka. Podmínku lze použít POUZE na základní atributy vracených objektů. Podmínku nelze tedy použít na další vnořené hodnoty, např. kontakty osoby. Pro tento účel existují samostatné metody.

#### Možnosti filtrování

Podmínky u filtrů je možné sestavovat pouze stylem ATRIBUT OPERÁTOR HODNOTA, nelze tedy např. porovnávat dva atributy navzájem. Řetězcová hodnota se VŽDY uvádí v apostrofech (jinak bude chybně chápána jako název atributu a bude vyhozena chyba), pokud hodnota obsahuje apostrof, musí být znak zapsán jako dva apostrofy ''. U operátorů like a ilike je možné použít znak %, který nahrazuje žádný nebo libovolný počet znaků. Znak % lze používat pouze na začátku a konci hodnoty. Pokud je potřeba zapsat hodnotu null, je zapsána bez uvozovek. Datum je nutné zapsat ve formátu: `dd.MM.yyyy HH:mm:ss.SSS` nebo zkráceně bez času `dd.MM.yyyy`. Pro boolean hodnoty se uvádí hodnota 'true' nebo 1 pro true a 'false' nebo 0 pro false, textové reprezentace musí být uvedeny v apostrofech.

Podmínky jsou omezeny na počet porovnávaných hodnot. U výrazu `jmeno = 'petr' and id in ('1', '2', '3')` je počet podmínek 4. Maximální bezpečný počet je 1000, ale EOS toto nijak nekontroluje. Při použití vyššího počtu může, ale nemusí dotaz projít. Toto je z důvodu, že EOS do některých dotazů přidává vlastní podmínky a tudíž se může stát, že bude překročen limit DB serveru na velikost podmínky.

#### Operátory

- = - operátor nelze použít na hodnotu null
- is null - test null hodnoty
- is not null - test na ne-null hodnotu
- <> - operátor nelze použít na hodnotu null
- <
- >
- <=
- >=
- like - u operátoru lze použít znak %, ale pouze na začátku a na konci
- ilike - u operátoru lze použít znak %, ale pouze na začátku a na konci

#### Operandy

- and
- or

#### Příklad filtru

Příklad zapsání filtru na osoby, jejichž uživatelské jméno je "kolomaznik" a titul začíná na 'i': `username = "kolomaznik" and degreeBefore ilike 'i%'`

##### Příklad načtení seznamu všech organizačních jednotek

     EosOrgUnits rootOU = WS.getRootOrgUnits(sid, null);
     // Zpracování kořenových organizačních jednotek ...
     for (EosOrgUnit ou : rootOU.getOrgUnits()) {
       WOOrgEntities children = WS.getNextOrgEntities(sid, ou.getId(), EosIdType.OU, EosOrgStructDepth.OU, null);
       EosOrgUnits ous = children.getOrgUnits();
       // Zpracování organizačních jednotek ...
       while (children.getPaging().getNext()) {
         children = WS.getNextOrgEntities(children.getPaging().getLid());
         ous = children.getOrgUnits();
         // Zpracování organizačních jednotek ...
       }
     }

Seznam atributů dle kterých lze filtrovat osoby:

- id - identifikátor osoby
- degreeBefore - titul před jménem
- firstname1 - první křestní jméno
- firstname2 - druhé křestní jméno
- surname1 - první příjmení
- surname2 - druhé příjmení
- degreeAfter - titul za jménem
- signature - iniciály
- abbrev - zkratka pracovníka
- userName - přihlašovací jméno osoby
- displayName - zobrazované jméno osoby
- passwordChangeRequested - příznak, jestli si uživatel musí změnit heslo (true/false)
- personalNumber - osobní číslo
- entranceDate - datum nástupu
- terminationDate - datum ukonční
- email - email osoby
- locked - příznak uzamčení osoby v Active Directory (true/false)
- disabled - příznak zakázání osoby v Active Directory (true/false)
- publicable - příznak jestli osobu zobrazovat na internetu (true/false)
- loginEnabled - informace jestli se může osoba přihlásit do EOSu (true/false)

## Seznam poskytovaných metod

Název | Popis
--- | ---
deletePerson | Metoda provede odstranění osoby.
findDirectSupervisorsForPersonInOrgRoleTree | Nalezne přímé vedoucí požadované osoby.
findDirectSupervisorsForPersonInOrgStructure | Nalezne přímé vedoucí požadované osoby.
findDirectSupervisorsForPersonInPrimAssign | Nalezne přímé vedoucí (nadřízené) pro primární zařazení osoby z parametru.
findOrgUnitsBySystemType | Načtení všech organizačních jednotek, které jsou označeny předaným systémovým typem.
findPersonsByAttributeValue | Najde všechny osoby, které mají přiřazenou danou hodnotu atributu nebo tuto hodnotut zdědily z nadřazené entity.
findPersonsByDirectAttributeValue | Najde všechny osoby, které mají přímo přiřazenou danou hodnotu atributu.
findPersonsByFilter | Hledání osob podle daného filtru.
findPersonsByIds | Hledání osob podle předaného seznamu identifikátorů.
findPersonsByOrgUnit | Načte seznam osob, které jsou přiřazeny kdekoliv pod předanou organizační jednotkou; jedná se o všechny osoby pod organizační jednotkou bez ohledu na zanoření stromu organizační struktury.
findSubordinatePersonsByPersonInRolesInOrgRoleTree | Najde všechny podřízené osoby k danému seznamu zařazení vedoucích.
findSubordinatePersonsInOrgRoleTree | Najde všechny podřízené osoby k danému vedoucímu.
findSupervisorsInOrgUnit | Služba slouží k nalezení vedoucích osob v organizační jednotce.
getBinStructure |
getNextPersons | Načtení další části stránkovaného seznamu osob.
getOrgStructParents | Načtení nadřazených entit až ke kořeni k předané entitě.
getOrgUnitById | Metoda nalezne organizační jednotku dle daného identifikátoru.
getOrganizationRoleTypes | Nalezne seznam typů organizačních rolí v aktuální organizaci.
getOrganizationUnitTypes | Nalezne seznam typů organizačních jednotek v aktuální organizaci.
getRootOrgUnits | Načtení všech kořenových organizačních jednotek.
isOrgStructureChanged | Zjistí, jestli nastala zaměna v organizační struktuře nebo v přidělení práv po zadaném datumu.
isPersonInRoleValid | Zjistí, jestli jsou platné datumu začátku a ukončení poměru v zařazení osoby.
isPersonValid | Zjistí, jestli je osoba validní.

## Seznam struktur dat

Název | Popis
--- | ---
Cz.marbes.eos4.module.ws.v4.enums.wo.types.WOBinEntityType | Vyp vrácených entit.
EosBuilding | Budova, obsahuje položky adresy.
EosBuildingHouseNumberType | Typ čísla domovního.
EosContact | Hodnota kontaktu.
EosContacts | Objekt obsahující seznam kontaktů.
EosEntityIdType | Typ entity organizační struktury.
EosFloor | Patro.
EosGroupRole | Skupinová role.
EosGroupRoles | Objekt obsahující seznam skupinových rolí.
EosIds | Objekt obsahující seznam id.
EosLocation | Umístění a pracoviště (budova, místnost a patro).
EosLocationIds | Id objektů umístění a pracoviště (id budovy, patra a místnosti).
EosOrgEntities | Objekt obsahuje seznamy entit organizační struktury.
EosOrgRole | Organizační role.
EosOrgRoleType | Typ organiční role.
EosOrgRoleTypeSystemCode | Systémový kód, který označí typ organizační role.
EosOrgRoleTypes | Objekt obsahuje seznam typů organizačních rolí.
EosOrgRoles | Objekt obsahuje seznam organizačních rolí.
EosOrgStructRespFilter | Objekt definuje rozsah dat, které se budou u entity organizační struktury plnit.
EosOrgStructRespFilters | Objekt definuje rozsah dat, které se budou u entit organizační struktury plnit.
EosOrgUnit | Organizační jednotka.
EosOrgUnitType | Typ organiční jednotky.
EosOrgUnitTypeSystemCode | Systémový kód, který označí typ organizační jednotky.
EosOrgUnitTypes | Objekt obsahuje seznam typů organizačních jednotek.
EosOrgUnits | Objekt obsahuje seznam organizačních jednotek.
EosPaging | Objekt obsahující informace pro stránkování.
EosPerson | Osobu.
EosPersonAssignment | Zařazení osoby.
EosPersonAssignments | Objekt obsahuje seznam zařazení osoby.
EosPersonRespFilter | Objekt definuje rozsah dat, které se budou u osoby plnit.
EosPersonSupervisor | WO objekt představující vedoucího.
EosPersons | Objekt obsahuje seznam osob.
EosPersonsInAssignment | WO objekt osbahující primární zařazení osoby a k němu seznam vedoucích osob.
EosPersonsInAssignments | WO objekt obsahující seznam jednotlivých zařazení uživatele a jejich vedoucích osob.
EosPhopne | Telefon.
EosPirSubordinate | WO objekt osbahující zařazení vedoucí osoby a seznam podřízených osob.
EosPirSubordinates | WO objekt obsahující seznam vedoucích osob a jejich podřízených.
EosRoleIdType | Typ id role.
EosRoom | Místnost.
EosUserField | Hodnota uživatelského pole.
EosUserFields | Objekt obsahuje seznam hodnot uživatelských polí.

## Výjimky

### EosIllegalArgumentException

Reprezentuje stav, kdy byl předán bevalidní vstupní argument do metody webové služby.

### EosInternalException

Reprezentuje neočekávanou výjimku při volání webových služeb.

### EosNoPrimaryAssignmentException

Osoba nemá definované primární zařazení. Většinou nastává v případě, že má osoba několik zařazení se stejnou hodnotu obsazení.

### EosObjectNotFoundException

Objekt nebyl podle předaného id nalezen.

### EosPersonNotSupervisorException

Zadaná osoba není vedoucím pro žádnou organizační roli.

### EosSessionNotFoundException

Session s předaným id nebyla nalezena.

## Popis poskytovaných metod

### deletePerson

Metoda provede odstranění osoby.

#### Předpis

void deletePerson (String personId)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
personId | String | Ano | identifikátor osoby, která bude odstraněna

#### Výjimky

EosIllegalArgumentException - nevalidní vstup metody
EosObjectNotFoundException - osoba nebyla dle identifikátoru nalezena
EosInternalException - interní chyba systému

### findDirectSupervisorsForPersonInOrgRoleTree

Nalezne přímé vedoucí požadované osoby. Postupně prochází stromem vedoucích rolí a hledá vedoucí. Pokud role typu vedoucí neobsahuje žádného vedoucího, pokračuje v hledání výše.

Metoda najde všechny vedoucí pro jednotlivé zařazení hledané osoby. Každý vedoucí navíc obsahuje systémový kod organizační jednotky, pod kterou spadá. Pro každé zařazení ještě zjistí jestli se jedná o primární zařazení hledané osoby.

Pokud je zadán systémový kod OJ, jsou nalezeni pouze vedoucí, kteří spadají do tohoto typu a jsou v nebližší organizační jednotce k požadované osobě.

#### Předpis

EosPersonsInAssignments findDirectSupervisorsForPersonInOrgRoleTree (String sid, String personId, EosOrgUnitTypeSystemCode unitType, EosPersonRespFilter respFilter)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
sid | String | Ne | session id
personId | String | Ano | eosId osoby, které hledáme nadřízené
unitType | EosOrgUnitTypeSystemCode | Ne | systémový kód typu organizační jednotky, do které má přímo spadat vedoucí. Pokud je null, bude nalezen první vedoucí jakéhokoliv typu. Pokud je nastaven, poté hledáme v nejbližší nadřazené OJ, která je daného systémového typu a obsahuje vedoucí.
respFilter | EosPersonRespFilter | Ne | objekt v kterém si lze určit, jaká další data se mají v osobách vracet (např. jestli se mají vracet i kontakty, uživatelská pole atd.)

#### Výstup

EosPersonsInAssignments - seznam přímých nadřízených rozdělených dle zařazení osoby

#### Výjimky

EosIllegalArgumentException - byl předán nevalidní parametr
EosObjectNotFoundException - osoba nebyla nalezena
EosSessionNotFoundException - nebyla nalezena session
EosInternalException - vnitřní chyba systému

### findDirectSupervisorsForPersonInOrgStructure

Nalezne přímé vedoucí požadované osoby. Postupně prochází stromem organizační struktury a hledá organizační role s typem vedoucí v jednotlivých OJ. Pokud role typu vedoucí neobsahuje žádného vedoucího, pokračuje v hledání výše. Metoda najde všechny vedoucí pro jednotlivé zařazení hledané osoby, případně pouze pro primární, pokud je to určeno parametrem metody. Každý vedoucí navíc obsahuje systémový kod organizační jednotky, pod kterou spadá. Pokud je zadán systémový kód OJ, jsou nalezeni pouze vedoucí, u kterých je jejich organizační role zařazena pod organizační jednotkou s tímto sytémovým kódem.

#### Předpis

EosPersonsInAssignments findDirectSupervisorsForPersonInOrgStructure (String sid, String personId, EosOrgUnitTypeSystemCode unitType, Boolean onlyForPrimaryAssignment, EosPersonRespFilter respFilter)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
sid | String | Ne | session id
personId | String | Ano | identifikátor osoby pro kterou chceme nalézt vedoucí
unitType | EosOrgUnitTypeSystemCode | Ne | systémový kód typu organizační jednotky, do které má přímo spadat vedoucí. Pokud je null, bude nalezen první vedoucí jakéhokoliv typu. Pokud je nastaven, poté hledáme v nejbližší nadřazené OJ, která je daného systémového typu a obsahuje vedoucí.
onlyForPrimaryAssignment | Boolean | Ano | pokud je true, hledá se jen pro primární zařazení dané osoby
respFilter | EosPersonRespFilter | Ne | objekt v kterém si lze určit, jaká další data se mají v osobách vracet (např. jestli se mají vracet i kontakty, uživatelská pole atd.)

#### Výstup

EosPersonsInAssignments - informace o vedoucích

#### Výjimky

EosIllegalArgumentException - byl předán nevalidní parametr
EosObjectNotFoundException - osoba nebyla nalezena
EosNoPrimaryAssignmentException - vniřní chyba systému
EosSessionNotFoundException - nebyla nalezena session
EosInternalException - pokud osoba nemá žádné primární zařazení

### findDirectSupervisorsForPersonInPrimAssign

Nalezne přímé vedoucí (nadřízené) pro primární zařazení osoby z parametru. Z organizační jednotky primárního zařazení osoby jsou procházeny všechny nadřazené organizační jednotky až ke kořeni. V každé této jednotce jsou hledáni její vedoucí. Jsou vráceni vedoucí z první organizační jednotky, které nějaké vedoucí obsahuje.

#### Předpis

EosPersons findDirectSupervisorsForPersonInPrimAssign (String sid, String personId, EosPersonRespFilter respFilter)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
sid | String | Ne | session id
personId | String | Ano | identifikátor osoby pro kterou chceme nalézt vedoucí
respFilter | EosPersonRespFilter | Ne | objekt v kterém si lze určit, jaká další data se mají v osobách vracet (např. jestli se mají vracet i kontakty, uživatelská pole atd.)

#### Výstup

EosPersons - nalezení vedoucí osoby

#### Výjimky

EosIllegalArgumentException - byl předán nevalidní parametr
EosObjectNotFoundException - osoba nebyla nalezena
EosNoPrimaryAssignmentException - pokud osoba nemá žádné primární zařazení
EosSessionNotFoundException - nebyla nalezena session
EosInternalException - vniřní chyba systému

### findOrgUnitsBySystemType

Načtení všech organizačních jednotek, které jsou označeny předaným systémovým typem.

#### Předpis

EosOrgUnits findOrgUnitsBySystemType (String sid, EosOrgUnitTypeSystemCode typeSystemCode, EosOrgStructRespFilter respFilter)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
sid | String | Ne | session id
typeSystemCode | EosOrgUnitTypeSystemCode | Ano | systémový typ organizačních jednotek které chceme nalézt
respFilter | EosOrgStructRespFilter | Ne | objekt v kterém si lze určit, jaká další data se mají v jednotkách vracet (např. jestli se mají vracet i typy, uživatelská pole atd.)

#### Výstup

EosOrgUnits - nalezené organizační jednotky předaného

#### Výjimky

EosSessionNotFoundException - nebyla nalezena session
EosInternalException - vnitřní chyba systému
EosIllegalArgumentException - neplatné vstupní parametry

### findPersonsByAttributeValue

Najde všechny osoby, které mají přiřazenou danou hodnotu atributu nebo tuto hodnotut zdědily z nadřazené entity.

#### Předpis

EosPersons findPersonsByAttributeValue (String sid, String attrId, String attrValue, EosPersonRespFilter respFilter)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
sid | String | Ne | session id
attrId | String | Ano | id atributu, jehož přiřazená hodnota je vyhledávána
attrValue | String | Ano | hodnota atributu, kterou mají nalezené osoby přiřazenu nebo zděděnu
respFilter | EosPersonRespFilter | Ne | response filtr kde lze říci, jaká další data se mají donačíst k vrácenému seznamu osob

#### Výstup

EosPersons - seznam nalezených osob s přiřazenou hodnotou atributu. Seznam je stránkovaný. Pokud se počet osob nevejde do jedné odpovědi, další osoby jsou získány metodou {@link #getNextPersons(String, String)}.

#### Výjimky

EosObjectNotFoundException - není nalezen atribut podle id
EosSessionNotFoundException - není nalezena session podle id
EosInternalException - vnitřní chyba v systému
EosIllegalArgumentException - špatně zadaná vstupní data

### findPersonsByDirectAttributeValue

Najde všechny osoby, které mají přímo přiřazenou danou hodnotu atributu.

#### Předpis

EosPersons findPersonsByDirectAttributeValue (String sid, String applicationId, String attrName, String attrValue, EosPersonRespFilter respFilter)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
sid | String | Ne | session id
applicationId | String | Ano | id aplikace, které patří atribut s daným názvem
attrName | String | Ano | název atributu, jehož přiřazená hodnota je vyhledávána
attrValue | String | Ano | hodnota atributu, kterou mají nalezené osoby přiřazenu nebo zděděnu
respFilter | EosPersonRespFilter | Ne | response filtr kde lze říci, jaká další data se mají donačíst k vrácenému seznamu osob

#### Výstup

EosPersons - seznam nalezených osob s přiřazenou hodnotou atributu. Seznam je stránkovaný. Pokud se počet osob nevejde do jedné odpovědi, další osoby jsou získány metodou {@link #getNextPersons(String, String)}.

#### Výjimky

EosObjectNotFoundException - není nalezen atribut podle id
EosSessionNotFoundException - není nalezena session podle id
EosInternalException - vnitřní chyba v systému
EosIllegalArgumentException - špatně zadaná vstupní data

### findPersonsByFilter

Hledání osob podle daného filtru.

Pomocí parametrů lze nastavit, že budou vráceny jen osoby přiřazené k nějaké entitě. Pokud chceme takto seznam osob omezit, musí být předán identifikátor organizační entity a typ entity. Typy entit:

- OU - Osoby přiřazené do organizační jednotky a organizačních/skupinových rolí pod touto jednotkou (pokud organizační jednotka obsahuje další jednotky, pak osoby z těchto jednotek vráceny nejsou).
- OR - Osoby které jsou přiřazeny přímo na organizační roli
- GR - Osoby které jsou přiřazeny přímo na skupinovou roli

#### Předpis

EosPersons findPersonsByFilter (String sid, String filter, String entityId, EosEntityIdType entityIdType, EosPersonRespFilter respFilter)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
sid | String | Ne | session id
filter | String | Ne | textový filtr osob, kterým můžeme omezit vrácený seznam osob
entityId | String | Ne | identifikátor entity organizační struktury, pro kterou se budou vracet osoby
entityIdType | EosEntityIdType | Ne | typ entity, na které odkazuje entityId
respFilter | EosPersonRespFilter | Ne | response filtr kde lze říci, jaká další data se mají donačíst k vrácenému seznamu osob

#### Výstup

EosPersons - seznam osob vyhovujících předanému filtru

#### Výjimky

EosIllegalArgumentException - byl předán nevalidní parametr
EosObjectNotFoundException - entita nebyla dle identifikátoru nalezena
EosSessionNotFoundException - neexistuje session
EosInternalException - vniřní chyba systému

### findPersonsByIds

Hledání osob podle předaného seznamu identifikátorů.

#### Předpis

EosPersons findPersonsByIds (String sid, EosIds personIds, EosPersonRespFilter respFilter)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
sid | String | Ne | session id
personIds | EosIds | Ano | seznam identifikátorů osob
respFilter | EosPersonRespFilter | Ne | response filtr kde lze říci, jaká další data se mají donačíst k vrácenému seznamu osob

#### Výstup

EosPersons - seznam nalezených osob podle předaných id, počet prvků nemusí odpovídat předanému seznamu id v případě, že některé osoby nebyly nalezeny

#### Výjimky

EosIllegalArgumentException - byl předán nevalidní parametr
EosSessionNotFoundException - neexistuje session
EosInternalException - vniřní chyba systému

### findPersonsByOrgUnit

Načte seznam osob, které jsou přiřazeny kdekoliv pod předanou organizační jednotkou; jedná se o všechny osoby pod organizační jednotkou bez ohledu na zanoření stromu organizační struktury.

Seznam osob pod organizační jednotkou můžeme ještě omezit dle textového filtru.

#### Předpis

EosPersons findPersonsByOrgUnit (String sid, String filter, String orgUnitId, EosPersonRespFilter respFilter)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
sid | String | Ne | session id
filter | String | Ne | textový filtr osob, kterým můžeme omezit vrácený seznam osob
orgUnitId | String | Ano | identifikátor organizační jednotky
respFilter | EosPersonRespFilter | Ne | response filtr kde lze říci, jaká další data se mají donačíst k vrácenému seznamu osob

#### Výstup

EosPersons - seznam všech osob kdekoli pod danou organizační jednotkou

#### Výjimky

EosIllegalArgumentException - byl předán nevalidní parametr
EosObjectNotFoundException - organizační jednotka nebyla dle identifikátoru nalezena
EosSessionNotFoundException - neexistuje session
EosInternalException - vniřní chyba systému

### findSubordinatePersonsByPersonInRolesInOrgRoleTree

Najde všechny podřízené osoby k danému seznamu zařazení vedoucích.

Způsob hledání:
1)Pro všechna zařazení vedoucích najde nadřazené organizační role (způsobí výjimku, pokud není role typu vedoucí)
2)Podle toho, jestli hledáme přímé podřízené nebo všechny nalezne buď jen přímé potomky vedoucí role, nebo i všechny další.
3)Ve všech vybraných rolích nalezne námi hledané osoby podřízené vedoucím zařazením.

#### Předpis

EosPirSubordinates findSubordinatePersonsByPersonInRolesInOrgRoleTree (String sid, EosIds supervisorPirIds, Boolean directSupervisor, EosPersonRespFilter respFilter)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
sid | String | Ne | session id
supervisorPirIds | EosIds | Ano | seznam identifikátorů zařazení daných vedoucích
directSupervisor | Boolean | Ano | true, pokud hledáme přímé podřízené, nebo false pro všechny podřízené
respFilter | EosPersonRespFilter | Ne | objekt, ve kterém si lze určit, jaká další data se mají v osobách vracet (např. jestli se mají vracet i kontakty, uživatelská pole atd.)

#### Výstup

EosPirSubordinates - seznam podřízených osob daným vedoucím

#### Výjimky

EosObjectNotFoundException - nebyla nalezena osoba vedoucího v databázi
EosInternalException - vnitřní chyba systému
EosPersonNotSupervisorException - osoba vedoucího není zařazena v žádné roli typu vedoucí
EosIllegalArgumentException - byl předán nevalidní parametr
EosSessionNotFoundException - nebyla nalezena session

### findSubordinatePersonsInOrgRoleTree

Najde všechny podřízené osoby k danému vedoucímu.

Způsob hledání:
1)Nejprve pro vedoucího najde všechny role, ve kterých je zařazen a které jsou typu vedoucí.
2)Podle toho, jestli hledáme přímé podřízené nebo všechny nalezne buď jen přímé potomky vedoucí role, nebo i všechny další.
3)Ve všech vybraných rolích nalezne námi hledané osoby podřízené vedoucímu.

#### Předpis

EosPersons findSubordinatePersonsInOrgRoleTree (String sid, String supervisorId, Boolean directSupervisor, EosPersonRespFilter respFilter)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
sid | String | Ne | session id
supervisorId | String | Ano | identifikátor vedoucí osoby, které hledáme podřízené
directSupervisor | Boolean | Ano | true, pokud hledáme přímé podřízené, nebo false pro všechny podřízené
respFilter | EosPersonRespFilter | Ne | objekt, ve kterém si lze určit, jaká další data se mají v osobách vracet (např. jestli se mají vracet i kontakty, uživatelská pole atd.)

#### Výstup

EosPersons - seznam podřízených osob danému vedoucímu

#### Výjimky

EosObjectNotFoundException - nebyla nalezena osoba vedoucího v databázi
EosInternalException - vnitřní chyba systému
EosPersonNotSupervisorException - osoba vedoucího není zařazena v žádné roli typu vedoucí
EosIllegalArgumentException - byl předán nevalidní parametr
EosSessionNotFoundException - nebyla nalezena session

### findSupervisorsInOrgUnit

Služba slouží k nalezení vedoucích osob v organizační jednotce. Postupně jsou nalezeny všechny organizační role typu vedoucí. Vrácena je množina všech osob zařazených v rolích typu vedoucí.

Služba nezohledňuje hierarchii rolí ve struktuře organizačních rolí. Všechny role jsou si při hledání vedoucích rovné, hledají se pouze vedoucí role podle typu.

Vedoucí osoby jsou hledány pouze v zadané organizační jednoce.

#### Předpis

EosPersons findSupervisorsInOrgUnit (String sid, String orgUnitId, EosPersonRespFilter respFilter)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
sid | String | Ne | session id
orgUnitId | String | Ano | eosId osoby, které hledáme nadřízené ,
respFilter | EosPersonRespFilter | Ne | objekt v kterém si lze určit, jaká další data se mají v osobách vracet (např. jestli se mají vracet i kontakty, uživatelská pole atd.)

#### Výstup

EosPersons - seznam vedoucích osob v předané organizační jednotce

#### Výjimky

EosIllegalArgumentException - byl předán nevalidní parametr
EosObjectNotFoundException - organizační jednotka nebyla pod id nalezena
EosSessionNotFoundException - nebyla nalezena session
EosInternalException - vnitřní chyba systému

### getBinStructure

#### Předpis

EosOrgEntities getBinStructure (String sid, Cz.marbes.eos4.module.ws.v4.enums.wo.types.WOBinEntityType binEntityType, EosOrgStructRespFilters respFilters)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
sid | String | Ne | session id
binEntityType | Cz.marbes.eos4.module.ws.v4.enums.wo.types.WOBinEntityType | Ano | typ vracených entit
respFilters | EosOrgStructRespFilters | Ne | response filtr na jednotlivé vracené typy entit

#### Výstup

EosOrgEntities - Požadované entity

#### Výjimky

EosIllegalArgumentException - byl předán nevalidní parameter
EosSessionNotFoundException - nebyla nalezena session
EosInternalException - vnitřní chyba systému

### getNextPersons

Načtení další části stránkovaného seznamu osob.

#### Předpis

EosPersons getNextPersons (String sid, String lid)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
sid | String | Ne | session id
lid | String | Ano | list id

#### Výstup

EosPersons - další část stránkovaného seznamu osob

#### Výjimky

EosIllegalArgumentException - byl předán nevalidní parametr
EosSessionNotFoundException - neexistuje session
EosInternalException - vniřní chyba

### getOrgStructParents

Načtení nadřazených entit až ke kořeni k předané entitě.

#### Předpis

EosOrgEntities getOrgStructParents (String sid, String entityId, EosEntityIdType entityIdType, EosOrgStructRespFilters respFilters)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
sid | String | Ne | session id
entityId | String | Ano | id entity organizační struktury, ke které se budou vracet nadřazené
entityIdType | EosEntityIdType | Ano | typ entity, na které odkazuje entityId
respFilters | EosOrgStructRespFilters | Ne | response filtr

#### Výstup

EosOrgEntities - nadřazené entity k předané

#### Výjimky

EosIllegalArgumentException - byl předán nevalidní parametr
EosObjectNotFoundException - entita nebyla nelezena
EosSessionNotFoundException - nebyla nalezen session
EosInternalException - vnitřní chyba

### getOrgUnitById

Metoda nalezne organizační jednotku dle daného identifikátoru.

#### Předpis

EosOrgUnit getOrgUnitById (String sid, String orgUnitId, EosOrgStructRespFilter respFilter)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
sid | String | Ne | session id
orgUnitId | String | Ano | identifikátor organizační jednotky kterou chceme nalézt
respFilter | EosOrgStructRespFilter | Ne | filtr který umožňuje určit, jaká data budou vrácena v objektu organizační jednotky (např. jestli mají být naplněny i kontakty, typ, umístění atd.)

#### Výstup

EosOrgUnit - nalezená organizační jednotka

#### Výjimky

EosObjectNotFoundException - pokud se organizační jednotku nepodařilo dle identifikátoru nalézt
EosSessionNotFoundException - neexistující session
EosIllegalArgumentException - neplatné vstupní parametry
EosInternalException - vnitřní chyba systému

### getOrganizationRoleTypes

Nalezne seznam typů organizačních rolí v aktuální organizaci.

#### Předpis

EosOrgRoleTypes getOrganizationRoleTypes ()

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---

#### Výstup

EosOrgRoleTypes - seznam typů organizačních rolí v organizaci

#### Výjimky

EosInternalException - vniřní chyba systému

### getOrganizationUnitTypes

Nalezne seznam typů organizačních jednotek v aktuální organizaci.

#### Předpis

EosOrgUnitTypes getOrganizationUnitTypes ()

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---

#### Výstup

EosOrgUnitTypes - seznam typů organizačních jednotek v organizaci

#### Výjimky

EosInternalException - vniřní chyba systému

### getRootOrgUnits

Načtení všech kořenových organizačních jednotek.

#### Předpis

EosOrgUnits getRootOrgUnits (String sid, EosOrgStructRespFilter respFilter)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
sid | String | Ne | session id
respFilter | EosOrgStructRespFilter | Ne | objekt v kterém si lze určit, jaká další data se mají v jednotkách vracet (např. jestli se mají vracet i typy, uživatelská pole atd.)

#### Výstup

EosOrgUnits - kořenové organizační jednotky

#### Výjimky

EosObjectNotFoundException - neexistující session
EosSessionNotFoundException - nebyla nalezena session
EosInternalException - vnitřní chyba

### isOrgStructureChanged

Zjistí, jestli nastala zaměna v organizační struktuře nebo v přidělení práv po zadaném datumu.

#### Předpis

boolean isOrgStructureChanged (Date dateFrom)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
dateFrom | Date | Ano | datum, po kterém měla vzniknout změna dat

#### Výstup

boolean - true, pokud změna dat po zadaném datu nastala, jinak false

#### Výjimky

EosIllegalArgumentException - byl předán nevalidní parameter
EosInternalException - interní chyba systému

### isPersonInRoleValid

Zjistí, jestli jsou platné datumu začátku a ukončení poměru v zařazení osoby. Pokud je osoba daného zařazení neplatná, není ani její zařazení platné.

#### Předpis

boolean isPersonInRoleValid (String pirId)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
pirId | String | Ano | id zařazení, pro které chceme zjistit platnost

#### Výstup

boolean - true, pokud je datum nástupu v minulosti a datum ukončení není nastaven nebo je v budoucnosti

#### Výjimky

EosIllegalArgumentException - pokud je špatně zadaný vstup metody
EosObjectNotFoundException - nebylo nalezeno zařazení osoby podle předaného id.
EosInternalException - vnitřní chyba systému

### isPersonValid

Zjistí, jestli je osoba validní. Tzn. jestli není zakázaná nebo uzamčená a jestli má platné datumy nástupu a ukočení.

#### Předpis

boolean isPersonValid (String personId)

#### Parametry

Parametr | Typ | Povinný | Popis
--- | --- | --- | ---
personId | String | Ano | id osoby, pro kterou chceme zjistit její platnost

#### Výstup

boolean - true, pokud je osoba povolena, není uzamčena, její datum nástupu je v minulosti a datum ukončení není nastaven nebo je v budoucnosti

#### Výjimky

EosIllegalArgumentException - pokud je špatně zadaný vstup metody
EosObjectNotFoundException - nebyla nalezena osoba podle předaného id.
EosInternalException - vnitřní chyba systému

## Popis struktur dat

### Cz.marbes.eos4.module.ws.v4.enums.wo.types.WOBinEntityType

Vyp vrácených entit.

Hodnota | Popis
--- | ---
ORG_UNITS | Jen organizační jednoty.
ROLES | Organizační jednoty, skupinové a organizační role.
PERSON_ASSIGNMENTS | Organizační jednoty + skupinové a organizační role + zařazení osob do rolí.

### EosBuilding

Budova, obsahuje položky adresy.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
id | String | Ne | Id.
name | String | Ne | Název budovy.
externRegistryId | String | Ne | Externí id budovy. Vazba do registrů.
orNumber | String | Ne | Číslo orientační.
zipCode | String | Ne | PSČ.
houseNumber | String | Ne | Číslo domovní.
houseNumberType | EosBuildingHouseNumberType | Ne | Typ čísla domovního.
orNumberLetter | String | Ne | Písmeno čísla orientačního.
cityPart | String | Ne | Městská část.
municipalityPart | String | Ne | Část obce.
municipality | String | Ne | Obec.
district | String | Ne | Okres.
region | String | Ne | Kraj.
country | String | Ne | Stát.
mapUrl | String | Ne | Odkaz do mapy.
street | String | Ne | Ulice.

### EosBuildingHouseNumberType

Typ čísla domovního.

Hodnota | Popis
--- | ---
BLANK | Bez typu čísla domovního.
DESCRIPTIVE | Číslo popisné.
EVIDENTIAL | Číslo evidenční.
ALTERNATIVE | Číslo náhradní.

### EosContact

Hodnota kontaktu.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
id | String | Ne | Id vlastní hodnoty kontaktu.
contactId | String | Ne | Id kontaktu (typ kontaktu, např. id kontaktu, který eviduje fax).
value | String | Ne | Hodnota kontaktu, pokud se jedná o telefonní kontakt, je zde vyplněno číslo ve formátu <číslo> není definována předvolba ani linka <číslo>-<linka> není definována předvolba <předvolba>-<číslo>-<linka> a současně je vyplněna struktura phone.
comment | String | Ne | Komentář k hodnotě kontaktu.
phone | EosPhopne | Ne | V případě, že se jedná o telefonní kontakt, je vyplněna tato struktura.
primary | boolean | Ne | Příznak určuje, zda je daná hodnota kontaktu v rámci kontaktu (v rámci hodnot se stejným contactId) primární.

### EosContacts

Objekt obsahující seznam kontaktů.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
contacts | List<EosContact> | Ne | Seznam kontaktů.

### EosEntityIdType

Typ entity organizační struktury.

Hodnota | Popis
--- | ---
OU | Organizační jednotka.
OR | Organizační role.
GR | Skupinová role.

### EosFloor

Patro.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
id | String | Ne | Id.
name | String | Ne | Název patra.

### EosGroupRole

Skupinová role.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
id | String | Ne | Id entity, nepovinné pouze při vytváření entity.
contacts | EosContacts | Ne | Seznam kontaktů.
location | EosLocation | Ne | Umístění a pracoviště.
userFields | EosUserFields | Ne | Uživatelská pole.
name | String | Ne | Název skupinové role.
orgUnitId | String | Ne | Organizační jednotka, do které role patří.
altName | String | Ne | Alternativní název skupinové role.
desc | String | Ne | Popis skupinové role.
publicable | Boolean | Ne | Publikovat skupinovou roli ve veřejné (internetové) verzi zobrazení?
code | String | Ne | Kód skupinové role.
sentence | Integer | Ne | Pořadí skupinové role v rámci nadřízené organizační jednotky. Pokud není potřeba, uvede se hodnota 0.

### EosGroupRoles

Objekt obsahující seznam skupinových rolí.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
groupRoles | List<EosGroupRole> | Ne | Seznam skupinových rolí.

### EosIds

Objekt obsahující seznam id.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
ids | List<String> | Ne | Seznam identifikátorů.

### EosLocation

Umístění a pracoviště (budova, místnost a patro).

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
building | EosBuilding | Ne | Informace o budově.
room | EosRoom | Ne | Informace o místnosti.
floor | EosFloor | Ne | Informace o patře.

### EosLocationIds

Id objektů umístění a pracoviště (id budovy, patra a místnosti).

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
buildingId | String | Ne | Id budovy.
roomId | String | Ne | Id místnosti.
floorId | String | Ne | Id patra.

### EosOrgEntities

Objekt obsahuje seznamy entit organizační struktury.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
orgUnits | EosOrgUnits | Ne | Seznam organizačních jednotek.
orgRoles | EosOrgRoles | Ne | Seznam organizačních rolí.
groupRoles | EosGroupRoles | Ne | Seznam skupinových rolí.
personAssignments | EosPersonAssignments | Ne | Seznam zařazení osob.
paging | EosPaging | Ne | Stránkování.

### EosOrgRole

Organizační role.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
id | String | Ne | Id entity, nepovinné pouze při vytváření entity.
contacts | EosContacts | Ne | Seznam kontaktů.
location | EosLocation | Ne | Umístění a pracoviště.
userFields | EosUserFields | Ne | Uživatelská pole.
name | String | Ne | Název organizační role.
orgUnitId | String | Ne | Organizační jednotka, do které role patří.
altName | String | Ne | Alternativní název organizační role.
desc | String | Ne | Popis organizační role.
type | EosOrgRoleType | Ne | Typ organizační role.
publicable | Boolean | Ne | Publikovat organizační roli ve veřejné (internetové) verzi zobrazení?
code | String | Ne | Kód organizační role.
sentence | Integer | Ne | Pořadí organizační role v rámci nadřízené organizační jednotky. Pokud není potřeba, uvede se hodnota 0.

### EosOrgRoleType

Typ organiční role.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
name | String | Ne | Název typu organizační role.
code | String | Ne | Kód typu organizační role.
desc | String | Ne | Popis typu organizační role.
abbrev | String | Ne | Zkratka typu organizační role
systemCode | EosOrgRoleTypeSystemCode | Ne | Systémový kód organizační role.

### EosOrgRoleTypeSystemCode

Systémový kód, který označí typ organizační role.

Hodnota | Popis
--- | ---
SUPERVISOR | Pokud je typ organizační role označena tímto kódem, tak tento typ představuje vedoucího organizační jednotky).

### EosOrgRoleTypes

Objekt obsahuje seznam typů organizačních rolí.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
orgRoleTypes | List<EosOrgRoleType> | Ne | Seznam typů organizačních rolí.

### EosOrgRoles

Objekt obsahuje seznam organizačních rolí.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
orgRoles | List<EosOrgRole> | Ne | Seznam organizačních rolí.

### EosOrgStructRespFilter

Objekt definuje rozsah dat, které se budou u entity organizační struktury plnit.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
locationData | boolean | Ne | Mají se plnit data umístění a pracoviště? Jedná se o vlastní informace o budově, místnosti a patře.
allUserFields | boolean | Ne | Mají se plnit všechna uživatelská pole? Pokud bude true, bude se plnit všechna, pokud bude false, budou se plnit pouze ta, která jsou uvedena v atributu userFieldCodes.
userFieldCodes | List<String> | Ne | Seznam kódů uživatelských polí, která se mají plnit, je možné nastavit pouze v případě, že allUserFields má hodnotu false.
allContacts | boolean | Ne | Mají se plnit všechny kontakty? Pokud je true, plní se všechny kontakty, pokud je false, plní se pouze ty kontakty, které jsou definovány v contactIds.
contactIds | List<String> | Ne | Seznam id kontaktů, které se mají plnit, je možní nastavit pouze v případě, že allContacts má hodnotu false.
typeEntity | boolean | Ne | Má se plnit objekt typu organizační entity? (typ organizační role/typ organizační jednotky atp.)

### EosOrgStructRespFilters

Objekt definuje rozsah dat, které se budou u entit organizační struktury plnit.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
orgUnit | EosOrgStructRespFilter | Ne | Response filtr organizačních jednotek.
orgRole | EosOrgStructRespFilter | Ne | Response filtr organizačních rolí.
groupRole | EosOrgStructRespFilter | Ne | Response filtr skupinových rolí.
personAssignment | EosOrgStructRespFilter | Ne | Response filtr zařazení osoby.

### EosOrgUnit

Organizační jednotka.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
id | String | Ne | Id entity, nepovinné pouze při vytváření entity.
contacts | EosContacts | Ne | Seznam kontaktů.
location | EosLocation | Ne | Umístění a pracoviště.
userFields | EosUserFields | Ne | Uživatelská pole.
name | String | Ne | Název organizační jednotky.
parentId | String | Ne | Rodičovská organizační jednotka. Kořenová organizační jednotka má hodnotu null.
altName | String | Ne | Alternativní název organizační jednotky.
desc | String | Ne | Popis organizační jednotky.
abbrev | String | Ne | Zkratka organizační jednotky.
code | String | Ne | Kód organizační jednotky.
sentence | Integer | Ne | Pořadí organizační jednotky v rámci nadřízené organizační jednotky. Pokud není potřeba, uvede se hodnota 0.
type | EosOrgUnitType | Ne | Typ organizační jednotky.
publicable | Boolean | Ne | Publikovat organizační jednotku ve veřejné (internetové) verzi zobrazení?

### EosOrgUnitType

Typ organiční jednotky.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
name | String | Ne | Název typu organizační jednotky.
code | String | Ne | Kód typu organizační jednotky.
desc | String | Ne | Popis typu organizační jednotky.
abbrev | String | Ne | Zkratka typu organizační jednotky
systemCode | EosOrgUnitTypeSystemCode | Ne | Systémový kód organizační jednotky.

### EosOrgUnitTypeSystemCode

Systémový kód, který označí typ organizační jednotky.

Hodnota | Popis
--- | ---
DEPARTMENT | Pokud je typ organizační jednotky označena tímto kódem, tak tento typ představuje odbor.
SECTION | Pokud je typ organizační jednotky označena tímto kódem, tak tento typ představuje oddělení.
DIVISION | Pokud je typ organizační jednotky označena tímto kódem, tak tento typ představuje úsek/referát.
ADMINISTRATION | Pokud je typ organizační jednotky označena tímto kódem, tak tento typ představuje úřad.

### EosOrgUnitTypes

Objekt obsahuje seznam typů organizačních jednotek.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
orgUnitTypes | List<EosOrgUnitType> | Ne | Seznam typů organizačních jednotek.

### EosOrgUnits

Objekt obsahuje seznam organizačních jednotek.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
orgUnits | List<EosOrgUnit> | Ne | Seznam organizačních jednotek.

### EosPaging

Objekt obsahující informace pro stránkování.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
lid | String | Ne | List id nebo null, pokud stránkování není vyžadováno.
start | int | Ne | Index prvního záznamu, který byl aktuálně vrácen.
totalCount | int | Ne | Celkový počáteční záznamů.
hasNext | boolean | Ne | Příznak, zda jsou k dispozici ještě další záznamy.

### EosPerson

Osobu.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
id | String | Ne | Id osoby.
contacts | EosContacts | Ne | Kontakty.
location | EosLocation | Ne | Umístění a pracoviště.
userFields | EosUserFields | Ne | Uživatelská pole.
degreeBefore | String | Ne | Titul před jménem.
firstname1 | String | Ne | Jméno.
firstname2 | String | Ne | Druhéí jméno.
surname1 | String | Ne | Příjmení.
surname2 | String | Ne | Další příjmení.
degreeAfter | String | Ne | Titul za jménem.
signature | String | Ne | Iniciály.
abbrev | String | Ne | Zkratka.
userName | String | Ne | Uživatelské jméno.
displayName | String | Ne | Zorazované jméno.
personalNumber | String | Ne | Osobní číslo.
entranceDate | Date | Ne | Datum nástupu.
terminationDate | Date | Ne | Datum ukončení.
email | String | Ne | E-mail.
locked | Boolean | Ne | Je účet uzamčen pro přihlášení?
disabled | Boolean | Ne | Je osoba zakázaná? V případě zakázání nemá osoba žádná oprávnění ani aplikace.
publicable | Boolean | Ne | Publikovat osobu ve veřejné (internetové) verzi zobrazení?

### EosPersonAssignment

Zařazení osoby.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
id | String | Ne | Id zařazení osoby.
personId | String | Ne | Id osoby.
roleId | String | Ne | Id role, do které je osoba zařazená, uvádí se v kombinaci s atributem roleIdType.
roleIdType | EosRoleIdType | Ne | Typ role, do které je osoba zařazená, uvádí se v kombinaci s atributem roleId.
capacity | Integer | Ne | Kapacita - určuje míru času, který osoba věnuje pracovní pozici. Rozsah není omezen, ale ve většině případů jsou hodnoty v rozmezí 0-100.
degree | Integer | Ne | Obsazení - jedná se o míru angažovanosti dané pracovní pozici, nikoli čas, který je jí věnován. Např. výkonný ředitel bude mít tuto hodnotu vysokou, i když bude mít další úvazek a tomu bude věnovat více času (pole capacity). Podle této hodnoty se určuje primární zařazení. Rozsah není omezen, ale ve většině případů jsou hodnoty v rozmezí 0-100.
active | boolean | Ne | Je dané zařazení aktivní?
personActive | boolean | Ne | Je osoba aktivní?
contacts | EosContacts | Ne | Seznam kontaktů.
location | EosLocation | Ne | Umístění a pracoviště.
locationIds | EosLocationIds | Ne | Umístění a pracoviště - jen id.
userFields | EosUserFields | Ne | Uživatelská pole.

### EosPersonAssignments

Objekt obsahuje seznam zařazení osoby.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
personAssignments | List<EosPersonAssignment> | Ne | Seznam zařazení osob.

### EosPersonRespFilter

Objekt definuje rozsah dat, které se budou u osoby plnit.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
locationData | boolean | Ne | Mají se plnit data umístění a pracoviště? Jedná se o vlastní informace o budově, místnosti a patře.
allUserFields | boolean | Ne | Mají se plnit všechna uživatelská pole? Pokud bude true, bude se plnit všechna, pokud bude false, budou se plnit pouze ta, která jsou uvedena v atributu userFieldCodes.
userFieldCodes | List<String> | Ne | Seznam kódů uživatelských polí, která se mají plnit, je možné nastavit pouze v případě, že allUserFields má hodnotu false.
allContacts | boolean | Ne | Mají se plnit všechny kontakty? Pokud je true, plní se všechny kontakty, pokud je false, plní se pouze ty kontakty, které jsou definovány v contactIds.
contactIds | List<String> | Ne | Seznam id kontaktů, které se mají plnit, je možní nastavit pouze v případě, že allContacts má hodnotu false.

### EosPersonSupervisor

WO objekt představující vedoucího. Jedná se o osobu, která má navíc uveden systémový kod organizační jednotky, pod kterou spadá.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
supervisor | EosPerson | Ne | Osoba vedoucí.
supervisorType | EosOrgUnitTypeSystemCode | Ne | Systémový kod organizační jednotky, pod kterou vedoucí spadá.

### EosPersons

Objekt obsahuje seznam osob.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
persons | List<EosPerson> | Ne | Seznam osob.
paging | EosPaging | Ne | Stránkování.

### EosPersonsInAssignment

WO objekt osbahující primární zařazení osoby a k němu seznam vedoucích osob. Dále obsahuje přepínač, jestli je zařazení primární nebo ne.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
personAssignment | EosPersonAssignment | Ne | Zařazení osoby.
primaryAssignment | Boolean | Ne | True, pokud se jedná o primární zařazení, jinak false.
supervisors | List<EosPersonSupervisor> | Ne | Seznam vedoucích osob,

### EosPersonsInAssignments

WO objekt obsahující seznam jednotlivých zařazení uživatele a jejich vedoucích osob.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
pirSupervisors | List<EosPersonsInAssignment> | Ne | Jednotlivé objekty s zařazením osoby a seznamem jeho vedoucích.

### EosPhopne

Telefon.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
prefix | String | Ne | Předvolba.
number | String | Ne | Číslo.
line | String | Ne | Linka.

### EosPirSubordinate

WO objekt osbahující zařazení vedoucí osoby a seznam podřízených osob.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
supervisor | EosPersonAssignment | Ne | Zařazení vedoucí osoby.
subordinates | EosPersons | Ne | Seznam podřízených osob.

### EosPirSubordinates

WO objekt obsahující seznam vedoucích osob a jejich podřízených.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
pirSubordinates | List<EosPirSubordinate> | Ne | Seznam objektů s vedoucími osobami a jejich podřízenými.

### EosRoleIdType

Typ id role.

Hodnota | Popis
--- | ---
OR | Organizační role.
GR | Skupinová role.

### EosRoom

Místnost.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
id | String | Ne | Id.
name | String | Ne | Název místnosti.
capacity | Integer | Ne | Kapacita místnosti.

### EosUserField

Hodnota uživatelského pole.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
name | String | Ne | Název uživatelského pole.
code | String | Ne | Kód uživatelského pole.
value | String | Ne | Hodnota uživatelského pole.

### EosUserFields

Objekt obsahuje seznam hodnot uživatelských polí.

Jméno atributu | Datový typ | Povinné | Popis
--- | --- | --- | ---
userFields | List<EosUserField> | Ne | Seznam hodnot uživatelských polí.