3 nejčastější otázky při používání FlexiBee API

Jaké jsou nejčastější dotazy programátorů, kteří začínají programovat svůj projekt nad FlexiBee API? Pracovníci zákaznického centra téměř každý den odpovídají na některou z těchto otázek :-)

Otázka č. 1. API mi nevrací všechny záznamy. Jak je získám všechny?


Odpověď:
K získání všech záznamů, z dané evidence, je nutné doplnit parametr limit=0.

Standardní výstup FlexiBee, bez použití parametru limit, obsahuje vždy jen prvních 20 záznamů. Pro kompletní výpis je nutné použít parametr limit=0. Vyhněte se používání limit=X kde X je dostatečně velké číslo. Jednoho dne dojde k tomu, že Vám FlexiBee nějaký záznam nevrátí a pak budete pracně zjišťovat, kde je chyba.

Případně je možné výsledek stránkovat správným použitím parametrů limit a start.

Pokud chcete zjistit, kolik záznamů odpovídá vašemu dotazu, je možné doplnit parametr add-row-count=true.

Také parametr add-row-count používejte jen v těch dotazech, kde má smysl. Například pokud mám ve FlexiBee nějaký počet adresářů a potřebuji je stránkovaně vypsat, tak tento parametr použijte jen v prvním dotazu. Tento parametr totiž přidává další dotaz do databáze (select count(*) from …). U některých výstupů může zpracování tohoto dotazu přidávat zbytečnou časovou prodlevu.

Dokumentace stránkování

Ukázka:
https://demo.flexibee.eu/c/demo/faktura-vydana.xml – výpis prvních 20 faktur
https://demo.flexibee.eu/c/demo/faktura-vydana.xml?limit=0 – výpis všech faktur



Otázka č. 2.: API mi nevrací všechna pole. Jak je získám všechna?


Odpověď:
K získání všech polí, z dané evidence, je nutné doplnit parametr detail=full.

Výchozí úrovní detailu je detail=summary, který obsahuje jen nejdůležitější pole.

Detail=full je řešením, jak vypsat všechna pole. Obvykle však všechna pole nejsou ve výstupu potřeba. Váš program pak načte spoustu dat a vy využijete jen některá. Pole, která program bude zpracovávat, jsou už ale známa dopředu. Není tedy důvod používat detail=full.

Správně by otázka měla znít, jak získám všechna pole, která potřebuji ve výstupu mít? Správnou odpověďí na tuto otázku je použití parametru detail=custom:..., ve kterém je možné vyjmenovat pole, která má FlexiBee vrátit.

Při použití detail=custom navíc opět můžete zrychlit odezvu FlexiBee. Nebudou se totiž z databáze načítat objekty, které neuvedete a tím pádem odpadne mnoho SQL dotazů. Kromě zrychlení odpovědí od FlexiBee se také sníží paměťová náročnost vašeho programu. Nebude totiž nutné držet v paměti tak velké odpovědi od FlexiBee.

Ke zjištění, jaká pole daná evidence poskytuje, je nejjednodušší a nejpřehlednější možností využítí /properties (např. https://demo.flexibee.eu/c/demo/faktura-vydana/properties).
V tomto výstupu se dozvíte, jakých hodnot mohou jednotlivá pole nabývat. U vazebních objektů zjistíte, do jaké evidence odkazují a v neposlední řadě zda bude pole uvažováno při importu XML.

Dokumentace úrovní detailu

Ukázka:
https://demo.flexibee.eu/c/demo/faktura-vydana.xml – detail=summary
https://demo.flexibee.eu/c/demo/faktura-vydana.xml?detail=full – detail=full
https://demo.flexibee.eu/c/demo/faktura-vydana.xml?detail=custom:id,typDokl,nazFirmy,sumCelkem,zbyvaUhradit – detail=custom, který vrací jen potřebná pole



Otázka č. 3. API mi na faktuře vydané nevypisuje položky. Jak získám položky dokladů?


Odpověď:
Pokud chcete doplnit do výpisu dokladů i položky, je potřeba doplnit parametr relations=polozkyDokladu.

FlexiBee, při výpisu dat z jedné evidence, umožňuje do výpisu doplnit i subevidence (vazby 1:N nebo M:N). Je to například právě faktura a její položky. Pro vnoření subevidence se používá parametr relations s uvedením, kterou subevidenci chcete do výstupu doplnit.

Seznam všech subevidencí, které je možné vkládat, získáte doplněním /relations za název evidence (např. https://demo.flexibee.eu/c/demo/faktura-vydana/relations).
V parametru relations se pak používá sloupec uvedený jako identifikátor (např. polozkyDokladu).

Dokumentace zmiňující relations

Ukázka:
https://demo.flexibee.eu/c/demo/faktura-vydana.xml – výpis faktur bez položek
https://demo.flexibee.eu/c/demo/faktura-vydana.xml?relations=polozkyDokladu – výpis faktur s položkami

ABRA FlexiBee, REST API, Časté dotazy

- (15. 9. 2017)
Kája z Norska
Kája z Norska

Jsem programátor, horolezec a tak trochu FlexiBee fanatik :-).
Na CharlieBlogu sepisuji své nápady a poznatky už od roku 2006.