Preskoči na glavno vsebino

Režim pre založenie / zmenu

Vytvorenie a zmena záznamu v REST API

Avtor: Lenka Haringerová

Pri importe záznamu možno určiť správanie podľa toho, či záznam už existuje. Možno tak zabezpečiť, aby súvisiaci záznam bol importovaný iba v prípade, že ešte neexistuje. Ak už existuje, je možné, že ho používateľ medzitým zmenil, a preto ho nebudeme importovať znovu a prepísať hodnoty.

Režim možno určiť pre každý záznam zvlášť a tiež pre každú operáciu (založenie/zmena).

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

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.

Podobný mechanizmus ako pri preskakovaní riadkov možno použiť aj pri reláciách. Príklad:

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

Operácia

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, väzba sa vykoná 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.

Ste s tem dobili odgovor na svoje vprašanje?