Preskoči na glavno vsebino

Dávkové spracovanie pomocou nástroja Flexi2XML

Konverzný nástroj na prevod dát z/do ABRA Flexi pomocou XSLT transformácie

Avtor: Petr Pech

Flexi2XML umožňuje dávkovo importovať dáta do ABRA Flexi — do lokálnej aj vzdialenej inštalácie. Pre svoju funkciu potrebuje REST API. Ako nástroj získať, popisuje článok Stiahnutie Flexi2XML.


Ako import prebieha

Základom je konfiguračný súbor, ktorý určuje, ako a kam sa majú dáta nahrávať. Postup je potom takýto:

  1. Nástroj nájde všetky súbory podľa určenej masky. Maska sa zadáva ako regulárny výraz, teda napríklad .*\.csv.

  2. Naimportuje ich na určenú adresu vo zvolenom formáte — formát riadi server — a výstup zaznamená do logu.

  3. Ak import uspeje bez chyby, premenuje súbor tak, aby už masku nespĺňal.

💡 Ak niektorý import zlyhá, súbor sa nepremenuje a pri ďalšom spustení sa ho nástroj pokúsi naimportovať znova. Dávku tak možno spúšťať opakovane, napríklad z plánovača.


Konfiguračné parametre

Nástroj sa spúšťa s odkazom na konfiguračný súbor:

flexibee2xml --load config.xml

Konfiguračný súbor obsahuje prihlasovacie a serverové údaje v sekcii config a jednu alebo viac sekcií action — každá popisuje jednu skupinu súborov a cieľ, kam sa majú nahrať:

<?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ý súbor obsahuje meno a heslo v otvorenej podobe. Uložte ho mimo zdieľaných adresárov a obmedzte naň prístupové práva — pre dávkové nahrávanie založte samostatného používateľa len s potrebnými právami, nie účet administrátora.

⚠️ V hodnote url je nutné zapísať oddeľovač parametrov & ako &amp;, inak súbor nie je validné XML. Parameter format odkazuje na XSLT transformáciu na strane servera — overte si, že transformácia daného mena vo vašej verzii existuje, inak volanie skončí chybou Neznámy formát.


Podporované parametre v sekcii action

Element

Význam

url

Adresa, kam alebo odkiaľ nahrávať súbory. Začína lomkou.

mask

Regulárny výraz, ktorý určuje zoznam súborov na import.

directory

Adresár, v ktorom sa súbory podľa masky hľadajú.

contentType

Content-Type použitý pre HTTP požiadavku.

xslt

Aplikuje na obsah (jeho XML podobu) túto XSL transformáciu ešte pred odoslaním.

delimeter

Oddeľovač pri konverzii z CSV do XML.

encoding

Kódovanie znakov pri konverzii z CSV do XML.

csv2xml

Názov elementu riadku v XML pri konverzii z CSV.

renameOnFailure

Premenovávať súbory, aj keď dôjde k chybe.

log

Súbor, kam zapísať chyby pri konverzii.

successMessage, failMessage, requiredMessage

Správy zobrazené používateľovi pri úspechu, pri chybe a v prípade, že nebol prevedený žiadny súbor.


Podporované parametre v sekcii config

Element

Význam

host

Adresa (DNS alebo IP) servera ABRA Flexi.

port

Port servera; predvolený je 5434.

username, password

Meno a heslo používateľa, pod ktorým sa importuje.

company

Identifikátor firmy, kam alebo odkiaľ budú dáta nahrané — stáva sa súčasťou URL.

directory, contentType, renameOnFailure

Predvolené hodnoty pre všetky akcie; jednotlivé action ich môže prebiť.

renameDir

Adresár, kam budú presunuté úspešne nahrané súbory.

renamePrefix, renameSuffix

Predpona a prípona, na ktorú budú úspešne nahrané súbory premenované.

showProgress

Zobrazovať počet spracovaných súborov a ich stav.

successMessage, failMessage

Správy zobrazené používateľovi pri úspechu a pri chybe.

⚠️ Na Windows existujú dve varianty nástroja — flexibee2xml a flexibee2xml-cli. Prvá je skompilovaná ako grafická aplikácia a neotvára okno príkazového riadka; je úhľadnejšia, ale nezobrazuje chybové správy. Na ladenie dávok preto používajte variantu -cli.


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?