Pri importe záznamu je možné určiť správanie podľa toho, či záznam už existuje. Je tak možné zabezpečiť, aby súvisiaci záznam bol importovaný len vtedy, ak ešte neexistuje. Ak už existuje, je možné, že ho už používateľ zmenil, a preto ho nebudeme importovať znovu a prepisovať hodnoty.
Režim je možné určiť pre každý záznam zvlášť a tiež pre každú operáciu (založenie/zmena):
<winstrom version="1.0">
<faktura-vydana update="ignore">
<id>123</id>
...
</faktura-vydana>
</winstrom>
Režimy pre založenie a zmenu
Operácia | Režim | Popis |
Založenie |
| Ak záznam neexistuje, ignoruj požiadavku na jeho založenie. |
| Ak záznam neexistuje, zlyhaj. | |
| Ak záznam neexistuje, normálne ho založ. Predvolená hodnota. | |
Zmena |
| Ak záznam už existuje, ignoruj požiadavku na jeho zmenu. |
| Ak záznam už existuje, zlyhaj. | |
| Ak záznam už existuje, normálne ho zmeň. Predvolená hodnota. |
ℹ️ Ako spoznať režimy v odpovedi: pri ignore server odpovie 200, ale nevráti žiadne <id> — záznam bol preskočený. Pri fail odpovie 400 s kódom hlásenia importXmlCreateNeniPovolen, resp. importXmlUpdateNeniPovolen.
Správanie pri nenájdenej väzbe
Podobný mechanizmus, aký je pri preskakovaní riadkov, je možné použiť aj pri reláciách:
<winstrom version="1.0">
<faktura-vydana>
<firma if-not-found="null">code:FIRMA</firma>
...
</faktura-vydana>
</winstrom>
V tomto prípade, ak nebude nájdená firma s kódom FIRMA, bude namiesto nej nastavená väzba na null (t. j. prázdna).
Hodnota | Popis |
| Ak záznam neexistuje, nenastavuj väzbu. |
| Ak záznam odkazovaný kódom v súčasnosti neexistuje, ale v minulosti existoval, je väzba vykonaná na najmladší už neplatný záznam. Ako dátum sa uvažuje dátum dokladu, dátum udalosti, … Použitie je napríklad pri importe historických dokladov s väzbou na už neplatné čísla účtov. |
| Ak záznam odkazovaný kódom neexistuje, dôjde k jeho automatickému založeniu. Pre záznamy číselníkového typu sa vyplnia vlastnosti kód / názov podľa hodnoty odkazu (napr. |
⚠️ Bez atribútu if-not-found skončí odkaz na neexistujúci záznam chybou 400. Ak teda importujete dáta z cudzieho systému, kde väzby nemusia byť kompletné, atribút uveďte — inak vám spadne celý import.
