Dávkové zpracování ve FlexiBee2XML

FlexiBee2XML je nástroj, který umožňuje dávkové importování dat do ekonomického systému FlexiBee. Tento nástroj umí naimportovat data do lokálního
nebo vzdáleného systému. Pro svoji funkčnost potřebuje REST API.

Základem je konfigurační soubor, který určuje jak a kam se mají data nahrávat. Postup importu je takovýto:

  1. najdi všechny soubory dle určené masky (např. *.csv). Maska se zadává formou regulárního výrazu: .*.csv
  2. naimportuj je na určenou adresu ve zvoleném formátu (formát řídí server) a výstup zaznamenej do logu
  3. v případě, že import uspěje (je bez chyby), přejmenuj soubor tak, aby nebyl již součástí masky

Platí, že pokud nějaký export selže, příště se jej systém pokusí znovu naimportovat. Konfigurace importovaného formátu se řídí pomocí parametrů pro programátorské rozhraní REST API.

Konfigurační parametry

Příkaz flexibee2xml se pouští takto:

flexibee2xml --load config.xml

Konfigurační soubor:

<config>
    <username>winstrom</username>
    <password>winstrom</password>

    <!-- identifikátor firmy, do které data nahrát -->
    <company>demo</company>

    <!-- server -->
    <host>demo.winstrom.eu</host>
    <!-- port - výchozí 5434 -->
    <port>5434</port>

    <!-- přípona, která bude přidána do názvu po přejmenování -->
    <renameSuffix>-loaded</renameSuffix>
        <!-- seznam akcí, které se mají provést -->
        <action>
            <!-- URL, kam nahrát data, začíná na / -->
            <url>/faktura-vydana.csv?format=sofix&amp;encoding=windows-1250&amp;delimeter=;</url>

            <!-- typ souboru. obvykle text/csv, text/xml a nebo application/json -->
            <contentType>text/csv</contentType>

            <!-- maska pro výběr souborů -->
            <mask>VFA.*.csv</mask>
            <directory>.</directory>
        </action>
        <action>
            <!-- starts with / -->
            <url>/pokladni-pohyb.xml?format=awis</url>

            <!-- typ souboru. obvykle text/csv, text/xml a nebo application/json -->
            <contentType>text/xml</contentType>

            <!-- maska pro výběr souborů -->
            <mask>items.*.xml</mask>
            <directory>.</directory>
        </action>
</config>

Podporované parametry v sekci action

<xslt> Na obsah (jeho XML formu) aplikuj tuto XSLT.
<failMessage> Zpráva zobrazená uživateli při chybě.
<successMessage> Zpráva zobrazená uživateli při úspěšném nahrání.
<requiredMessage> Zpráva zobrazená uživateli pokud není převeden žádný soubor
<delimeter> Oddělovač při konverzi z CSV do XML
<encoding> Kódování znaků při konverzi z CSV do XML
<csv2xml> Název řádku v XML při konverzi z CSV.
<contentType> Content Type použitý pro HTTP požadavek při nahrávání do FlexiBee (nebo z něj)
<url> Adresa kam nebo odkud nahrávat soubory
<mask> Regulární výraz, která určuje seznam souborů pro import na server.
<directory> Adresář ve kterém hledat soubory dle masky <mask/>
<renameOnFailure> Přejmenovávat soubory i když dojde k chybě.
<log> Soubor kam zapsat chyby při konverzi

Podporované parametry v sekci config

<failMessage> Zpráva zobrazená uživateli při chybě.
<successMessage> Zpráva zobrazená uživateli při úspěšném nahrání.
<contentType> Content Type použitý pro HTTP požadavek při nahrávání do FlexiBee (nebo z něj)
<directory> Adresář ve kterém hledat soubory dle masky <mask/>
<renameOnFailure> Přejmenovávat soubory i když dojde k chybě.
<showProgress> Zobrazovat počet exportovaných souborů a jejich stav.
<host> Adresa (DNS nebo IP) FlexiBee serveru
<port> Port FlexiBee serveru
<username> Jméno uživatele, který bude použit pro import
<password> Heslo uživatele, který bude použit pro import
<company> ID firmy kam/odkud budou data nahrána (součást URL)
<renameDir> Adresář kam budou přesunuté úspěšně nahrané soubory
<renamePrefix> Prefix názvu souboru na který budou přejmenovány úspěšně nahrané soubory
<renameSuffix> Suffix názvu souboru na který budou přejmenovány úspěšně nahrané soubory

Poznámka: pod Windows existují dvě varianty flexibee2xml a flexibee2xml-cli. První je zkompilovaná jako GUI aplikace a neotvírá okno příkazové řádky. Je tedy úhlednější, ale nezobrazuje chybové zprávy.