====== 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"
}
}
}