Kasutaja tarvikud

Lehe tööriistad



lt:xmlcore

Skirtumai

Čia matote skirtumus tarp pasirinktos versijos ir esamo dokumento.

Lõlita võrdlemise vaatele

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 [2022/04/07 09:10]
modesta [3. Atsakymų kodai]
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 galimijei schemoje yra atitinkamas laukasPavyzdž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žioJokiu būdu negarantuojamakad šie URL iš tikrųjų atitiks užklausąJei užklausos metu duomenys yra gaunamijie 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
  
-==== 2.3. Informacijos siuntimas į Directo (IN) ====+== 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) ===
  
 Duomenys siunčiami naudojant ''​form/​urlencoded''​ POST metodą. Duomenys siunčiami naudojant ''​form/​urlencoded''​ POST metodą.
  
 Užpildomi formos kintamieji: Užpildomi formos kintamieji:
-  * **put**=1 +  * ''​put=1''​ 
-  * **what**=INVOICE +  * ''​what=INVOICE''​ 
-  * **key**=SUGENERUOTAS_RAKTAS +  * ''​key=SUGENERUOTAS_RAKTAS''​ 
-  * **xmldata**=<?xml version="​1.0"​ encoding="​utf-8"?><​PAYLOAD>​+  * ''​xmldata=<?​xml version="​1.0"​ encoding="​utf-8"?><​PAYLOAD>​''​
  
