Preskoči na glavno vsebino

Hromadná úprava záznamov pomocou filtra

Je možné hromadne upravovať záznamy pomocou filtra?

Avtor: Petr Pech

Hromadnú zmenu je možné vykonať jedným importom — namiesto identifikátora sa pri evidencii uvedie atribút filter a Flexi zmenu aplikuje na všetky zodpovedajúce záznamy.


Zápis

<winstrom version="1.0">
<faktura-vydana filter="id between 490 492">
<varSym>11111111111</varSym>
</faktura-vydana>
</winstrom>

V odpovedi je v štatistikách vidieť, koľkých záznamov sa zmena dotkla — <updated>2</updated>. Filter nie je možné uviesť v adrese; musí byť atribútom elementu evidencie.

⚠️ Znaky so zvláštnym významom sa v atribúte zapisujú entitami — &lt; namiesto <, inak import skončí chybou parsera. Popisuje ju článok Chyba: The value of attribute "filter".


Položky dokladov

Takto nie je možné upravovať položky dokladov — evidencia položiek import nepovoľuje a požiadavka skončí chybou:

Import není povolen.

Položku je preto potrebné meniť cez jej doklad: uviesť identifikátor dokladu a v ňom identifikátor položky.

<winstrom version="1.0">
<faktura-vydana>
<id>123</id>
<polozkyDokladu>
<faktura-vydana-polozka>
<id>456</id>
<nazev>Nový název</nazev>
</faktura-vydana-polozka>
</polozkyDokladu>
</faktura-vydana>
</winstrom>

💡 Rovnakým spôsobom sa dávkovo spúšťajú aj akcie — napríklad <faktura-vydana action="lock" filter="…"> uzamkne všetky zodpovedajúce doklady. Pozri Zamykanie dokladov cez API.


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?