Inkrementální aktualizace

FlexiBee 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ů.