Čia matote skirtumus tarp pasirinktos versijos ir esamo dokumento.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
lt:xmlcore [2021/10/08 15:12] jaroslav [Bendras XML duomenų mainų sąsajos aprašymas] |
lt:xmlcore [2021/12/16 16:13] ignas [Pavydžiai] |
||
---|---|---|---|
Linija 1: | Linija 1: | ||
======Bendras XML duomenų mainų sąsajos aprašymas====== | ======Bendras XML duomenų mainų sąsajos aprašymas====== | ||
+ | |||
+ | ====Bendra informacija==== | ||
+ | |||
+ | Jei pageidaujama, kiekvienoje Directo bazėje galima nustatyti duomenų mainų sąsają, įgalinančią dvipusį duomenų srautą. Svarbu atsiminti, kad sąsaja nėra prieinama pagal numatytuosius nustatymus, tačiau konfigūruojama kiekvienu konkrečiu atveju, atsižvelgiant į konkretaus užduočių rinkinio poreikius. Sąsajos įdiegimas yra apmokamas pagal kainoraštį, o apmokėjimo dydis priklauso nuo kiekviena kryptimi judančių duomenų tipų skaičiaus, todėl prieš pradedant darbą, būtina susisiekti su Directo prekybos atstovu ir susitarti dėl tikslių poreikių bei derinti projekto kainą. | ||
Integracijos principai: | Integracijos principai: | ||
- | * Duomenų formatas XML; | + | * Duomenų formatas XML; |
- | * Duomenų koduotė UTF-8; | + | * Duomenų koduotė UTF-8; |
- | * Metodas informacijai pasiekti HTTPS (sertifikatas viešai pripažįstamas); | + | * Metodas informacijai pasiekti HTTPS (sertifikatas viešai pripažįstamas); |
- | * GET metodas naudojamas duomenims gauti; | + | * GET metodas naudojamas duomenims gauti; |
- | * POST metodas yra naudojamas duomenis išsiųsti; | + | * POST metodas yra naudojamas duomenis išsiųsti; |
- | * Duomenų apsikeitimą visuomet inicijuoja išorinė šalis, nepriklausomai nuo apsikeitimo krypties; | + | * Duomenų apsikeitimą visuomet inicijuoja išorinė šalis, nepriklausomai nuo apsikeitimo krypties; |
- | * Į POST užklausą atsakoma sinchronizuotu XML pranešimu, kurio apdorojimas gali daryti įtaką sėkmingam procesui; | + | * Į POST užklausą atsakoma sinchronizuotu XML pranešimu, kurio apdorojimas gali daryti įtaką sėkmingam procesui; |
- | * Duomenų struktūra turi atitikti paruoštą XSD schemą. Pageidaujama reikšmes siųsti atributuose. | + | * Duomenų struktūra turi atitikti paruoštą XSD schemą. Pageidaujama reikšmes siųsti atributuose. |
- | * Directo dokumentų numerių tipas yra //integer//, tai reiškia, kad didžiausias galimas skaičius yra 2147483647. | + | * Directo dokumentų numerių tipas yra integer, tai reiškia, kad didžiausias galimas skaičius yra 2147483647. |
- | * Tuščios (NULL) reikšmės nebus įtraukiamos į XML su lauko pavadinimu. Tą patį darykite ir siųsdami duomenis į Directo - praleiskite laukus, kuriuose turi būti tuščių (NULL) reikšmių. Reikėtų vengti siųsti laukus su tuščia reikšme, kaip pavyzdžiui: ''%%customer_code = ""%%'' | + | * Tuščios (NULL) reikšmės nebus įtraukiamos į XML su lauko pavadinimu. Tą patį darykite ir siųsdami duomenis į Directo - praleiskite laukus, kuriuose turi būti tuščių (NULL) reikšmių. Reikėtų vengti siųsti laukus su tuščia reikšme, kaip pavyzdžiui: ''customer_code = ""''. |
+ | **Endpoint URL:** [[https://login.directo.ee/xmlcore/demo_lt_153/xmlcore.asp]] (Jūsų sukurtam servisui pasikeis tik „demo_lt_153“ dalis). | ||
- | * **Endpoint URL:** https://login.directo.ee/xmlcore/demo_lt_153/xmlcore.asp (Jūsų sukurtam servisui pasikeis tik „demo_lt_153“ dalis). | ||
- | ==== 2.1. Prieiga prie serviso ==== | + | ==== 1. Prieiga prie serviso ==== |
- | Serviso nuorodos yra pasiekiamos ''form/urlencoded'' POST metodu. Autorizacijai reikalingas raktas turi būti perduodamas POST metodu kintamajame KEY siunčiant užklausą. Jei raktas neteisingas arba raktas siunčiamas neteisingu būdu, gaunamas atsakymas: | + | Serviso nuorodos yra pasiekiamos ''form/urlencoded'' POST metodu. Autorizacijai reikalingas raktas turi būti perduodamas POST metodu kintamajame KEY: 2852DD553B767B463C807ADB36B5BB2F siunčiant užklausą. Jei raktas neteisingas arba raktas siunčiamas neteisingu būdu, gaunamas atsakymas: |
<code xml><result type="5" desc="Unauthorized"/></code> | <code xml><result type="5" desc="Unauthorized"/></code> | ||
Linija 28: | Linija 32: | ||
- | ==== 2.2. Informacijos pasiėmimas iš Directo (OUT) ==== | + | ====2. Pavydžiai ==== |
+ | Toliau pateikti pavyzdžiai turi būti laikomi tik apytiksliais ir svarbu atsiminti, kad konkrečioje kuriamoje sąsajoje beveik tikrai bus naudojamos kitokios **schemos, URL, parametrai, apribojimai, žinutės atsakymai ir raktai** nei pateiktos pavyzdyje. Jokiu būdu negarantuojama, kad šie URL iš tikrųjų atitiks užklausą. Jei užklausos metu duomenys yra gaunami, jie yra 100% fiktyvūs ir nesusiję su jokių tikrų įmonių duomenimis. | ||
+ | Norėdami išbandyti, naudokite šią formą: [[https://login.directo.ee/xmlcore/demo_ee/webupload.html]] | ||
+ | |||
+ | |||
+ | === 2.1. Informacijos pasiėmimas iš Directo (OUT) === | ||
GET metodo atveju bent 3 parametrai turi būti nurodyti: | GET metodo atveju bent 3 parametrai turi būti nurodyti: | ||
- | * **get**=1 | + | * ''get=1'' |
- | * **what**=SERVISO_KODAS | + | * ''what=SERVISO_KODAS'' |
- | * **key**=SUGENERUOTAS_RAKTAS | + | * ''key=SUGENERUOTAS_RAKTAS'' |
Papildomi parametrai yra derinami individualiai pagal poreikį, integracijos derinimo metu. | Papildomi parametrai yra derinami individualiai pagal poreikį, integracijos derinimo metu. | ||
- | <wrap important> | + | Šiame pavyzdyje naudojami ''what=item'' ir ''get=1''. Visi filtrai galimi, jei schemoje yra atitinkamas laukas. Pavyzdžiui, "class", "code", "barcode", "supplier", "supplieritem", "closed", "ts" straipsnių aprašomoji struktūros schema: [[https://login.directo.ee/xmlcore/demo_ee /ws_artiklid.xsd]] |
- | Šiuose pavyzdžiuose esančios nuorodos yra iliustracinio pobūdžio. Jokiu būdu negarantuojama, kad šie URL iš tikrųjų atitiks užklausą. Jei užklausos metu duomenys yra gaunami, jie yra 100% fiktyvūs ir nesusiję su jokių tikrų įmonių duomenimis. | + | |
- | </wrap> | + | |
+ | Užklausa prekėms pagal išsaugojimo datą (ts = Time stamp): [[https://login.directo.ee/xmlcore/demo_ee/xmlcore.asp?what=item&get=1&ts=01.01.2021]] | ||
- | Šio pavyzdžio atveju yra naudojamas **what** = "item" ir **key** reikšmė yra "20DAF3F822B782AF12D1198C23F45604". Esant poreikiui, galite peržiūrėti šio pavyzdinio serviso XSD schemą: [[http://wiki.directo.ee/_media/et/ws_artiklid.xsd|ws_artiklid.xsd]]. | + | Laiko filtras taip pat gali naudoti laiką taip: & ts = 01.03.2021 12:30 / & ts = 01.03.2021%2012:30 |
Užklausos pavyzdys, norint gauti visų prekių sąrašą: | Užklausos pavyzdys, norint gauti visų prekių sąrašą: | ||
- | |||
https://login.directo.ee/xmlcore/demo_ee/xmlcore.asp?get=1&what=item | https://login.directo.ee/xmlcore/demo_ee/xmlcore.asp?get=1&what=item | ||
Užklausos pavyzdys, norint gauti konkrečios prekės informaciją: | Užklausos pavyzdys, norint gauti konkrečios prekės informaciją: | ||
- | |||
https://login.directo.ee/xmlcore/demo_ee/xmlcore.asp?get=1&what=item&code=0000 | https://login.directo.ee/xmlcore/demo_ee/xmlcore.asp?get=1&what=item&code=0000 | ||
+ | |||
+ | == Pirkėjo išvestis (OUT): == | ||
+ | |||
+ | [[https://login.directo.ee/xmlcore/demo_ee/xmlcore.asp?get=1&what=customer&ts=01.01.2021]] | ||
+ | |||
+ | Filtro parinkčių pavyzdžiai: "code", "loyaltycard", "regno", "email", "phone", "closed", "ts" pirkėjo struktūros schema: https://login.directo.ee/xmlcore/demo_ee/ws_customers.xsd | ||
+ | |||
+ | == Sandėlio kiekio išvestis (OUT): == | ||
+ | |||
+ | https://login.directo.ee/xmlcore/demo_ee/xmlcore.asp?get=1&what=stocklevel | ||
+ | |||
+ | Filtro parinkčių pavyzdžius: "code", "stock", apibūdinanti sandėlio kiekio schema: https://login.directo.ee/xmlcore/demo_ee/ws_laoseis.xsdt | ||
+ | |||
==== 2.3. Informacijos siuntimas į Directo (IN) ==== | ==== 2.3. Informacijos siuntimas į Directo (IN) ==== | ||
Linija 196: | Linija 214: | ||
$xmldata = <<<XML | $xmldata = <<<XML | ||
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
- | <invoice AppKey="1234567879012345678790" InvoiceNr="123" | + | <invoice InvoiceNr="123" |
InvoiceDate="2015-06-07" CustomerCode="CUST001"> | InvoiceDate="2015-06-07" CustomerCode="CUST001"> | ||
<lines> | <lines> |