Často kladené otázky k API
V sekci kapitol FAQ naleznete buď odpovědi na často kladené otázky, nebo nejrůznější tipy a triky, jak řešit v systému ABRA Gen nejrůznější problémy. Vzhledem k tomu, že problematika může být obsáhlejší, jsou u jednotlivých odpovědí často odkazy do dalších oddílů on-line dokumentace.
Témata otázek:
FAQ

Otázka: | Co znamená zkratka API? |
Odpověď: |
Zkratka API (Application Programming Interface) se dá volně přeložit jako rozhraní pro programování aplikací, díky kterému lze jednoduše přistupovat k údajům v našem informačním systému. Data jsou díky API přístupná přes odkazy URL a dostupná ve formátu JSON - aktuálně nejpoužívanějším formátu pro výměnu dat. API server je postaven na architektuře REST - toto rozhraní umožňuje k datům jednotný a hlavně velmi snadný přístup. ![]() Co je vlastně Web API laicky, viz Co je vlastně Web API a K čemu slouží. |

Otázka: | Jaký je rozdíl mezi API a Web API ABRA Gen? |
Odpověď: |
API je obecný termín, který označuje rozhraní pro programování aplikací. WebAPI ABRA Gen je konkrétní řešení od ABRA Software. Více viz Věcný obsah, základní pojmy - Web API. |

Otázka: | Nedaří se mi Web API zprovoznit. |
Odpověď: |
Projděte si kapitolu Nastavení Web API. |

Otázka: | Jak je to s bezpečností? Nevyužije někdo API, aby si přečetl moje data ze systému? |
Odpověď: |
Přístup k API je dovolen pouze uživatelům, kteří mají v ABRA Gen nastavené odpovídající oprávnění. Viz příznak Přihlášení nevizuálního uživatele API. V API také fungují standardní oprávnění pro přístup k řadám dokladů, střediskům atd. Stejně tak jsou zohledňována nastavení obecné ochrany dat. Více informací naleznete v kapitole Web API a ochrana dat. Při zpřístupnění API do internetu lze také použít zabezpečený protokol https, díky kterému bude veškerá komunikace s API šifrovaná. |

Otázka: | Nedaří se mi přes Web API získat požadovaná data, v obdržené odpovědi chybí některé záznamy, případně je odpověď úplně prázdná. |
Odpověď: |
Web API dodržuje nastavená pravidla obecné ochrany dat i práva k chráněným objektům. Je zapotřebí zkontrolovat efektivní práva uživatele, kterého pro přístup k Web API využíváte. Více informací o vztahu Web API k chráněným objektům naleznete v kapitole Autentizace a autorizace v sekci Přístup k chráněným objektům. Více informací o vztahu Web API k obecné ochraně dat naleznete v samostatné kapitole Web API a ochrana dat. |

API token
změna tokenu přes API
NFC čip
heslo API
Otázka: | Zaměstnanci používají karty s NFC čipy. Mohou se pomocí nich přihlašovat do Web API? |
Odpověď: |
Ano, je to možné. Doporučujeme ukládat kódy z čipů do položky token ve vlastnostech uživatele, která následně slouží k ověřování totožnosti místo kombinace přihlašovacího jména a hesla. Podmínkou je zatržení volby Umožnit rychlé přihlášení přes token (aby k přihlášení postačil samotný token uložený na čipu, bez nutnosti uvádění uživatelského jména) a unikátnost tokenu v rámci spojení na databázi (pokud je zatržena volba Umožnit rychlé přihlášení přes token, systém tuto unikátnost kontroluje automaticky). Kromě ručního zadání tokenu v agendě Uživatelé lze token nastavit také pomocí Web API (od verze ABRA Gen 21.3.4 včetně). V obou případech se token ukládá do databáze v zašifrované podobě. (Šifrování provádí systém ABRA Gen rovněž automaticky.) |

Otázka: |
Požadavek na tisk sestavy vrací chybu "Okno Výběr tiskárny (TNxSelectPrinterDialog) nelze modálně zobrazit" GET požadavek: http://localhost/demodata/issuedinvoices.pdf?select=id&where=id+eq+%1400000101%27&report=1V10000101&auth=DLBJdXwTfjpxYXdzZiExMTO1 Vrácená chyba: {"title":"error","description":"Okno Výběr tiskárny (TNxSelectPrinterDialog) nelze modálně zobrazit"} |
Odpověď: |
K tomuto problému dochází, pokud je Web API server spuštěn jako služba a místní systémový účet, pod kterým služba běží, nemá nastavenou výchozí tiskárnu. Pokud služba běží pod uživatelem, který má výchozí tiskárnu nastavenu, k podobnému problému nedochází. Více informací viz související poznámky v kapitole Tiskové sestavy. |

