XML komunikácia

Jednou z komfortných možností, ako exportovať údaje z OBERON-u, alebo naopak, importovať do OBERON-u, je využitie XML komunikácie. Ide o výmenu súborov vo formáte XML, v ktorých sú uložené prenášané údaje. Najčastejšie sa exportujú/importujú údaje dokladov ako faktúra, objednávka, výdajka a pod.

Výmena XML dokumentov môže prebiehať v rámci jednej firmy (napr. pri viacerých pobočkách), ďalej medzi rôznymi účtovnými jednotkami, ktoré používajú OBERON (teda rovnaký softvér) a nakoniec aj medzi rôznymi účtovnými jednotkami používajúcimi rozdielny účtovný (skladový) softvér.

Pri XML komunikácii sa importujú/exportujú súbory vo formáte XML, ktoré sú pre OBERON presne špecifického a daného formátu (ide o tzv. natívny formát OBERON XML). Aby OBERON vedel importovať údaje z iného systému s rozdielnou štruktúrou XML súboru, existuje možnosť pred samotným importom automaticky vykonať konverziu (transformáciu) týchto údajov. Konverziu údajov je možné vykonať niekoľkými spôsobmi, pričom najčastejšie je to pomocou XSLT transformačných šablón. Obdobne je možné postupovať aj pri exporte údajov.

Schématický diagram exportu údajov

Schématický diagram importu údajov

 

 

 

 

 

Transformačné XSL šablóny (XSLT)

Transformačné šablóny sú súčasťou jazyka XSL (eXtensible Stylesheet Language) slúžiaceho na tvorbu štýlov zobrazenia k súborom XML. XSL transformačné šablóny (XSLT) primárne slúžia na prevod dát vo formáte XML do formátu HTML na prehľadné zobrazenie dát používateľovi. Využívajú sa však aj na prevod medzi rôznymi štruktúrami XML, prípadne aj inými textovými formátmi, medzi ktoré najčastejšie patria napríklad CSV súbory, prípadne súbory tabuľky XML pre Microsoft Excel a iné.

V systéme OBERON je možné využiť XSLT šablóny na import alebo export údajov z iných systémov s rozdielnou štruktúrou komunikácie pomocou XML súborov. Pred importom alebo po exporte je možné vykonať konverziu XML dát pomocou transformačnej šablóny a zabezpečiť tak kompatibilitu dát pre jednotlivé systémy.

Príklad zdrojovej XML štruktúry:

<?xml version="1.0" encoding="UTF-8"?> 
</BusinessPartners>
    <BusinessPartner IDNum="1001">
    <Name>Test, s.r.o.</Name>
    <IdentificationNumber>31658768</IdentificationNumber>
    <IdentificationNumber_Tax>2225557779</IdentificationNumber_Tax>
    <IdentificationNumber_VAT>SK2225557779</IdentificationNumber_VAT>
    <Branch_Name>Pobočka</Branch_Name>
    <CustomsOffice_Number_SBL>12365478901</CustomsOffice_Number_SBL>
    <Address_Residence>
        <Street_Name_Full>Pod mostom 138/2</Street_Name_Full>
        <Postal_Code>058 01</Postal_Code>
        <City>Poprad</City>
    </Address_Residence>
    </BusinessPartner>
    .
    .
</BusinessPartners>

XSLT transformačná štruktúra:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<partneri_zoznam>
    <!-- XPath výraz pre výber požadovaných položiek zo štruktúry XML a prechádzanie 
    všetkými elementmi typu 'BusinessPartner' nachádzajúcimi sa v otcovskom elemente 
    'BusinessPartners' zdrojovej XML štruktúry -->
    <xsl:for-each select="BusinessPartners/BusinessPartner">
    <partner>
        <!-- mapovanie vlastností pôvodného xml do novej štruktúry -->
	
        <!-- znak '@' pred identifikátorom 'IDNum' znamená načítanie hodnoty atribútu -->
        <identifikator><xsl:value-of select="@IDNum"/></identifikator>
        <nazov><xsl:value-of select="Name"/></nazov>
        <ico><xsl:value-of select="IdentificationNumber"/></ico>
        <dic><xsl:value-of select="IdentificationNumber_Tax"/></dic>
        <ic_dph><xsl:value-of select="IdentificationNumber_VAT"/></ic_dph>
        <pobocka_nazov><xsl:value-of select="Branch_Name"/></pobocka_nazov>
        <cislo_sbl><xsl:value-of select="CustomsOffice_Number_SBL"/></cislo_sbl>
        <!-- vnorenie do hlbšej úrovne pomocou znaku '/' -->
        <sidlo_ulica>
            <xsl:value-of select="Address_Residence/Street_Name_Full"/>
        </sidlo_ulica>
        <sidlo_psc><xsl:value-of select="Address_Residence/Postal_Code"/></sidlo_psc>
        <sidlo_obec><xsl:value-of select="Address_Residence/City"/></sidlo_obec> 
    </partner>
    </xsl:for-each>
</partneri_zoznam>  
</xsl:template>

Výsledný XML súbor po vykonaní konverzie pomocou XSLT šablóny:



    
        1001
        Test, s.r.o.
        31658768
        2225557779
        SK2225557779
        Pobočka
        12365478901
        Pod mostom 138/2
        058 01
        Poprad
    
    .
    .