API Dokumentace
Průvodce integrací externích systémů se systémem ETIS pomocí rozhraní API
Úvod
Tento dokument slouží jako průvodce integrací externích systémů se systémem ETIS pomocí rozhraní API. Systém ETIS je robustní nástroj pro správu a evidenci firemních procesů, který umožňuje efektivní zpracování dat z různých zdrojů.
Co API umožňuje
- Importovat data ze systémů třetích stran do ETIS
- Získávat data z ETIS prostřednictvím API
- Iniciovat a zpracovat pravidelné stahování dat z externích systémů
- Provádět automatizované volání API na základě předem definovaných situací v Workflow
Zápis dat do ETIS
Externí systém chce zapisovat do ETIS
Automatizace rozhraní do systému ETIS vám umožní importovat libovolné záznamy ze systémů a aplikací třetích stran.
Získání autorizačního tokenu
Token může vygenerovat oprávněná osoba s oprávněním administrátora.
Přihlaste se do systému ETIS
Přejděte do Nastavení → Import → API klíče pro import
Vyberte 'Přidat token' a nastavte pojmenování, oprávnění a platnost
Zkopírujte vygenerovaný token a použijte ve struktuře požadavku
Každý API požadavek musí obsahovat autorizační hlavičku:
Authorization: Bearer YOUR_TOKEN
Struktura požadavku
Požadavky k importu dat musí být zasílány metodou POST na URL serveru v následující struktuře:
https://{váš_ETIS}/api/3p/import/{ID_typu_záznamů}Příklad:
https://encore.cz/api/3p/import/50758
Požadavek musí obsahovat
- Metoda: POST
- Hlavička s platným tokenem ETIS
- JSON data záznamů k importu
POST /api/3p/import/50758 HTTP/1.1
Host: encore.cz
Authorization: Bearer ZW123456789
Content-Type: application/json
{
"data": [
{ ... }
]
}Struktura dat JSON
Veškerá vkládaná data musí být ve formátu JSON. Jednotlivé záznamy k importu jsou uvedeny jako položky v poli 'data'.
{
"data": [
{
"Název": "test1",
"Zadal": "Administrátor",
"Zpracovatel": "Jakub Novák"
},
{
"Název": "ukol2",
"Zadal": "Jakub Novák",
"Zpracovatel": "František Pokorný"
},
{
"Název": "ukol3",
"Zadal": "Jakub Novák",
"Zpracovatel": "Alena Nováková"
}
]
}Příklad importu nákladů
Kompletní příklad importu přijaté faktury (nákladu) do systému ETIS.
{
"data": [
{
"Interní číslo": "N-20190066",
"Číslo dokladu": "",
"Partner": "",
"Pracovník": "",
"Vystavil": "Aleš Procházka",
"Stav": "Uhrazeno",
"Popis": "Tankování vozidla Felda",
"Způsob platby": "Bankovním převodem",
"Kategorie nákladu": "",
"Typ": "Přijatá faktura",
"Datum splatnosti": "28.6.2019",
"DUZP": "28.6.2019",
"Datum přijetí": "28.6.2019",
"Datum vystavení": "",
"Datum uhrazení": "",
"Variabilní symbol": "",
"Konstantní symbol": "",
"Specifický symbol": "",
"Číslo objednávky": "",
"Projekt": "",
"Kolik to stálo": "1 500,00",
"Sazba DPH": "DPH 21%"
}
]
}Získání dat z ETIS
Externí systém chce získat data z ETIS
Data z ETIS lze získávat přes API pomocí předpřipravených datových sestav z modulu Analýzy.
Definujte vlastní datovou sestavu v modulu Analýzy
Uložte sestavu a zpřístupněte ji přes API
Vytvořte autorizační token pro přístup k sestavám
Zavolejte API pro získání dat
Vytvoření podkladové sestavy
Aplikace Analýz umožňuje vytvářet tabulky a kontingenční tabulky z libovolných dat evidovaných v ETIS – včetně vlastních polí, typů záznamů a relačních sestav pro složitější scénáře.
Token pro přístup k sestavám
Přístup k vytvořeným sestavám bude mít pouze požadavek autorizovaný tokenem ETIS.
Přihlaste se do systému ETIS
Přejděte do Nastavení → Import → API klíče pro import
Přidejte token s oprávněním 'analysis' a přiřaďte ho uživateli
Volání API pro získání dat
Požadavky se zasílají metodou GET na URL ve struktuře:
https://{váš_ETIS}/api/analysis/reports/{ID_sestavy}/data/tablePříklad GET požadavku:
GET /api/analysis/reports/64c7ab1c/data/table HTTP/1.1 Host: encore.cz Authorization: Bearer YOUR_TOKEN
Formát odpovědi
Odpověď ve formátu JSON obsahuje dvě hlavní části:
columnsDefinuje názvy a ID jednotlivých sloupců v tabulce
rowsObsahuje samotná data v podobě seznamu řádků
{
"columns": [
{ "id": "col1", "name": "Jméno" },
{ "id": "col2", "name": "Příjmení" },
{ "id": "col3", "name": "Email" }
],
"rows": [
{ "col1": "Jan", "col2": "Novák", "col3": "jan.novak@example.com" },
{ "col1": "Petr", "col2": "Svoboda", "col3": "petr.svoboda@example.com" }
]
}Stránkování
K požadavku se v URL dají připojit parametry pro stránkování:
offsetUrčuje, od jakého záznamu má tabulka začít (výchozí: 0)
limitUrčuje počet vrácených záznamů v odpovědi (výchozí: 100)
https://nazev.systemetis.cz/api/analysis/reports/{ID_Sestavy}/data/table?limit=60&offset=100API komunikace vyvolaná ETIS
ETIS má zavolat externí systém
Scénář, kdy ETIS iniciuje volání API v různém rozsahu. Nastavuje se v rámci ETIS Workflow – nástroje vizuálního programování pomocí diagramů.
Pravidelné stahování dat
- Každých 10 minut zavolej API banky a stáhni bankovní transakce
- Každých 30 minut zkontroluj Google tabulku a aktualizuj produkty v ETIS
Reakce na události
- Když je faktura po splatnosti, pošli informaci do jiného systému
- Když je na úkolu překročen rozpočet, notifikuj jiný systém
- Pokud je objednávka schválená, pošli data do systému A; pokud zamítnutá, do systému B
Vytvoření procesu
Vytvořte nový proces v prostředí Workflow. Můžete definovat podmínky, za jakých okolností má záznam volat API – při editaci záznamu, v časových intervalech nebo jiných situacích.
Otevřete Workflow a vytvořte nový proces
V obsahu elementu Operace vyberte 'Přidat operaci'
Zvolte 'Zavolat API'
Nastavení API volání
Akce 'Zavolat API' se konfiguruje ve třech záložkách:
Základní
Definice cílového systému, formátu a autorizace.
methodTyp požadavku: PING, GET, POST, PUT, DELETEurlCílová URL adresa – podporuje vkládání proměnných z procesu nebo dat ze záznamuformatFormát dat: JSON / XMLtimeoutPočet sekund pro timeout (výchozí: 60s)scopeRozsah použití: Aktuální záznam / Na vybranou evidenciloggingLogování historie zpracování APIauthZpůsob autorizace: Prázdný, BASIC, OAUTH2Příklad URL s proměnnými ETIS:
#(SERVER_URL)/api/core/ares/#(IČ)
Požadavek
Definice požadavku odesílaného na cílovou službu.
saveToFileUložit do souboru k záznamucontentTypeFormát požadavku (výchozí: application/json)headersHlavičky požadavku – název parametru a hodnotabodyTělo požadavku s podporou proměnných ETIS (pomocí #)Příklad požadavku na účetní software:
{
"command": {
"inComm": "FA_IN",
"inParam": {
"parameters": {
"id_fa": null,
"cis_fa": null,
"ico_part": null,
"dat_od": null,
"dat_do": null,
"typ_fa": null,
"timestamp": "fx{new Date().minus(2.days).format('yyyy-MM-dd')}"
}
}
}
}Zpracování odpovědi
Nastavení způsobu zpracování dat z odpovědi.
saveToFileUložit odpověď jako soubor k záznamusaveToVariableUložit do proměnné pro další použití ve WorkflowsuccessVariableProměnná pro úspěšnost volání (true/false)testUrlURL pro testovací volání a získání struktury políencodingKódování odpovědi (výchozí: UTF-8)mappingMapování polí z API na pole v ETISPříklad mapování odpovědi z ARES:
// Odpověď z ARES API
{
"entity": {
"companyName": "Encore Technologies s.r.o.",
"identificationNumber": "64949681",
"vatIdentificationNumber": "CZ64949681",
"companyAddressData": {
"city": "Praha",
"street": "Tomíčkova",
"houseNumber": "2144"
},
"employeeCount": 15,
"establishmentDate": "2021-07-01"
}
}
// Mapování na pole v ETIS:
// companyName → Název
// identificationNumber → IČO
// vatIdentificationNumber → DIČ
// companyAddress → SídloChybové kódy
API může vracet různé HTTP status kódy indikující stav požadavku.
200 OK
Požadavek byl úspěšně zpracován.
401 Unauthorized
Neplatný nebo chybějící přístupový token.
404 Not Found
Zadaný zdroj neexistuje.
500 Internal Server Error
Interní chyba serveru.
Potřebujete pomoct s integrací?
Náš tým vám pomůže s návrhem a implementací API integrace pro váš konkrétní scénář.
