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

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

Lenka Haringerová avatar
Autor: Lenka Haringerová
Aktualizováno před více než týdnem

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).

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

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.

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

<?xml version="1.0"?>
<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á).

Operace

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 doklad, 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.

Dostali jste odpověď na svou otázku?