Přeskočit na hlavní obsah

Dávkové zpracování pomocí nástroje Flexi2XML

Konverzní nástroj pro převod dat z/do ABRA Flexi pomocí XSLT transformace

Autor: Petr Pech

Flexi2XML umožňuje dávkově importovat data do ABRA Flexi — do lokální i vzdálené instalace. Pro svou funkci potřebuje REST API. Jak nástroj získat, popisuje článek Stažení Flexi2XML.


Jak import probíhá

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

  1. Nástroj najde všechny soubory podle určené masky. Maska se zadává jako regulární výraz, tedy například .*\.csv.

  2. Naimportuje je na určenou adresu ve zvoleném formátu — formát řídí server — a výstup zaznamená do logu.

  3. Pokud import uspěje bez chyby, přejmenuje soubor tak, aby už masce neodpovídal.

💡 Selže-li některý import, soubor se nepřejmenuje a při příštím spuštění se jej nástroj pokusí naimportovat znovu. Dávku tak lze pouštět opakovaně, třeba z plánovače.


Konfigurační parametry

Nástroj se spouští s odkazem na konfigurační soubor:

flexibee2xml --load config.xml

Konfigurační soubor obsahuje přihlašovací a serverové údaje v sekci config a jednu nebo více sekcí action — každá popisuje jednu skupinu souborů a cíl, kam se mají nahrát:

<?xml version="1.0"?>
<config>
<username>jmeno</username>
<password>heslo</password>
<!-- identifikátor firmy, do které data nahrát -->
<company>demo</company>
<!-- server -->
<host>demo.flexibee.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 nebo application/json -->
<contentType>text/csv</contentType>
<!-- maska pro výběr souborů -->
<mask>VFA.*\.csv</mask>
<directory>.</directory>
</action>
<action>
<url>/pokladni-pohyb.xml</url>
<contentType>text/xml</contentType>
<mask>items.*\.xml</mask>
<directory>.</directory>
</action>
</config>

🚨 Konfigurační soubor obsahuje jméno a heslo v otevřené podobě. Uložte jej mimo sdílené adresáře a omezte na něj přístupová práva — pro dávkové nahrávání založte samostatného uživatele jen s potřebnými právy, ne účet administrátora.

⚠️ V hodnotě url je nutné zapsat oddělovač parametrů & jako &amp;, jinak soubor není validní XML. Parametr format odkazuje na XSLT transformaci na straně serveru — ověřte si, že transformace toho jména ve vaší verzi existuje, jinak volání skončí chybou Neznámý formát.


Podporované parametry v sekci action

Element

Význam

url

Adresa, kam nebo odkud nahrávat soubory. Začíná lomítkem.

mask

Regulární výraz, který určuje seznam souborů pro import.

directory

Adresář, ve kterém se soubory podle masky hledají.

contentType

Content-Type použitý pro HTTP požadavek.

xslt

Aplikuje na obsah (jeho XML podobu) tuto XSL transformaci ještě před odesláním.

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 elementu řádku v XML při konverzi z CSV.

renameOnFailure

Přejmenovávat soubory, i když dojde k chybě.

log

Soubor, kam zapsat chyby při konverzi.

successMessage, failMessage, requiredMessage

Zprávy zobrazené uživateli při úspěchu, při chybě a v případě, že nebyl převeden žádný soubor.


Podporované parametry v sekci config

Element

Význam

host

Adresa (DNS nebo IP) serveru ABRA Flexi.

port

Port serveru; výchozí je 5434.

username, password

Jméno a heslo uživatele, pod kterým se importuje.

company

Identifikátor firmy, kam nebo odkud budou data nahrána — stává se součástí URL.

directory, contentType, renameOnFailure

Výchozí hodnoty pro všechny akce; jednotlivá action je může přebít.

renameDir

Adresář, kam budou přesunuty úspěšně nahrané soubory.

renamePrefix, renameSuffix

Předpona a přípona, na kterou budou úspěšně nahrané soubory přejmenovány.

showProgress

Zobrazovat počet zpracovaných souborů a jejich stav.

successMessage, failMessage

Zprávy zobrazené uživateli při úspěchu a při chybě.

⚠️ Na Windows existují dvě varianty nástroje — flexibee2xml a flexibee2xml-cli. První je zkompilovaná jako grafická aplikace a neotevírá okno příkazové řádky; je úhlednější, ale nezobrazuje chybové zprávy. Pro ladění dávek proto používejte variantu -cli.


Související

Dostali jste odpověď na svou otázku?