XML komunikácia v Pohode

Uverejnené: 01.03.2021


Ekonomický systém POHODA

 

Základ je poznať XML a orientovať sa v XSD schémach. Všetko potrebné je zverejnené na webe https://www.stormware.sk/pohoda/xml/. XML komunikácia v Pohode funguje na základe páru požiadavka (request) - odpoveď (response). 

Príklad:
č 1. Spustíte import Zásob (request) a Pohoda odpovie (response), či import prebehol alebo nie.
č 2. Spustíte export Zásob (request) a Pohoda vygeneruje zásoby do XML súboru (response).

Základné pojmy:
XML (eXtensible Markup Language) je samotný súbor, ktorý sa importuje do Pohody.
XSD (XML Schema Definition) je schéma, podľa ktorej sa tvoria XML súbory (obsahuje pravidlá a popis elementov, príp. dátové typy).
XSL / XSLT (eXtensible Stylesheet Language) je transformačná šablóna, podľa ktorej sa transformujú XML súbory (mení sa obsah súborov napr. ak export XML z E-shopu má inú štruktúru ako XML pre Pohodu). 

Základná štruktúra každého Pohoda XML súboru obsahuje koreňový element (root) dat:dataPack (ktorý hovorí o tom, že to je požiadka - request) alebo rsp:responsePack (ktorý hovorí o tom, že to je odpoveď - response). Ak je root element v XML rsp:responsePack, tak to znamená to, že súbor nie je importovateľný do Pohody, keďže sa jedná o odpoveď z Pohody.
V tomto elemente (dat:dataPack) je potrebné mať vyplnený atribút IČO (napr. ICO="123456789", kde 123456789 predstavuje IČO účtovnej jednotky, do ktorej sa vykonáva import).
V jednom dat:dataPack môže byť viacero dat:dataPackItem, kde dat:dataPackItem predstavuje jeden doklad v XML. V jednom XML môžete kombinovať doklady napr. import zásob a následne import faktúr; import adresára a následny import vydaných faktúr; import vydaných zálohových faktúr a následne import vydaných faktúr, atď. 

 

Ovládanie v programe

  • XML komunikácia sa v Pohode spúšťa priamo v účtovnej jednotke hore na lište cez Súbor>Dátová komunikácia>XML import/export, kde sa dá vložiť Vstupný súbor alebo priečinok (v prípade voľby priečinka sa poradie XML súborov pri importe radí podľa operačného systému).
    Pohoda - dátová komunikácia
  • Všeobecný internetový obchod - nastavuje sa cez Nastavenie>Internetové obchody>Nastavenie internetových obchodov
    Všeobecný internetový obchod

Príkazový riadok

  • XML komunikácia sa dá spustiť aj pomocou príkazového riadka. Vyžaduje 1 licenciu Pohody v prípade sieťovej verzie. Do spustenia sa zadáva meno a heslo od užívateľa Pohody, ktorý má právo na XML komunikáciu. Odporúčam si vytvoriť vlastného užívateľa pre XML komunikáciu. 
    Príkazový riadok

Pohoda mServer 

  • Pohoda mServer je jednoduchý HTTP server Pohody, ktorý je súčasťou programu. Vďaka tejto aplikácií si môžete posielať HTTP požiadavky priamo na Váš server (v prípade, ak máte prepojený napr. E-shop a Váš server napr. pomocou VPN alebo Port forwarding), kde máte Pohodu mServer alebo vyexportovať XML, poprípade dokumenty (súbory), ktoré sú umiestnené na disku PC. Jedna inštancia vyžaduje 1 licenciu Pohody v prípade sieťovej verzie.
    mServer sa dá spustiť/zastaviť priamo v programe alebo pomocou príkazového riadka. Ak Vám nedovolí spustiť mServer, tak si skontrolujte, či nejaká iná služba/aplikácia nevyužíva port, ktorý ste zadali pre mServer. Tak isto si skontrolujte, či tento port Vám neblokuje Firewall.

 

 

Vzorové XML požiadavky

Import

  • import Adresára s Externým ID a import Prijatej objednávky s väzbou na adresár pomocou Externého ID (ExtID) - [VZOR]
  • import Výdajky s väzbou na Prijatú objednávku pomocou čísla dokladu - [VZOR]
  • import Prijatej objednávky a vytvorenie Vydanej faktúry s väzbou na prijatú objednávku - [VZOR]
  • import Vydanej faktúry s vytvorením PDF na disk - [VZOR]

Export

  • export posledných zmenených zásob podľa dátumu a času - [VZOR]
  • export už vytvorenej vydanej faktúry do PDF na disk - [VZOR]



Najčastejšie chybové hlášky

  • Tento balíček nie je určený pre túto jednotku - XML v elemente dat:dataPack nie je zhodný atribút IČO voči IČO účtovnej jednotky, do ktorej sa vykonáva import (ak máte v Pohode medzery, tak aj v XML musia byť medzery)