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

  • Slouží k ověření, že tento pracovník existuje.
  • /simpleapi/login
  • Parametry:
    • wp_id: Id pracoviště - číslo.
    • worker_id: Id nebo přihlašovací kód pracovníka.
  • Vrací:
            {
                "id": id-pracovníka,  // číslo
                "name": "Jméno a příjmení"
            }
        

Vyzkoušejte!


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

Vyzkoušejte!


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...",
          }
          

Vyzkoušejte!


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.

Vyzkoušejte!