lv:xmlcore
Atšķirības
Norādītais vecais variants no patreizējās lapas atšķiras ar.
Abās pusēs iepriekšējo versijuIepriekšējā versijaNākamā versija | Iepriekšējā versija | ||
lv:xmlcore [2018/07/20 17:14] – marija | lv:xmlcore [2022/02/03 11:32] (patlaban) – [Vispārīga informācija] marija | ||
---|---|---|---|
Rinda 1: | Rinda 1: | ||
- | IZLABO **Lapa nav pilnībā pārtulkota. Lūdzu palīdzi pabeigt tulkojumu!** \\ //(Izdzēs šo rindkopu, kad tulkojums pabeigts!)// | ||
- | |||
======Directo XML datu apmaiņas apraksts====== | ======Directo XML datu apmaiņas apraksts====== | ||
====Vispārīga informācija==== | ====Vispārīga informācija==== | ||
- | Jebkurai Directo DB ir iespējams konfigurēt datu apmaiņu, kas ļauj nodrošināt abpusēju datu plūsmu. Ir svarīgi ņemt vērā, ka datu apmaiņas saskarne nav standartizēta, | + | Jebkurai Directo DB ir iespējams konfigurēt datu apmaiņu, kas ļauj nodrošināt abpusēju datu plūsmu. Ir svarīgi ņemt vērā, ka datu apmaiņas saskarne nav standartizēta, |
+ | Datu apmaiņas uzstādīšana ir saistīta ar ikmēneša abonēšanas maksu par xml moduli un izstrādes izmaksām, kas ir atkarīgas no uzdevuma sarežģītības, tāpēc ir vēlams savlaicīgi sazināties ar Directo pārstāvjiem, | ||
Neatkarīgi no projekta specifikas, ir daži principi, kas visos gadījumos ir vienādi: | Neatkarīgi no projekta specifikas, ir daži principi, kas visos gadījumos ir vienādi: | ||
Rinda 18: | Rinda 17: | ||
====Piemēri==== | ====Piemēri==== | ||
- | Dotie piemēri ir veidoti tikai kā vadlīnijas.\\ | + | <wrap important> |
===Datu iegūšana no Directo=== | ===Datu iegūšana no Directo=== | ||
GET pieprasījumam vienmēr ir vismaz trīs parametri: | GET pieprasījumam vienmēr ir vismaz trīs parametri: | ||
- | * '' | + | * '' |
- | * '' | + | * '' |
- | * '' | + | * '' |
- | Pārējie parametri | + | Iespējamie datu tipi, derīgas atslēgas un pārējie parametri |
==Praktisks piemērs - artikulu izvade== | ==Praktisks piemērs - artikulu izvade== | ||
Tāda veida izvadi bieži izmanto interneta veikali, piemēram, lai noskaidrotu pieejamos produktus un to atlikumus Directo noliktavā.\\ | Tāda veida izvadi bieži izmanto interneta veikali, piemēram, lai noskaidrotu pieejamos produktus un to atlikumus Directo noliktavā.\\ | ||
- | (Piemērā lietotie URL ir tikai ilustratīvi un pat, ja šāds pieprasījums var rezultēties ar datu iegūšanu, dati ir fiktīvi un nav saistīti ar kāda klienta reālajiem datiem!) | + | |
+ | <wrap important> | ||
Šajā piemērā izmantosim parametru '' | Šajā piemērā izmantosim parametru '' | ||
Rinda 39: | Rinda 39: | ||
https:// | https:// | ||
- | Lai iegūtu informāciju par kādu konkrētu artikulu, piemēram, pēc artikula koda, mēs norādām papildus parametru '' | + | Lai iegūtu informāciju par kādu konkrētu artikulu, piemēram, pēc artikula koda, mēs norādām papildus parametru '' |
https:// | https:// | ||
===Datu nosūtīšana uz Directo=== | ===Datu nosūtīšana uz Directo=== | ||
- | Datus sūta, izmantojot POST metodi un norādot trīs parametrus: | + | Datus sūta, izmantojot POST metodi un norādot |
* '' | * '' | ||
- | * '' | + | * '' |
* '' | * '' | ||
- | ==Praktisks piemērs - pārdošanas | + | ==Praktisks piemērs - pārdošanas |
Šāda tipa ievade, piemēram, var tikt izmantota, lai replicētu kādu ārējās pārdošanas sistēmas rēķinu Directo. | Šāda tipa ievade, piemēram, var tikt izmantota, lai replicētu kādu ārējās pārdošanas sistēmas rēķinu Directo. | ||
- | (Piemērā izmantotā adrese un xml saturs ir fiktīvi un nav izmantojami testēšanai!) | + | <wrap important> |
Pieņemsim, ka datu apmaiņas URL ir: https:// | Pieņemsim, ka datu apmaiņas URL ir: https:// | ||
Rinda 62: | Rinda 62: | ||
Piemēram, xml var izskatīties šādi (ne visi iespējamie atribūti ir izmantoti): | Piemēram, xml var izskatīties šādi (ne visi iespējamie atribūti ir izmantoti): | ||
- | <code xml> | ||
- | <? xml version = " | ||
- | < | ||
- | < | ||
- | | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | </ | ||
- | </ | ||
- | </ | ||
- | |||
- | Pieņemsim, ka datu ievietošana ir noritējusi veiksmīgi un tiek sūtīts šāds sinhronais xml | ||
- | |||
- | <code xml> | ||
- | <? xml version = " | ||
- | < | ||
- | < | ||
- | </ | ||
- | </ | ||
- | |||
- | Ja '' | ||
- | |||
- | Piemēram, ja rēķins ar šādu numuru jau eksistē, tad atbildes ziņojums būs šāds: | ||
- | |||
- | <code xml><? | ||
- | < | ||
- | < | ||
- | </ | ||
- | </ | ||
- | |||
- | Bet ja vienā sūtījumā būtu bijuši vairāki rēķini: | ||
- | |||
- | <code xml> | ||
- | <? xml version = " | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | </ | ||
- | |||
- | Atbildes ziņojuma apstrāde ir būtiski, ja nav nav saņemts apstiprinājums par veiksmīgu datu saņemšanu, | ||
- | |||
- | ====PHP piemēri==== | ||
- | |||
- | ===Datu izvade=== | ||
- | |||
- | <code php>$ url = ' | ||
- | |||
- | $ ch = curl_init (); | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | $ result = curl_exec ($ ch); | ||
- | |||
- | | ||
- | |||
- | print '< | ||
- | |||
- | $ data = new SimpleXMLElement ($ result); | ||
- | |||
- | print "< | ||
- | |||
- | | ||
- | print $ item [ ' | ||
- | foreach ($ item -> datafields -> DATA AS $ df) { | ||
- | print chr (9). $ df [ ' | ||
- | } | ||
- | | ||
- | </ | ||
- | |||
- | ===Datu ievade=== | ||
- | |||
- | <code php>$ XMLDATA = '<' | ||
- | <INVOICE AppKey = " | ||
- | InvoiceDate = " | ||
- | < | ||
- | <line ProductID = " | ||
- | <line ProductID = " | ||
- | </ lines> | ||
- | </ INVOICE> '; | ||
- | |||
- | $ url = ' | ||
- | |||
- | $ ch = curl_init (); | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | | ||
- | $ result = curl_exec ($ ch); | ||
- | |||
- | print '< | ||
- | |||
- | | ||
- | </ | ||
- | |||
- | ======XML andmevahetusliidese üldine kirjeldus====== | ||
- | =====Üldine===== | ||
- | Iga Directo baasi külge saab soovi korral häälestada andmevahetusliidese, | ||
- | |||
- | Sõltumata konkreetse liidestusprojekti spetsiifikast on teatud printsiibid, | ||
- | |||
- | * Andmete formaat on XML | ||
- | * Andmete kodeering on UTF-8 | ||
- | * Transpordiprotokoll on HTTPS (avalikult tunnustatud sertifikaadiga) | ||
- | * Andmete pärimisel kasutatakse GET meetodit | ||
- | * Andmete postitamisel kasutatakse POST meetodit | ||
- | * Andmeliikluse algatab alati väline osapool sõltumata sellest, kas andmeid päritakse või saadetakse, Directo liides on passiivne | ||
- | * POST päringule vastab liides sünkroonse XML sõnumiga, mille töötlemine võib protsessi edukuse huvides oluline olla | ||
- | * Andmete struktuur peab olema kirjeldatav XSD schemana, võimaluse korral eelistada schemat, kus väärtuste kandjaks on atribuudid, mitte elemendid | ||
- | |||
- | =====Näited===== | ||
- | Allpooltoodud näiteid tuleb käsitleda ainult umbkaudsete juhistena ja arvestada, et konkreetses loodavas liideses on peaaegu kindlasti kasutusel näites toodutest erinevad | ||
- | * schemad | ||
- | * URLid | ||
- | * Parameetrid, | ||
- | * Vastussõnumid | ||
- | * Võtmed | ||
- | |||
- | ====Andmete pärimine Directost ehk väljund==== | ||
- | |||
- | GET päringu korral on alati täidetud vähemalt kolm parameetrit: | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | |||
- | ja võimalikud lisaparameetrid. Kasutusel olevad andmeliikide verbid, võtme väärtused ja andmeliigipõhised lisaparameetrid lepitakse kokku iga konkreetse installatsiooni käigus. | ||
- | |||
- | ===Praktiline näide - artiklite väljund=== | ||
- | Seda tüüpi väljundit kasutab tihti näiteks veebipood, et toodete ja nende saadavuse infot Directost poodi laadida. | ||
- | |||
- | <wrap important> | ||
- | |||
- | Antud näiteks kasutatakse verbi '' | ||
- | |||
- | Terve tootebaasi päring: | ||
- | https:// | ||
- | |||
- | Üksiku toote päring, toote koodi järgi, lisaparameeter '' | ||
- | https:// | ||
- | |||
- | ====Andmete saatmine Directosse ehk sisend==== | ||
- | Andmete saatmine käib POST meetodil, '' | ||
- | |||
- | Täidetud on kolm vormimuutujat: | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | |||
- | ===Praktiline näide - müügiarvete sisend=== | ||
- | Seda tüüpi sisendit kasutatakse näiteks sellisel puhul, kui mingis välises süsteemis genereeritakse müügiarveid, | ||
- | |||
- | <wrap important> | ||
- | |||
- | Oletame, et liidese URL on antud juhul https:// | ||
- | |||
- | Andmeid kirjeldab schema {{: | ||
- | |||
- | Schemale vastav, aga sugugi mitte kõiki võimalikke atribuute kasutab XML võib välja näha näiteks selline: | ||
<code xml> | <code xml> | ||
<?xml version=" | <?xml version=" | ||
Rinda 237: | Rinda 73: | ||
</ | </ | ||
</ | </ | ||
- | |||
</ | </ | ||
- | Postitusele vastab liides sünkroonse XML sõnumiga, kust saab teada, mis juhtus. | + | Pieņemsim, ka datu ievietošana ir noritējusi veiksmīgi un atbilde ir šāds sinhronais xml: |
- | Näide, postitus oli edukas ja Directosse võeti vastu müügiarve number 123: | ||
<code xml> | <code xml> | ||
<?xml version=" | <?xml version=" | ||
Rinda 250: | Rinda 84: | ||
</ | </ | ||
- | Kui '' | + | Ja '' |
+ | |||
+ | Piemēram, ja rēķins ar šādu numuru jau eksistē, tad atbildes ziņojums var būt šāds: | ||
- | Näide, arve number 123 vastuvõtmisest keelduti, kuna sellise numbriga arve oli Directos juba olemas: | ||
<code xml> | <code xml> | ||
<?xml version=" | <?xml version=" | ||
- | < | + | < |
- | <Result Type=" | + | |
- | </ | + | </ |
</ | </ | ||
- | Ühest pakis võib olla korraga ka mitu arvet, igaühe kohta tuleb omaette '' | + | Bet ja vienā sūtījumā būtu bijuši vairāki rēķini: |
<code xml> | <code xml> | ||
<?xml version=" | <?xml version=" | ||
Rinda 269: | Rinda 105: | ||
</ | </ | ||
- | Vastussõnumi töötlemine on oluline, juhul kui pole õnnestunud saada edukat vastuvõttu tähistavat sõnumit, tuleb saatmine ebaedukaks lugeda | + | Atbildes ziņojuma apstrāde ir būtiska, ja nav saņemts apstiprinājums par veiksmīgu datu ielādi, tad dati nav ievietoti un ir jāveic atkārtots mēģinājums, |
+ | ====PHP piemēri==== | ||
+ | |||
+ | ===Datu izvade=== | ||
- | ====PHP näited==== | ||
- | ===Väljund=== | ||
<code php> | <code php> | ||
$url = ' | $url = ' | ||
Rinda 301: | Rinda 138: | ||
</ | </ | ||
+ | ===Datu ievade=== | ||
- | ===Sisend=== | ||
<code php> | <code php> | ||
- | + | $xmldata = '<' | |
- | $xmldata = '<' | + | |
<invoice AppKey=" | <invoice AppKey=" | ||
InvoiceDate=" | InvoiceDate=" | ||
Rinda 329: | Rinda 165: | ||
curl_close($ch); | curl_close($ch); | ||
</ | </ | ||
+ | |||
+ | {{page> |
lv/xmlcore.1532096080.txt.gz · Labota: 2018/07/20 17:14 , labojis marija