Do systému je zapracována schopnost reakce na změnu a tu můžete použít i z jiného systému. Tato funkce se obvykle používá v kombinaci s ?dry-run=true v případech, kdy zpřístupňujete data uživateli k přímé editaci.
Uživatel očekává, že pokud na faktuře změní kód firmy, dojde k přepisu názvu firmy. Nicméně ve formuláři musí být uveden i název firmy, aby jej uživatel mohl změnit. Pomocí předchozí hodnoty se dá určit reakce na tuto změnu. Předchozích hodnot lze v jednom požadavku použít více.
Ukázka
Požadavek s uvedenou předchozí hodnotou:
<?xml version="1.0"?>
<winstrom version="1.0">
<faktura-vydana id="123">
<firma previousValue="code:JINA FIRMA">code:FIRMA</firma>
<nazFirmy>Jiná firma</nazFirmy>
</faktura-vydana>
</winstrom>
Odpovědí pak je — název firmy se přepsal podle nově vybrané firmy:
<?xml version="1.0"?>
<winstrom version="1.0">
<faktura-vydana id="123">
<firma>code:FIRMA</firma>
<nazFirmy>Firma</nazFirmy>
</faktura-vydana>
</winstrom>
V případě, že by nebyla uvedena předchozí hodnota, vypadala by odpověď takto — název firmy zůstane, jak byl poslán:
<?xml version="1.0"?>
<winstrom version="1.0">
<faktura-vydana id="123">
<firma>code:FIRMA</firma>
<nazFirmy>Jiná firma</nazFirmy>
</faktura-vydana>
</winstrom>
Proč to používat
Pokud byste chtěli dosáhnout stejného efektu i bez uvedení předchozí hodnoty, museli byste vynechat atributy, které souvisí se měněným atributem. Museli byste tak znát veškeré vazby, které závisí i na aktuálních datech.
ℹ️ Proces reakce na změnu se spouští jen tehdy, pokud došlo k opravdové změně. Pokud například změníte typ dokladu, který ale nezmění předpis zaúčtování, nedojde k přepsání účtů (má dáti a dal).
Zápis v JSON
Ve formátu JSON se hodnota uvádí jako další tag s názvem firma-previousValue:
{
"winstrom": {
"@version": "1.0",
"faktura-vydana": [{
"id": "123",
"firma": "code:FIRMA",
"firma-previousValue": "code:JINA FIRMA",
"nazFirmy": "Jiná firma"
}]
}
}
