Preskoči na glavno vsebino

Režim na založenie / zmenu

Vytvorenie a zmena záznamu v REST API

Avtor: Lenka Haringerová

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
(create)

ignore

Ak záznam neexistuje, ignoruj požiadavku na jeho založenie.

fail

Ak záznam neexistuje, zlyhaj.

ok

Ak záznam neexistuje, normálne ho založ. Predvolená hodnota.

Zmena
(update)

ignore

Ak záznam už existuje, ignoruj požiadavku na jeho zmenu.

fail

Ak záznam už existuje, zlyhaj.

ok

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

null

Ak záznam neexistuje, nenastavuj väzbu.

nearest-invalid

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.

create

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. FIRMA / FIRMA - Vyplněno při importu). Takto nie je možné zakladať záznamy s ďalšími povinnými vlastnosťami.

⚠️ 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.


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?