Atsargų operacijos detalios informacijos koregavimas
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
: EDIT_I12
params
:
oper
:
I
- naujo įrašo sukūrimasU
- įrašo koregavimasD
- įrašo ištrynimasdata
: perduodami duomenys:
I12
- atitinkamos lentelės laukai (i12) Vienu metu veiksmai atliekami tik su vienu įrašu.
Pirmi 7 ApiKey simboliai (pvz USERABC.JQKPG1d7Pkjxj37ObsgdfEkvfEfvF1oL7h7UMOLo
-> USERABC
) yra vartotojo vardas Rivile GAMA programoje, kuriuo bus kuriami ar koreguojami įrašai.
Koreguoti galima tik to paties API vartotojo sukurtas operacijas. Teisės valdomos parametru RGI_ALL_EDIT
Yra galimybė dirbti su papildomomis dimensijomis, jeigu tokios naudojamos Rivile GAMA sistemoje. Tam naudojami tag'ai <I49_DIM01> ... <I49_DIM15>
Jegu dirbama su rinkinias, tuomet <I12_KODAS_OS>
atitinka rinkinio kodą. Taip pat yra galimybė rinkinio kodą paduoti dalimis - tam naudojami tag'ai <K45_RIN01> ... <K45_RIN15>
. Jeigu bus paduotI ir <I12_KODAS_OS>
ir <K45_RIN01> ... <K45_RIN15>
tag'ai, aukštesnį prioritetą turi <I12_KODAS_OS>
. Rinkinio kodo iš anksto kurti nereikia, jis bus sukurtas automatiškai.
Norint atnaujinti rinkinio kodą, naujas kodas pateikiamas naudojant tag'ą <I12_KODAS_OS>
. Jeigu norima naują rinkinio kodą paduoti dalimis - būtina paduoti tuščią tagą <I12_KODAS_OS>
ir tada atskiras dalis naudojant tag'us <K45_RIN01> ... <K45_RIN15>
.
pvz application/xml
:
<body>
<method>EDIT_I12</method>
<params>
<oper>I</oper>
</params>
<data>
<I12>
<I12_KODAS_IN>010R00000073</I12_KODAS_IN>
<I12_TIPAS>1</I12_TIPAS>
<I12_KODAS_SS>20120</I12_KODAS_SS>
<bar_kodas>777777777777</bar_kodas>
<kiekis_u>1</kiekis_u>
<I49_DIM01>MEN1</I49_DIM01> <!--Jeigu naudojamos dimensijos -->
<K45_RIN01>RINKINYS</K45_RIN01> <!--Jeigu naudojami rinkiniai -->
</I12>
</data>
</body>
pvz application/json
:
{
"method": "EDIT_I12",
"params": {
"oper": "I"
},
"data": {
"I12": {
"I12_KODAS_IN": "010R00000073",
"I12_TIPAS": 1,
"bar_kodas": "777777777777",
"kiekis_u":1,
"I49_DIM01": "MEN1",
"K45_RIN01": "RINKINYS"
}
}
}
Grąžinama informacija XML formate tarp tag'ų <RET_DOK>..</RET_DOK>
.
pvz:
<?xml version='1.0'?>
<RET_DOK>
<I12>
<I12_KODAS_IN>010R00000073</I12_KODAS_IN>
<I12_EIL_NR>1</I12_EIL_NR>
<I12_TIPAS>1</I12_TIPAS>
<I12_KODAS_PS>001 </I12_KODAS_PS>
<I12_KODAS_SS>20120 </I12_KODAS_SS>
<I12_KODAS_OS> </I12_KODAS_OS>
<I12_SERIJA> </I12_SERIJA>
<I12_KODAS_US>VNT </I12_KODAS_US>
<I12_FRAKCIJA_A>1</I12_FRAKCIJA_A>
<I12_KIEKIS_A>1</I12_KIEKIS_A>
<I12_PAV>Stalas </I12_PAV>
<I12_KIEKIS>1</I12_KIEKIS>
<I12_FRAKCIJA>1</I12_FRAKCIJA>
<I12_PIRK_KAINA>.0000</I12_PIRK_KAINA>
<I12_SAV_SUMA>.00</I12_SAV_SUMA>
<I12_PARD_KAINA>.0000</I12_PARD_KAINA>
<I12_GALIOJA_IKI>19000101 00:00:00.000</I12_GALIOJA_IKI>
<I12_USERIS>3 </I12_USERIS>
<I12_R_DATE>2019-11-04 09:45:26.000</I12_R_DATE>
<I12_ADDUSR>3 </I12_ADDUSR>
<I12_PERKELTA>1</I12_PERKELTA>
<I12_KODAS_OS_C> </I12_KODAS_OS_C>
<I12_PARD_KAINA_S>.0000</I12_PARD_KAINA_S>
<I12_SERTIFIKATAS> </I12_SERTIFIKATAS>
<i12_kodas_ks> </i12_kodas_ks>
<i12_aprasymas1></i12_aprasymas1>
<i12_aprasymas2></i12_aprasymas2>
<i12_aprasymas3></i12_aprasymas3>
<I49_DIM01>MEN1</I49_DIM01>
<K45_RIN01>RINKINYS</K45_RIN01>
</I12>
</RET_DOK>
Klaida paduodant duomenis / SQL sintaksės klaidos / kitos DB klaidos
<?xml version='1.0' encoding='UTF-8'?>
<RET_DOK>
<id>14433105830.9def1bf4.1584217427751</id>
<durationMs>45</durationMs>
<errorMessage>nepavyko įvykdyti metodo</errorMessage>
<errors>
<error>
<data><I12></I12></data>
<dataErrors>
<dataError>
<tag>I12_KODAS_IN</tag>
<code>21001</code>
<message>Nėra operacijos</message>
</dataError>
</dataErrors>
</error>
</errors>
</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>/v2</path>
</Map>
Koregavimas, išmetimas vyksta pagal lentelės raktą (Primary Key)
Koreguojant informaciją bus koreguojami tik perduodami laukai.
pvz koregavimas:
<body>
<method>EDIT_I12</method>
<params>
<oper>U</oper>
</params>
<data>
<I12>
<I12_KODAS_IN>010R00000073</I12_KODAS_IN>
<I12_EIL_NR>1</I12_EIL_NR>
<I12_KODAS_SS>20120</I12_KODAS_SS>
</I12>
</data>
</body>
pvz išmetimas:
<body>
<method>EDIT_I12</method>
<params>
<oper>D</oper>
</params>
<data>
<I12>
<I12_KODAS_IN>010R00000073</I12_KODAS_IN>
<I12_EIL_NR>1</I12_EIL_NR>
</I12>
</data>
</body>
<body>
<method>EDIT_I12</method>
<params>
<oper>U</oper>
</params>
<data>
<I12>
<I12_KODAS_IN>010R00000073</I12_KODAS_IN>
<I12_EIL_NR>1</I12_EIL_NR>
<I12_KODAS_OS>20120</I12_KODAS_OS>
<K45_RIN01>RINKINYS</K45_RIN01>
</I12>
</data>
</body>
<?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, $body);
$response = curl_exec($ch);
curl_close($ch);
Atsargų operacijos detalios eilutės
Laukas | Tipas | Aprašymas | Pastabos naudojant EDIT metodus |
---|---|---|---|
I12_KODAS_IN | C(12) | Operacijos numeris | Privalomas, kai oper=I,U,D |
I12_EIL_NR | N(6) | Detalios eilės numeris | Privalomas, kai oper=U,D |
I12_TIPAS | N(1) | Tipas:1-prekė,3-kodas | Privalomas, kai oper=I |
I12_KODAS_PS | C(12) | Prekės kodas | *** |
I12_KODAS_SS | C(12) | Sąskaitos kodas | Privalomas, kai oper=I |
I12_KODAS_OS | C(12) | Objekto kodas | Arba rinkinio kodas, jeigu dirbama su rinkiniais |
I12_SERIJA | C(12) | Serija | |
I12_KODAS_US | C(12) | Užpajamavimo matavimo vieneto kodas | *** |
I12_FRAKCIJA_A | N(4) | Frakcija alternatyvi | *** |
I12_KIEKIS_A | N(14) | Kiekis alternatyviu mato vnt | *** |
I12_PAV | C(40) | Prekės/Kodo pavadinimas | |
I12_KIEKIS | N(14) | Kiekis pagrindiniu matavimo vnt | *** |
I12_FRAKCIJA | N(4) | Frakcija pagrindinio matavimo vnt. | *** |
I12_PIRK_KAINA | N(12,4) | Pirkimo kaina | |
I12_SAV_SUMA | N(12,2) | Pirkimo suma | |
I12_PARD_KAINA | N(12,4) | Nauja pardavimo kaina | |
I12_GALIOJA_IKI | T(8) | Iki kada prekė galioja | |
I12_USERIS | C(12) | Kas koregavo | Neperduodamas. Pildomas automatiškai, ApiKey - pirmi 7 simboliai |
I12_R_DATE | T(8) | Kada koregavo | Neperduodamas. Pildomas automatiškai, Current Datetime |
I12_ADDUSR | C(12) | Kas sukūrė | Neperduodamas. Pildomas automatiškai (oper=I ), ApiKey - pirmi 7 simboliai |
I12_PERKELTA | N(1) | Prekėlimo požymis:1-neperkelta,2-perkelta | Neperduodamas |
I12_KODAS_OS_C | C(12) | Centras | |
I12_PARD_KAINA_S | N(12,4) | Pardavimo kaina operacijos atlikimo metu | |
I12_SERTIFIKATAS | C(12) | Sertifikatas | |
I12_KODAS_KS | C(12) | Klientas | |
I12_APRASYMAS1 | C(150) | Aprašymas 1 | |
I12_APRASYMAS2 | C(150) | Aprašymas 2 | |
I12_APRASYMAS3 | C(150) | Aprašymas 3 | |
kiekis_u | N(12,4) | Alternatyvus kiekis dešimtainėje išraiškoje | *** |
bar_kodas | C(12) | Barkodas | *** |
I49_DIM01, ... , I49_DIM15 | C(12) | Dimensijos | |
K45_RIN01, ... , K45_RIN15 | C(12) | Rinkiniai |
** jeigu naudojami laukai bar_kodas ir kiekis_u, tuomet eilutės kodas yra automatiškai užpildomas pagal barkodą ir kiekis išverčiamas iš dešimtainio kiekio į kiekius ir frakcijas. Jeigu naudojamas bar_kodas*, tuomet laukai I12_KODAS_PS nebūtina nurodyti - jie randami pagal barkodo informaciją.