Gamybos operacijos komponentės įvedimas, koregavimas, trynimas.
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/xmlapplication/json Accept: Neprivalomas. Grąžinamo rezultato (response) formatas
application/xml(default)application/json (veikia nuo Manorivile-Gateway-1.1.0 versijos)method : EDIT_I16params :
oper :
I - naujos komponentės įvedimas (numatytasis)U - komponentės koregavimas D - komponentės ištrynimasdata: perduodami duomenys:
I16 - Komponentė (i16) Pirmi 7 ApiKey simboliai (pvz USERABC.JQKPG1d7Pkjxj37ObsgdfEkvfEfvF1oL7h7UMOLo -> USERABC) yra vartotojo vardas Rivile GAMA programoje, kuriuo bus kuriami ar koreguojami įrašai.
Vienu metu veiksmai atliekami tik su vienu įrašu.
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 <I16_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 <I07_KODAS_OS> ir <K45_RIN01> ... <K45_RIN15> tag'ai, aukštesnį prioritetą turi <I16_KODAS_OS>. Rinkinio kodo iš anksto kurti nereikia, jis bus sukurtas automatiškai.
Norint atnaujinti rinkinio kodą, naujas kodas pateikiamas naudojant tag'ą <I16_KODAS_OS>. Jeigu norima naują rinkinio kodą paduoti dalimis - būtina paduoti tuščią tagą <I16_KODAS_OS>ir tada atskiras dalis naudojant tag'us <K45_RIN01> ... <K45_RIN15>.
<body>
<method>EDIT_I16</method>
<params>
<oper>I</oper>
</params>
<data>
<I16>
<I16_KODAS_KA>010R00000001</I16_KODAS_KA>
<I16_TIPAS>1</I16_TIPAS>
<I16_KODAS_PS>005</I16_KODAS_PS>
<I16_KODAS_US_A>VNT</I16_KODAS_US_A>
<I16_FRAKCIJA_A>1</I16_FRAKCIJA_A>
<I16_KIEKIS_A>2</I16_KIEKIS_A>
<I16_KODAS_US>VNT</I16_KODAS_US>
<I16_FRAKCIJA>1</I16_FRAKCIJA>
<I16_KIEKIS>2</I16_KIEKIS>
<I49_DIM01>MEN1</I49_DIM01> <!--Jeigu naudojamos dimensijos -->
<K45_RIN01>RINKINYS</K45_RIN01> <!--Jeigu naudojami rinkiniai -->
</I16>
</data>
</body>
{
"method": "EDIT_I16",
"params": {
"oper": "I"
},
"data": {
"I16": {
"I16_KODAS_KA": "010R00000001",
"I16_TIPAS": 1,
"I16_KODAS_PS": "005",
"I16_KODAS_US_A": "VNT",
"I16_FRAKCIJA_A": 1,
"I16_KIEKIS_A": 2,
"I16_KODAS_US": "VNT",
"I16_FRAKCIJA": 1,
"I16_KIEKIS": 2,
"I49_DIM01": "MEN1",
"K45_RIN01": "RINKINYS"
}
}
}
<?xml version='1.0' encoding='UTF-8' ?>
<RET_DOK>
<I16>
<I16_KODAS_KA>010R00000001</I16_KODAS_KA>
<I16_EIL_NR>1</I16_EIL_NR>
<I16_TIPAS>1</I16_TIPAS>
<I16_KODAS_PS>005</I16_KODAS_PS>
<I16_KODAS_OS></I16_KODAS_OS>
<I16_SERIJA></I16_SERIJA>
<I16_PERKELTA>1</I16_PERKELTA>
<I16_KODAS_US_A>VNT</I16_KODAS_US_A>
<I16_FRAKCIJA_A>1</I16_FRAKCIJA_A>
<I16_KIEKIS_A>2</I16_KIEKIS_A>
<I16_PARD_KAINA>0.0000</I16_PARD_KAINA>
<I16_KODAS_US>VNT</I16_KODAS_US>
<I16_FRAKCIJA>1</I16_FRAKCIJA>
<I16_KIEKIS>2</I16_KIEKIS>
<I16_LIKUTIS>2</I16_LIKUTIS>
<I16_MINUSO_POZ>0</I16_MINUSO_POZ>
<I16_SAVIKAINA>0.00</I16_SAVIKAINA>
<I16_ISEIG_PROC>0.00</I16_ISEIG_PROC>
<I16_GALIOJA>3999-01-01T00:00:00</I16_GALIOJA>
<I16_USERIS>0HLPUFX</I16_USERIS>
<I16_R_DATE>2020-11-03T21:29:57</I16_R_DATE>
<I16_ADDUSR>0HLPUFX</I16_ADDUSR>
<I16_KODAS_US_N>VNT</I16_KODAS_US_N>
<I16_PAV></I16_PAV>
<I49_DIM01>MEN1</I49_DIM01>
<K45_RIN01>RINKINYS</K45_RIN01>
</I16>
</RET_DOK>
{
"I16": {
"I16_KODAS_KA": "010R00000001",
"I16_EIL_NR": 2,
"I16_TIPAS": 1,
"I16_KODAS_PS": "005",
"I16_KODAS_OS": "",
"I16_SERIJA": "",
"I16_PERKELTA": 1,
"I16_KODAS_US_A": "VNT",
"I16_FRAKCIJA_A": 1,
"I16_KIEKIS_A": 2,
"I16_PARD_KAINA": 0,
"I16_KODAS_US": "VNT",
"I16_FRAKCIJA": 1,
"I16_KIEKIS": 2,
"I16_LIKUTIS": 0,
"I16_MINUSO_POZ": 0,
"I16_SAVIKAINA": 0,
"I16_ISEIG_PROC": 0,
"I16_GALIOJA": "3999-01-01T00:00:00",
"I16_USERIS": "0HLPUFX",
"I16_R_DATE": "2020-11-03T21:38:14",
"I16_ADDUSR": "0HLPUFX",
"I16_KODAS_US_N": "VNT",
"I16_PAV": "",
"I49_DIM01": "MEN1",
"K45_RIN01": "RINKINYS"
}
}
Klaida paduodant duomenis / SQL sintaksės klaidos / kitos duomenų klaidos
<?xml version='1.0' encoding='UTF-8'?>
<RET_DOK>
<id>1266808491.ba84eed1.1604432380910</id>
<durationMs>9</durationMs>
<errorMessage>Nepavyko įvykdyti metodo</errorMessage>
<document/>
<errors>
<error>
<data><I16><I16_TIPAS>1</I16_TIPAS><I16_FRAKCIJA_A>1</I16_FRAKCIJA_A><I16_KIEKIS_A>2</I16_KIEKIS_A><I16_KIEKIS>2</I16_KIEKIS><I16_KODAS_US>VNT</I16_KODAS_US><I16_KODAS_US_A>VNT</I16_KODAS_US_A><I16_KODAS_KAS>010R00000001</I16_KODAS_KAS><I16_FRAKCIJA>1</I16_FRAKCIJA><I16_KODAS_PS>005</I16_KODAS_PS></I16></data>
<dataErrors>
<dataError>
<tag>I15_KODAS_KA</tag>
<code>8003</code>
<message>Tokio įrašo nėra</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 ir trynimas vyksta pagal atitinkamos lentelės raktą (Primary Key) ir eilės numerį
Koreguojant informaciją bus koreguojami tik perduodami laukai.
pvz koregavimas:
<body>
<method>EDIT_I16</method>
<params>
<oper>U</oper>
</params>
<data>
<I16>
<I16_KODAS_KA>010R00000001</I16_KODAS_KA>
<I16_EIL_NR>1</I16_EIL_NR>
<I16_PAV>Pavadinimas naujas</I16_PAV>
</I16>
</data>
</body>
pvz trynimas:
<body>
<method>EDIT_I16</method>
<params>
<oper>D</oper>
</params>
<data>
<I16>
<I16_KODAS_KA>010R00000001</I16_KODAS_KA>
<I16_EIL_NR>2</I16_EIL_NR>
</I16>
</data>
</body>
<body>
<method>EDIT_I16</method>
<params>
<oper>U</oper>
</params>
<data>
<I16>
<I16_KODAS_KA>010R00000001</I16_KODAS_KA>
<I16_EIL_NR>1</I16_EIL_NR>
<I16_KODAS_OS></I16_KODAS_OS>
<K45_RIN01>RINKINYS</K45_RIN01>
</I16>
</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, '{
"method": "EDIT_I16",
"params": {
"oper": "I"
},
"data": {
"I16": {
"I16_KODAS_KA": "010R00000001",
"I16_TIPAS": 1,
"I16_KODAS_PS": "005",
"I16_KODAS_US_A": "VNT",
"I16_FRAKCIJA_A": 1,
"I16_KIEKIS_A": 2,
"I16_KODAS_US": "VNT",
"I16_FRAKCIJA": 1,
"I16_KIEKIS": 2
}
}
}');
$response = curl_exec($ch);
curl_close($ch);
Gamybos operacijos komponentės lentelė
| Laukas | Tipas | Aprašymas | Pastabos naudojant EDIT metodus |
|---|---|---|---|
| I16_KODAS_KA | C(12) | Operacijos kodas | Privalomas , kai oper=U,D |
| I16_EIL_NR | N(6) | Detalios eilutės nr | Privalomas , kai oper=U,D |
| I16_TIPAS | N(1) | Tipas:1-prekė,2-kodas,3-pranešimas,4-aprašymas | |
| I16_KODAS_PS | C(12) | Prekės/Kodo kodas | |
| I16_KODAS_OS | C(12) | Objekto kodas | Arba rinkinio kodas, jei dirbama su rinkiniais. |
| I16_SERIJA | C(12) | Serija | |
| I16_PERKELTA | N(1) | Prkėlimas:1-neperkelta,2-perkelta | |
| I16_KODAS_US_A | C(12) | Alternatyvus matavimo vieneto kodas | |
| I16_FRAKCIJA_A | N(4) | Alternatyvaus kiekio frakcija | |
| I16_KIEKIS_A | N(14) | Reikalingas kiekis alternatyviu matu | |
| I16_PARD_KAINA | N(12,4) | Pardavimo kaina | |
| I16_KODAS_US | C(12) | Pagrindinio matavimo viento kodas | |
| I16_FRAKCIJA | N(4) | Pagrindinio matavimo frakcija | |
| I16_KIEKIS | N(14) | Reikalingas kiekis pagrindiniu matu | |
| I16_LIKUTIS | N(14) | Prekės likutis operacijos atlikimo metu | |
| I16_MINUSO_POZ | N(1) | Ar galima fiksuoti,jei trūksta kiekio:0-ne,1-taip | |
| I16_SAVIKAINA | N(12,2) | Prekės savikaina | |
| I16_ISEIG_PROC | N(6,2) | Sumos Išeigos procentas išbarstyme | |
| I16_GALIOJA | T(8) | Galiojimo data | |
| I16_USERIS | C(12) | Kas koregavo | |
| I16_R_DATE | T(8) | Kada koregavo | |
| I16_ADDUSR | C(12) | Kas sukūrė | |
| I16_KODAS_US_N | C(12) | Matavimo vienetas nuo kurio nurašoma | |
| I16_PAV | C(40) | Aprašymas | |
| I16_APRASYMAS1 | C(150) | Aprašymas 1 | |
| I16_APRASYMAS2 | C(150) | Aprašymas 2 | |
| I16_APRASYMAS3 | C(150) | Aprašymas 3 | |
| I49_DIM01, ... , I49_DIM15 | C(12) | Dimensijos | |
| K45_RIN01, ... , K45_RIN15 | C(12) | Rinkiniai | |
| kiekis_u | N(12,3) | Alternatyvus kiekis dešimtainėje išraiškoje | * |
| bar_kodas | C(12) | Barkodas | * |
| obj_ser_order | Likučių nurašymo tvarka. Sąlygą galima formuoti nurodant tik dvi kolonėles i17_kodas_os ir / arba i17_serija, pavyzdžiui, "i17_kodas_os, i17_serija", "i17_kodas_os desc, i17_serija asc", "i17_serija desc, i17_kodas_os asc" | ** |
* 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 laukų I16_KODAS_PS, I16_PAV, I16_KODAS_US nebūtina nurodyti - jie randami pagal barkodo informaciją.
** Jeigu parametro reikšmė neperduodama, prekių likučiai nurašomi tiksliai su tokiu objektu ir serija, koks buvo perduotas. Perdavus reikšmę pirmiausiai tikrinamas prekės kiekis su perduotu objektu ir/ar serija. Jeigu toks kiekis nepakankamas, nurašomi likučiai su kitais objektais ir serijomis išlaikant parametre nurodyta rūšiavimo tvarką.