Přeskočit na hlavní obsah

Dávkové operace

Aktualizace více záznamů zároveň

Autor: Petr Pech

Při importu lze jedním elementem aktualizovat více záznamů zároveň. Takto se například přidá všem položkám ceníku s dodavatelem FIRMA štítek VIP:

<?xml version="1.0"?>
<winstrom version="1.0">
<cenik filter="dodavatel = 'code:FIRMA'">
<stitky>VIP</stitky>
</cenik>
</winstrom>

Atribut filter určuje záznamy z dané evidence (zde cenik), na kterých se operace provede. Filtrační jazyk je stejný jako v REST API.

Dávkové zpracování funguje tak, jako by namísto jediného elementu cenik s atributem filter byly uvedeny elementy cenik pro všechny záznamy, které odpovídají dané podmínce.

⚠️ Jediným rozdílem je, že při dávkových operacích se úplně ignorují elementy id. Cílovou množinu záznamů určuje výhradně filter.


Zápis v JSON

Pro zadání dávkové operace lze samozřejmě použít i formát JSON:

{
"winstrom": {
"@version": "1.0",
"faktura-vydana": {
"@filter": "stitky='code:OVERENO'",
"@action": "lock"
}
}
}

Tímto příkladem by došlo k vyvolání akce lock nad všemi záznamy evidence faktura-vydana, které mají přiřazen štítek OVERENO.


Na co si dát pozor

  • Filtr může zabírat mnohem víc záznamů, než čekáte. Než operaci spustíte, ověřte si rozsah čtením — pošlete stejný filtr jako GET s ?add-row-count=true a podívejte se na počet záznamů.

  • Dávkovou operaci si lze nechat projít nasucho parametrem ?dry-run=true.

  • Pokud filtr nevyhovuje žádnému záznamu, operace projde jako úspěšná a neudělá nic — chybu nedostanete.


Související

Dostali jste odpověď na svou otázku?