V_RIV_API()

Objektas Rivile API v2 (REST web service) užklausoms formuoti

(nuo 115 RIV_GAMA versijos)

Sintaksė

V_RIV_API([modul],[ApiKey])

Grąžina

Simbolinę reikšmę

Parametrai

Parametras Aprašymas Formatas
modul patikslinamas modulis, kuriam priskirtas API raktas parametre SS_RIV_API C(2)
ApiKey nurodomas API raktas C

Papildomos užklausos "Request Header" savybės:
* ApiKey - automatiškai užpildomas pagal perduotą raktą arba iš parametro SS_RIV_API
* Url - pagal nutylėjimą "https://api.manorivile.lt/client/v2"
* Send_Method - pagal nutylėjimą "POST"
* Json - pagal nutylėjimą naudojamas apsikeitimas Json formatu (.T.)

Siuntimas vykdomas metodu: Send([cMethod], [cOper], [cBody], [cParams]) - grąžina .T. jei nebuvo klaidų
* cMethod - nurodomas metodas, pvz.: "GET_I06_LIST"
* cOper - nurodomas veiksmas, pvz.: "H"
* cBody - nurodomas duomenų turinys ar filtravimo sąlygos, pvz.: "I06_OP_TIP=51"
* cParams - galima nurodyti pilną jau suformuotą užklausos tekstą, kuris bus siunčiamas į Rivile API

Atsakymai grąžinami:
* message - klaidos tekstas
* responseText - tekstinis atsakymas
* responseJson() - atsakymas Json objektu

Pavyzdžiai

  1. Patikrinimas, ar tinkamas raktas
m.loRivApi=v_riv_api()
IF !m.loRivApi.SEND("GET_N08_LIST","H","1=0") && Pratestuojame prisijungimą prie bazės (klientų sąrašo)
    l_MESSAGEBOX("Rivile API: "+m.loRivApi.MESSAGE,16,"Klaida!")
    RETURN .F.
ENDIF
  1. Naujo kliento sukūrimas
loRivApi=v_riv_api()
IF !loRivApi.Send("EDIT_N08","I","<N08><N08_PAV>Naujas klientas</N08_PAV><N08_KODAS_DS>PT001</N08_KODAS_DS><N08_RUSIS>1</N08_RUSIS><N08_KODAS_XS_P>PVM</N08_KODAS_XS_P><N08_TIPAS>2</N08_TIPAS></N08>")
    f_info("Klaida kuriant klienta: "+m.loRivApi.Message,.T.)
    RETURN .F.
ENDIF
** Atnaujiname informaciją klientų sąraše (grid'e)
IF USED("Wn08") AND TYPE("titi_pagr.ads_klij")="O"
    m.loN08=m.loRivApi.responsejson()
    SELECT Wn08
    LOCATE FOR n08_kodas_ks=m.loN08.n08.n08_kodas_ks
    IF !FOUND()
        APPEND BLANK
    ENDIF
    GATHER NAME m.loN08.n08 FIELDS LIKE n08_*
    =vyk_upd("Wn08")
    titi_pagr.ads_klij.activate()
ENDIF
  1. Pardavimų operacijos pirmos detalios eilutės padalinio kodo keitimas (į "02")
m.loRivApi=v_riv_api("RO")
IF !loRivApi.Send("EDIT_I07","U","<I07><I07_KODAS_PO>"+Wi06r.i06_kodas_po+"</I07_KODAS_PO><I07_EIL_NR>1</I07_EIL_NR><I07_KODAS_IS>02</I07_KODAS_IS></I07>")
    RETURN .F.
ENDIF
  1. Pardavimų operacijos perkėlimas
m.loRivApi=v_riv_api("RO")
IF !loRivApi.Send("EDIT_I06","P","<I06><I06_KODAS_PO>"+Wi06r.i06_kodas_po+"</I06_KODAS_PO></I06>")
    RETURN .F.
ENDIF
** Atnaujiname informaciją pardavimų sąraše (grid'e)
IF USED("Wi06r") AND TYPE("titi_pagr.ads_prh")="O"
    m.loI06=m.loRivApi.responsejson()
    SELECT Wi06r
    LOCATE FOR i06_kodas_po=m.loI06.i06.i06_kodas_po
    IF !FOUND()
        APPEND BLANK
    ENDIF
    GATHER NAME m.loI06.i06 FIELDS LIKE i06_*
    =vyk_upd("Wi06r")
    titi_pagr.ads_prh.activate()
ENDIF
  1. Papildomų laukų koregavimas, kai formuojama pilna užklausa
m.loRivApi=v_riv_api()

lcReq=""
lcReq=lcReq+"<body>"
lcReq=lcReq+"    <method>EDIT_PAP</method>"
lcReq=lcReq+"    <data>"
lcReq=lcReq+"        <PAP>"
lcReq=lcReq+"            <forma>KSN08</forma>"
lcReq=lcReq+"            <kodas1>121411842</kodas1>"
lcReq=lcReq+"            <papXML>"
lcReq=lcReq+"                <![CDATA["
lcReq=lcReq+"                    <lpap>"
lcReq=lcReq+"                        <pap>"
lcReq=lcReq+"                            <id>1</id>"
lcReq=lcReq+"                            <value>Testas</value>"
lcReq=lcReq+"                        </pap>"
lcReq=lcReq+"                        <pap>"
lcReq=lcReq+"                            <name>Skola</name>"
lcReq=lcReq+"                            <value>100.55</value>"
lcReq=lcReq+"                        </pap>"
lcReq=lcReq+"                    </lpap>"
lcReq=lcReq+"                ]]>"
lcReq=lcReq+"            </papXML>"
lcReq=lcReq+"        </PAP>"
lcReq=lcReq+"    </data>"
lcReq=lcReq+"</body>"

IF !m.loRivApi.Send("EDIT_PAP",,,m.lcReq)
    f_info("Klaida įkeliant papildomus laukus: "+m.loRivApi.Message,.T.)
    RETURN .F.
ENDIF