====== Dokumentace k REST API OrImport ====== Toto API poskytuje přístup k funkcím OR-SYSTEM Open prostřednictvím jednoho endpointu avšak s rozlišením na úrovni atributů. ===== Autentizace ===== Pro přístup k API je vyžadována autentizace. Každý požadavek musí obsahovat platný autentizační token v hlavičce. Token je získán prostřednictvím přihlašovacího procesu. ==== 1. Přihlášení ==== * **URL:** `/auth/login` * **Metoda:** `POST` * **Formát vstupu:** `application/json` * **Formát výstupu:** `application/json` == Parametry: == * **`username` (string)**: Login do OR-SYSTEM Open. * **`password` (string)**: Heslo do OR-SYSTEM Open. == Příklad požadavku: == { "username": "uzivatel", "password": "tajneheslo" } == Příklad odpovědi: == { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." } ==== 2. Odhlášení ==== * **URL:** `/auth/logout` * **Metoda:** `POST` * **Formát vstupu:** `application/json` * **Formát výstupu:** `application/json` == Parametry: == * **`token` (string)**: Autentizační token, který má být zneplatněn. == Příklad požadavku: == { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." } == Příklad odpovědi: == { "status": "OK" } ==== 3. Obnovení tokenu ==== * **URL:** `/auth/refresh` * **Metoda:** `POST` * **Formát vstupu:** `application/json` * **Formát výstupu:** `application/json` == Parametry: == * **`refreshToken` (string)**: Token pro obnovení autentizace. == Příklad požadavku: == { "refreshToken": "dGVzdHJlZnJlc2h0b2tlbg==" } == Příklad odpovědi: == { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "refreshToken": "dGVzdHJlZnJlc2h0b2tlbg==" } ===== Endpointy ===== ==== metoda setData ==== * **URL:** `/orimport/data` * **Metoda:** `POST` * **Formát vstupu:** `application/json` * **Formát výstupu:** `application/json` == Parametry: == * **json (object)**: JSON reprezentující data k zpracování. == Příklad požadavku: == { "EntityType": "type1", "Id": "123", "Properties": { "PropertyDesciptor": [ {"Name": "Property1", "Value": "Value1"}, {"Name": "Property2", "Value": "Value2"} ] } } == Příklad odpovědi: == { "status": "success", "message": "Data were processed successfully." } ==== Výjimky a chyby ==== V případě chyb nebo výjimek API vrací chybové zprávy s popisem problému. == Příklad chybové odpovědi: == KO Chybová zpráva ### Chybové stavy - **Popis**: API může vrátit chybové stavy při selhání interních operací. Specifické kódy chyb a popisy nejsou definovány. ### Logování - API loguje důležité operace do souboru. Formát a obsah logování nejsou plně specifikovány. ===== EntityType ===== Tabulka s přípustnými hodnotami `EntityType`. | EntityType | Popis Entity | | OR_IMPORT_SERVANT | Spuštění tiskového reportu na základě zadaných parametrů GA | | ENTITY_WEB_SERVICE | Integrace dvou OR-SYSTEM Open. Například poboča může nahlížet na data centrály. | | UNITS | Export měrných jednotek do MES | | PERSONS | Export pracovníků do MES | | DEFLECTION | Export typů odchylek z MES | | NONCONFORMITIES | Export typů neshod z MES | | DOWNTIME | Export typů prostojů z MES | | WORK_CENTER | Export pracovních středisek do MES | | MATERIAL | Export katalogu položek - materiálů do MES | | EQUIPMENT | Export nářadí do MES | | TOOLS | Export přípravku do MES | | WORK_ORDER | Export výrobního příkazu do MES | | PRODUCT_DEFINITION_OPERATION | Export pracovního postupu do MES | | WORK_ORDER_OPERATION | Export operací výrobního příkazu | | STATEMENT_OF_DOWNTIME | Import prostojů z MES | | STATEMENT_OF_WORK | Import hlášení výkonu z MES | | STATEMENT_OF_NONCONFORMITIES | Import hlášení neshod z MES | | BUSINESS_PARTNERS | Export katalogu odběratelů do externího systému | | STOCKING | Import skladové transakce z MES | | ENABIDKA | Import nabídek z Excelu | | EPRODOBJ | Import prodejních objednávek z Excelu | | EPOPTAVKA | Import poptávek z Excelu | | CPOLOZKA_IMPORT | Import katalogu položek | | CNARADI_IMPORT | Import nářadí | | OUZIV_IMPORT | Import uživatelů | | CODBERATEL_IMPORT | Import odběratelů | | CDODAVATEL_IMPORT | Import dodavatelů | | CADRESAFIRMY_IMPORT | Import adres firmy | | OHKON_IMPORT | Import kontaktů | | CSTROJ_IMPORT | Import strojů | | CSTAND_KUS_KOMP_IMP | Import standardního kusovníku | | CKONSTR_KUS_KOMP_IMP | Import konstrukčního kusovnku | | CTECH_POSTUP_OP_IMP | Import technologického postupu | | SHLASENI_OPERACE | Hlášení | | SLBT_DOKLAD | | | SLBT_POHYB | | | SPOHYB_TXT | | | PALETIZACE | | | INTERNI_LOGISTIKA | | | SBALIKOVE_TRANSAKCE | | | SPOHYB_MOBILNI_APLIKACE | | | SMOBILNI_APLIKACE | | | ELEKTROTEST | | | SERIAL_NUMBER_SERVICE | | | TLAKOVA_ZKOUSKA | | | KONSTRUKCNI_KUSOVNIK | | | ODHLASOVANI_PRIDELENYCH_OPERACI | | | ODVADENI_VYROBY | | | HLASENI_VYROBY | | | PRIPRAVA_EXPEDICE_ZAKAZEK | | | SW_KONSTR_KUS_HLAV_IMP | | | SW_KONSTR_KUS_KOMP_IMP | | | SW_POLOZKA_ZADANKA | | | MOVEIT_PRODEJNI_NABIDKA | | | MOVEIT_PRODEJNI_NABIDKA_RADEK | | | MOVEIT_KONFIGURATOR_POLOZKA_ULOZENI | | | VYROBA_JADRA | | | ENTITY_IMPORT | | | FORMOVANI | | ===== Příklad zavolání reportu ===== **Request** má strukturu, která je uvedena na příkladu volání **SKL003**: **Důležité atributy, které je potřeba naplnit:** * `gaTask` - jméno volby - ve vašem případě by to bylo **SKL003** * `maska` - jméno tiskové masky - u vás **skl003** (bude se hledat firemní) * `program` - jméno programu **skl003** * `listina` - název listiny - jméno vzniknuvšího souboru s obsahem reportu (nevrací se base64) * `gaLp` - jméno výstupu (**S** = pdf), možno i tiskárna z COBCAP např. **B_prodejna** * `login` - login pod kterým se provede spuštění * Dále je potřeba naplnit požadované vstupní údaje GA volby. Např. `gatTyp01 = M` atd. { "entityType": "OrImportServant", "id": "startPrint", "properties": { "propertyDesciptor": [ {"name": "gaTyp01", "value": "M"}, {"name": "gaTvon01", "value": "918277764"}, {"name": "gaTvon02", "value": "918277764"}, {"name": "gaTask", "value": "SKL003"}, {"name": "maska", "value": "skl003"}, {"name": "program", "value": "skl003"}, {"name": "listina", "value": "LSKL003"}, {"name": "gaLp", "value": "S"}, {"name": "login", "value": "orfadmin"}, {"name": "gaKom01", "value": "9B"} ] } } **RESPONSE** potom vrací jméno sestavy: { "SetResponse": { "SetResult": { "DataChangeHandle": null, "DataDescriptorId": "startPrint", "Incidents": null, "InnerResults": null, "Message": "/dlf1/orfdat/firm/polna/listiny/LSKL003_6E.pdf", "OperationCategory": "Set", "Status": "Succeeded" } } }