Zhlédněte naši minisérií videí, jak vést v Pohodě plnohodnotnou prodejnu

Pro vývojáře

Poslední aktualizace 22. 02. 2016

Popis komunikace programu POHODA a webové služby

  • Program POHODA využívá HTTP / HTTPS protokol pro přenos libovolných dat pomocí páru požadavek-odpověď. Požadavek i odpověď jsou složeny z textových hlaviček, prázdného řádku a binárních dat. Typ dat je určen pomocí MIME (Multipurpose Intenet Mail Extension) typů v hlavičce Content-Type.
  • Pro přenos dat je v programu POHODA podporována pouze metoda POST. Metoda GET není v programu POHODA podporována.
  • Program POHODA podporuje pouze přenos dat ve formátu XML, jedná se o typ Content-Type: text/xml
  • XML data jsou uložena v kódování Windows-1250.
  • Přenos dat mezi programem POHODA a obecným internetovým obchodem je možné spustit pouze z programu POHODA.

Ukázka komunikace programu POHODA s webovou službou

Příklad požadavku programu POHODA na stažení Adres z Internetového obchodu

POST http://elektro-net.cz/adresy.php HTTP/1.1
User-Agent: STORMWARE-HTTP-client. http://www.stormware.cz
Content-Type: text/xml
Accept-Encoding: gzip, deflate
Host: http://elektro-net.cz
Content-Length: 527
Pragma: no-cache
Connection: Keep-Alive
Authorization: Basic bXV6YXRrb0BzdG9ybXdhcmUuY3o6dmFub2Nl

<?xml version="1.0" encoding="Windows-1250"?>
<dat:dataPack xmlns:dat="http://www.stormware.cz/schema/version_2/data.xsd" xmlns:lAdb="http://www.stormware.cz/schema/version_2/list_addBook.xsd" id="00000001" ico="25313142" application="Obecn? Internetov? obchod - import" version="2.0" note="Import adres">
  <dat:dataPackItem id="00000001" version="2.0">
    <lAdb:listAddressBookRequest version="2.0" addressBookVersion="2.0">
      <lAdb:requestAddressBook/>
    </lAdb:listAddressBookRequest>
  </dat:dataPackItem>
</dat:dataPack>

Příklad odpovědi webové služby Internetového obchodu

HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: 1151
Server: Apache Coyote/1.0

<?xml version="1.0" encoding="Windows-1250"?>
<dat:dataPack id="ad001" ico="12345678" application="StwTest" version = "2.0" note="Import adres" xmlns:dat="http://www.stormware.cz/schema/version_2/data.xsd" xmlns:adb="http://www.stormware.cz/schema/version_2/addressbook.xsd" xmlns:typ="http://www.stormware.cz/schema/version_2/type.xsd">
  <dat:dataPackItem id="AD001" version="2.0">
    <adb:addressbook version="2.0">
      <adb:addressbookHeader>
        <adb:identity>
          <typ:address>
            <typ:name>Anna Veselá</typ:name>
            <typ:city>Jihlava</typ:city>
            <typ:street>Jarní 4</typ:street>
            <typ:zip>58601</typ:zip>
          </typ:address>
          <typ:shipToAddress>
            <typ:name>Anna Veselá</typ:name>
            <typ:city>Třebíč</typ:city>
            <typ:street>Nová 31</typ:street>
          </typ:shipToAddress>
        </adb:identity>
        <adb:region>Vysočina</adb:region>
        <adb:mobil>606888970</adb:mobil>
        <adb:email>vesela@seznam.cz</adb:email>
      </adb:addressbookHeader>
    </adb:addressbook>
  </dat:dataPackItem>
</dat:dataPack>

Export dat z programu Pohoda na Internetový obchod

Standardní výstupní data z programu POHODA pro Obecný Internetový obchod jsou ve formátu XML. Jedná se o XML formát programu POHODA. Popis a struktura XML je uvedena na adrese WWW.STORMWARE.CZ/XML. XML data jsou v kódování Windows-1250. Potřebujete-li výstupní data z programu POHODA upravit na jiný datový typ, je nutné použít XSLT transformaci. XSLT šablona převede standardní výstupní formát XML POHODA na vámi požadovaný datový soubor. Na webovou službu bude posléze odeslán pouze váš upravený datový soubor.

Odpověď webové služby

Po spojení s webovou službou a následném předání výstupních dat z programu POHODA, očekává program POHODA odpověď z webové služby. Na základě této odpovědi vyhodnotí stav komunikace POHODA - Obecný internetový obchod. Aktuální verze komunikace POHODA umožní vyhodnotit pouze dva stavy: (OK, Error).

Definice odpovědi webové služby

