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 je nástroj, ktorý umožňuje dávkové importovanie dát do ekonomického systému ABRA Flexi. Tento nástroj vie naimportovať dáta do lokálneho
alebo vzdialeného systému. Pre svoju funkčnosť potrebuje REST API.

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

  1. nájdi všetky súbory podľa určenej masky (napr. *.csv). Maska sa zadáva formou regulárneho výrazu: .*.csv

  2. naimportuj ich na určenú adresu vo zvolenom formáte (formát riadi server) a výstup zaznamenaj do logu

  3. v prípade, že import prebehne úspešne (je bez chyby), premenuj súbor tak, aby už nebol súčasťou masky

Platí, že pokiaľ nejaký export zlyhá, nabudúce sa ho systém pokúsi znovu naimportovať. Konfigurácia importovaného formátu sa riadi pomocou parametrov pre programátorské rozhranie REST API.

Konfiguračné parametre

Príkaz flexibee2xml sa spúšťa takto:

flexibee2xml --load config.xml

Konfiguračný súbor:

<?xml version="1.0"?><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é parametre v sekcii action

<xslt>

Na obsah (jeho XML formu) aplikuj túto XSLT.

<failMessage>

Správa zobrazená používateľovi pri chybe.

<successMessage>

Správa zobrazená používateľovi pri úspešnom nahraní.

<requiredMessage>

Správa zobrazená používateľovi ak nie je prenesený žiadny súbor

<delimeter>

Oddeľovač pri konverzii z CSV do XML

<encoding>

Kódovanie znakov pri konverzii z CSV do XML

<csv2xml>

Názov riadku v XML pri konverzii z CSV.

<contentType>

Content Type použitý pre HTTP požiadavku pri nahrávaní do Flexi (alebo z neho)

<url>

Adresa kam alebo odkiaľ nahrávať súbory

<mask>

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

<directory>

Adresár, v ktorom hľadať súbory podľa masky <mask/>

<renameOnFailure>

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

<log>

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

Podporované parametre v sekcii config

<failMessage>

Správa zobrazená používateľovi pri chybe.

<successMessage>

Správa zobrazená používateľovi pri úspešnom nahraní.

<contentType>

Content Type použitý pre HTTP požiadavku pri nahrávaní do Flexi (alebo z neho)

<directory>

Adresár, v ktorom hľadať súbory podľa masky <mask/>

<renameOnFailure>

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

<showProgress>

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

<host>

Adresa (DNS alebo IP) Flexi servera

<port>

Port Flexi servera

<username>

Meno používateľa, ktorý bude použitý pre import

<password>

Heslo používateľa, ktorý bude použitý pre import

<company>

ID spoločnosti kam/odkiaľ budú dáta nahraté (súčasť URL)

<renameDir>

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

<renamePrefix>

Prefix názvu súboru, na ktorý budú premenované úspešne nahrané súbory

<renameSuffix>

Suffix názvu súboru, na ktorý budú premenované úspešne nahrané súbory

Poznámka: pod Windows existujú dve varianty flexibee2xml a flexibee2xml-cli. Prvá je skompilovaná ako GUI aplikácia a neotvátra okno príkazového riadku. Je teda prehľadnejšia, ale nezobrazuje chybové správy.

Ste s tem dobili odgovor na svoje vprašanje?