LPS:IdM/midPoint/Magion

Z HelpDesk
< LPS:IdM‎ | midPoint
Verze z 28. 4. 2020, 22:09, kterou vytvořil Valtri (diskuse | příspěvky) (→‎Číselníky: - přiřazování osobám)

Info

Personalistika - autorizovaný zdroj o zaměstnancích.

Pohledy (viz repozitář test-environment).

Deaktivace objektu:

  • při deaktivaci objektu objekt "mizí" z pohledů
  • v midPointu informace zůstávají

Objekty

V Magionu jsou "na jedné hromadě" uložena historická, aktuální i budoucí data a vždy je třeba vybírat správné záznamy podle nastavení platnosti a rozsahu datumů. Pohledy do Magionu pro IdM s tímto pracují.

Osoby

  • primární klíč OS_CIS
  • napojení OS_CIS, ROD_CIS (kvuli zmatkům při zakládání osob se již raději nechystáme na os.č., pouze na RČ)

Pohledy:

  • MAGION_EXT.V_PE_ZCU_ZAM_IDM
    • lidé - aktivní zaměstnanci
    • v datech se kontrolují aktuální i budoucí osoby (s limitem 20 dnů)
      • z akuálních záznamů se bere nejnovější, z budoucích ten první "nejstarší"
      • aktuální záznam má vždy přednost před budoucím (bylo opraveno 2019-05-13)
        • vyjímka: pokud něco chybí u aktuálního záznamu (ROD_CIS, PRIJMENI) a budoucí je OK, vezme se ten budoucí (bylo opraveno 2020-03-13)
  • MAGION_EXT.V_PE_ZCU_ZAM_ZMENA_IDM
    • lidé - rychlý pohled na detekci změn
    • poznává i začátky úvazků

Úvazky (PPV)

  • primární klíč OS_CIS + CISLO_PP
  • napojení OS_CIS + CISLO_PP

Pohledy:

  • MAGION_EXT.V_PE_ZCU_PP_IDM
    • pracovní úvazky
  • MAGION_EXT.V_PE_ZCU_PP_ZMENA_IDM
    • pracovní úvazky - rychlý pohled na detekci změn

Pracovní místa (PM)

Funkce spojené s pracovištěm.

  • primární klíč ID (SY_MISTO_ID z MAGION.SY_MISTA)
  • napojení ID (SY_MISTO_ID z MAGION.SY_MISTA)

Pohledy:

  • MAGION_EXT.V_PE_ZCU_PMISTA_PP_IDM
    • pracovní místa - vazby na pracovní úvazky
    • v Magionu drobné nekonzistence - místa zůstávají i u skončených pracovních poměrů
  • MAGION_EXT.V_PE_ZCU_PMISTA_SEZNAM_IDM
    • pracovní místa - seznam (tj. "seznam funkcí")

Pracoviště

  • primární klíč ID (SY_ORG_JED_ID z MAGION.SY_ORG_JED)
  • napojení ID (SY_ORG_JED_ID z MAGION.SY_ORG_JED)

Pohledy:

Číselníky

Obecné číselníky.

Přiřazování osobám se udržuje u:

Jinak se udržuje jen samotný organizační strom, bez přiřazování.

  • primární klíč HR_SY_CISPOL_ID (SY_CISPOL_ID z MAGION.SY_CISPOL)
  • napojení HR_SY_CISPOL_ID (SY_CISPOL_ID z MAGION.SY_CISPOL)

Pohledy:

  • MAGION_EXT.V_PE_ZCU_CISELNIKY_IDM
  • MAGION_EXT.V_PE_ZCU_CISELNIKY_ZMENA_IDM

Skupiny

Vesměs po pracovištích.

  • primární klíč ID (SY_ORG_JED_ID z MAGION.SY_ORG_JED)
  • napojení ID (SY_ORG_JED_ID z MAGION.SY_ORG_JED)

Pohledy: jako pracoviště

Co hlídat

  • stub pracoviště - bez linku na resource
  • pracoviště bez rodiče
  • deaktivovaná pracoviště - vhodné zkontrolovat a smazat kvuli recyklacím kódů, viz #Údržba
  • úvazek v seznamu u osoby, ale není přiřazený přes assignment

Záměna identit (!):

Dost nebezpečná věc je změna osobního čísla u osoby v Magionu, protože může dojít k záměně identity (na dané osobě s přiřazeným CRO ID se prostě změní jméno, příjmení, RČ, ...). Naštěstí se děje spíše jen u nově zadávaných záznamů.

Lze kontrolovat sledováním změny datumu narození (prefixu RČ). Potenciálně nebezpečné události lze získat např. z historie v emulovaném CRO (zde příklad s omezením na 6 měsíců):

SELECT
    CRO_ID,
    COUNT(DISTINCT SUBSTR(RODNE_CISLO, 0, 6)) RC_PREFIX_COUNT,
    COUNT(DISTINCT OS_CISLO) OS_CISLO_COUNT
FROM IDM_OSOBY_LOG
WHERE LAST_ACTION_TSTAMP + 182 > SYSDATE
GROUP BY CRO_ID
HAVING
    COUNT(DISTINCT SUBSTR(RODNE_CISLO, 0, 6)) > 1
    OR COUNT(DISTINCT OS_CISLO) > 1;

