Přeskočit na hlavní obsah

Uživatelské vazby - API

Jak pracovat s uživatelskými vazbami přes API?

Autor: Petr Pech

Uživatelské vazby umožňují provázat libovolný objekt s jiným. U každé vazby je nutné uvést typ vazby a provázané objekty. Vazby mohou být dvou druhů:

  • ruční — provázané v aplikaci nebo importem,

  • automatické — objekty se zařazují samy podle konfigurace typu vazby (filtrem).

Typy vazeb spravuje číselník typ-uzivatelske-vazby. U každého typu je vlastnost automaticka a dvojice beanKeysA/beanKeysB, která určuje, jaké evidence smí na obou stranách vazby stát.


Získání vazby

Výpis objektů ve vazbě získáte jako podřízený zdroj konkrétního záznamu:

GET https://demo.flexibee.eu/c/demo/faktura-vydana/1/uzivatelske-vazby

Navázaný objekt může být přímou součástí exportu vazeb:

GET https://demo.flexibee.eu/c/demo/faktura-vydana/1/uzivatelske-vazby.xml?detail=full&includes=/winstrom/uzivatelska-vazba/object

Nebo lze vazby vyexportovat jako relaci samotného objektu:

GET https://demo.flexibee.eu/c/demo/faktura-vydana/1.xml?relations=uzivatelske-vazby

Kromě zadaných hodnot vrací každá vazba i údaje převzaté z navázaného objektu, které jsou jen pro čtení — modul, kod, nazev, castka, datum a objectId s číselným ID navázaného záznamu.


Import vazby

Vazby se importují jako podřízený element záznamu, ke kterému patří. Vyplňte u nich:

Element

Hodnota

vazbaTyp

Typ vazby z číselníku typ-uzivatelske-vazby.

evidenceType

Evidence, ve které se má navázaný záznam hledat. Seznam možných hodnot vrací evidence-list.

object

Navázaný záznam — hledá se v evidenci určené elementem evidenceType.

popis, poznam

Nepovinný popis a poznámka k vazbě.

Ukázka importu ruční vazby v XML — vazbě navíc dáváme externí identifikátor, abychom ji později mohli adresovat:

<?xml version="1.0" encoding="UTF-8"?>
<winstrom version="1.0">
<adresar>
<id>109</id>
<uzivatelske-vazby>
<uzivatelska-vazba>
<id>ext:VAZBA:TESTEXTID-CEN</id>
<evidenceType>cenik</evidenceType>
<object>code:SKL-0001/2022</object>
<popis>popisek skl</popis>
<poznam>poznam skl</poznam>
<vazbaTyp>code:ADRCEN</vazbaTyp>
</uzivatelska-vazba>
</uzivatelske-vazby>
</adresar>
</winstrom>

A totéž v JSON:

{
"winstrom":{
"@version":"1.0",
"interni-doklad":[
{
"id":"1054",
"uzivatelske-vazby":[
{
"vazbaTyp":"code:INT-FAV",
"evidenceType":"faktura-vydana",
"object":"code:VF1-0073/2022"
}
]
}
]
}
}


Odstranění vazby

Vazbu smažete akcí delete nad evidencí uzivatelska-vazba; stačí uvést její identifikátor:

<?xml version="1.0" encoding="UTF-8"?>
<winstrom version="1.0">
<uzivatelska-vazba action="delete">
<id>ext:VAZBA:TESTEXTID-CEN</id>
</uzivatelska-vazba>
</winstrom>


Neúspěšné požadavky

Situace

Odpověď

Chybí evidenceType nebo object, neexistuje zadaná evidence, případně navázaný objekt neexistuje

400, vazbyChybiElementyPři vytváření vazby je nutno zadat 'evidenceType' a 'object'.

Zvolený typ vazby nepřipouští danou kombinaci evidencí

400, vazbaNelzeKombinaceObjektuZvolená kombinace objektů není na vybraném typu vazby přípustná.

⚠️ Dostáváte vazbyChybiElementy, i když evidenceType vyplněný máte? Pak neexistuje jeden z objektů, které chcete provázat — podrobněji to rozebírá článek Chyba při vytváření uživatelské vazby.


Související

Dostali jste odpověď na svou otázku?