TracePRO API¶
Tohle je základní API pro TracePRO, které používá klient dodávaný s TracePRO. Na použití tohoto API je potřeba speciální podpora. Zde popisujeme některé jeho části, ale před tím, než jej začnete používat, konzultujte dodavatele TracePRO.
Připojení¶
API je implementováno jako jsonrpc. Pro python3 doporučujeme knihovnu
jsonrpclib. Pro python2 je asi nejvhodnější jsonrpc-requests.
Potřebujete endpoint API serveru, což je vlastně adresa TracePRO s přidáním
api. Např.: https://traceability.cz/api.
Pak v jsonrpclib:
from jsonrpclib import Server
server = Server("https://traceability.cz/api")
user_info = server.login(1000)
Obecně vzato, pokud dojde k chybě, může server vrátit buď HTTP chybový kód, nebo JSON s chybovým kódem. JSON má pak strukturu:
{
"__error__": "error-code",
"info": "Localized Error Message"
}
ESD API¶
Tato část API se dá použít k záznamu testování ESD k pracovníkům.
login:
Vrací informace o pracovníkovi. Parametr:
worker_id:server.login(54) => {'erp_id': 'Martin Novák', # jméno z ERP 'esd_tm': '2024-09-26T09:38:37', # datum a čas posledního úspěšného ESD testu 'id': 1000, # interní ID uživatele 'name': 'Martin Novák', } # jméno uživateleTato funkce nemění stav serveru. Lze použít jen k ověření uživatele. Podle nastavení systému může testovat další parametry, např. ESD, ILUO, …
getworkerbycard:
Vrátí informace o pracovníkovi podle čipové karty. Parametr:
card:server.getworkerbycard("123456") => {'erp_id': 'Martin Novák', 'esd_tm': '2024-09-26T09:38:37', 'id': 1000, 'name': 'Martin Novák', }Pokud nebyla karta nalezena, vrátí chybu.
setworkeresd:
Nastaví stav ESD testu pracovníka. Parametry:
worker_id,passed:server.setworkeresd(1000, True) => {'erp_id': 'Martin Novák', 'esd_tm': '2024-09-26T09:38:37', 'id': 1000, 'name': 'Martin Novák', } server.setworkeresd(1000, True) => {'erp_id': 'Martin Novák', 'esd_tm': None, 'id': 1000, 'name': 'Martin Novák', }
setworkercard:
Lze použít k nastavení čísla karty pracovníka. Parametry:
worker_id,card. Tato funkce je speciální v tom, že pokud pracovník nebyl nalezen, je založen:server.setworkercard(1000, "123456") => {'erp_id': 'Martin Novák', 'esd_tm': '2024-09-26T09:38:37', 'id': 1000, 'name': 'Martin Novák', } # neexistující pracovník: server.setworkercard(9009, "654321") => {'erp_id': '9009', 'esd_tm': '2024-09-26T09:38:37', 'id': 1000, 'name': 'Martin Novák', }
logworkeraction:
TracePRO vytváří záznamy o některých akcích spojených s pracovníkem. Tato funkce umožňuje udělat takový záznam. Mějte na paměti, že:
Funkce má sloužit pouze pro informativní zápis akcí, které nemají na nic návaznost. Může to být např. ESD testování náramku.
Funkce nemá žádný vedlejší efekt, jen zapíše záznam.
Záznamy se pro některé akce provádějí automaticky (login, logout, esd). Pokud je budete zaznamenávat přímo, můžete tím způsobit zmatek.
Záznamy lze prohlížet na adrese
//tracepro/e/WWorkerLog.Příklad:
# záznam pro pracovníka č. 1000 na pracovišti 315 (může být null), # akce č.7, prázdná poznámka server.logworkeraction(1000, 315, 7, "")Možné hodnoty pro akci, z nich doporučujeme používat pouze 6, 7, 8.:
WWL_LOGIN = 1 WWL_LOGIN_FAILED = 2 WWL_LOGOUT = 3 WWL_ESD_PASSED = 4 WWL_ESD_FAILED = 5 WWL_ESD_BRACELET_PASSED = 6 WWL_ESD_BRACELET_FAILED = 7 WWL_INFO = 8
PowerShell¶
Pro rychlý test můžete použít PowerShell. Např. funkce login
lze přes PowerShell vyvolat takto:
$Body = @{
jsonrpc = "2.0"
method = "login"
params = @(
1000
)
id = [guid]::NewGuid()
} | ConvertTo-Json
Invoke-WebRequest -Uri 'https://traceability.cz/api' -Method POST -Body $Body
Reference¶
Obsah: