Preskoči na glavno vsebino

Dávkové operácie

Aktualizácia viacerých záznamov naraz

Avtor: Lenka Haringerová

Pri importe je možné jedným elementom aktualizovať viacero záznamov naraz. Takto sa napríklad pridá všetkým položkám cenníka s dodávateľom FIRMA štítok VIP:

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

Atribút filter určuje záznamy z danej evidencie (tu cenik), na ktorých sa operácia vykoná. Filtrovací jazyk je rovnaký ako v REST API.

Dávkové spracovanie funguje tak, ako keby namiesto jediného elementu cenik s atribútom filter boli uvedené elementy cenik pre všetky záznamy, ktoré zodpovedajú danej podmienke.

⚠️ Jediným rozdielom je, že pri dávkových operáciách sa úplne ignorujú elementy id. Cieľovú množinu záznamov určuje výhradne filter.


Zápis v JSON

Na zadanie dávkovej operácie je samozrejme možné použiť aj formát JSON:

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

Týmto príkladom by došlo k vyvolaniu akcie lock nad všetkými záznamami evidencie faktura-vydana, ktoré majú priradený štítok OVERENO.


Na čo si dať pozor

  • Filter môže zasahovať oveľa viac záznamov, než očakávate. Skôr než operáciu spustíte, overte si rozsah čítaním — pošlite rovnaký filter ako GET s ?add-row-count=true a pozrite sa na počet záznamov.

  • Dávkovú operáciu si možno nechať prejsť nasucho parametrom ?dry-run=true.

  • Ak filter nevyhovuje žiadnemu záznamu, operácia prejde ako úspešná a nespraví nič — chybu nedostanete.


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?