Přeskočit na hlavní obsah
Kusovník - API

Jak v REST API pracovat s kusovníkem?

Petr Pech avatar
Autor: Petr Pech
Aktualizováno před více než 2 týdny

Pomocí kusovníku lze ve Flexi nastavit obsah a strukturu materiálu, ze kterého se výrobek či polotovar skládá. Konkrétní principy a možnosti nastavení popisuje dokumentace k nastavení v aplikaci ABRA Flexi.

V této dokumentaci se však podíváme na to, jak s kusovníkem pracovat v REST API.

Založení kusovníku (POST / PUT)

Kusovník můžeme založit metodou POST nebo PUT na URL endpoint /kusovnik. Dostupné pole endpointu (resp. evidence) naleznete v tzv. evidence-listu.

Jeden záznam kusovníku je vždy hlavičku kusovníku (výrobek / polotovar) nebo jeden materiál (jinak taky řádka, uzel), který pro hlavičku kusovníku vytváříte.

Na příklad si však ukážeme, jak založit kusovník pro jednu položku pouze s poli nezbytnými pro založení. Řada polí dostupných v evidenci je totiž nepovinná.

Pole vyplněná níže v requestu pro založení jsou povinná.

Příklad

Chceme založit kusovník pro výrobu předního kola, zároveň však i hlavičku a materiál v něm obsažený. Vše tedy zahrneme do jednoho requestu.

XML

POST / PUT na https://demo.flexibee.eu/c/kusovnik.xml

<winstrom version="1.0">
<kusovnik>
<id>ext:KUS:1</id>
<mnoz>1.0</mnoz>
<hladina>1</hladina>
<poradi>1</poradi>
<cesta>1/</cesta>
<otecCenik>code:PŘEDNÍ_KOLO</otecCenik>
<cenik>code:PŘEDNÍ_KOLO</cenik> <!-- Jedná se o hlavičku kusovníku, shodný s otecCenik-->
<otec></otec> <!-- Prázdný, jedná se o hlavičku-->
</kusovnik>
<kusovnik>
<id>ext:KUS:2</id>
<mnoz>1.0</mnoz>
<hladina>2</hladina>
<poradi>1</poradi>
<cesta>1/1/</cesta>
<otecCenik>code:PŘEDNÍ_KOLO</otecCenik>
<cenik>code:RÁFEK</cenik>
<otec>ext:KUS:1</otec>
</kusovnik>
<kusovnik>
<id>ext:KUS:3</id>
<mnoz>32.0</mnoz>
<hladina>2</hladina>
<poradi>2</poradi>
<cesta>1/2/</cesta>
<otecCenik>code:PŘEDNÍ_KOLO</otecCenik>
<cenik>code:DRÁTY</cenik>
<otec>ext:KUS:1</otec>
</kusovnik>
<kusovnik>
<id>ext:KUS:4</id>
<mnoz>1.0</mnoz>
<hladina>2</hladina>
<poradi>3</poradi>
<cesta>1/3/</cesta>
<otecCenik>code:PŘEDNÍ_KOLO</otecCenik>
<cenik>code:STŘED</cenik>
<otec>ext:KUS:1</otec>
</kusovnik>
</winstrom>

JSON

{
"winstrom":{
"@version":"1.0",
"kusovnik":[
{
"id":"ext:KUS:1",
"mnoz":"1.0",
"hladina":"1",
"poradi":"1",
"cesta":"1/",
"otecCenik":"code:PŘEDNÍ_KOLO",
"cenik":"code:PŘEDNÍ_KOLO",
"otec":""
},
{
"id":"ext:KUS:2",
"mnoz":"1.0",
"hladina":"2",
"poradi":"1",
"cesta":"1/1/",
"otecCenik":"code:PŘEDNÍ_KOLO",
"cenik":"code:RÁFEK",
"otec":"ext:KUS:1"
},
{
"id":"ext:KUS:3",
"mnoz":"32.0",
"hladina":"2",
"poradi":"2",
"cesta":"1/2/",
"otecCenik":"code:PŘEDNÍ_KOLO",
"cenik":"code:DRÁTY",
"otec":"ext:KUS:1"
},
{
"id":"ext:KUS:4",
"mnoz":"1.0",
"hladina":"2",
"poradi":"3",
"cesta":"1/3/",
"otecCenik":"code:PŘEDNÍ_KOLO",
"cenik":"code:STŘED",
"otec":"ext:KUS:1"
}
]
}
}

Získání kusovníku (GET)

Metodou GET můžeme exportovat všechny vytvořené kusovníky, hlavičky i jednotlivý materiál v kusovníku obsažený.

Příklad

Chceme získat výše založený kusovník, tedy kompletní kusovník pro ceníkovou položku s kódem "PŘEDNÍ_KOLO".

Libovolně lze použít filtrace (v URL / query), úroveň detailu nebo jiný z podporovaných formátů.

XML

GET na /kusovnik/(otecCenik='code:PŘEDNÍ_KOLO').xml?detail=full

Příklad kompletní URL adresy:

https://demo.flexibee.eu/c/flexi/kusovnik/(otecCenik='code:PŘEDNÍ_KOLO').xml?detail=full

JSON

GET na /kusovnik/(otecCenik='code:PŘEDNÍ_KOLO').json?detail=full

Příklad kompletní URL adresy:

https://demo.flexibee.eu/c/flexi/kusovnik/(otecCenik='code:PŘEDNÍ_KOLO').json?detail=full

Přepočet cen kusovníku

Hodnotu výrobku (položky, kde je nastaven kusovník) lze přepočítávat z cen materiálu, popř. služeb (obecně položek, které jsou v kusovníku nastaveny).

Veškerý postup je popsán v naší dokumentaci.

FAQ

Lze automaticky aktualizovat ceny kusovníku?

Ano, v současné době však pouze přes API - pravidelným zasíláním POST / PUT na URL adresu uvedenou v dokumentaci pro přepočet cen.

Mohu hromadně založit více kusovníků naráz?

Ano, vše vložte do jednoho requestu. Struktura musí být stejná jako u příkladu pro založení.

Jak kusovník odstranit?

Použitím action="delete", tzv. provedením akce. Podrobnosti naleznete v naší dokumentaci.

Dostali jste odpověď na svou otázku?