Preskoči na glavno vsebino

Problém s vrátením polí

API mi nevracia všetky polia. Ako ich získam všetky?

Avtor: Lenka Haringerová

Na získanie všetkých polí z danej evidencie je nutné doplniť parameter detail=full.

Predvolenou úrovňou detailu je detail=summary, ktorá obsahuje len najdôležitejšie polia.

Detail=full je riešením, ako vypísať všetky polia. Zvyčajne však všetky polia nie sú vo výstupe potrebné. Váš program takýmto spôsobom načíta množstvo dát, pričom skutočne využijete len niektoré z nich. Polia, ktoré bude program spracovávať, sú však už vopred známe. Nie je teda dôvod používať detail=full.

💡 Správne by otázka mala znieť, ako získam všetky polia, ktoré potrebujem mať vo výstupe? Odpoveďou je použitie parametra detail=custom:…, v ktorom je možné vymenovať polia, ktoré má ABRA Flexi vrátiť.

Pri použití detail=custom navyše opäť môžete zrýchliť odozvu ABRA Flexi. Z databázy sa totiž nebudú načítavať objekty, ktoré neuvediete, a tým pádom odpadne mnoho SQL dotazov. Okrem zrýchlenia odpovedí od ABRA Flexi sa tiež zníži pamäťová náročnosť vášho programu. Nebude totiž nutné držať v pamäti tak veľké odpovede od ABRA Flexi.


Ako zistiť, aké polia evidencia poskytuje

Najjednoduchšou a najprehľadnejšou možnosťou je využitie /properties (napr. https://demo.flexibee.eu/c/demo/faktura-vydana/properties).

V tomto výstupe sa dozviete, aké hodnoty môžu jednotlivé polia nadobúdať. Pri väzobných objektoch zistíte, do akej evidencie odkazujú, a v neposlednom rade, či bude pole zohľadnené pri importe XML.

Podrobnosti popisuje dokumentácia úrovní detailu.


Ukážka

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


💡 V prípade otázok k aplikácii nás kontaktujte na podporaflexi@abra.eu, prípadne prostredníctvom chatového okna v pravom dolnom rohu.

Ste s tem dobili odgovor na svoje vprašanje?