Otázka: |
Nedaří se mi vytvořit doklad pomocí importního manažeru - požadavek končí chybou 500 (Chyba v zadání položky). |
Odpověď: |
K této chybě typicky dochází, když se importní manažer pokusí uložit cílový doklad s prázdnými hodnotami v položkách, jejichž vyplnění je povinné. Řešením je předvyplnění těchto položek s využitím vlastnosti output_document_update. Podrobnější informace včetně ilustračního příkladu naleznete v dokumentaci k Web API(kapitola Struktura URI). |

Otázka: |
Pomocí importního manažeru se mi nedaří vytvořit daňový zálohový list vydaný ze zálohového listu vydaného. Požadavek končí chybou 1520 (Doklad musí být vystaven přesně na zvolenou částku). |
Odpověď: |
Při importu je zapotřebí použít parametr importdepositrows, který po nastavení na hodnotu true způsobí přenos řádků s částkou zálohy. K dispozici jsou také parametry pro přenos textových řádků a pro nastavení výchozí DPH sazby na řádcích, pokud není DPH sazba na odpovídajících zdrojových řádcích ZLV vyplněna. Podívejte se na ilustrační příklad. |

Otázka: |
Je možné aktualizovat obsah hlavičky i řádků existujícího dokladu v jednom kroku? Jak by mělo vypadat tělo takového požadavku? |
Odpověď: |
Je to možné, podívejte se na ilustrační příklad. |

Otázka: |
Je možné ve Web API vytvářet dokumenty (přílohy)? |
Odpověď: |
Je to možné (je možné dokumenty nejen vytvářet, ale také je připojovat k existujícím dokladům), podívejte se na ilustrační příklad. |

Otázka: |
Potřebuji napolohovat převodku výdej. Využívám importní manager Převodka výdej→Vyskladnění z pozic. Požadavek vypadá následovně:
Doklad Vyskladnění z pozic se vytvoří, ale nemá obsah (neobsahuje žádné řádky). V čem je chyba? Podporuje Web API plnohodnotné vytváření polohovacích dokladů? |
Odpověď: |
V těle požadavku nejsou obsaženy některé parametry, které jsou pro automatické polohování zapotřebí. Podívejte se na ilustrační příklad. |

Otázka: |
Zkusil jsem založit firmu se dvěma osobami ve firmě. Firma se mi však založila s jedinou osobou. Jak je to možné? |
Odpověď: |
Při používání metod POST a PUT je zapotřebí zacházet obezřetně s vlastností ID. Může nastat scénář ilustrovaný následujícím příkladem. ![]()
Pokud systém přidělí první zakládané osobě ve firmě (navázané na osobu 4U00000101) jiné ID než N400000101, je vše v pořádku a volání metody POST založí firmu se dvěma připojenými osobami. Pokud se však první osobě náhodou přidělí ID N400000101 (což není možné ovlivnit), při připojování druhé osoby dojde k přepsání první připojené osoby a v konečném důsledku se k firmě připojí jenom jedna osoba (druhá z uvedených). Chybou je uvádění ID v těle požadavku. |

Otázka: |
Je možné v URL používat datumové hodnoty? Jakým způsobem je mám formátovat? |
Odpověď: |
Jsou k dispozici dvě základní možnosti zápisu - OLE formát (počet dní od 1. 1. 1900) nebo ISO. Konkrétní příklad použití s uvedením obou variant naleznete v kapitole o základním dotazování. |

Otázka: | Je možné prostřednictvím Web API zjistit, zda záznam není aktuálně editován nějakým uživatelem, aby pokus o změnu nezhavaroval? |
Odpověď: |
Ano, prostřednictvím Web API je možné nejen zjišťovat existenci editačních zámků, ale také zámky nastavovat nebo odstraňovat. V kapitole Struktura URI jsou k dispozici ilustrační příklady. |

Otázka: | U záznamu v adresáři osob se mi nedaří nastavit příznak Zaměstnanec/Pracovník. Když se pokusím příslušnou položku (IsEmployee) změnit, skončí požadavek chybou 400 Bad Request s popisem "Není možné zapsat hodnotu do objektu ... (položka (10) Zaměstnanec/Pracovník)". |
Odpověď: |
Příznak Zaměstnanec/Pracovník není možné měnit přímo, ale prostřednictvím speciální metody. Viz ilustrační příklad v kapitole Další příklady použití Web API v ABRA Gen. Stejně je zapotřebí postupovat v případě potřeby změny příznaku Právnická osoba v Adresáři firem, viz další ilustrační příklad tamtéž. |

Otázka: | Zprovoznil jsem Web API, prostudoval OpenAPI dokumentaci a zjistil, že ve standardní podobě nenabízí veškerou funkcionalitu, kterou potřebuji. Je možné možnosti nějak uživatelsky rozšířit? |
Odpověď: |
Prostřednictvím Web API je možné volat funkce obsažené v balíčcích skriptů a z prostředí Web API si tak zpřístupnit jakoukoli funkcionalitu dostupnou v rámci skriptování. Základní principy vytváření takových funkcí a jejich volání včetně ilustračního příkladu naleznete v sekci Vytváření vlastních zdrojů v kapitole Struktura URI. |