EDIT_I10

Aprašymas

Vidinio dokumento detalios informacijos koregavimas.

Specifikacija

Address

POST https://api.manorivile.lt/client/v2

Header
  • 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)
Body
  • method : EDIT_I10
  • params :
    • oper :
      • I - naujo įrašo sukūrimas
      • U - įrašo koregavimas
      • D - įrašo ištrynimas
  • data: perduodami duomenys:
    • I10 - atitinkamos lentelės laukai (i10)

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

Naudojant tag'ą <obj_ser_order> yra galimybė prekių likučius nurašyti kitu objektu ir serija, nei buvo paduota. Detaliau čia

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 <I10_KODAS_OS1> ir <I10_KODAS_OS2>atitinka rinkinio kodą. Taip pat yra galimybė rinkinio kodą paduoti dalimis - tam naudojami tag'ai <K45_RIN01> ... <K45_RIN15> ir <K45_2_RIN01> ... <K45_2_RIN15>. Jeigu bus paduotI ir <I10_KODAS_OS1> ir <K45_RIN01> ... <K45_RIN15> tag'ai, aukštesnį prioritetą turi <I10_KODAS_OS1>. Rinkinio kodo iš anksto kurti nereikia, jis bus sukurtas automatiškai.

Norint atnaujinti rinkinio kodą, naujas kodas pateikiamas naudojant tag'ą <I10_KODAS_OS1>. Jeigu norima naują rinkinio kodą paduoti dalimis - būtina paduoti tuščią tagą <I10_KODAS_OS1> ir tada atskiras dalis naudojant tag'us <K45_RIN01> ... <K45_RIN15>.

pvz application/xml:

<body>
    <method>EDIT_I10</method>
    <params>
        <oper>I</oper>
    </params>
    <data>
      <I10>
         <I10_KODAS_VD>010R00000063</I10_KODAS_VD>
         <I10_TIPAS>1</I10_TIPAS>
         <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 -->
         <K45_2_RIN01>RINKINYS</K45_2_RIN01> <!--Jeigu naudojami rinkiniai -->
     </I10> 
    </data>
</body>

pvz application/json:

{
    "method": "EDIT_I10",
    "params": {
        "oper": "I"
    },
    "data": {
        "I10": {
            "I10_KODAS_VD": "010R00000063",
            "I10_TIPAS": 1,
            "bar_kodas": "777777777777",
            "kiekis_u":1,
            "I49_DIM01": "MEN1",
            "K45_RIN01": "RINKINYS",
            "K45_2_RIN01": "RINKINYS"
        }
    }
}
Response (status 200 OK)

Grąžinama informacija XML formate tarp tag'ų <RET_DOK>..</RET_DOK>.

pvz:

<?xml version='1.0'?>
<RET_DOK>
    <I10>
         <I10_KODAS_VD>010R00000063</I10_KODAS_VD>
         <I10_EIL_NR>3</I10_EIL_NR>
         <I10_KODAS_TR> </I10_KODAS_TR>
         <I10_TIPAS>1</I10_TIPAS>
         <I10_PERKELTA>1</I10_PERKELTA>
         <I10_KODAS_PS>001 </I10_KODAS_PS>
         <I10_KODAS_OS1> </I10_KODAS_OS1>
         <I10_SERIJA1> </I10_SERIJA1>
         <I10_KODAS_OS2> </I10_KODAS_OS2>
         <I10_SERIJA2> </I10_SERIJA2>
         <I10_PAV>Stalas </I10_PAV>
         <I10_KODAS_US1>VNT </I10_KODAS_US1>
         <I10_KIEKIS1>1</I10_KIEKIS1>
         <I10_FRAKCIJA1>1</I10_FRAKCIJA1>
         <I10_KODAS_US>VNT </I10_KODAS_US>
         <I10_KIEKIS>1</I10_KIEKIS>
         <I10_FRAKCIJA>1</I10_FRAKCIJA>
         <I10_KODAS_US2>VNT </I10_KODAS_US2>
         <I10_KIEKIS2>1</I10_KIEKIS2>
         <I10_FRAKCIJA2>1</I10_FRAKCIJA2>
         <I10_PIR_KAINA>.0000</I10_PIR_KAINA>
         <I10_PARD_KAINA1>.0000</I10_PARD_KAINA1>
         <I10_PARD_KAINA2>.0000</I10_PARD_KAINA2>
         <I10_KITOS>.00</I10_KITOS>
         <I10_MUITAS>.00</I10_MUITAS>
         <I10_AKCIZAS>.00</I10_AKCIZAS>
         <I10_SAV_VISO>.00</I10_SAV_VISO>
         <I10_GAL_DATA>1900-01-01 00:00:00.000</I10_GAL_DATA>
         <I10_USERIS>3 </I10_USERIS>
         <I10_R_DATE>2019-10-29 17:44:54.000</I10_R_DATE>
         <I10_ADDUSR>3 </I10_ADDUSR>
         <I10_ADD_DATE>1900-01-01 00:00:00.000</I10_ADD_DATE>
         <i10_aprasymas1></i10_aprasymas1>
         <i10_aprasymas2></i10_aprasymas2>
         <i10_aprasymas3></i10_aprasymas3>
         <I49_DIM01>MEN1</I49_DIM01>
         <K45_RIN01>RINKINYS</K45_RIN01>
         <K45_2_RIN01>RINKINYS</K45_2_RIN01>
     </I10>