Program POHODA nemá přesně definovanou datovou strukturu odpovědi z webové služby, pouze je nutné dodržet základní podmínky:

  • odpověď webové služby = obecný XML dokument
  • XML dokument obsahuje element <rsp:responsePack> s atributem @state
  • atribut @state nese hodnotu pro vyhodnocení stavu komunikace (OK,Error)
Pokud odpověď webové služby:
  • není datového typu XML a neobsahuje element <rsp:responsePack> s atributem @state
  • atribut @state není nastaven na hodnotu "OK"
bude vždy komunikace s Obecným Internetovým obchodem vyhodnocena jako chybná!

Příklad XML odpovědi webové služby na export dat z programu POHODA stáhnout.

Příklad odpovědi webové služby Internetového obchodu

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: 224
Server: Apache Coyote/1.0

<?xml version="1.0" encoding="Windows-1250"?>
<rsp:responsePack xmlns:rsp="http://www.stormware.cz/schema/response.xsd" note="response from the EShop" application="eShop" state="ok" id="00000001" version="1.0" ></rsp:responsePack>

Import dat do programu POHODA z internetového obchodu

Program POHODA vytvoří požadavek na stažení dat z Obecného internetového obchodu, který předá webové službě. Webová služba požadavek zpracuje a následně předá odpověď zpět programu POHODA. Standardní požadavek z programu POHODA na stažení dat z Obecného internetového obchodu je ve formátu XML. Jedná se o XML souboru programu POHODA.

Popis a struktura dat XML požadavku je uvedena na adrese WWW.STORMWARE.CZ/XML.XML data jsou v kódování Windows-1250. Potřebujete-li požadavek na data z Obecného internetového obchodu upravit na vlastní datový typ, je nutné použít XSLT transformaci. XSLT šablona vám umožní převést standardní požadavek XML z programu POHODA na vámi nadefinovaný soubor. Na webovou službu bude odeslán pouze upravený datový soubor. Program POHODA se spojí s webovou službou,které předá požadavek na stažení dat z Internetového obchodu. Webová služba požadavek převezme, vyhodnotí, zpracuje a vytvoří odpověď, kterou předá zpět programu POHODA.

Příklady XML požadavků na stažení dat z Internetového obchodu do programu POHODA

Zásoby
XML požadavek na stažení všech zásob z Internetového obchodu.
XML požadavek na stažení zásob z Internetového obchodu. Filtr = kód zásoby
XML požadavek na stažení zásob z Internetového obchodu. Filtr = nové zásoby.
Adresy
XML požadavek na stažení všech adres z Internetového obchodu.
XML požadavek na stažení adres z Internetového obchodu. Filtr = název obce adresy.
XML požadavek na stažení adres z Internetového obchodu. Filtr = nové adresy.
Objednávky
XML požadavek na stažení všech objednávek z Internetového obchodu.
XML požadavek na stažení objednávek z Internetového obchodu. Filtr = datum objednávky (od-do)
XML požadavek na stažení objednávek z Internetového obchodu. Filtr = nové objednávky.
Odpověď webové služby:
  • neobsahuje informace o stavu komunikace.
  • obsahuje pouze data, která jsou určena pro import do programu POHODA.
  • v elementu <dataPack> definujeme atribut "ICO" který vybírá účetní jednotka v programu POHODA do které se budou data načítat.
Definice odpovědi webové služby:

Program POHODA má v tomto případě přesně definovanou strukturu odpovědi webové služby.

Odpověď webové služby musí dodržet základní podmínky:

  • jedná se o XML soubor typu POHODA.
  • XML musí být validní dle XSD schéma pro danou agendu.

Definice XML souboru naleznete na adrese WWW.STORMWARE.CZ/XML.

Pokud odpověď webové služby:

  • není datového typu XML programu POHODA

Pak je nutné použít XSLT transformaci, pro úpravou odpovědi Obecného Internetového obchodu na požadovaný datový typ a strukturu.

Příklad odpovědi webové služby, import dat z Obecný Internetový obchod do POHODA:

Agenda
XML obsahuje data
XML neobsahuje data

Sledování historie komunikace POHODA - Obecný Internetový obchod

Výchozí nastavení komunikace POHODA - Obecný internetový obchod využívá pro ukládání dat komunikace TEMPorary složky operačního systému Windows. V tomto případě není komunikace uchována. Pokud budete chtít sledovat průběh komunikace a její historii, je nutné zapnout v programu Pohoda volbu Sledování komunikace (historie) v agendě Nastavení obecného internetového obchodu.
Dle typu komunikace bude vytvořena podsložka EXPORT/IMPORT, do které budou uloženy datové soubory komunikace (požadavek a odpověd) POHODA - Obecný internetový obchod.
Průběh komunikace je zaznamenán do "Log" souboru, který je uložen v datovém adresáři programu POHODA podadresář LOG. Název souboru je: IOobchod.log
XML dokumenty uložené při sledování historie komunikace jsou uloženy v jiném kódování než soubory, které jsou předány webové službě. XML dokumenty uložené v historii jsou v kódování  "windows-1250".

