Preskoči na glavno vsebino

Ako začať s API Flexi 4/6 - Čítanie, zápis a mazanie záznamov

Ako REST API ABRA Flexi spracúva čítanie, zápis, mazanie a storno záznamov a ako zistíte identifikátor novovytvoreného záznamu.

Avtor: Petr Pech

REST API ABRA Flexi pracuje s dvoma základnými typmi požiadaviek: čítaním dát a ich zápisom. V tomto diele si prejdeme, ako sa ktorá operácia správa, ako sa záznamy mažú a stornujú a ako spoznáte identifikátor novo vytvoreného záznamu.


Čítanie záznamov

Dáta sa čítajú metódou GET. Server pritom zohľadní výstupný formát, ktorý uvediete ako príponu adresy alebo v hlavičke Accept.

GET https://demo.flexibee.eu/c/demo/faktura-vydana.xml

Rozsah vrátených dát môžete obmedziť filtrom, stránkovaním alebo úrovňou detailu, ako popisuje diel o zostavovaní URL adresy.


Vytvorenie a aktualizácia záznamu

ABRA Flexi nerozlišuje medzi metódami POST a PUT. Význam požiadavky vždy závisí od cieľovej adresy a od obsahu, ktorý pošlete.

  • Ak ukladáte na adresu výpisu evidencie, budú záznamy pridané alebo aktualizované podľa toho, či sa podarilo nájsť identifikátor.

  • Ak ukladáte na adresu konkrétneho záznamu, telo požiadavky nemusí identifikátor obsahovať. Prevezme sa z adresy. Takýto záznam ale musí existovať.

  • Cez adresu výpisu je možné upraviť viacero záznamov naraz. Záznamy s interným identifikátorom prideleným Flexi musia existovať; záznamy identifikované napríklad externým ID budú v prípade potreby založené.

⚠️ Metóda POST očakáva dáta vo formáte XML alebo JSON, nie ako formulárové dáta (multipart/form-data). Odoslanie formulárových dát je častou príčinou chyby 400.

Správanie pri zápise je možné riadiť aj podľa toho, či záznam už existuje. Slúžia na to atribúty create a update s hodnotami ok, ignore a fail. Vďaka nim môžete napríklad zaistiť, že sa existujúci záznam neprepíše. Podrobnosti popisuje článok o režime pre založenie a zmenu.


Mazanie a storno záznamov

Na odstránenie záznamu použite akciu action="delete" priamo v tele importnej požiadavky. Rovnakým spôsobom je možné doklad stornovať pomocou action="storno".

<?xml version="1.0" encoding="utf-8"?>
<winstrom version="1.0">
<faktura-vydana action="delete">
<id>123</id>
</faktura-vydana>
</winstrom>
  • Pri vykonávaní akcií sa záznamy inak nemenia, nemá teda zmysel uvádzať iné elementy než id.

  • Záznamy musia už existovať. Nie je napríklad možné rovno vytvoriť vymazanú faktúru.

  • Storno je možné použiť iba pre doklady.

  • V jednej požiadavke takto spracujete aj viacero záznamov naraz.

Akciu je možné vyvolať aj na položkách dokladu, a to prostredníctvom kolekcie položiek na zodpovedajúcom doklade. Kompletný popis nájdete v článku o vykonávaní akcií.

🚨 Mazanie a storno sú zásahy do účtovných dát. Skôr než akciu spustíte na ostrých dátach, vyskúšajte si ju na kópii firmy alebo si požiadavku overte v režime testovacieho uloženia ?dry-run=true.


Formát vstupu a výstupu

Formát, v ktorom dáta posielate, a formát odpovede sú vždy zhodné a nie je možné ich kombinovať. Vstupný formát určíte hlavičkou Content-Type alebo príponou v adrese.

Content-Type: application/xml
https://demo.flexibee.eu/c/demo/faktura-vydana.xml

Prehľad všetkých podporovaných formátov nájdete v nasledujúcom diele.


Identifikátor nového záznamu

Po úspešnom vytvorení záznamu vám server jeho identifikátor vráti dvoma spôsobmi. Jednak v HTTP hlavičke Location:

Location: https://demo.flexibee.eu:5434/c/demo/faktura-vydana/105

A tiež priamo v tele odpovede:

<winstrom version="1.0">
<success>true</success>
<result>
<id>105</id>
</result>
</winstrom>

💡 Vrátený identifikátor si v integrácii uložte. Pri ďalších volaniach sa potom môžete na záznam odkázať priamo, bez toho aby ste ho museli dohľadávať. Viac o možnostiach identifikácie popisuje článok o identifikátoroch záznamov.

Úplnú referenčnú dokumentáciu k operáciám nájdete v článku podporované HTTP operácie.


Ďalšie diely série

Ste s tem dobili odgovor na svoje vprašanje?