ABRA Flexi umožňuje částečné aktualizace záznamů (změny hodnot). Při aktualizaci záznamů uveďte jen takové atributy, které chcete změnit. Pokud uvedete prázdný atribut, dojde ke smazání hodnoty atributu.
<winstrom version="1.0"> <cenik id="123"> <nazevA>Nový název</nazevA> <!-- změněná hodnota --> <ean></ean> <!-- smazaná hodnota --> </cenik> </winstrom>
Mazání položek
Většina záznamů může obsahovat položky (např. faktura). Tyto položky je možné přidávat a mazat. Pokud u položky není uveden identifikátor, je určující její pořadí. Doporučujeme i u položek uvádět externí identifikátor, protože na položku mohou být navázány další informace (např. z jakého skladu bylo zboží vydáno). Pokud dojde k řízení položek jen podle pořadí a dojde k vložení záznamu na začátek, hodnoty budou přepsány, ale navázané informace zůstanou u původních záznamů. Tento postup tedy není vhodný při aktualizacích.
Aktualizace všech položek
Pokud při aktualizaci položek není uveden identifikátor, dojde vždy k přidání záznamů. Pokud chcete seznam záznamů nahradit a smazat tak všechny položky, které nejsou při aktualizaci uvedeny, použijte atribut removeAll="true"
:
<winstrom version="1.0"> <faktura-vydana id="123"> <polozkyFaktury removeAll="true"> <faktura-vydana-polozka> <id>14</id> ⋮ </faktura-vydana-polozka> </polozkyFaktury> </faktura-vydana> </winstrom>
V tomto případě platí, že všechny položky, které nejsou v seznamu uvedeny, budou smazány. Ty položky, které uvedeny jsou budou aktualizovány/založeny.
Ten samý požadavek přepsaný do JSON formátu by vypadal takto:
{ "winstrom": { "@version": "1.0", "faktura-vydana": [{ "id": "123", "polozkyFaktury@removeAll": "true", "polozkyFaktury": [{ "id": "14", ⋮ }] }] } }
Pro přímé mazání vybraných položek lze použít atribut action="delete"
viz Provádění akcí.
Mezi položkami mohou existovat vnitřní závislosti a tak při aktualizaci může dojít ke změně položky, která není explicitně modifikována.
Na podobném principu jako aktualizace položek funguje i aktualizace štítků.