-Šis siuntimas naudojamas, pavyzdžiui,​ kai pardavimo ​skaita yra sugeneruojama ​orinėje sistemojekurią reikia perduoti į „Directo“.+Įvesties ​sajoje XML turi būti siųstas adresu [[https://​login.directo.ee/​xmlcore/​demo_ee/​xmlcore.asp]] POST su kintamaisiais ''​put = 1''​''​key = [appkey value]'',​ ''​what = order''​ (arba ''​what = customer''​ arba ''​what = item''​) ir ''​xmldata = [XML turinys]''​ XML įvestis turi atitikti schemą.
  
 <wrap important>​ <wrap important>​
Linija 69: Linija 87:
 </​wrap>​ </​wrap>​
  
-Tarkime, kad šiuo atveju URL pvz. https://​login.directo.ee/​xmlcore/​this_is_the_worlds_greatest_company/​xmlcore.asp+**Praktinis pavyzdys** 
 + 
 +Tokio tipo įvestis naudojama, pavyzdžiui,​ kai išorinėje sistemoje generuojami pardavimo užsakymai, kurie turi būti atspindėti Directo. Taip pat, pateikiamas pirkėjų schemos aprašymas. 
 + 
 +Tarkime, kad šiuo atveju URL pvz. [[https://​login.directo.ee/​xmlcore/​this_is_the_worlds_greatest_company/​xmlcore.asp]]
  
-Pavyzdinio serviso XSD schemą: ​ [[http://​wiki.directo.ee/​_media/​et/​xml_in_arved.xsd|xml_in_arved.xsd]].+Pavyzdinio serviso XSD schemą: ​ [[http://​wiki.directo.ee/​_media/​et/​xml_in_arved.xsd]].
  
 Pavyzdinis XML: Pavyzdinis XML:
Linija 124: Linija 146:
 </​wrap>​ </​wrap>​
  
-==== 2.4. HTML forma ====+**Pirkėjo įvesties sąsaja:​** 
 + 
 +Duomenys aprašyti schemoje [[https://​login.directo.ee/​xmlcore/​demo_ee/​xml_IN_kliendid.xsd]] . Duomenų registravimas yra toks pat kaip užsakymų registravimas. XML, kuris atitinka schemą, bet nenaudoja visų galimų atributų, gali atrodyti taip: 
 + 
 +<code xml> 
 +<?​xml ​ version ​"​1.0" ​ encoding = "​utf-8"​ ?>  
 +<​customers > 
 +   <​customer ​ code = "​Customer ​ code1 " name = "​Name" ​ address1 = "​address11" ​ address2 = "​address21" ​ address3 = "​address31" ​ email = " email1 " ​ regno = " regno1 " ​ class = " class1 " ​ type = " 1 " ​ >  
 +  </ customer > 
 +  </ customers > 
 +</​code>​ 
 + 
 +=== 2.4. HTML forma ===
  
 Parametrai, kuriuos reikia nurodyti: Parametrai, kuriuos reikia nurodyti:
Linija 153: Linija 187:
  
  
-==== 2.4. Pavyzdys PHP kalba ====+=== 2.5. Pavyzdys PHP kalba ===
  
 Į servisą ​ galima kreiptis bet kokia kalba, jeigu ta programavimo kalba yra galimybė padaryti https request‘ą,​ pateikiame pavyzdį PHP kalba: Į servisą ​ galima kreiptis bet kokia kalba, jeigu ta programavimo kalba yra galimybė padaryti https request‘ą,​ pateikiame pavyzdį PHP kalba:
Linija 196: Linija 230:
 $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>​
Linija 223: Linija 257:
  
 </​code>​ </​code>​
 +
 +=== 2.6. Postman ===
 +[[https://​www.postman.com/​|Postman]] aplinkos išvestį ir įvestį galima atsisiųsti [[https://​wiki.directo.ee/​_media/​et/​directo.demo.postman_collection.json|čia]],​ tada importuoti kaip kolekciją į Postman ir ten išbandyti.
 +
 +==== 3. Atsakymų kodai ====
 +
 +| **kodas** |**Atsakymo tekstas** |**Pastaba**|**Paaiškinimas**|Description |
 +| 0 | Created | |Dokumentas sėkmingai sukurtas | 
 +| 0 | Updated | (if document update feature is used) | Dokumentas sėkmingai atnaujintas| Document successfullly created|
 +| 0 | Confirmed | (if auto document confirmation is used) | Dokumentas sėkmingai patvirtintas| ​
 +|  | 
 +| 2 | Too secure location | | Informuokite Directo|  ​
 +| 3 | Database is moved to a new server. Takes about 15 minutes |  |Duomenų bazė perkelta į kitą serverį, prašome palaukti 15 minučių| ​
 +| 4 | Database is closed - user count is zero | |Duomenų bazė uždaryta | 
 +| 5 | Unauthorized | | Neteisingas raktas ar neteisingai paduotas raktas (key)| ​
 +| 6 | Invalid user given | | Neegzistuojantis darbuotojas| ​
 +| 7 | Invalid IP source given | | Neegzistuojantis arba apribotas darbuotojas| ​
 +| 8 | Invalid xml given: ... | | klaidingas, neteisingos struktūros XML| 
 +| 9 | Error on import: ... | | Klaida susijusi su procedūra, informuokite Directo| ​
 +|  | 
 +| 11 | Duplicate | | Toks dokumentas jau egzistuoja| ​
 +| 12 | Missing document identificator | | nenustatytas dokumento unikalus laukas| ​
 +| 13 | Missing customer code / Missing customer regno | (if code is not used) | Nenusiųstas arba nenustatytas pirkėjo unikalus laukas| ​
 +| 14 | Update not allowed | (if document is commited or has related documents) | Negalima atnaujinti dokumento (greičiausiai su dokumentu yra kitų susijusių dokumentų| ​
 +|  | 
 +| 17 | Document insert failed ​ | |Dokumentas nesukurtas, nes nerasta numeracija (nenurodyta,​ nenustatyta,​ pasibaigusi,​...) | 
 +| 18 | uniqueid field not found | (needs to be set up correctly in transport parameters) | Nenustatytas unikalus laukas| ​
 +| 19 | Removal of document not allowed | | Dokumento ištrinti nepavyko (gali būti patvirtintas,​ yra susijusių dokumentų,​...)| ​
 +| 29 | Not confirmed: ... | (if auto document confirmation is used) | Dokumentas nepatvirtintas,​ priežastis pateikta atsakyme| ​
 +|  | 
 +| 30 | Created | (creation of related document like customer, payment etc.) | Antrinis dokumentas sukurtas sėkmingai| ​
 +| 30 | Updated | (update of related document like customer, payment etc.) | Antrinis dokumentas atnaujintas sėkmingai | 
 +| 30 | Confirmed | (confirmed related document like payment etc.) | Antrinis dokumentas patvirtintas sėkmingai| ​
 +| 31 | ... not found | (prerequisite of creation of related document like customer, payment etc. not met) |(item IN) klaidos priežastis nurodyta atsakyme | 
 +| 39 | ... not confirmed: ... | (if auto document confirmation for related document is in use) | Antrinio dokumento patvirtinti nepavyko, priežastis nurodyrta atsakyme| ​
 +|  | 
 +| 99 | No processable XML data found for document: ​ ... | |Informuokite Directo| ​
lt/xmlcore.txt · Keista: 2023/09/15 15:27 vartotojo jaroslav