V URL používaném pro získávání dat z ABRA Flexi je možné využít mnoho parametrů, které ovlivňují získané výsledky.
Stránkování
Téměř každý uživatel ABRA Flexi API bude dřív nebo později potřebovat nějakým způsobem stránkovat výsledky, které mu systém vrací. Například jen z toho důvodu, že bez jiného určení ABRA Flexi vrací jen prvních 20 výsledků. Implicitně je totiž stránka velká 20 záznamů. Pokud je tedy potřeba ze systému získat další stránky nebo mít stránku delší je nutné začít používat parametry.
Důležité parametry jsou:
limit
Tento parametr určuje, kolik záznamů bude na jedné stránce.
Pokud potřebujete získat stránku se všemi záznamy najednou, tak je nutné tento parametr nastavit na hodnotu 0.
demo.flexibee.eu/c/demo/adresar.xml
Vrátí se prvních dvacet záznamů z evidence adresář.
demo.flexibee.eu/c/demo/adresar.xml?limit=5
Vrátí se prvních pět záznamů z evidence adresář.
demo.flexibee.eu/c/demo/adresar.xml?limit=0
Vrátí se všechny záznamy z evidence adresář.
start
Pokud je požadováno stránkování výsledků, tak jen limit nestačí. Je nutné použít i parametr start, který řekne, na kolikátém záznamu stránka začíná.
První záznam a zároveň výchozí hodnota je start=0.
demo.flexibee.eu/c/demo/adresar.xml?limit=5&start=0
Vrátí stránku o velikosti 5 záznamů z evidence adresář a začne na prvním záznamu.
demo.flexibee.eu/c/demo/adresar.xml?limit=5&start=5
Vrátí druhou stránku o velikosti 5 záznamů z evidence adresář. Druhá stránka je určena parametrem start s hodnotou 5.
add-row-count
Pokud stránkujete záznamy, je vhodné určit, kdy skončit. Je tedy také možné do URL přidat parametr, který do výstupu doplní celkový počet záznamů, přes které je možné stránkovat. Tento parametr se jmenuje add-row-count a nabývá hodnot true nebo false podle toho, zda se má celkový počet doplňovat, nebo ne.
demo.flexibee.eu/c/demo/adresar.xml?limit=5&add-row-count=true
Vrátí stránku o velikosti 5 záznamů z evidence adresář. V elementu winstrom je doplněn atribut rowCount, který obsahuje celkový počet záznamů.
demo.flexibee.eu/c/demo/adresar.json?limit=5&add-row-count=true
Stejný postup je možné aplikovat i na JSON výstup. Pak bude do výstupu doplněno „@rowCount“:“457″.
Pro co nejrychlejší odezvu Flexi doporučujeme používat stránkování!
Další optimalizací může být odstranění parametru add-row-count při načítání dalších stránek. Není totiž nutné se při každé stránce dotazovat, zda se tento počet nezměnil. Navíc získání tohoto čísla je v ABRA Flexi další dotaz do databáze, a každý zbytečný dotaz navíc je zdržení.
Úrovně detailu
Dalším velmi důležitým parametrem je detail. Tento parametr umožňuje ovlivnit, jaké vlastnosti jednotlivých záznamů, dané evidence, se budou ve výstupu nacházet. Je to ale velmi rozsáhlá tématika, takže si ji v budoucnu rozebereme v samostatném článku.
Dokumentace k jednotlivým detailům je dostupná na stránkách ABRA Flexi.
Řazení
Ve většině případů je potřeba záznamy, které ABRA Flexi vrací, mít rovnou i seřazené podle nějaké vlastnosti. Proč bychom měli záznamy řadit ve své aplikaci, když i toto za Vás může vyřešit ABRA Flexi?
Řazení záznamů se provádí parametrem order. Hodnota tohoto parametru je vlastnost, podle které budete chtít řadit.
demo.flexibee.eu/c/demo/adresar.xml?order=kod
Pokud tedy do URL doplníte parametr order=kod, systém bude vracet záznamy seřazené podle vlastnosti Zkratka. Záznamy budou seřazeny vzestupně.
demo.flexibee.eu/c/demo/adresar.xml?order=kod@D
Pokud potřebujete záznamy seřadit sestupně (výhodné například pro řazení podle částek, faktury s nejvyšší hodnotou budou na začátku), tak ještě za název vlastnosti doplňte @D
Řazení podle více hodnot se provádí opakovaným použitím parametru order. Pak záleží i na pořadí, jak jsou do URL parametry order vkládány.
demo.flexibee.eu/c/demo/adresar.xml?order=stat&order=kod
Tento příklad vrátí záznamy z evidence adresář, seřazené nejdříve podle státu a pokud je stát stejný, budou záznamy řazeny podle zkratky.
demo.flexibee.eu/c/demo/adresar.xml?order=kod&order=stat
Dotaz s řazením nejdříve podle zkratky a pak podle státu, samozřejmě vrátí jiné výsledky.
Parametr order je možné použít i přímo ve webovém rozhraní ABRA Flexi.
Ostatní
ABRA Flexi umožňuje v URL ještě mnoho dalších parametrů. Jejich kompletní seznam se nachází na stránce Sestavování URL, takže již zmíníme jen ty nejdůležitější a nejpoužívanější.
Logické parametry s možnými hodnotami true / false lze aktivovat pouhým uvedením parametru (tj. s prázdnou hodnotou). Například ?no-ids=true lze zkráceně zapsat jen jako ?no-ids.
only-ext-ids
Výstupy z Flexi vypisují u každého objektu identifikátory.
Pokud se použije tento parametr, budou vypisovány jen externí identifikátory objektů.
demo.flexibee.eu/c/demo/adresar.xml?only-ext-ids=true demo.flexibee.eu/c/demo/adresar.json?only-ext-ids=true
V tomto případě tedy zmizely vnitřní identifikátory ABRA Flexi a ve výstupu jsou jen externí identifikátory u záznamů, které je obsahují.
no-ext-ids
Opakem předchozího parametru je parametr no-ext-ids. Pokud je použit tento parametr, nebudou ve výstupu žádné externí identifikátory. Parametr no-ext-ids slouží především ke zrychlení načítání dat z ABRA Flexi. Každý pokus o načtení externích identifikátorů výpis zpomaluje.
demo.flexibee.eu/c/demo/adresar.xml?no-ext-ids=true demo.flexibee.eu/c/demo/adresar.json?no-ext-ids=true
no-ids
Obdoba předchozího parametru, ale ve výstupu nebudou žádné vnitřní identifikátory ABRA Flexi. Takže mohou zůstat zobrazeny například externí identifikátory.
Parametr no-ids=true ovlivňuje export ve všech úrovních, tj. také položky dokladů a vložené vazby.
demo.flexibee.eu/c/demo/adresar.xml?no-ids=true demo.flexibee.eu/c/demo/adresar.json?no-ids=true
no-comments
Pro možnost potlačení komentářů v XML výstupu byl přidán nový logický parametr no-comments.
demo.flexibee.eu/c/demo/adresar.xml?no-comments
mode=simple
Nový režim exportu “simple”(?mode=simple) generující minimalistický výstup bez atributů ref a showAs a v případě XML navíc bez vysvětlujících komentářů.
demo.flexibee.eu/c/demo/adresar.xml?mode=simple
code-as-id
Tímto parametrem se místo interních identifikátorů ABRA Flexi vypíše u evidencí, které to podporují, zkratka jako identifikátor.
demo.flexibee.eu/c/demo/adresar.xml?code-as-id=true demo.flexibee.eu/c/demo/adresar.json?code-as-id=true
Tímto parametrem je možné v kombinaci s no-ids zajistit přenosy dat mezi jednotlivými firmami ve Flexi. Například, pokud bude potřeba přenést adresář z firmy A do firmy B, je nejlepší způsob použít export přes REST-API, z firmy A a import do firmy B. URL pro získání adresáře bude vypadat například takto:
demo.flexibee.eu/c/demo/adresar.xml?code-as-id=true&no-ids=true
access-attribs=true
Zpřístupní dodatečné atributy informující o editovatelnosti záznamu.
demo.flexibee.eu/c/demo/nabidka-vydana.xml?access-attribs=true
Výsledek u kolekcí může vypadat například takto:
<polozkyObchDokladu insertable="true">
<nabidka-vydana-polozka editable="true" deletable="true">