Kvalifikace

Modul umožňuje nadefinovat skupiny pracovišť a pro jednotlivé pracovníky pak úroveň kvalifikace pro práci na těchto skupinách. Při přihlášení na pracoviště se pak kontroluje, zda má pracovník dostatečnou kvalifikaci.

Pokud používáte modul Kvalifikace je nutné mít zároveň zapnutou kontrolu čísla pracoviště, tedy to, že operace lze provádět jen na pracovištích k tomu určených. Celá kontrola pak probíhá tak, že:

  1. Pracovník se přihlásí na pracoviště - přitom se kontroluje, že má kvalifikaci pro přihlášení na toto pracoviště.

  2. Pracovník vybere výrobní objednávku+operaci a přitom se zkontroluje, že číslo pracoviště v postupu odpovídá skutečnému číslu pracoviště.

Jak to funguje

Při operaci přihlášení na pracoviště se dělá následující:

  • Sesbírají se všechny kvalifikace (tedy skupiny pracovišť) pro přihlašovaného pracovníka, a jejich úrovně.

  • Pokud pracovník patří do skupiny ADMIN (konfigurovatelné), tak se přihlášení povolí bez ohledu na pracoviště nebo úroveď pracovníka.

  • Prochází se všechny skupiny, do kterých pracoviště patří, a pokud je pracovníkova kvalifikace pro skupinu větší nebo rovna nastavenému minimu, tak se přihlášení dovolí.

  • Pokud pracoviště nemá přiřazenou žádnou kvalifikaci (skupinu), tak se může přihlásit kdokoliv.

  • Pokud pracovník nemá požadovanou kvalifikaci, funkce přihlášení vrátí chybu, a je potřeba zařídit přihlášení s dohledem.

Logicky vzato nemá smysl mít jedno pracoviště ve více skupinách. Technicky to lze, ale pak může nastat ta chyba, že při pracovník pak vlastně pracuje na tu druhou kvalifikaci.

Nastavení

Nastavení je v parameters.ini, následující klíče:

[module_qual]
# Do check the qualifications at all?
qual_check=1
# If set, the qualifications are only stored to the WWorkerLog.
# If not set and qualification does not pass, the error is returned.
qual_check_dry_run=1
# minimum qualification to allow the worker to the workplace, even with
# supervision. If this is empty, then anybody can login.
# Default is <empty> - so anybody can work on the workplace. Can be
# empty or one of: I L U O
qual_login_min=I
# minimum qualification to be required for the workplace without supervisor.
# The default is L, can be I L U O
qual_min=L
# minumum qualification for a supervisor
qual_supervisor=U
# the name of a group for which qualifications are not verified
qual_super_group=ADMIN

Za běhu TracePRO je možné vyvolat reload nastavení tak, že navštívíte stránku: http://<tracepro-server>/reloadparams. Pamatujte, že je to potřeba udělat na všech instancích serveru, a zároveň, že hodnoty na serveru jsou cacheované, takže změny se projeví za přibližně 5 minut.

POZOR: Ve webovém rozhraní může nastavení kvalifikací editovat pouze uživatel ze skupiny trainer (nebo admin samozřejmě).

qual_check_dry_run

Pokud je nastaveno na 1, tak se kontrola kvalifikace sice provede, ale výsledek se jen zapíše do logu pracovníka (WWorkerLog) a nevrátí se jako chyba. Pokud je nastaveno na 0, tak se kontrola kvalifikace provede a v případě, že pracovník nemá dostatečnou kvalifikaci, vrátí se chyba.

Skupina ADMIN

Je rozumné mít pracovníky, kteří se mohou přihlásit kamkoliv (údržbáři, předáci, technologové…). Pro ně slouží skupina s názvem ADMIN (název lze změnit pomocí konfiguračního parametru). Pokud pracovník patří do této skupiny, může se přihlásit kamkoliv (stačí úroveň I). Pokud tuto funkci nechcete využívat, nezakládejte skupinu ADMIN, nebo ji nechte prázdnou.

Pokud tuto funkci chcete využívat, založte skupinu s názvem ADMIN. Nemusí mít v sobě žádná pracoviště. Pracovníkům pak přidejte kvalifikaci v této skupině.

API a jeho použití

S kvalifikacemi souvisí nová API funkce, která umožní přihlásit pracovníka s dohledem. Při normální práci se systémem se volá:

res = api.loginwp(worker_id, wp_id)
# pokud vrátí chybu error-iluo-denied, pracovník nesmí pracovat na tomto pracovišti
if res.get("__error__") == "error-iluo-denied":
    return
# a pokud vrátí chybu error-iluo, tak se zavolá funkce pro přihlášení s dohledem
if res.get("__error__") == "error-iluo":
    res = api.loginwithsupervisor(worker_id, supervisor_id, wp_id)
    # pokud vrátí chybu "error-iluo-supervision", tak ani tento dohled nemá dostatečnou kvalifikaci

Předpokládá se, že předtím, než se volá funkce loginwithsupervisor, byla volaná funkce loginwp a ta vrátila chybu error-iluo. Ve funkci loginwithsupervisor se totiž:

  • Nekontroluje, že pracovník potřebuje kvalifikaci (to zkontrolovala funkce loginwp)

  • Nekontroluje se ESD, ani jiné případné přihlašovací kontroly