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:16] – 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== | ||
| Rinda 40: | 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. | ||
| - | <wrap important> | + | <wrap important> |
| Pieņemsim, ka datu apmaiņas URL ir: https:// | Pieņemsim, ka datu apmaiņas URL ir: https:// | ||
| Rinda 63: | 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 238: | 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 251: | 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 270: | 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 302: | Rinda 138: | ||
| </ | </ | ||
| + | ===Datu ievade=== | ||
| - | ===Sisend=== | ||
| <code php> | <code php> | ||
| - | + | $xmldata = '<' | |
| - | $xmldata = '<' | + | |
| <invoice AppKey=" | <invoice AppKey=" | ||
| InvoiceDate=" | InvoiceDate=" | ||
| Rinda 330: | Rinda 165: | ||
| curl_close($ch); | curl_close($ch); | ||
| </ | </ | ||
| + | |||
| + | {{page> | ||
lv/xmlcore.1532096165.txt.gz · Labota: 2018/07/20 17:16 , labojis marija