Preskoči na glavno vsebino

Atribúty - REST API

Ako pracovať s atribútmi cenníka a adresára v REST API?

Avtor: Petr Pech

Atribúty umožňujú ukladať ďalšie informácie o záznamoch — dajú sa teda chápať ako používateľské polia, ktorými štandardnú evidenciu rozšírite. Najčastejšie sa používajú pri cenníku pre lepšie porovnávanie tovaru; podrobné vysvetlenie agendy nájdete v návode Atribúty cenníka.

Všetky atribúty ležia v jednej evidencii atribut. Ku ktorému záznamu atribút patrí, určuje vyplnená relácia:

Relácia

Atribút patrí k

cenik

cenníkovej položke

adresar

firme v adresári

doklObch, doklFak, doklSklad, doklInt

obchodnému, fakturačnému, skladovému alebo internému dokladu

Povinný je len typAtributu — odkaz do číselníka typ-atributu, ktorý určuje aj dátový typ hodnoty (typAtributK): typAtribut.retezec, typAtribut.integer, typAtribut.numeric, typAtribut.datumCas alebo typAtribut.boolean. Legendu k jednotlivým poliam číselníka popisuje článok Číselníky atribútov.

ℹ️ Hodnotu zapisujte do elementu hodnota. Flexi ju podľa typu atribútu uloží do zodpovedajúceho poľa — valString, valInteger, valNumeric, valBoolean alebo valDatCas — a pri čítaní dostanete oboje.

⚠️ Atribúty adresára je možné zakladať, upravovať a mazať iba cez REST API. Ich zobrazenie je už možné aj v desktopovej aplikácii.


Cenník

Atribúty v cenníku je možné založiť, upraviť aj zmazať cez API aj v desktopovej aplikácii. Vyčítať ich môžete buď ako podriadený zdroj cenníkovej položky, alebo priamo z evidencie atribútov:

GET https://demo.flexibee.eu/c/demo/cenik/42/atributy.xml
GET https://demo.flexibee.eu/c/demo/atribut/(cenik='code:CENIK').xml

⚠️ Filtrovať je nutné zápisom v okrúhlych zátvorkách v URL — funguje na oboch adresách, teda aj na /cenik/42/atributy/(hodnota='KUZE'). Parameter dotazu ?filter= tieto adresy naopak potichu ignorujú a vrátia všetky záznamy.

Import atribútu:

<?xml version="1.0" encoding="UTF-8"?>
<winstrom version="1.0">
<atribut>
<hodnota>KUZE</hodnota>
<cenik>code:KUFR</cenik>
<typAtributu>code:MATERIAL</typAtributu>
</atribut>
</winstrom>

Úprava existujúceho atribútu — s uvedením identifikátora záznamu:

<?xml version="1.0" encoding="UTF-8"?>
<winstrom version="1.0">
<atribut>
<id>1</id>
<hodnota>TEXTIL</hodnota>
<cenik>code:KUFR</cenik>
<typAtributu>code:MATERIAL</typAtributu>
</atribut>
</winstrom>

Odstránenie atribútu akciou delete — stačí uviesť identifikátor:

<?xml version="1.0" encoding="UTF-8"?>
<winstrom version="1.0">
<atribut action="delete">
<id>1</id>
</atribut>
</winstrom>

V desktopovej aplikácii potom atribút vyzerá takto:


Adresár

Princíp je rovnaký, len sa namiesto cenik vyplní relácia adresar:

GET https://demo.flexibee.eu/c/demo/adresar/642/atributy.xml
GET https://demo.flexibee.eu/c/demo/atribut/(adresar='code:FIRMA').xml

Import atribútu:

<?xml version="1.0" encoding="UTF-8"?>
<winstrom version="1.0">
<atribut>
<hodnota>DULEZITY</hodnota>
<adresar>code:FIRMA</adresar>
<typAtributu>code:VZTAH</typAtributu>
</atribut>
</winstrom>

Úprava atribútu:

<?xml version="1.0" encoding="UTF-8"?>
<winstrom version="1.0">
<atribut>
<id>1</id>
<hodnota>NEDULEZITY</hodnota>
<adresar>code:FIRMA</adresar>
<typAtributu>code:VZTAH</typAtributu>
</atribut>
</winstrom>

A odstránenie atribútu:

<?xml version="1.0" encoding="UTF-8"?>
<winstrom version="1.0">
<atribut action="delete">
<id>1</id>
</atribut>
</winstrom>

V desktopovej aplikácii potom atribút vyzerá takto:


FAQ

Je možné filtrovať cenníkové položky podľa atribútov?

Nie je to možné. Dotaz ako /cenik/(atributy.hodnota='KUZE') vracia 400 s hlásením Vlastnosť 'atributy' neexistuje. Filtrovať je možné iba v evidencii atribut a výsledné ID potom použiť pre dotaz do cenníka.

Ako pracovať s atribútmi cenníka v aplikácii?

Prejdite si návod pre webové aj desktopové rozhranie.

Je možné importovať atribúty z Excelu?

Áno, ale iba pre cenník — postup popisuje Import z Excelu - Atribúty.

Ako zabrániť vzniku duplicitných atribútov pri opakovanom importe?


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?