Metodas grąžina informaciją apie prekių likučius, remiantis koregavimo data.
POST https://api.manorivile.lt/client/v2
ApiKey
: Privalomas. Unikalus API raktas išduodamas užsakant paslaugąContent-Type
: Privalomas. Kokiu formatu paduodami parametrai ir duomenys (request):
application/xml
application/json
Accept
: Neprivalomas. Gražinamo rezultato (response) formatas
application/xml
(default)application/json
(veikia nuo Manorivile-Gateway-1.1.0 versijos)method
: GET_I17_LIST_TIME
params
:
fil
: filtravimo sąlyga. T-SQL tipo where sąlygos užklausa iš lentelės I17 nenurodant WHERE
dalies. Parametras neprivalomas.group
: likučių sumavimas pagal prekės kodą (I17_KODAS_PS
), padalinį (I17_KODAS_IS
), objektą (I17_KODAS_OS
), seriją (I17_SERIJA
). Parametras neprivalomas - tuomet grąžinama nesugrupuota informacija surūšiuota pagal lentelės raktą.pagenumber
: įrašų puslapio numeris. GET_LIST metodai rezultatus grąžina puslapiais po 100 įrašų, pagenumber
parametras nurodo kelintą puslapį grąžinti. Jei parametras nenurodomas, tuomet grąžinamas pirmas puslapis su 100 įrašų.lastDate
: data nurodanti nuo kurio laiko grąžinti korekcijas. Jei nenurodoma informacija grąžinama nuo '1900-01-01'. Neprivaloma.Norint dirbti su metodu turi būti inicijuoti atitinkami duomenų bazės pakeitimai. Reikalinga paleisti metodą INIT_TRIGGER
Metodas naudojamas norint gauti informaciją tik apie tas prekes, kurių likučiai pasikeitė nuo tam tikros datos ir laiko.
Jeigu grupavimas nenaudojamas, informacija visada grąžinama surūšiuota pagal atitinkamos lentelės pirminį raktą (Primary Key). Lentelės pirminis raktas nurodytas lentelės aprašyme žemiau, paryškintu tekstu.
Jeigu naudojamas grupavimas, likučiai visuomet visų pirma grupuojami pagal prekės kodą (I17_KODAS_PS
), nesvarbu, nurodytas prekės kodas group
sąlygoje, ar ne, tuomet pagal prekės vieneto kodą (I17_KODAS_US
ir I17_KODAS_US_A
), o tuomet pagal likusius group
sąlygoje nurodytus laukus. Taip pat, likusių laukų grupavimo tvarka visuomet tokia, kaip nurodyta group
parametro aprašyme t.y. I17_KODAS_IS, I17_KODAS_OS, I17_SERIJA
. Pavyzdžiui: I17_KODAS_OS,I17_KODAS_IS
visuomet užklausoje tampa I17_KODAS_PS,I17_KODAS_US,I17_KODAS_US_A,I17_KODAS_IS,I17_KODAS_OS
(paskutinės dvi sąlygos sukeistos vietomis), t.y. grąžins susumuotus likučius pagal prekę, jos vieneto kodą, padalinį ir galiausiai objektą.
Papildomai sugrupuota informacija visuomet rūšiuojama pagal prekės kodą I17_KODAS_PS
, o tuomet pagal likusias group
parametre nurodytas sąlygas.
Dėl greitaveikos efektyvumo nerekomenduojame group
parametro naudoti duomenų bazėje su dideliu eilučių kiekiu!
GET_LIST metodai apribojami 100 įrašų, todėl norint gauti visą sąrašą, turite naudoti filtrus, kurie grąžins rezultatą dalimis per kelis kartus, filtruojant pagal paskutinio gauto įrašo rakto reikšmę.
pvz application/xml
:
<body>
<method>GET_I17_LIST_TIME</method>
<params>
<fil>i17_kodas_ps='1' and i17_kodas_is='01'</fil>
<lastDate>2022-02-15T16:29:00</lastDate>
</params>
</body>
pvz application/json
:
{
"method": "GET_I17_LIST_TIME",
"params": {
"fil": "i17_kodas_ps='1' and i17_kodas_is='01'",
"lastDate": "2022-02-15T16:29:00"
}
}
Grąžinama informacija XML formate tarp tag'ų <RET_DOK>..</RET_DOK>
.
Jeigu įrašų nerasta pagal užduotas sąlygas, tuomet gražinama status=200 bei tuščias
pvz:
<?xml version='1.0' encoding='UTF-8' ?>
<RET_DOK>
<I17>
<Row_number>1</Row_number>
<ti17_r_date>2022-02-15T16:30:35.043</ti17_r_date>
<I17_KODAS_PS>1</I17_KODAS_PS>
<I17_KODAS_IS>01</I17_KODAS_IS>
<I17_KODAS_US_A>05_MAISELIS </I17_KODAS_US_A>
<I17_KODAS_OS></I17_KODAS_OS>
<I17_SERIJA></I17_SERIJA>
<I17_KODAS_US>KG</I17_KODAS_US>
<I17_FRAKCIJA>1000</I17_FRAKCIJA>
<I17_KIEKIS>5000</I17_KIEKIS>
<I17_ATIDUOTA>0</I17_ATIDUOTA>
<I17_REZERVAS>0</I17_REZERVAS>
<I17_PARD_UZS>0</I17_PARD_UZS>
<I17_PIRK_UZS>0</I17_PIRK_UZS>
<I17_SUMA>22.25</I17_SUMA>
<I17_P_PIR_K>2.0000</I17_P_PIR_K>
<I17_P_PIR_D>2020-01-09T00:00:00</I17_P_PIR_D>
<I17_P_PAR_K>5.0000</I17_P_PAR_K>
<I17_P_PAR_D>2020-01-06T00:00:00</I17_P_PAR_D>
<I17_VID_UZS>0</I17_VID_UZS>
<I17_REIKALAVIMAS>0</I17_REIKALAVIMAS>
<I17_KELYJE>0</I17_KELYJE>
<I17_KAINA>0.0000</I17_KAINA>
<I17_USERIS>MASTER</I17_USERIS>
<I17_ADDUSR>MASTER</I17_ADDUSR>
<I17_R_DATE>2020-01-23T21:12:42</I17_R_DATE>
<likutis_us>5.0000</likutis_us>
<likutis_us_a>10.0000</likutis_us_a>
<des_likutis_us>5.0000</des_likutis_us>
<des_likutis_us_a>10.0000</des_likutis_us_a>
<N37_BAR_KODAS>000000000001</N37_BAR_KODAS>
</I17>
<I17>
<Row_number>2</Row_number>
<ti17_r_date>2022-02-15T16:30:35.043</ti17_r_date>
<I17_KODAS_PS>1</I17_KODAS_PS>
<I17_KODAS_IS>01</I17_KODAS_IS>
<I17_KODAS_US_A>DEZE25</I17_KODAS_US_A>
<I17_KODAS_OS></I17_KODAS_OS>
<I17_SERIJA></I17_SERIJA>
<I17_KODAS_US>VNT</I17_KODAS_US>
<I17_FRAKCIJA>1</I17_FRAKCIJA>
<I17_KIEKIS>1046</I17_KIEKIS>
<I17_ATIDUOTA>0</I17_ATIDUOTA>
<I17_REZERVAS>0</I17_REZERVAS>
<I17_PARD_UZS>0</I17_PARD_UZS>
<I17_PIRK_UZS>0</I17_PIRK_UZS>
<I17_SUMA>87.75</I17_SUMA>
...
<likutis_us>1046</likutis_us>
<likutis_us_a>41.21</likutis_us_a>
<des_likutis_us>1046</des_likutis_us>
<des_likutis_us_a>41.84</des_likutis_us_a>
<N37_BAR_KODAS>000000000002</N37_BAR_KODAS>
</I17>
</RET_DOK>
DES_LIKUTIS_US
dešimtainis kiekis pagrindiniu matavimo vientetu, oDES_LIKUTIS_US_A
- dešimtainis kiekis alternatyviu matavimo vienetu. Tuo tarpu LIKUTIS_US
yra frakcijinis kiekis pagrindiniu matavimo vienetu, o LIKUTIS_US_A
- frakcijinis kiekis alternatyviu matavimo vienetu.
Klaida paduodant duomenis / SQL sintaksės klaidos / kitos DB klaidos
<?xml version='1.0' encoding='UTF-8'?>
<RET_DOK>
<id>13271746441.6a246776.1581056600545</id>
<durationMs>5</durationMs>
<errorMessage>Invalid column name 'ii17_kodas_ps'.</errorMessage>
</RET_DOK>
Blogai nurodytas adresas / neteisingai nurodytas API raktas / nenurodytas API raktas / pasibaigęs API rakto galiojimas, pvz
<?xml version='1.0' encoding='UTF-8'?>
<RET_DOK>
<id/>
<durationMs>0</durationMs>
<errorMessage>Api key is not valid</errorMessage>
</RET_DOK>
Nepaleistas MANO Rivile Gateway arba kitaip sutrikusi jo veikla
<?xml version='1.0' encoding='UTF-8'?>
<RET_DOK>
<id/>
<durationMs>0</durationMs>
<errorMessage>Rivile GAMA database is unavailable. Please check if the gateway is running and is set up correctly.</errorMessage>
</RET_DOK>
Laiku nebuvo gautas Rivile API užklausos atsakymas, pavyzdžiui, apkrauta GAMA duomenų bazė
<?xml version='1.0' encoding='UTF-8'?>
<RET_DOK>
<id/>
<durationMs>0</durationMs>
<errorMessage>No response received from client gateway</errorMessage>
</RET_DOK>
Bendrinė sistemos klaida, pvz
<?xml version='1.0' encoding='UTF-8'?>
<Map>
<timestamp>2020-02-05T12:34:26.890+0000</timestamp>
<status>500</status>
<error>Internal Server Error</error>
<message>No message available</message>
<path>/v1</path>
</Map>
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'ApiKey: uUCz6UD.sKVrjaWRDJAH1c7l4qL2nOoN2K0jARkvuHDdYsss',
'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{
"method": "GET_I17_LIST_TIME",
"params": {
"fil": "i17_kodas_ps=\'1\' and i17_kodas_is=\'01\'"
}
}');
$response = curl_exec($ch);
curl_close($ch);
Laukas | Tipas | Aprašymas | Pastabos |
---|---|---|---|
I17_KODAS_IS | C(12) | Padalinio kodas | |
I17_KODAS_PS | C(12) | Prekės kodas | |
I17_KODAS_OS | C(12) | Objekto kodas | |
I17_SERIJA | C(12) | Serija | |
I17_KODAS_US_A | C(12) | Alternatyvaus matavimo vieneto kodas | |
I17_KODAS_US | C(12) | Pagrindinis matavimo vieneto kodas | |
I17_FRAKCIJA | N(4) | Pagrindinio matavimo vieneto frakcija | |
I17_KIEKIS | N(14) | FIFO likutis | |
I17_ATIDUOTA | N(14) | Atiduota | |
I17_REZERVAS | N(14) | Užrezervuota | |
I17_PARD_UZS | N(14) | Pirkėjų užsakymai | |
I17_PIRK_UZS | N(14) | Užsakyta pas tiekėjus | |
I17_SUMA | N(12,2) | FIFO likučių suma | |
I17_P_PIR_K | N(12,4) | Paskutinio pirkimo kaina | |
I17_P_PIR_D | T(8) | Paskutinio pirkimo data | |
I17_P_PAR_K | N(12,4) | Paskutinio pardavimo suma | |
I17_P_PAR_D | T(8) | Paskutinio pardavimo data | |
I17_VID_UZS | N(14) | Užsakymas iš vidinio padalinio | |
I17_REIKALAVIMAS | N(14) | Pareikalavimas iš vidinio padalinio | |
I17_KELYJE | N(14) | Prekės kelyje | |
I17_KAINA | N(12,4) | Pardavimo kaina objekte | |
I17_USERIS | C(12) | Kas koregavo | |
I17_ADDUSR | C(12) | Kas sukūrė | |
I17_R_DATE | T(8) | Kada koregavo |