Struktura Log souboru komunikace POHODA - Obecný Internetový obchod: stáhnout
Vzorový příklad Log souboru komunikace POHODA - Obecný Internetový obchod: stáhnout

Autentizace webové služby

Program POHODA používá jednoduchou autentizaci při přístupu k webové službě.Jedná se tedy o Basic access authentication.

Kontrola duplicity importu dat do programu POHODA

Kontrola duplicity je založena na kontrole importovaných bloků <dataPack> a <dataPackItem>  vstupního XML dokumentu. Tyto bloky obsahují atribut ID, který jednoznačně identifukuje importovaná data.
Při zapnuté kontrole duplicity je zkontrolováno ID bloku <dataPack><dataPackItem> oproti seznamu již importovaných XML dokumentů do programu POHODA. Tyto záznamy se nachází v agendě XML log. Pokud je nalezena duplicita, import dat bude ukončen.
Kontrola duplicity nekontroluje duplicitu v účetních datech (Např. číslo dokladu, IČO adresa , atd...). Agenda XML log je ve výchozím nastavení programu POHODA nastavená pro plnou editaci, proto je možné záznamy smazat. Pokud budete chtít zakzát smazání  záznamů v této agendě, je nutné upravit nastavení přístupových práv této agendy v programu POHODA.

Doplňující kontroly importovaných dat:

Doklad objednávka
kontrola importovaného dokladu dle čísla dokladu.
V tomto případě je nutné ve vstupním XML dokumentu uvést element <ord:number> a podelement <typ:numberRequested>. Definice elementu je popsána ve schéma Order.xsdType.xsd.Při importu XML dokumentu. který obsahuje tento element bude navíc provedena kontrola na číslo dokladu. Pokud doklad ze stejným číslem v programu POHODA existuje, import bude ukončen.
Doklad Adresa
kontrola importované adresy dle zadaných paramatrů(filtru).
V tomto případě je nutné uvést ve vstupním XML dokumentu element <duplicityFields>,ve kterém budeme definovat parametry pro kontrolu duplicity adresy.
Defincie elementu je popsána ve schéma Addressbook.xsd. Při importu XML dokumentu, který obsahuje tento element bude navíc provedena kontrola na duplicity adresy. Pokud tato adresa již v programu POHODA existuje, import bude ukončen.
Chybové kódy komunikace POHODA-Obecný Internetový obchod:
Kód chyby
Popis chyby
-1
„Chyba parsování URL"
-3
„Požadavek XML je prázdný“
-4
"Odpověď(response) webové služby obsahuje nepovolený Content-Type. Program POHODA vyžaduje Content-Type: text/xml“
-12002
„Vypršel časový limit na odpověď serveru“
-12045
„Nepodařilo se oveřit autoritu certifikátu. Je nutné naimportovat certifikát autority vystavitele do uložiště "Důvěryhodné kořenové certifikační autority".“
-12057
„Certifikát SSL na dané URL adrese má definován ve vlastnostech certifikátu v údaji "common name" jiný název než má tento web doménu. Tyto údaje by měli být shodné.“
400
Bad request
"Požadavek nemůže být vyřízen, poněvadž byl syntakticky nesprávně zapsán"
401
Unauthorized
"Používán tam, kde je vyžadována autentifikace, ale nebyla zatím provedena"
403
Forbidden
"Požadavek byl legální, ale server odmítl odpovědět"
404
Not found
„Požadovaný dokument nebyl nalezen“
405
Method Not Allowed
„Požadavek byl zavolán na zdroj s metodou, kterou nepodporuje. Například se jedná o službu, na kterou se odesílají data metodou POST a někdo se je místo toho pokusí odeslat metodou GET.“
408
Request Timeout
„Vypršel čas vyhrazený na zpracování požadavku“
500
Internal server error
„Při zpracovávání požadavku došlo k blíže nespecifikované chybě“
502
Bad Gateway
„Proxy server nebo brána obdržely od serveru neplatnou odpověď“
503
Service unavailable
„Služba je dočasně nedostupná“
504
Gateway Timeout
„Proxy server nedostal od cílového serveru odpověď v daném čase“
505
HTTP Version Not Supported
„Server nepodporuje verzi protokolu HTTP použitou v požadavku“

Příklad webové služby komunikace: POHODA - Obecný Internetový obchod