Preskoči na glavno vsebino

API - Používateľské väzby

Ako pracovať s používateľskými väzbami cez API?

Avtor: Petr Pech

Používateľské väzby umožňujú prepojiť ľubovoľný objekt s iným. Pri každej väzbe je potrebné uviesť typ väzby a prepojené objekty. Väzby môžu byť dvoch druhov:

  • ručné — prepojené v aplikácii alebo importom,

  • automatické — objekty sa zaraďujú samy podľa konfigurácie typu väzby (filtrom).

Typy väzieb spravuje číselník typ-uzivatelske-vazby. Pri každom type je vlastnosť automaticka a dvojica beanKeysA/beanKeysB, ktorá určuje, aké evidencie smú na oboch stranách väzby stáť.


Získanie väzby

Výpis objektov vo väzbe získate ako podriadený zdroj konkrétneho záznamu:

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

Naviazaný objekt môže byť priamou súčasťou exportu väzieb:

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

Alebo je možné väzby exportovať ako reláciu samotného objektu:

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

Okrem zadaných hodnôt vracia každá väzba aj údaje prevzaté z naviazaného objektu, ktoré sú len na čítanie — modul, kod, nazev, castka, datum a objectId s číselným ID naviazaného záznamu.


Import väzby

Väzby sa importujú ako podriadený element záznamu, ku ktorému patria. Vyplňte pri nich:

Element

Hodnota

vazbaTyp

Typ väzby z číselníka typ-uzivatelske-vazby.

evidenceType

Evidencia, v ktorej sa má naviazaný záznam hľadať. Zoznam možných hodnôt vracia evidence-list.

object

Naviazaný záznam — hľadá sa v evidencii určenej elementom evidenceType.

popis, poznam

Nepovinný popis a poznámka k väzbe.

Ukážka importu ručnej väzby v XML — väzbe navyše dávame externý identifikátor, aby sme ju neskôr mohli adresovať:

<?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 to isté v JSON:

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


Odstránenie väzby

Väzbu vymažete akciou delete nad evidenciou uzivatelska-vazba; stačí uviesť 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úspešné požiadavky

Situácia

Odpoveď

Chýba evidenceType alebo object, neexistuje zadaná evidencia, prípadne naviazaný objekt neexistuje

400, vazbyChybiElementyPri vytváraní väzby je potrebné zadať 'evidenceType' a 'object'.

Zvolený typ väzby nepripúšťa danú kombináciu evidencií

400, vazbaNelzeKombinaceObjektuZvolená kombinácia objektov nie je na vybranom type väzby prípustná.

⚠️ Dostávate vazbyChybiElementy, aj keď evidenceType vyplnený máte? Potom neexistuje jeden z objektov, ktoré chcete prepojiť — podrobnejšie to rozoberá článok Chyba pri vytváraní používateľskej väzby.


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?