Jednoduché API
Jednoduché API pro ověření pracovníka, kontrolu výrobní operace, a zapsání
výsledku operace na server. Komunikuje se přes HTTP (POST nebo GET, jestli
můžete, používejte POST). Jednotlivé parametry jsou standardní HTTP request
parametry, nezáleží na jejich zakódování.
API můžete testovat z adresního řádku webového prohlížeče, tak, že paramery
napíšete do query stringu. Pokud je adresa serveru http://tracepro.local/,
můžete zkusit např.: http://tracepro.local/simpleapi/login?worker_id=32&wp_id=100
Krátká ukázka programu v jazyce Python (používá knihovnu requests), která demonstruje
ukládání dat na server je zde: simpleapisample.py.
Všechny funkce API vrací objekt, pokud došlo k chybě, bude jeho obsah:
{
"__error__": "kod-chyby",
"info": "Textový popis chyby"
}
Každé volání obsahuje jako parametr wp_id, což je číslo pracoviště.
Toto číslo je přidělované správcem TracePRO, a mělo by být uložené
v konfiguraci klientského pracoviště.
Operace:
login
orderinfo
- Ověří, objednávka, operace, a případně i pracovník existují. Předpokládá
se, že tato funkce bude použita na obrazovce, na které se zadá číslo
pracovníka, číslo výrobní objednávky, a číslo operace. Obrazovka
je pošle na server a výsledek zobrazí. Pracovník má možnost posoudit,
zda zadal správné údaje, a pokud ano, může pokračovat na testování.
Software si zde přečtené hodnoty uschová, a posílá je jako parametry
do dalších volání.
- /simpleapi/orderinfo
- Parametry:
- wp_id: Id pracoviště - číslo.
- worker_id: Id nebo přihlašovací kód pracovníka.
- erp_ref: Jméno výrobní objednávky (tak jak je v ERP).
- op: Číslo operace ve výrobním postupu.
- Vrací:
{
"worker_info": "Číslo - Jméno",
"order_info": "Jméno objednávky - Jméno položky",
"op_info": "Operace: Úkon - Popis",
"order": { ...komplexní struktura celé objednávky... },
}
{
"worker_info": "Pracovník nenalezen",
"order_info": "Objednávka nenalezena",
"op_info": "Operace nenalezena",
"order": {},
"__error__": "error-order",
"info": "Objednávka nenalezena",
}
- Příklady:
- http://tracepro.local/simpleapi/orderinfo?worker_id=32&wp_id=100&erp_ref=V01-665&op=40
- http://tracepro.local/simpleapi/orderinfo?worker_id=32&wp_id=100&erp_ref=V01-665&op=40
http://tracepro/simpleapi/orderinfo?worker_id=32&wp_id=100&erp_ref=V01-665&op=40
canaddop
- Otestuje, zda jde operace zapsat.
- POZOR! Jestliže položka neexistuje, tak postupuje podle
hodnoty parametru výrobní objednávky AUTOCREATE_ITEM - pokud je nastavena, předpokládá se,
že se položka založí, ovšem založí se až zavoláním operace addop.
- /simpleapi/canaddop
- Parametry:
- wp_id: Id pracoviště - číslo.
- worker_id: Id nebo přihlašovací kód pracovníka - ideálně ověřený pomocí login nebo orderinfo.
- erp_ref: Jméno výrobní objednávky (tak jak je v ERP) - ideálně ověřené pomocí orderinfo.
- op: Číslo operace ve výrobním postupu - ideálně ověřené pomocí orderinfo.
- barcode: Barkód (nebo jiná identifikace) položky.
- Vrací např:
{} // pokud proběhlo bez chyby
{
"__error__": "no-such-order",
"info": "Objednávka nenalezena...",
}
{
"__error__": "no-such-item",
"info": "Položka nenalezena...",
}
{
"__error__": "missing-operation",
"data": [č.chybějící operace, č.operace],
"info": "Missing operation...",
}
addop
- Zapíše operaci položce.
- POZOR! Jestliže položka neexistuje, tak postupuje podle hodnoty parametru výrobní
objednávky AUTOCREATE_ITEM - pokud je nastavena, položka je přidáním operace založena.
Položka se založí, ikdyž se zápis operace nezdaří (např. kvůli závislosti na předchozích operacích).
- /simpleapi/addop
- Parametry:
- wp_id: Id pracoviště - číslo.
- worker_id: Id nebo přihlašovací kód pracovníka - ideálně ověřený pomocí login nebo orderinfo.
- erp_ref: Jméno výrobní objednávky (tak jak je v ERP) - ideálně ověřené pomocí orderinfo.
- op: Číslo operace ve výrobním postupu - ideálně ověřené pomocí orderinfo.
- barcode: Barkód (nebo jiná identifikace) položky.
- result: 0 znamená bez chyby, jiné číslo znamená chybu.
- data: Seznam výsledků, mohou to být naměřené hodnoty nebo chyby. Klient posílá pole trojic,
ve kterých první pole je "D" jako Defekt, nebo "I" jako Informace o měřené hodnotě, případně
"P" jako Parametr (např. jméno programu), druhé pole je název předávané hodnoty, a třetí je
vlastní hodnota.
- Vrací:
{} // pokud proběhlo bez chyby
{
"__error__": "no-such-order",
"info": "Objednávka nenalezena...",
}
{
"__error__": "no-such-item",
"info": "Položka nenalezena...",
}
{
"__error__": "missing-operation",
"data": [č.chybějící operace, č.operace],
"info": "Missing operation...",
}
- Data: Tohle je seznam hodnot, které se uloží k operaci. nemají žádný vztah k výsledku
operace, to znamená, jestliže výsledek operace je chyba, data mohou být prázdná,
případně mohou obsahovat jen dobré výsledky, nebo naopak, když je výsledek operace
ok, v datech mohou být chyby. Ačkoliv hlášení jen dobrých hodnot u chybového
výsledku operace dává smysl, tak zapisovat chyby u dobrého výsledku smysl nedává
a nedoporučujeme jej.
- Data slouží k zápisu libovolného množství spíše krátkých hodnot. Jméno záznamu je omezeno na 50 znaků, hodnota na 255.
- Nejlepší je použít jeden z těchto tří formátů
- data=[["I", "JMENO1", "HODNOTA1"],["D", "JMENO2", "HODNOTA2"],["P", "JMENO3", "HODNOTA3"]] - dekóduje se jako json
- data=D:JMENO1=HODNOTA1|P:JMENO2=HODNOTA2|I:JMENO3=HODNOTA3| (oddělovač polí je svislá čára |)
- data=JMENO1=HODNOTA1|JMENO2=HODNOTA2|JMENO3=HODNOTA3; - hodnoty se berou jako D - chyby. (oddělovač polí je svislá čára |)
Lze ale odeslat i dlouhý řádkovaný text bez jakékoliv struktury. Takový text se roseká na řádky.
- Pokud řádek obsahuje znak =, rozdělí se, a část před = se použije jako jméno, a část za = jako hodnota.
- Pokud řádek neobsahuje =, použije se lineX jako jméno a řádek jako hodnota (X je číslo řádku).
- Cílem funkce addop je zapsat operaci, proto ikdyž data budou mít chybný formát, operaci
zapíše.