Pokročilé funkce FlexiBee REST API Ladislav Thon lthon@flexibee.eu
Obsah Dotazování Navázané objekty a kolekce Úrovně detailu XPath Stránkování, řazení Filtrování (WQL) Hromadné čtení Našeptávání Uložené dotazy
Obsah Zkušební uložení (dry run) Smazání a storno Hromadné úpravy Řízení transakcí Původ importu Sledování změn Import dokladů Odesílání dokladů e-mailem Přílohy Sumace
Dotazování
Navázané objekty a kolekce?relations= polozky vazby prilohy sklad-karty *?includes= /winstrom/faktura-vydana/firma /faktura-vydana/firma
Úrovně detailu?detail=id?detail=summary výchozí pro seznam záznamů?detail=full výchozí pro detail záznamu?detail=custom:kod,nazev?detail=custom:kod,polozky(nazev,cena) ID vždy?detail=custom:...&includes=...
XPath?xpath=... http://www.kosek.cz/xml/xslt/xpath.html
Stránkování, řazení?limit=100?limit=0?start=100&limit=100 (Ext JS)?p=2&s=100 (jquery FlexBox)?add-row-count=true?order=nazev?order=nazev@A?order=nazev@D?order=kod&order=nazev?sort=nazev&dir=ASC DESC (Ext JS)
Filtrování (WQL) /c/firma/adresar/(nazev like 'Firma') vlastnost operátor hodnota and, or, not, ( ) operátory: =, <>, <, <=, >, >=, in, between [and] [not] like, begins [with], ends [with] in subtree [nonrecursive] (jen pro ceník) is true, is false is [not] null, is [not] empty
Filtrování (WQL) vlastnosti: nazev firma.nazev (bez negativních operátorů) hodnoty: -1, 10, 5.8, -10.0 "abc", 'def' true, false 2011-11-01 2011-11-01T12:30:00 now(), me() ID: 1, "code:firma", 'ext:sys:123'
Filtrování (WQL) štítky stitky = 'code:vip' stitky = 'code:vip' or stitky = 'code:dulezite' strom ceníku.../cenik/(in subtree 3).../cenik/(id in subtree 3).../cenik/(in subtree 7 nonrecursive).../skladova-karta/(cenik in subtree 3)
Hromadné čtení PUT POST /c/firma/faktura-vydana/get.xml Content-Type: application/xml <winstrom> <id>1</id> <id>code:2</id> <id>ext:sys:3</id> </winstrom>
Našeptávání.../adresar.json?q=firma&mode=suggest { "results": [ { "id": 399, "name": "FIRMA: Firma" } ], "total": 1, "query": "firma" } pro webové aplikace (jquery FlexBox, Ext JS)
Uložené dotazy SQL /c/firma/uzivatelsky-dotaz /c/firma/uzivatelsky-dotaz/call.xml (.json)?date=2012-01-01?firma=code:firma1&firma=code:firma2
Úpravy a další
Zkušební uložení (dry run)?dry-run=true <winstrom version="1.0"> <success>true</success> <stats>...</stats> <results> <result> <content>...</content> </result> </results> </winstrom>
Zkušební uložení (dry run)?dry-run=true <winstrom version="1.0"> <success>false</success> <stats>...</stats> <results> <result> <errors>...</errors> </result> </results> </winstrom>
Smazání a storno Smazání záznamu <adresar action="delete"> <id>...</id> </adresar> Storno dokladu <faktura-vydana action="storno"> <id>...</id> </faktura-vydana>
Hromadné úpravy WQL <winstrom> <cenik filter="dodavatel = 'code:firma'">... </cenik> </winstrom> žádné <id>
Řízení transakcí obvykle jedno XML = jedna transakce <winstrom atomic="false"> <adresar>...</adresar> <faktura-vydana>... <polozkyfaktury>...</polozkyfaktury> </faktura-vydana> </winstrom> jeden top-level element = jedna transakce
Původ importu <winstrom source="migrace 2012"> <adresar>...</adresar> <faktura-vydana>... <polozkyfaktury>...</polozkyfaktury> </faktura-vydana> </winstrom>
Sledování změn /c/firma/changes /c/firma/changes/enable disable
Sledování změn <winstrom globalversion="42"> <faktura-vydana in-version="1" operation="create"> <id>1</id> </faktura-vydana> <faktura-vydana in-version="2" operation="update"> <id>1</id> <id>code:vf1-0001/2012</id> <id>ext:sys:13</id> </faktura-vydana> <next>3</next> (none) </winstrom>
Sledování změn?since=123?count=500?evidence=faktura-vydana?evidence=faktura-vydana&evidence=faktura-prijata?add-global-version=true <winstrom globalversion="42">... </winstrom>
Import dokladů FlexiBee umí počítat nezadané částky se dopočítají z těch zadaných u položkového dokladu se sčítají částky položek a kontrolovat 1 + 1 nesmí být 3 částka tuz, částka měn a kurz musí souhlasit měn = 2599, kurz = 0.0038 tuz = 2599 * 0.0038 = 9.8762 = 9.88 9.88 / 0.0038 = 2600 proto přepočteme kurz na 0.003801 (chtělo by to ještě víc desetinných míst, ale nemáme...)
Odesílání dokladů e-mailem.../faktura-vydana/1/odeslani-dokladu?to=email@example.com&to=email2@example.com?cc=email@example.com&cc=email2@example.com?subject=doklad ABC tělo požadavku = text e-mailu (v naší šabloně) přílohy: PDF, příp. ISDOC
Přílohy?relations=prilohy /c/firma/adresar/12/prilohy /c/firma/adresar/12/prilohy/75/content /c/firma/adresar/12/prilohy/75/thumbnail PUT /c/firma/adresar/12/prilohy/new/a.jpg Content-Type: image/jpeg /c/firma/nastaveni/1/logo (podpis-razitko)
Sumace /c/firma/faktura-vydana/$sum jen pro doklady /c/firma/faktura-vydana/(...)/$sum
Q&A