Autonómny režim účtovného systému MRP-K/S
V autonómnom režime funguje klientská časť účtovného systému MRP-K/S ako webový server, ktorý spracováva prichádzajúce dotazy odoslané metódou HTTP POST a reaguje na ne odpoveďou. Dotaz aj odpoveď sú súbory vo formáte xml s predpísanou štruktúrou. Komunikácia môže byť voliteľne kódovaná, s možnosťou kompresie, autentizácie a šifrovania.
Využíva sa pre napojenie na e-shop, prípadne pre generovanie dát z databázy a import niektorých dokladov.
1. Spustenie MRP-K/S v autonómnom režime
2. Všeobecná štruktúra xml dotazov a odpovedí
Funkcia Hmac_Sha256
Odvodenie kľúčov
Autentizácia
Šifrovanie
Kompresia
Štruktúra obálky
Postup kódovania na strane odosielateľa
Postup dekódovania na strane príjemcu
Príklad štruktúry kódovaného dotazu a odpovede
EXPEO0 Export skladových kariet
EXPEO1 Export skladových kariet
IMPEO0 Import objednávok
CENEO0 Export cenníku
ADREO0 Export adries
1. Spustenie MRP-K/S v autonómnom režime
Spustenie MRP-K / S v autonómnom režime sa vykonáva zadaním parametrov príkazového riadku. Komunikácia sa odohráva v jednej, predom zvolenej firme.
-A | Spúšťa autonómny režim |
-Fx | Určuje číslo firmy (x), s ktorou bude autonómny režim pracovať |
-Y | Užívateľské meno a heslo, oddelené čiarkou bez medzier |
Príklad spustenia autonómneho režimu vo firme č.1:
MRPKS.EXE -A -F1 -Ymrpdba,mrpdba
Pri prvom spustení autonómneho režimu je potrebné v Nastaveniach vybrať číslo TCP portu, na ktorom bude program očakávať požiadavky. Ak je vyžadovaná šifrovaná komunikácia, je možné zadať tiež šifrovací kľúč. Na záložke profily je tiež potrebné nakonfigurovať, ktoré príkazy budú pre komunikáciu povolené a nastaviť ich ďalšie parametre.
2. Všeobecná štruktúra xml dotazov a odpovedí
Databáza MRP-K/S pracuje v kódovej stránke Windows-1250. Hoci je teda xml spravidla kódované v UTF-8, dokument by nemal obsahovať znaky, ktoré sa v kódovaní Windows-1250 nevyskytujú.
Koreňovým elementom dotazu aj odpovede je obálka <mrpEnvelope> . V tej je v prípade nekódovanej komunikácie obsiahnutý element <body> , ktorý zahŕňa vlastný dotaz alebo odpoveď. V prípade kódovanej komunikácie je obsah vložený do elementu <encodedBody> , ako je popísané ďalej v časti kódovaná komunikácia. Dotazy, ktoré menia obsah databázy, obsahujú povinný atribút requestId. Jeho obsah určuje požadujúca aplikácia a slúži na jednoznačnú identifikáciu daného dotazu. V prípade opakovaného príkazu so zhodným requestId ho program znovu nevykonáva, namiesto toho len vráti kópiu predtým odoslanej odpovede. Záznamy vykonaných príkazov sú v databáze evidované po obmedzenú dobu (momentálne cca pol dňa), potom sa mažú a ich requestId je uvoľnené pre nové použitie.
Dotaz môže taktiež obsahovať element <data> , V ktorom môžu byť napr. výberové podmienky (v prípade príkazu, požadujúceho údaje z databázy), alebo samotné dáta príkazu, nad ktorými má program vykonať požadovanú operáciu.
Odpoveď obsahuje v časti <status> identifikáciu príkazu, na ktorý reaguje. V prípade, že vykonávanie príkazu skončí ľubovolnou chybou, je táto skutočnosť signalizovaná prítomnosťou elementu <error> s jeho podrobnejším popisom.
Príklad nekódovaného dotazu:
<mrpEnvelope> <body> <mrpRequest command="IMPEO0" requestId="1234"> .... </mrpRequest> <data> <!-- Výberové podmienky --> <!-- ... alebo ... --> <!-- dáta príkazu --> </data> </body> </mrpEnvelope>
Príklad nekódovanej odpovede:
<mrpEnvelope> <body> <mrpResponse> <status> <!-- Blok s parametrami prevzatými z mrpRequest --> <request command="IMPEO0" requestId="1234"/> <!-- V prípade chyby blok s popisom chybového hlásenia --> <error errorCode="" errorClass=""> <!-- errorCode - Číselný chybový kód --> <!-- errorClass - Trieda vynimky --> <errorMessage> <!-- Text chybového hlásenia --> </errorMessage> </error> </status> <data> ..... </data> </mrpResponse> </body> </mrpEnvelope>
3. Kódovaná komunikácia
Kódovaná komunikácia umožňuje kompresiu alebo autentizáciu a šifrovanie xml dotazov a odpovedí. Základným elementom xml v týchto prípadoch zostáva obálka <mrpEnvelope> , samotný obsah je však miesto elementu <body> vložený v elemente <encodedBody>, spolu s ďalšími parametrami, ktoré určujú použitú kompresiu a šifrovanie. V prípade, že je v nastaveniach autonómneho režimu na strane MRP-K/S zaškrtnutá voľba Vyžadovať šifrovanie, aplikácia odmietne všetky neautentizované požadavky. Pre šifrovanie a autentizáciu je použitý symetrický tajný kľúč o dĺžke 32 B, ktorý sa v nastaveniach autonómneho režimu MRP-K/S zadává ako base64 sekvencia. Kľúč by mal byť radou spoľahlivo náhodných čísiel, program ich na požiadanie vie vytvoriť tlačítkom Generovať.
Funkcia Hmac_Sha256
Autentizačná funkcia Hmac sa v ďalších pokynoch používa spolu s hash funkciou Sha256 štandartným postupom: https://en.wikipedia.org/wiki/Hash-based_message_authentication_code
Funkcia je definovaná ako
Autentizačná sekvencia = Hmac_Sha256(Kľúč, Podpísaná sekvencia)
Odvodenie kľúčov
Vstupom je tajný kľúč (32 B).
Z tajného kľúča aplikácia odvodí nezávislé kľúče pre autentizáciu a šifrovanie nasledujúcim postupom, s využitím funkcie Hmac_Sha256:
Kľúč1 = Hmac_Sha256(Tajný kľúč, 0x01) Kľúč2 = Hmac_Sha256(Tajný kľúč, Kľúč1 || 0x02)
0x01 a 0x02 sú 1B konštanty (s pevnou hodnotou 1 a 2), || znamená zreťazenie
Ďalej sa takto získaný Kľúč1 používa ako tajný šifrovací kľúč (32 B) a Kľúč2 ako tajný autentizačný kľúč (32 B).
Autentizácia
Autentizácia sa prevádza algoritmom Hmac_Sha256.
Do algoritmu vstupuje tajný autentizačný kľúč (32 B) a podpisovaná sekvencia bez ďalších úprav.
Autentizačný kód = Hmac_Sha256(Autentizačný kľúč, Podpisovaná sekvencia)
Podpísaná je až finálna odoslaná sekvencia, po prípadnej kompresii a šifrovaní. Príjmajúca strana teda môže previesť autentizáciu dát ako prvý krok, a pokiaľ kódy nesúhlasia, vráti len chybové hlásenie o neplatnom autentizačnom kóde a požiadavkou sa ďalej nezaoberá.
Šifrovanie
Šifrovanie sa prevádza algoritmom AES s dĺžkou kľúča 256 bitov. Vstupom je tajný šifrovací kľúč (32 B) a sekvencia, ktorá sa má zašifrovať.
Postup šifrovania je na odosielajúcej strane nasledujúci:
- Vygenerovanie náhodnej sekvencie 32 B, ktorá sa nesmie (s veľkou pravdepodobnosťou) u ďalších požiadaviek opakovať, a to ani medzi rôznymi stanicami používajúcimi rovnaký šifrovací kľúč. Algoritmus získánia tejto sekvencie je ľubovolný, doporučeným postupom je využiť spoľahlivý generátor náhodných čísiel, jeho výstup spojiť s jedinečnými identifikátormi daného počítača a časom výpočtu a následne previesť hash celej sekvencie napr. funkciou Sha 256. Táto sekvencia sa ďalej označuje ako variantný kľúč.
- Pomocou funkcie Hmac_Sha256, kde klúčom Hmac je tajný šifrovací kľúč (32 B) a podpisovanou sekvenciou je variantný kľúč (32 B), sa získa finálny šifrovací kľúč (32 B).
- Pomocou funkcie Sha256 aplikovanej na variantný kľúč (32 B) sa získa iná 32 B sekvencia, ktorej prvých 16 B sa použije ako inicializačný vektor (16 B).
- Na sekvenciu určenú k zašifrovaniu sa aplikuje šifra AES v prúdovom režime CTR, pričom šifrovacím kľúčom je finálny šifrovací kľúč (32 B) a inicializačným vektorom prvého bloku dát (16 B) je inicializačný vektor získaný v predchádzajúcom kroku (16 B). Pre ďalšie 16 B bloky sa v režime CTR inicializačný vektor vždy zvyšuje o 1 (začína posledným bajtom, pri prekročení sa zvyšuje vždy predchádzajúci bajt, s výnimkou prvného).
Postup dešifrovania na prijímajúcej strane je zhodný, ako variantný kľúč sa použije sekvencia obsiahnutá v prijatej požiadavke.
Režim CTR funguje ako prúdová šifra a nevyžaduje tak zarovnanie správy do 16 B blokov. Ked nieje režim CTR k dispozícii, je možné ho realizovať pomocou základného režimu ECB.
Kompresia
Volitelná kompresia a dekompresia sa prevádza funkciami zlib deflate a inflate.
Štruktúra obálky
Kódovaná obálka riesi možnosti kompresie, šifrovania a autentizácie. V časti <encodingParams> je uložené pomocné xml s parametrami, v elemente <encodedData> potom xml so samotným obsahom (obsah elementu <body> z nekódovanej obálky, koreňovým elementom je teda <mrpRequest> alebo <mrpResponse>), obidva sú zakódované v base64. Keď je požadovaná autentizácia, je v ďalšom elemente <authCode> uvedený kontrolný Hmac_Sha256 hash celkového obsahu, pričom podpisovanou sekvenciou je sekvencia zložená z obsahu elementu <encodingParams>, za ktorý sa pripojí obsah elementu <encodedData>. Obsah elementu <encodingParams> a <encodedData> je vhodné zapúzdriť do xml sekcie CDATA, aby v prípade rozsiahlych xml dokumentov nedochádzalo k problémom pri ich spracovaní.
Kompletná štruktúra kódovanej obálky vypadá takto:
<mrpEnvelope> <encodedBody authentication="hmac_sha256"> <encodingParams> ... base64 - vložené xml s parametrami šifrovania a kompresie ... </encodingParams> <encodedData> ... base64 - vložené xml s obsahom obálky ... </encodedData> <authCode> ... base64 - hmac sha256 hash hodnota obsahu encodingParams+encodedData ... </authCode> </encodedBody> </mrpEnvelope>
Xml s parametrami šifrovania a kompresie, ktoré sa (prevedené do base64) ukladá do jej následujúcej:
<mrpEncodingParams compression="zlib" encryption="aes"> <varKey> ... len pri šifrovaní - base64 variantný kľúč 32 B ... </varkey> </mrpEncodingParams>
Postup kódovania na strane odosielateľa
- Prípadné parametre šifry a kompresie sa uložia do pomocného xml s koreňovým elementom <mrpEncodingParams>, ktoré sa následne uloží do sekcie <encodingParams> zakódovanej v base64.
- Odosielané xml (s koreňovým elementom <mrpRequest> alebo <mrpResponse>) sa prevedie na sekvenciu bajtov.
- Tá sa volitelne skomprimuje.
- Pokiaľ je požadované šifrovanie, sekvencia sa zašifruje.
- Výsledná sekvencia sa uloží do sekcie <encodedData> zakódovaná v base64.
- Pokiaľ je požadovaná autentizácia (pri šifrovaní povinné), vypočítá sa autentizačný kód sekvencie zloženej zo zreťazeného obsahu <encodingParams> a <encodedData>, a ten se následne uloží do elementu <authCode>, opäť zakódovaný v base64.
Postup dekódovania na strane príjemcu
- Príjemca si prečíta spôsob autentizácie. Keď vyžaduje autentizáciu a tá v atribúte authentication uvedená nie je, spracovanie končí chybou.
- Ak je vyžadována autentizácia, overí sa autentizačný kód. Keď nesúhlasí, spracovanie končí chybou.
- Načíta sa xml s parametrami šifry a kompresia uložená v <encodingParams>, spôsob šifrovania sa porovná s nastavením programu (keď je vyžadované šifrovanie a v parametroch nie je, požiadavka sa odmietne).
- Načíta sa dátová sekvencia obsiahnutá v sekcii <encodedData>.
- Ak je komunikácia šifrovaná, sekvencia sa dešifruje podľa parametrov zvolenej šifry.
- Ak je komunikácia komprimovaná, sekvencia sa rozbalí podľa zvolenej metódy kompresie.
Príklad štruktúry kódovaného dotazu a odpovede
Obsah niektorých častí kódovanej obálky je nepovinný, podľa spôsobu kompresie, šifrovania a autentizácie:
S autentizáciou, šifrováním a volitelnou kompresiou:
<mrpEnvelope> <encodedBody authentication="hmac_sha256"> <encodingParams> ... base64 - vložené xml s parametrami šifrovania a kompresie ... </encodingParams> <encodedData> ... base64 - vložené xml s obsahom obálky ... </encodedData> <authCode> ... base64 - hmac sha256 hash hodnota obsahu encodingParams+encodedData ... </authCode> </encodedBody> </mrpEnvelope>
Xml s parametrami šifrovania a kompresie, ktoré sa ukladá do <encodingParams> je nasledujúce (compression="zlib" znamená kompresiu):
<mrpEncodingParams compression="zlib" encryption="aes"> <varKey> ... base64 variantný kľúč 32 B ... </varkey> </mrpEncodingParams>
Kompresia bez autentizácie a šifrovania:
<mrpEnvelope> <encodedBody> <encodingParams> ... base64 - vložené xml s parametrami kompresie ... </encodingParams> <encodedData> ... base64 - vložené xml s obsahom obálky ... </encodedData> </encodedBody> </mrpEnvelope>
Vložené xml s parametrami kompresie:
<mrpEncodingParams compression="zlib"> </mrpEncodingParams>
4. Podporované príkazy
Príklady sú v nekódovanom tvare. Pokiaľ se v niektorých príkazoch zadávajú filtrovacie podmienky, potom sa používá užívateľská syntax programu MRP K/S. Výnimkou sú len filtre, ktoré ponúkajú užívateľovi výberové podmienky. V týchto prípadoch bude v poznámke uvedený ich možný rozsah.
Odpovede vracajúce dátovú časť majú nasledujúcu štruktúru.
<data> <datasets> <jmeno_tabulky> <rows> 1..n <row> <fields> 1..n <jmeno_fieldu>hodnota</jmeno_fieldu> </fields> </row> </rows> </jmeno_tabulky> </datasets> </data>
EXPEO0
Export skladových kariet do e-obchodu. Dátový element obsahuje filtrovacie podmienky <fltvalue name="jmeno_filtru">podminka</fltvalue>.
Požiadavka
Atribúty elementu <fltvalue> | nepovinný | ||||
---|---|---|---|---|---|
name | O/M | Typ | Dĺžka | DM | Význam |
stavy | O | L | 1 | 0 | Sú požadované len stavy kariet. [T|F] |
cisloSkladu | O | N | 3 | 0 | Číslo jedného skladu, z ktorého sa bude brať stav karty. [1..999] Túto podmienku je možné omedziť nastavením "Vždy pridať omedzujúce podmienky" |
cisloCeny | O | N | 1 | 0 | Číslo jednej predajnej ceny. [0,1..5] |
malObraz | O | L | 1 | 0 | Malý obrázok. [T|F] |
velObraz | O | L | 1 | 0 | Veľký obrázok. [T|F] |
Zoznam volitelných filtrovacích polí, ktoré sa približujú filtrovacím podmienkam skladových kariet. Meno filtra sa skladá z mena tabuľky, oddeľovača a mena dátového poľa. Výraz sa zapisuje a vyhodnocuje rovnakým spôsobom, aku u filtra v programe MRP K/S, teda pri použití číselných a dátumových výrazov musia tieto výrazy rešpektovať nastavenie desatinných oddeľovačov a tvaru dát nastavených na klientskej stanici. Sú uvádzané len typy jednotlivých polí kvôli konštrukcii dotazu. |
|||||
name | O/M | Typ | Dĺžka | DM | Význam |
SKKAR.CISLO | O | N | X | X | Číslo skladovej karty. Tuto podmienku je možné omedziť nastavením "Vždy pridať omedzujúce podmienky" |
SKKAR.NAZOV | O | T | X | X | Názov skladovej karty. |
SKKAR.KOD | O | T | X | X | EAN skladovej karty. |
SKKAR.KOD1 | O | T | X | X | Užívateľský kód skladovej karty. |
SKKAR.KOD2 | O | T | X | X | Užívateľský kód skladovej karty. |
SKKAR.KOD3 | O | T | X | X | Užívateľský kód skladovej karty. |
SKKAR.SKUPINA | O | T | X | X | Kód skupiny skladových kariet. Tuto podmienku je možné omedziť nastavením "Vždy pridať omedzujúce podmienky" |
SKKAR.CISKAT | O | N | X | X | Kód katalógu skladových kariet. Tuto podmienku je možné omedziť nastavením "Vždy pridať omedzujúce podmienky" |
SKKAR.TYP_POL | O | T | X | X | Kód typu položky skladovej karty. Tuto podmienku je možné omedziť nastavením "Vždy pridať omedzujúce podmienky" |
SKKAR.SADZBADPH | O | N | X | X | Sadzba DPH skladovej karty. |
SKKAR.BEZDPH | O | L | X | X | Rozlíšenie medzi mimo DPH a nulovou sadzbou [T|F]. |
SKKAR.POZNAMKA | O | T | X | X | Poznámka skladovej karty. |
SKKAR.ZAKAZSLEVY | O | L | X | X | Zákaz zľavy skladovej karty [T|F]. |
SKKAR.DODAVATEL | O | T | X | X | IČ obchodníka (nie je to záložka dodávateľov). |
SKKAR.POZNAMKA1 | O | T | X | X | Rozšírená poznámka skladovej karty. |
SKKAR.DAT_ZAR | O | D | X | X | Dátum zaradenia skladovej karty. |
SKKAR.POUZIVANA | O | L | X | X | Príznak používania skladovej karty [T|F]. |
SKKAR.TLAC | O | L | X | X | Príznak zaradenia karty do "tlače" [T|F]. |
SKKAR.USRFLD1 | O | T | X | X | Užívateľské pole skladovej karty. |
SKKAR.USRFLD2 | O | T | X | X | Užívateľské pole skladovej karty. |
SKKAR.USRFLD3 | O | T | X | X | Užívateľské pole skladovej karty. |
SKKAR.USRFLD4 | O | T | X | X | Užívateľské pole skladovej karty. |
SKKAR.USRFLD5 | O | T | X | X | Užívateľské pole skladovej karty. |
SKKARSTA.POCETMJ | O | N | X | X | Počet MJ na zvolenom sklade. |
SKKARSTA.POCREZMJ | O | N | X | X | Počet rezervovaných MJ na zvolenom sklade. |
SKKARSTA.POCOBJMJ | O | N | X | X | Počet objednaných MJ u dodávateľov na zvolenom sklade. |
SKKARSTA.POZICE | O | T | X | X | Umiestenie vo zvolenom sklade. |
SKKARSTA.MINIMUM | O | N | X | X | Nastavené minimum MJ na zvolenom sklade. |
SKKARSTA.NORMA | O | N | X | X | Nastavená norma MJ na zvolenom sklade. |
SKKARSTA.MAXIMUM | O | N | X | X | Nastavené maximum MJ na zvolenom sklade. |
<mrpEnvelope> <body> <mrpRequest> <request command="EXPEO1" requestId=""> </request> <data> <filter> <fltvalue name="cisloSkladu">1</fltvalue> <fltvalue name="cisloCeny">2</fltvalue> <fltvalue name="malObraz">T</fltvalue> <fltvalue name="velObraz">T</fltvalue> <fltvalue name="stavy">F</fltvalue> <!-- Nepovinný blok s prípadnými dátami, záleží na príkaze, či ho potrebuje --> <!-- Číslo karty v rozsahu 1 až 10 --> <fltvalue name="SKKAR.CISLO">1..10</fltvalue> <!-- Kód skupiny skladových kariet A alebo B --> <fltvalue name="SKKAR.SKUPINA">A|B</fltvalue> <!-- Typ položky Z --> <fltvalue name="SKKAR.TYP_POL">Z</fltvalue> </filter> </data> </mrpRequest> </body> </mrpEnvelope>
Odpoveď
Element <karty> | Vždy | ||||
---|---|---|---|---|---|
fields | stavy | Typ | Dĺžka | DM | Význam |
cislo | X | N | 10 | 2 | Číslo karty |
nazev | F | T | 64 | 0 | Názov karty |
jednotka | F | T | 3 | 0 | Merná jednotka |
cena | F | N | 17 | 6 | Cena určená podmienkou cisloCeny |
cenasdph | F | N | 17 | 6 | Táto cena s DPH |
sazbadph | F | N | 5 | 2 | Sadzba DPH |
ciskat | F | N | 8 | 0 | Číslo v katalógu |
kod | F | T | 14 | 0 | EAN kód |
kod1 | F | T | 30 | 0 | Užívateľský kód 1 |
skupina | F | T | 10 | 0 | Kód skupiny skl. kariet |
hmotnost | F | N | 13 | 6 | Hmotnosť v kg |
baleni | F | N | 12 | 3 | Množstvo MJ v balení |
usrfld1 | F | T | 40 | 0 | Užívateľské pole 1 |
usrfld2 | F | T | 40 | 0 | Užívateľské pole 2 |
usrfld3 | F | T | 40 | 0 | Užívateľské pole 3 |
usrfld4 | F | T | 40 | 0 | Užívateľské pole 4 |
usrfld5 | F | T | 40 | 0 | Užívateľské pole 5 |
poznamka | F | T | 50 | 0 | Poznámka |
nazev2 | F | T | 64 | 0 | Názov 2 karty |
pocetmj | X | N | 15 | 6 | Počet MJ na požadovanom sklade |
pocrezmj | X | N | 15 | 6 | Počet rezervovaných MJ na požadovanom sklade |
pocobjmj | X | N | 15 | 6 | Počet objednaných MJ u dodávateľov na zvolenom sklade. |
cena1 | F | N | 17 | 6 | Predajná cena 1 |
cena1sdph | F | N | 17 | 6 | Predajná cena 1 s DPH |
cena2 | F | N | 17 | 6 | Predajná cena 2 |
cena2sdph | F | N | 17 | 6 | Predajná cena 2 s DPH |
cena3 | F | N | 17 | 6 | Predajná cena 3 |
cena3sdph | F | N | 17 | 6 | Predajná cena 2 s DPH |
cena4 | F | N | 17 | 6 | Predajná cena 4 |
cena4sdph | F | N | 17 | 6 | Predajná cena 4 s DPH |
cena5 | F | N | 17 | 6 | Predajná cena 5 |
cena5sdph | F | N | 17 | 6 | Predajná cena 5 s DPH |
pozice | F | T | 10 | 0 | Pozícia na požadovanom sklade |
malpopis | F | T | 80 | 0 | Malý popis |
velpopis | F | M | X | 0 | Veľký popis |
malobr | F | T | 40 | 0 | Názov malého obrázku |
velobr | F | T | 40 | 0 | Názov veľkého obrázku |
malobraz | F | B | X | 0 | Malý obrázok (musí byť nastavené malObraz) |
velobraz | F | B | X | 0 | Veľký obrázok (musí byť nastavené velObraz) |
skupnazev | F | T | 50 | 0 | Názov katalógovej skupiny |
mena | F | T | 3 | 0 | Mena |
Element <katalog> | (len stavy=F) | ||||
fields | stavy | Typ | Dĺžka | DM | Význam |
idr | F | N | 9 | 0 | |
ciskat | F | N | 8 | 0 | Číslo katalogovej skupiny |
uciskat | F | N | 8 | 0 | Číslo nadradenej katalógovej skupiny |
popis | F | T | 45 | 0 | Popis katalógovej skupiny |
poradi | F | N | 8 | 0 | Poradie v stromovej štruktúre |
Element <nahrady> | (len stavy=F) | ||||
fields | stavy | Typ | Dĺžka | DM | Význam |
cislo | F | N | 10 | 2 | Číslo skladovej karty |
kod | F | T | 14 | 0 | EAN skladovej karty |
kod1 | F | T | 30 | 0 | Užívateľský kód 1 skladovej karty |
cislo_z | F | N | 10 | 2 | Číslo zameniteľnej skladovej karty |
kod_z | F | T | 14 | 0 | EAN zameniteľnej skladovej karty |
kod1_z | F | T | 30 | 0 | Užívateľský kód 1 zameniteľnej skladovej karty |
<mrpEnvelope> <body> <mrpResponse> <status> <request command="EXPEO0"/> </status> <data> <datasets> <karty> <rows> <row> <fields> <cislo>1</cislo> <nazev>Kladivo</nazev> <jednotka>ks</jednotka> <cena>223.97</cena> <cenasdph>271</cenasdph> <sazbadph>21</sazbadph> <ciskat>2</ciskat> <kod>8595008803359</kod> <kod1></kod1> <skupina>6</skupina> <hmotnost>0</hmotnost> <baleni>12</baleni> <usrfld1></usrfld1> <usrfld2></usrfld2> <usrfld3></usrfld3> <usrfld4></usrfld4> <usrfld5></usrfld5> <poznamka></poznamka> <nazev2></nazev2> <pocetmj>10</pocetmj> <pocrezmj>2</pocrezmj> <cena1>223.97</cena1> <cena1sdph>271</cena1sdph> <cena2>0</cena2> <cena2sdph>0</cena2sdph> <cena3>0</cena3> <cena3sdph>0</cena3sdph> <cena4>0</cena4> <cena4sdph>0</cena4sdph> <cena5>0</cena5> <cena5sdph>0</cena5sdph> <pozice></pozice> <skupnazev>Skupina 6</skupnazev> <mena>EUR</mena> </fields> </row> <row> .... </row> </rows> </karty> <katalog> <rows> <row> <fields> <idr>321232</idr> <ciskat>1</ciskat> <popis>Náradie</popis> <poradi>0</poradi> </fields> </row> <row> .... </row> </rows> </katalog> <katalog> <rows> <row> <fields> <cislo>1</cislo> <kod>8595008803359</kod> <kod1></kod1> <cislo_z>1.1</cislo_z> <kod_z>8594007132571</kod_z> <kod1_z></kod1_z> </fields> </row> <row> .... </row> </rows> </katalog> </datasets> </data> </mrpResponse> </body> </mrpEnvelope>
EXPEO1
Export skladových kariet do e-obchodu. Dátový element obsahuje filtrovacie podmienky <fltvalue name="jmeno_filtru">podminka</fltvalue>.
Požiadavka
Filtrovacie podmienky sú rovnaké ako u príkazu EXPEO0. Jediným rozdielom je filter pre číslo skladu, kde môže byť zadaný rozsah v rámci platných filtrovacích podmienok.
<mrpEnvelope> <body> <mrpRequest> <request command="EXPEO1" requestId=""> </request> <data> <filter> <fltvalue name="cisloSkladu">1..3</fltvalue> <fltvalue name="cisloCeny">2</fltvalue> <fltvalue name="malObraz">T</fltvalue> <fltvalue name="velObraz">T</fltvalue> <fltvalue name="stavy">F</fltvalue> <fltvalue name="SKKAR.CISLO">1..10</fltvalue> </filter> </data> </mrpRequest> </body> </mrpEnvelope>
Odpoveď
Element <sklady> | Vždy | ||||
---|---|---|---|---|---|
fields | stavy | Typ | Dĺžka | DM | Význam |
cisloskl | X | N | 3 | 0 | Číslo skladu |
nazevskl | X | T | 30 | 0 | Názov skladu |
Element <stavy> | Vždy | ||||
fields | stavy | Typ | Délka | DM | Význam |
cisloskl | X | N | 3 | 0 | Číslo skladu |
cislokar | X | N | 10 | 2 | Číslo karty |
pocetmj | X | N | 15 | 6 | Počet MJ v sklade |
pocrezmj | X | N | 15 | 6 | Počet rezervovaných MJ na požadovanom sklade |
pocobjmj | X | N | 15 | 6 | Počet objednaných MJ u dodavateľa na zvolenom sklade |
cena | F | N | 17 | 6 | Cena určená podmienkou cisloCeny |
cenasdph | F | N | 17 | 6 | Táto cena s DPH |
cena1 | F | N | 17 | 6 | Predajná cena 1 |
cena1sdph | F | N | 17 | 6 | Predajná cena 1 s DPH |
cena2 | F | N | 17 | 6 | Predajná cena 2 |
cena2sdph | F | N | 17 | 6 | Predajná cena 2 s DPH |
cena3 | F | N | 17 | 6 | Predajná cena 3 |
cena3sdph | F | N | 17 | 6 | Predajná cena 2 s DPH |
cena4 | F | N | 17 | 6 | Predajná cena 4 |
cena4sdph | F | N | 17 | 6 | Predajná cena 4 s DPH |
cena5 | F | N | 17 | 6 | Predajná cena 5 |
cena5sdph | F | N | 17 | 6 | Predajná cena 5 s DPH |
pozice | F | T | 10 | 0 | Pozícia na požadovanom sklade |
mena | F | T | 3 | 0 | Mena |
Element <karty> | (len stavy=F) | ||||
fields | stavy | Typ | Dĺžka | DM | Význam |
cislo | F | N | 10 | 2 | Číslo karty |
nazev | F | T | 64 | 0 | Názov karty |
jednotka | F | T | 3 | 0 | Merná jednotka |
sazbadph | F | N | 5 | 2 | Sadzba DPH |
ciskat | F | N | 8 | 0 | Číslo v katalógu |
kod | F | T | 14 | 0 | EAN kód |
kod1 | F | T | 30 | 0 | Užívateľský kód 1 |
skupina | F | T | 10 | 0 | Kód skupiny skl. kariet |
hmotnost | F | N | 13 | 6 | Hmotnosť v kg |
baleni | F | N | 12 | 3 | Množstvo MJ v balení |
usrfld1 | F | T | 40 | 0 | Užívateľské pole 1 |
usrfld2 | F | T | 40 | 0 | Užívateľské pole 2 |
usrfld3 | F | T | 40 | 0 | Užívateľské pole 3 |
usrfld4 | F | T | 40 | 0 | Užívateľské pole 4 |
usrfld5 | F | T | 40 | 0 | Užívateľské pole 5 |
poznamka | F | T | 50 | 0 | Poznámka |
nazev2 | F | T | 64 | 0 | Názov 2 karty |
malpopis | F | T | 80 | 0 | Malý popis |
velpopis | F | M | X | 0 | Veľký popis |
malobr | F | T | 40 | 0 | Názov malého obrázku |
velobr | F | T | 40 | 0 | Názov veľkého obrázku |
malobraz | F | B | X | 0 | Malý obrázok (musí byť nastavené malObraz) |
velobraz | F | B | X | 0 | Veľký obrázok (musí byť nastavené velObraz) |
skupnazev | F | T | 50 | 0 | Názov katalógovej skupiny |
Element <katalog> | (len stavy=F) | ||||
fields | stavy | Typ | Dĺžka | DM | Význam |
idr | F | N | 9 | 0 | |
ciskat | F | N | 8 | 0 | Číslo katalógovej skupiny |
uciskat | F | N | 8 | 0 | Číslo nadradenej katalógovej skupiny |
popis | F | T | 45 | 0 | Popis katalógovej skupiny |
poradi | F | N | 8 | 0 | Poradie v stromovej štruktúre |
Element <nahrady> | (len stavy=F) | ||||
fields | stavy | Typ | Dĺžka | DM | Význam |
cislo | F | N | 10 | 2 | Číslo skladovej karty |
kod | F | T | 14 | 0 | EAN skladovej karty |
kod1 | F | T | 30 | 0 | Užívateľský kód 1 skladovej karty |
cislo_z | F | N | 10 | 2 | Číslo zameniteľnej skladovej karty |
kod_z | F | T | 14 | 0 | EAN zameniteľnej skladovej karty |
kod1_z | F | T | 30 | 0 | Užívateľský kód 1 zameniteľnej skladovej karty |
<mrpEnvelope> <body> <mrpResponse> <status> <request command="EXPEO1"/> </status> <data> <datasets> <sklady> <rows> <row> <fields> <cisloskl>1</cisloskl> <nazevskl>Sklad 1</nazevskl> </fields> </row> </rows> </sklady> <stavy> <rows> <row> <fields> <cisloskl>1</cisloskl> <cislo>1</cislo> <pocetmj>10</pocetmj> <pocrezmj>2</pocrezmj> <cena>223.97</cena> <cenasdph>271</cenasdph> <cena1>223.97</cena1> <cena1sdph>271</cena1sdph> <cena2>0</cena2> <cena2sdph>0</cena2sdph> <cena3>0</cena3> <cena3sdph>0</cena3sdph> <cena4>0</cena4> <cena4sdph>0</cena4sdph> <cena5>0</cena5> <cena5sdph>0</cena5sdph> <pozice></pozice> <mena>EUR</mena> </fields> </row> </rows> </stavy> <karty> <rows> <row> <fields> <cislo>1</cislo> <nazev>Kladivo</nazev> <jednotka>ks</jednotka> <sazbadph>21</sazbadph> <ciskat>2</ciskat> <kod>8595008803359</kod> <kod1></kod1> <skupina>6</skupina> <hmotnost>0</hmotnost> <baleni>12</baleni> <usrfld1>Text, UsrFld25_yyyyy</usrfld1> <usrfld2></usrfld2> <usrfld3></usrfld3> <usrfld4></usrfld4> <usrfld5></usrfld5> <poznamka></poznamka> <nazev2></nazev2> <skupnazev>Skupina 6</skupnazev> </fields> </row> </rows> </karty> <katalog> <rows> <row> <fields> <idr>321232</idr> <ciskat>1</ciskat> <popis>Náradie</popis> <poradi>0</poradi> </fields> </row> </rows> </katalog> </datasets> </data> </mrpResponse> </body> </mrpEnvelope>
IMPEO0
Import objednávok z e-obchodu. Dátový element obsahuje jednak globálne parametre <paramvalue name="jmeno_parametru">hodnota_parametru</paramvalue>, ktoré sú nepovinné, tak aj vlastné objednávky.
Požiadavka
<params> <paramvalue name="cisloSkladu">1</paramvalue> ... </params> <objednavka ...> <mena .../> <adresa ...> <firma .../> <osoba .../> <!-- Email sa skladá až do dĺžky poľa v databáze --> <email>Táto e-mailová adresa je chránená pred spamovacími robotmi. Na jej zobrazenie potrebujete mať nainštalovaný JavaScript.</email> ... <email>Táto e-mailová adresa je chránená pred spamovacími robotmi. Na jej zobrazenie potrebujete mať nainštalovaný JavaScript.</email> <!-- Telefón môže obsahovať tri položky --> <tel>123456781</tel> <tel>123 456 789</tel> </adresa> <adresa_dod ...> <firma .../> <osoba .../> <!-- Email sa skladá až do dĺžky poľa v databáze --> <email>Táto e-mailová adresa je chránená pred spamovacími robotmi. Na jej zobrazenie potrebujete mať nainštalovaný JavaScript.</email> ... <email>Táto e-mailová adresa je chránená pred spamovacími robotmi. Na jej zobrazenie potrebujete mať nainštalovaný JavaScript.</email> <!-- Telefón môže obsahovať tri položky --> </adresa_dod> <polozky> <polozka .../> </polozky> <poznamka> ... </poznamka> </objednavka>
Atributy elementu <paramvalue> | nepovinný | ||||
---|---|---|---|---|---|
name | O/M | Typ | Dĺžka | DM | Význam |
cisloSkladu | O | N | 3 | 0 | Číslo skladu pre objednávky. Pokiaľ nebude uvedené, berie sa z konfigurácie programu. |
stredisko | O | T | 6 | 0 | Číslo strediska pre objednávky. Pokiaľ nebude uvedené, berie sa z konfigurácie programu. |
cisloZakazky | O | T | 15 | 0 | Číslo zákazky pre objednávky. Pokiaľ nebude uvedené, berie sa z konfigurácie programu. |
prefixRadyObj | O | T | 10 | 0 | Prefix číselnej rady pre objednávky. Pokiaľ nebude uvedený, berie sa z konfigurácie programu. |
Atributy elementu <objednavka> | povinný | ||||
name | O/M | Typ | Dĺžka | DM | Význam |
formaUhrady | O | T | 10 | 0 | Forma úhrady |
zpusobDopravy | O | T | 10 | 0 | Spôsob dopravy |
variabilniSymbol | O | N | 10 | 0 | Variabilný symbol |
puvodniCislo | O | T | 50 | 0 | Pôvodné číslo objednávky |
datum | O | D | 10 | 0 | Dátum objednávky RRRR-MM-DD |
cenySDPH | O | L | 1 | 0 | Ceny v objednávke sú/niesú s DPH |
fixniCena | O | T | 1 | 0 | Ceny v objednávke sú nemenné[T|F|X] |
Atributy elementu <adresa> | povinný | ||||
name | O/M | Typ | Dĺžka | DM | Význam |
id | O | T | 10 | 0 | Identifikácia zákazníka v e-obchode |
ulice | O | T | 30 | 0 | Ulica a číslo popisné |
mesto | O | T | 30 | 0 | Mesto |
psc | O | T | 15 | 0 | PSČ |
Atributy elementu <firma> | nepovinný | ||||
name | O/M | Typ | Dĺžka | DM | Význam |
nazev | O | T | 100 | 0 | Názov firmy |
ico | O | T | 12 | 0 | IČ |
dic | O | T | 17 | 0 | DIČ |
ic_dph | O | T | 14 | 0 | IČ DPH |
Atributy elementu <osoba> | nepovinný | ||||
name | O/M | Typ | Dĺžka | DM | Význam |
jmeno | O | T | 30 | 0 | Meno |
prijmeni | O | T | 30 | 0 | Priezvisko |
Súčet dĺžok obidvoch atribútov musí byť menší ako 30 znakov | |||||
Element <email> | nepovinný | ||||
name | O/M | Typ | Dĺžka | DM | Význam |
O | T | 256 | 0 | ||
E-mail adresy sa skladajú až do dĺžky poľa v databáze | |||||
Element <tel> | nepovinný | ||||
name | O/M | Typ | Dĺžka | DM | Význam |
tel | O | T | 30 | 0 | Telefón |
Môžu byť uvedené maximálne tri elementy | |||||
Atributy elementu <mena> | nepovinný | ||||
name | O/M | Typ | Dĺžka | DM | Význam |
kod | O | T | 3 | 0 | ISO kód meny |
kurz | O | N | 13 | 6 | Kurz |
mnozstvi | O | N | 13 | 6 | k množstvu účtovnej meny |
Element <poznamka> | nepovinný | ||||
name | O/M | Typ | Dĺžka | DM | Význam |
poznamka | O | T | X | 0 | Poznámka ako dlhý text |
Atributy elementu <polozka> | povinný | ||||
name | O/M | Typ | Dĺžka | DM | Význam |
cisloKarty | O | N | 10 | 2 | Číslo skladovej karty |
text | O | T | 50 | 0 | Text objednávky |
pocetMJ | M | N | 15 | 6 | Počet MJ |
cenaMJ | M | N | 17 | 6 | Cena za MJ |
sazbaDPH | O | N | 5 | 2 | Sazba DPH |
typPolozky | O | T | 2 | 0 | Typ položky podľa číselníka Typy položiek |
fixniCena | O | L | 1 | 0 | Ceny v riadku objednávky sú nemenné. Záleží na nastavení v hlavičke dokladu.[T|F] |
Pokiaľ je uvedený len text, nemusia byť atribúty pocetMJ a cenaMJ uvedené.Podľa atribútov eanKarty a kodKarty sa vyhľadává len v prípade, že má program nastavné hľadanie jedinečnosti týchto polí. Vyhľadávanie skladovej položky prebieha v poradí cisloKarty, eanKarty a nakoniec kodKarty. |
<mrpEnvelope> <body> <mrpRequest> <!-- Povinný blok pre definíciu príkazu --> <request command="IMPEO0" requestId="20121203140300033"> <!-- requestId je ID spojenia (treba TIMESTAMP 20121120093530125) --> </request> <data> <params> <paramvalue name="cisloSkladu">1</paramvalue> <paramvalue name="stredisko">0</paramvalue> <paramvalue name="cisloZakazky">0</paramvalue> <!-- paramvalue name="prefixRadyObj">EO001</paramvalue> --> </params> <objednavka formaUhrady="Hotovost" puvodniCislo="22" datum="2014-01-01" cenySDPH="T"> <mena kod="EUR" kurz="1" mnozstvi="1"/> <adresa id="22" ulice="Vonaskova 123" mesto="Brezno" psc="977 01"> <firma nazev="" ico="" dic=""/> <osoba jmeno="Jan" prijmeni="Vonásek"/> <!-- Email sa skladá až do dĺžky poľa v databáze --> <email>Táto e-mailová adresa je chránená pred spamovacími robotmi. Na jej zobrazenie potrebujete mať nainštalovaný JavaScript.</email> <email>Táto e-mailová adresa je chránená pred spamovacími robotmi. Na jej zobrazenie potrebujete mať nainštalovaný JavaScript.</email> <email>Táto e-mailová adresa je chránená pred spamovacími robotmi. Na jej zobrazenie potrebujete mať nainštalovaný JavaScript.</email> <email>Táto e-mailová adresa je chránená pred spamovacími robotmi. Na jej zobrazenie potrebujete mať nainštalovaný JavaScript.</email> <!-- Telefón môže obsahovať tri položky --> <tel>123456781</tel> <tel>123 456 789</tel> </adresa> <adresa_dod id="" ulice="Vonaskova 123" mesto="Brezno" psc="977 01"> <firma nazev="" ico="" dic=""/> <osoba jmeno="Jan" prijmeni="Vonásek"/> <!-- Email sa skladá až do dĺžky poľa v databáze --> <email>Táto e-mailová adresa je chránená pred spamovacími robotmi. Na jej zobrazenie potrebujete mať nainštalovaný JavaScript.</email> <email>Táto e-mailová adresa je chránená pred spamovacími robotmi. Na jej zobrazenie potrebujete mať nainštalovaný JavaScript.</email> <email>Táto e-mailová adresa je chránená pred spamovacími robotmi. Na jej zobrazenie potrebujete mať nainštalovaný JavaScript.</email> <!-- Telefón môže obsahovať tri položky --> </adresa_dod> <polozky> <polozka cisloKarty="9" text="" cenaMJ="10" pocetMJ="1" sazbaDPH="21"/> </polozky> <poznamka> <!-- Je to ako element, pretože to je memo --> Toto je poznámka na viac riadkov. Aspoň na tri. </poznamka> </objednavka> <objednavka puvodniCislo="23" datum="2012-12-03" cenySDPH="T"> <mena kod="EUR" mnozstvi="1" kurz="1"/> <adresa id="22" ulice="Vonaskova 123" mesto="Brezno" psc="977 01"> <firma nazev="" ico="" dic=""/> <osoba jmeno="Jan" prijmeni="Vonásek"/> <email></email> <tel></tel> </adresa> <polozky> <polozka cisloKarty="" text="Sluzby" cenaMJ="10" pocetMJ="1" sazbaDPH="14"/> <polozka cisloKarty="1" text="" cenaMJ="10" pocetMJ="1" sazbaDPH="14"/> </polozky> <poznamka> Toto je poznámka na viac riadkov. Aspoň na dva. </poznamka> </objednavka> </data> </mrpRequest> </body> </mrpEnvelope>
Odpoveď
Kladná odpoveď obsahuje v dátovej časti zoznam originálnych čísiel objednávok a programom novo priradených čísiel. Dátová časť sa generuje len vtedy, pokiaľ je posielané pôvodné číslo objednávky.
Atributy elementu <objednavka> | nepovinný | |||
---|---|---|---|---|
name | Typ | Dĺžka | DM | Význam |
puvodnicislo | T | 50 | 0 | Púvodné číslo objednávky |
cislo | T | 10 | 0 | Číslo objednávky priradenej programom |
<mrpEnvelope> <body> <mrpResponse> <status> <request command="IMPEO0" requestId="20140101140300033"/> </status> <data> <datasets> <objednavka> <rows> <row> <fields> <puvodnicislo>1</puvodnicislo> <cislo>OP20140001</cislo> </fields> </row> <row> .... </row> </rows> </objednavka> </datasets> </data> </mrpResponse> </body> </mrpEnvelope>
CENEO0
Príkaz slúži pre zistenie cien pre konkrétnu cenovú skupinu.
Požiadavka
Atributy elementu <fltvalue> | nepovinný | ||||
---|---|---|---|---|---|
name | O/M | Typ | Dĺžka | DM | Význam |
cisloSkladu | O | N | 3 | 0 | Číslo jedného skladu, z ktorého sa bude brať prípadná cena. [1..999] Túto podmienku je možné omedziť nastavením "Vždy pridať omedzujúce podmienky" |
cisloCeny | O | N | 1 | 0 | Číslo východzej predejnej ceny. [0,1..5] |
cenovaSkupina | O | N | 4 | 0 | Číslo cenovej skupiny. [1..9999] |
datum | O | D | 10 | 0 | Dátum platnosti cenovej skupiny (XML formát) |
cenySDPH | O | L | 1 | 0 | Či budú ceny s/bez DPH [T|F] |
Zoznam voliteľných filtrovacích polí, ktoré sa približujú filtrovacím podmienkam skladových kariet. Meno filtra sa skladá z mena tabuľky, oddeľovača a mena dátového poľa. Výraz sa zapisuje a vyhodnocuje rovnakým spôsobom, ako u filtra v programe MRP K/S, tak pri použití číselných a dátumových výrazov musia tieto výrazy rešpektovať nastavenie desatinných oddeľovačov a tvaru dát nastavených na klientskej stanici. Sú uvádzané len typy jednotlivých polí kvôli konštrukcii dotazu. |
|||||
name | O/M | Typ | Dĺžka | DM | Význam |
SKKAR.CISLO | O | N | X | X | Číslo skladovej karty. Túto podmienku je možné omedziť nastavením "Vždy pridať omedzujúce podmienky" |
SKKAR.NAZOV | O | T | X | X | Názov skladovej karty. |
SKKAR.KOD | O | T | X | X | EAN skladovej karty. |
SKKAR.KOD1 | O | T | X | X | Užívateľský kód skladovej karty. |
SKKAR.KOD2 | O | T | X | X | Užívateľský kód skladovej karty. |
SKKAR.KOD3 | O | T | X | X | Užívateľský kód skladovej karty. |
SKKAR.SKUPINA | O | T | X | X | Kód skupiny skladových kariet. Túto podmienku je možné omedziť nastavením "Vždy pridať omedzujúce podmienky" |
SKKAR.CISKAT | O | N | X | X | Kód katalógu skladových kariet. Túto podmienku je možné omedziť nastavením "Vždy pridať omedzujúce podmienky" |
SKKAR.TYP_POL | O | T | X | X | Kód typu položky skladovej karty. Túto podmienku je možné omedziť nastavením "Vždy pridať omedzujúce podmienky" |
SKKAR.SADZBADPH | O | N | X | X | Sadzba DPH skladovej karty. |
SKKAR.BEZDPH | O | L | X | X | Rozlíšenie medzi mimo DPH a nulovou sadzbou [T|F]. |
SKKAR.POZNAMKA | O | T | X | X | Poznámka skladovej karty. |
SKKAR.ZAKAZSLEVY | O | L | X | X | Zákaz zľavy skladovej karty [T|F]. |
SKKAR.DODAVATEL | O | T | X | X | IČ obchodníka (nie je to záložka dodávateľov). |
SKKAR.POZNAMKA1 | O | T | X | X | Rozšírená poznámka skladovej karty. |
SKKAR.DAT_ZAR | O | D | X | X | Dátum zaradenia skladovej karty. |
SKKAR.POUZIVANA | O | L | X | X | Príznak používania skladovej karty [T|F]. |
SKKAR.TLAC | O | L | X | X | Príznak zaradenia karty do "tlače" [T|F]. |
SKKAR.USRFLD1 | O | T | X | X | Užívateľské pole skladovej karty. |
SKKAR.USRFLD2 | O | T | X | X | Užívateľské pole skladovej karty. |
SKKAR.USRFLD3 | O | T | X | X | Užívateľské pole skladovej karty. |
SKKAR.USRFLD4 | O | T | X | X | Užívateľské pole skladovej karty. |
SKKAR.USRFLD5 | O | T | X | X | Užívateľské pole skladovej karty. |
SKKARSTA.POCETMJ | O | N | X | X | Počet MJ na zvolenom sklade. |
SKKARSTA.POCREZMJ | O | N | X | X | Počet rezervovaných MJ na zvolenom sklade. |
SKKARSTA.POCOBJMJ | O | N | X | X | Počet objednaných MJ u dodávateľov na zvolenom sklade. |
SKKARSTA.POZICE | O | T | X | X | Umiestnenie vo zvolenom sklade. |
SKKARSTA.MINIMUM | O | N | X | X | Nastavené minimum MJ na zvolenom sklade. |
SKKARSTA.NORMA | O | N | X | X | Nastavená norma MJ na zvolenom sklade. |
SKKARSTA.MAXIMUM | O | N | X | X | Nastavené maximum MJ na zvolenom sklade. |
<mrpEnvelope> <body> <mrpRequest> <request command="CENEO0" requestId=""> </request> <data> <filter> <fltvalue name="cisloSkladu">1</fltvalue> <fltvalue name="cisloCeny">2</fltvalue> <fltvalue name="cenovaSkupina">1</fltvalue> <fltvalue name="datum">2014-01-01</fltvalue> <fltvalue name="cenySDPH">F</fltvalue> <!-- Nepovinný blok s pripadnými dátami, záleží na príkaze, či ich potrebuje --> <!-- Číslo karty v rozsahu 1 až 10 --> <fltvalue name="SKKAR.CISLO">1..10</fltvalue> <!-- Kód skupiny skladových kariet A nebo B --> <fltvalue name="SKKAR.SKUPINA">A|B</fltvalue> <!-- Typ položky Z --> <fltvalue name="SKKAR.TYP_POL">Z</fltvalue> </filter> </data> </mrpRequest> </body> </mrpEnvelope>
Odpoveď
Element <ceny> | povinný | |||
---|---|---|---|---|
name | Typ | Dĺžka | DM | Význam |
cislo | N | 10 | 2 | Číslo karty |
cisloceny | N | 1 | 0 | Číslo použitej ceny |
mena | T | 3 | 0 | Mena |
cenamj | N | 17 | 6 | Cena určená podmienkou číslo ceny |
sleva_p | N | 5 | 2 | Jednotková zľava percentom |
slevamj | N | 17 | 6 | Jednotková zľava čiastkou |
<mrpEnvelope> <body> <mrpResponse> <status> <request command="CENEO0"/> </status> <data> <datasets> <ceny> <rows> <row> <fields> <cislo>1</cislo> <cisloceny>1</cisloskl> <mena>EUR</mena> <cenamj>1000</cenamj> <sleva_p>10</sleva_p> <slevamj>100</slevamj> </fields> </row> <row> .... </row> </rows> </ceny> </datasets> </data> </mrpResponse> </body> </mrpEnvelope>
ADREO0
Požiadavka
Atributy elementu <fltvalue> | nepovinný | |
---|---|---|
Zoznam voliteľných filtrovacích polí, ktoré sa približujú filtrovacím podmienkam skladových kariet. Meno filtra sa skladá z mena tabuľky, oddeľovača a mena dátového poľa. Výraz sa zapisuje a vyhodnocuje rovnakým spôsobom, ako u filtra v programe MRP K/S, tak pri použití číselných a dátumových výrazov musia tieto výrazy rešpektovať nastavenie desatinných oddeľovačov a tvaru dát nastavených na klientskej stanici. Sú uvádzané len typy jednotlivých polí kvôli konštrukcii dotazu. |
||
name | Typ | Význam |
ADRES.FIRMA | T | Firma |
ADRES.MENO | T | Meno |
ADRES.ULICA | T | Ulica |
ADRES.MESTO | T | Mesto |
ADRES.PSC | T | PSČ |
ADRES.KODSTAT | T | Kód štátu |
ADRES.ICO | T | IČO |
ADRES.DIC | T | DIČ |
ADRES.TELEFON | T | Telefón |
ADRES.FAX | T | Fax |
ADRES.EMAIL | T | |
ADRES.DAT_ZAR | D | Dátum zaradenia |
ADRES.POZNAMKA | T | Poznámka |
ADRES.CENSKUP | N | Cenová skupina |
ADRES.EANKOD | T | EAN adresy |
ADRES.FYZOSOB | L | Fyzická osoba [T|F] |
ADRES.TLAC | T | Označené do tlače [T|F] |
ADRES.UCET | T | Východzí bankový účet |
ADRES.USRFLD1 | T | Užívateľské pole 1 adresy |
ADRES.USRFLD2 | T | Užívateľské pole 2 adresy |
ADRES.USRFLD3 | T | Užívateľské pole 3 adresy |
ADRES.USRFLD4 | T | Užívateľské pole 4 adresy |
ADRES.USRFLD5 | T | Užívateľské pole 5 adresy |
ADRES.SPLATNOST | N | Iná splatnosť faktúry |
ADRES.KREDIT | N | Čiastka kreditu |
ADRES.CRPSTATUS | T | CRP-status |
ADRES.FAKSTRED | T | Kód fakturačného strediska |
KONTAKTY.IDENTIF | T | Obchodný zástupca |
<mrpEnvelope> <body> <mrpRequest> <request command="ADREO0" requestId=""> </request> <data> <filter> <!-- Adresy s PSČ začínajúcim na 100 --> <fltvalue name="ADRES.PSC">100*</fltvalue> <!-- Cenová skupina nastavená --> <fltvalue name="ADRES.CENSKUP">not null</fltvalue> </filter> </data> </mrpRequest> </body> </mrpEnvelope>
Odpoveď
Element <adres> | Vždy | |||
---|---|---|---|---|
fields | Typ | Dĺžka | DM | Význam |
ico | T | 12 | 0 | IČO |
dic | T | 17 | 0 | DIČ |
ic_dph | T | 14 | 0 | IČ DPH |
id | T | 10 | 0 | Identifikátor adresy v e-obchode |
firma | T | 50 | 0 | Názov firmy |
meno | T | 30 | 0 | Méno |
ulica | T | 30 | 0 | Ulica a číslo popisné |
mesto | T | 30 | 0 | Mesto |
psc | T | 15 | 0 | PSČ |
kodstat | T | 2 | 0 | Kód štátu |
telefon | T | 30 | 0 | Telefón |
telefon1 | T | 30 | 0 | Telefón |
telefon2 | T | 30 | 0 | Telefón |
fax | T | 30 | 0 | Fax |
T | 256 | 0 | E-mailová adresa | |
censkup | N | 4 | 0 | Číslo cenovej skupiny |
stat | T | 30 | 0 | Názov štátu |
<mrpEnvelope> <body> <mrpResponse> <status> <request command="ADREO0"/> </status> <data> <datasets> <adres> <rows> <row> <fields> <ico>A00001</ico> <dic></dic> <ic_dph></ic_dph> <id>122</id> <firma>Ferdo Mravec;</firma> <meno>Truhlík</meno> <ulica>K mravenisku 1</ulica> <mesto>Borový les</mesto> <psc>00000</psc> <kodstat>SK</kodstat> <telefon>123 456 789</telefon> <telefon1></telefon1> <telefon2></telefon2> <fax></fax> <email></email> <censkup>1</censkup> <stat>Slovenská republika</stat> </fields> </row> <row> .... </row> </rows> </ceny> </datasets> </data> </mrpResponse> </body> </mrpEnvelope>