</RET_DOK>
Response (status 400)

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>&lt;I10>&lt;/I10></data>
            <dataErrors>
                <dataError>
                    <tag>I10_KODAS_VD</tag>
                    <code>21001</code>
                    <message>Nėra operacijos</message>
                </dataError>
            </dataErrors>
        </error>
    </errors>
</RET_DOK>
Response (status 401)

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>
Response (status 502)

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>
Response (status 504)

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>
Response (status 500)

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

Koregavimas, trynimas vyksta pagal lentelės raktą (Primary Key)

Koreguojant informaciją bus koreguojami tik perduodami laukai.

pvz koregavimas:

<body>
    <method>EDIT_I10</method>
    <params>
        <oper>U</oper>
    </params>
    <data>
      <I10>
         <I10_KODAS_VD>01R000000001</I10_KODAS_VD>
         <I10_EIL_NR>1</I10_EIL_NR>
         <I10_SERIJA1>SERIJA</I10_SERIJA1>
     </I10>    
    </data>
</body>

pvz trynimas:

<body>
    <method>EDIT_I10</method>
    <params>
        <oper>D</oper>
    </params>
    <data>
          <I10>
             <I10_KODAS_VD>01R000000001</I10_KODAS_VD>
             <I10_EIL_NR>1</I10_EIL_NR>
         </I10>      
    </data>
</body>
Rinkinio kodo atnaujinimas
<body>
    <method>EDIT_I10</method>
    <params>
        <oper>U</oper>
    </params>
    <data>
      <I10>
         <I10_KODAS_VD>01R000000001</I10_KODAS_VD>
         <I10_EIL_NR>1</I10_EIL_NR>
         <I10_KODAS_OS1></I10_KODAS_OS1>
         <K45_RIN01>RINKINYS</K45_RIN01>
     </I10>    
    </data>
</body>

PHP pvz

<?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);

Lentelės

I10

Vidinio dokumento detalios informacijos lentelė

Laukas Tipas Aprašymas Pastabos naudojant EDIT metodus
I10_KODAS_VD C(12) Operacijos numeris Privalomas, kai oper=U,D
I10_EIL_NR N(6) Detalios eilutės numeris Privalomas, kai oper=U,D
I10_KODAS_TR C(12) Transporto operacijos numeris
I10_TIPAS N(1) Eilutės tipas:1-prekė, 2 kodas Privalomas, kai oper=I
I10_PERKELTA N(1) Perkėlimas:1-neperkelta,2-perkelta,3-perkelta pirma dal
I10_KODAS_PS C(12) Prekės kodas Privalomas ***
I10_KODAS_OS1 C(12) Padalinio siuntėjo prekės objekto kodas Arba rinkinio kodas, jei dirbama su rinkiniais
I10_SERIJA1 C(12) Padalinio siuntėjo prekės serija
I10_KODAS_OS2 C(12) Padalinio gavėjo prekės objekto kodas Arba rinkinio kodas, jei dirbama su rinkiniais
I10_SERIJA2 C(12) Padalinio gavėjo prekės serijos
I10_PAV C(40) Prekės pavadinimas
I10_KODAS_US1 C(12) Perduodamas matavimo kodas
I10_KIEKIS1 N(14) Perduodamas kiekis
I10_FRAKCIJA1 N(4) Perduodamo matavimo vieneto frakcija
I10_KODAS_US C(12) Pagrindinio matavimo vieneto kodas
I10_KIEKIS N(14) Kiekis pagrindiniu matu
I10_FRAKCIJA N(4) Pagrindinio matavimo frakcija
I10_KODAS_US2 C(12) Gavimo matavimo kodas
I10_KIEKIS2 N(14) Gaunamas kiekis
I10_FRAKCIJA2 N(4) Gavimo matavimo vieneto frakcija
I10_PIR_KAINA N(12,4) Pirkimo kaina
I10_PARD_KAINA1 N(12,4) Siuntėjo pardavimo kaina
I10_PARD_KAINA2 N(12,4) Gavėjo pardavimo kaina
I10_KITOS N(12,2) Kitos išlaidos
I10_MUITAS N(12,2) Muitas
I10_AKCIZAS N(12,2) Akcizas
I10_SAV_VISO N(12,2) Prekės savikaina
I10_GAL_DATA T(8) Galiojimo data
I10_USERIS C(12) Kas koregavo
I10_R_DATE T(8) Koregavimo laikas
I10_ADDUSR C(12) Kas sukūrė
I10_ADD_DATE T(8) Kada sukūrė
I10_APRASYMAS1 C(150) Aprašymas 1
I10_APRASYMAS2 C(150) Aprašymas 2
I10_APRASYMAS3 C(150) Aprašymas 3
kiekis_u N(12,4) 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" ***
I49_DIM01, ... , I49_DIM15 C(12) Dimensijos
K45_RIN01, ... , K45_RIN15 C(12) Padalinio siuntėjo rinkiniai
K45_2_RIN01, ... , K45_2_RIN15 C(12) Padalinio gavėjo 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 I10_KODAS_PS 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ą.