Pi. máj 20th, 2022

XML

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).
XML import/export
  • 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. Detailné nastavenie je popísané nižšie v článku.
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

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

Export

  • posledné zmenené zásoby 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)
  • Obálku dokumentu sa nepodarilo otvoriť podľa schémy – XML súbor nie je určený pre import do Pohody

Príkazový riadok – automatizácia pomocou plánovača úloh vo Windowse

Prvotne bude potrebné vytvoriť si nejaký priečinok, v ktorom to cele nastavíte (najlepšie je vytvoriť si priečinok v inštalačnom priečinku Pohody – napr. XML_task). Následne budete postupovať podľa tohto článku https://www.stormware.sk/pohoda/xml/xmlzpracovani/, kde to je detailne vysvetlené.

Budete potrebovať 3 súbory: konfiguračný súbor .ini, xml súbor s požiadavkou (import/export) a .bat súbor, cez ktorý sa to bude spúšťať.

config.ini

[XML]
input_xml= D:\Pohoda\Jazz\XML_task\input.xml
response_xml= D:\Pohoda\Jazz\XML_task\output.xml
database= 12345678_2021.mdb
check_duplicity= 0
format_output= 0

input.xml

(v mojom prípade export vydaných faktúr od 1.1.2021 do 31.12.2021).
Obsah súboru input.xml sa samozrejme môže meniť, podľa toho, čo potrebujete riešiť – či máte zabezpečený nejaký automat, ktorý do daného umiestnenia sťahuje vždy nejaké nové XML napr. faktúry (napr. pomocou FTP).  

<?xml version="1.0" encoding="utf-8"?>
<dat:dataPack id="001" ico="12345678" application="Havri.eu" version="2.0" note="Export vydaných faktúr" xmlns:dat="http://www.stormware.cz/schema/version_2/data.xsd" xmlns:ftr="http://www.stormware.cz/schema/version_2/filter.xsd" xmlns:lst="http://www.stormware.cz/schema/version_2/list.xsd">
  <dat:dataPackItem id="01" version="2.0">
  <!-- export vydaných faktúr (invoiceType="issuedInvoice") -->
    <lst:listInvoiceRequest version="2.0" invoiceType="issuedInvoice" invoiceVersion="2.0">
		<lst:requestInvoice>
		  <ftr:filter>
			<ftr:dateFrom>2021-01-01</ftr:dateFrom>
			<ftr:dateTill>2021-12-31</ftr:dateTill>
		  </ftr:filter>
		</lst:requestInvoice>
		</lst:listInvoiceRequest>
	</dat:dataPackItem>
</dat:dataPack>

run.bat

"D:\Pohoda\Jazz\Pohoda.exe" /XML "Admin" "heslo123" "D:\Pohoda\Jazz\XML_task\config.ini"

Ak tieto súbory máte vytvorené, tak následný krok je pridanie súboru run.bat do plánovača úloh vo Windowse

Plánovač úloh – Task scheduler

Plánovač úloh si najrýchlejšie môžete otvoriť tak, že kliknete na Tento počítač pravým tlačidlo myši a zvolíte voľbu Spravovať, kde v ľavej časti máte Task Scheduler – plánovač úloh. Kliknite si na Task scheduler pravým tlačidlom myši a zvoľte možnosť Create task (Vytvoriť úlohu).

Úlohu si môžete pomenovať Pohoda_XML. 

Plánovač úloh

Prepnite sa na záložku Triggers, kde je dôležité nastavenie toho, ako často má daná úloha prebiehať. Cez tlačidlo New si zadefinujte nový plán spustenia, kde si môžete zvoliť, že úloha má prebiehať na dennej báze (Daily). V strednej časti zadáte dátum prvého spustenia a čas prvého spustenia. Podľa nastavenie nižšie bude táto automatická úloha prebiehať od 5.3.2021 od 7:00 ráno a bude sa spúštať každú hodinu po dobu 12 hodín (čiže do 19:00) .Bude to prebiehať takto každý deň: 7:00 , 8:00, 9:00 , … 19:00

Plánovač úloh – spúšťanie

Ďalším bodom je pridanie spúšťacieho súboru run.bat. Otvorte si záložku Actions, kde cez tlačidlo New a následne v ďalšom okne Browse nájdete run.bat pomocou prieskumníka. Vo výsledku by to malo vyzerať takto: 

Plánovač úloh – akcia

Úlohu už stačí len uložiť a automatický import/export XML pomocou príkazového riadka bude prebiehať. Pri uložení bude ešte vyžadovať meno a heslo Windows užívateľa.

Od Havri

Proste IT chlapec :) Programovanie a gaming sú moje hobby.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená.