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