Orsoft Doku
Dokumentace a nápověda pro IS Orsoft Open

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: ==
<code json>
{
  "username": "uzivatel",
  "password": "tajneheslo"
}
</code>
== Příklad odpovědi: ==
<code json>
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
</code>

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: ==
<code json>
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
</code>
== Příklad odpovědi: ==
<code json>
{
  "status": "OK"
}
</code>

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: ==
<code json>
{
  "refreshToken": "dGVzdHJlZnJlc2h0b2tlbg=="
}
</code>
== Příklad odpovědi: ==
<code json>
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "refreshToken": "dGVzdHJlZnJlc2h0b2tlbg=="
}
</code>

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