Přeskočit na hlavní obsah

Režim pro založení / změnu

Založení a změna záznamu v REST API

Autor: Petr Pech

Při importu záznamu lze určit chování podle toho, zda záznam již existuje. Lze tak zajistit, aby související záznam byl importován jen pokud ještě neexistuje. Pokud již existuje, je možné, že jej již uživatel změnil a proto jej nebudeme importovat znovu a přepisovat hodnoty.

Režim lze určit pro každý záznam zvlášť a také pro každou operaci (založení/změna):

<winstrom version="1.0">
<faktura-vydana update="ignore">
<id>123</id>
...
</faktura-vydana>
</winstrom>


Režimy pro založení a změnu

Operace

Režim

Popis

Založení
(create)

ignore

Pokud záznam neexistuje, ignoruj požadavek na jeho založení.

fail

Pokud záznam neexistuje, selži.

ok

Pokud záznam neexistuje, normálně jej založ. Výchozí hodnota.

Změna
(update)

ignore

Pokud záznam již existuje, ignoruj požadavek na jeho změnu.

fail

Pokud záznam již existuje, selži.

ok

Pokud záznam již existuje, normálně jej změň. Výchozí hodnota.

ℹ️ Jak režimy poznat v odpovědi: při ignore server odpoví 200, ale nevrátí žádné <id> — záznam byl přeskočen. Při fail odpoví 400 s kódem hlášky importXmlCreateNeniPovolen, resp. importXmlUpdateNeniPovolen.


Chování u nenalezené vazby

Podobného mechanizmu, jako je u přeskakování řádků, je možné použít i u relací:

<winstrom version="1.0">
<faktura-vydana>
<firma if-not-found="null">code:FIRMA</firma>
...
</faktura-vydana>
</winstrom>

V tomto případě pokud nebude nalezena firma s kódem FIRMA, bude místo ní nastavena vazba na null (tj. prázdná).

Hodnota

Popis

null

Pokud záznam neexistuje, nenastavuj vazbu.

nearest-invalid

Pokud záznam odkazovaný kódem v současnosti neexistuje, ale v minulosti existoval, je vazba provedena na nejmladší již neplatný záznam. Jako datum se uvažuje datum dokladu, datum události, … Použití je například při importu historických dokladů s vazbou na již neplatná čísla účtů.

create

Pokud záznam odkazovaný kódem neexistuje, dojde k jeho automatickému založení. Pro záznamy číselníkového typu se vyplní vlastnosti kód / název dle hodnoty odkazu (např. FIRMA / FIRMA - Vyplněno při importu). Takto nelze zakládat záznamy s dalšími povinnými vlastnostmi.

⚠️ Bez atributu if-not-found skončí odkaz na neexistující záznam chybou 400. Pokud tedy importujete data z cizího systému, kde vazby nemusí být kompletní, atribut uveďte — jinak vám spadne celý import.


Související

Dostali jste odpověď na svou otázku?