A pak detaily:

DEFINE CRO_ID = ...;
SELECT CRO_ID, RODNE_CISLO, OS_CISLO, LAST_ACTION_TSTAMP FROM IDM_OSOBY_LOG WHERE CRO_ID = &CRO_ID ORDER BY LAST_ACTION_TSTAMP;

Propojování identit (platí i pro IS/STAG):

U cizinců se obvykle zadává RČ podle datumu narození a doplňuje se koncovka "23XX", kde XX jsou iniciály ze jména. Správně by se měly hlídat rozdíly jména a příjmení mezi Magion a IS/STAG.

Ale to RČ není to až tak jednoduché - pokud byl daný člověk dříve na jiné škole, má se použít to původní RČ z jiné školy (přiteče ze SIMS). A v kombinaci s Magionem je pak nutné RČ změnit odpovídajícím způsobem i v Magionu - to musí udělat administrátoři, protože se hlídá koncovka "23XX".

Údržba

Mazání deaktivovaných pracovišť

  1. zjistit seznam, např.:
    ./query-org.py subtype=deactivated-hr-org-str --csv activation/validTo,name,extension/ext:OU_NAZEV
  2. zkontrolovat, že není používané: 1) v midPoint GUI ve stromu (users, roles), 2) v dumpech hledat OID
  3. zkontrolovat, že není na resourcech (v projections)
  4. smazání

Resource

kind objectClass intent strom
account AccountObjectClass zamestnanec -
entitlement GroupObjectClass ppv subtype='ppv'
generic (focus OrgType) CustomOrganizationObjectClass org-str subtype='hr-org-str'/'deactivated-hr-org-str'/'hosted-org-str'
generic (focus OrgType) CustomCodeObjectClass code subtype='hr-codes-str'
entitlement (focus RoleType) CustomJobTitleObjectClass pm subtype='pm'
entitlement (focus RoleType) CustomIdmRoleStaffObjectClass global-group-staff subtype='hr-global-group-staff'
entitlement (focus RoleType) CustomIdmRoleDppDpcObjectClass global-group-dppdpc subtype='hr-global-group-dppdpc'
entitlement (focus RoleType) CustomIdmRoleSecretariatObjectClass global-group-secretariat subtype='hr-global-group-secretariat'
entitlement (focus RoleType) CustomIdmRoleSecretaryDptObjectClass global-group-secretarydpt subtype='hr-global-group-secretarydpt'
entitlement (focus RoleType) CustomIdmRoleManagerDptObjectClass global-group-managerdpt subtype='hr-global-group-managerdpt'

Role

ppv

  • prefix: "PPV: "
  • pracovně právní vztah ("zaměstnanecké pozice")

pm

  • prefix: "PM: "
  • pracovní místa ("funkce")

hr-global-group-staff

  • prefix: "GLOBAL: Zaměstnanci "
  • zaměstnanci na hlavní nebo vedlejší pracovní poměr (TODO: check!!)
  • UROVEN = 4 OR UROVEN = 3 OR LOWER(NAZEV) LIKE '%katedra%'
  • TODO: úroveň pracovišť asi neřešit

hr-global-group-dppdpc

  • prefix: "GLOBAL: Dohodáři "
  • zaměstnanci na dohodu
  • UROVEN = 4 OR UROVEN = 3 OR LOWER(NAZEV) LIKE '%katedra%'
  • TODO: úroveň pracovišť asi neřešit

hr-global-group-secretariat

  • prefix: "GLOBAL: Sekretariát "
  • sekretářky
  • (UROVEN = 4 OR UROVEN = 3 OR UROVEN = 2 OR LOWER(NAZEV) LIKE '%fakulta%' OR LOWER(NAZEV) LIKE '%katedra%')
  • TODO: úroveň pracovišť asi neřešit

hr-global-group-secretarydpt

  • prefix: "GLOBAL: Tajemník "
  • tajemníci
  • (UROVEN = 4 OR UROVEN = 3 OR UROVEN = 2 OR LOWER(NAZEV) LIKE '%fakulta%' OR LOWER(NAZEV) LIKE '%katedra%')
  • TODO: úroveň pracovišť asi neřešit

hr-global-group-managerdpt

  • prefix: "GLOBAL: Vedoucí "
  • vedoucí pracovišť (TODO: check!)
  • (UROVEN = 4 OR UROVEN = 3 OR UROVEN = 2 OR LOWER(NAZEV) LIKE '%fakulta%' OR LOWER(NAZEV) LIKE '%katedra%')
  • TODO: úroveň pracovišť asi neřešit

TODO

Funkce:

  • nefunguje dobře synchronizace funkcí - při odpojení v Magionu nemizí z inducements (u PPV) v midPointu - asi překopat i SQL pohledy
  • chtělo by to celé předělat a zobecnit (možná zapojit tenent feature - společná funkce (tejemník, vedoucí, ...) pro více pracovišť - ale interně to tak v Magionu uloženo není, tak třeba ne...)