Konvertor Flexi2XML

Nástroj na konverziu Flexi2XML na konverziu formátov XML

Ota Rádl avatar
Written by Ota Rádl
Updated over a week ago

Flexi2XML možno použiť aj ako konverzný nástroj na prevod údajov z/do ABRA Flexi. Dokáže otvoriť súbor, previesť ho na XML, použiť naň konverzné nástroje a opäť zapísať XML. Dokáže to urobiť oboma spôsobmi.

Zložitejšie konverzie z XLS do Flexi

Flexi má v sebe základné možnosti importu z XLS (Excel). V zložitejších prípadoch je potrebné použiť nástroj Flexi2XML.

Konverzia z programu Excel

Nástroj Flexi2XML zatiaľ dokáže priamo načítať súbory XLS (a teda aj rozhranie REST API). Vytvorme takýto XLS:

Produkt

Predplatiteľ

Cena

8593026341407

FLEXI

1000.0

8593026341407

ARIT

900.0

8593026341407

VFH

1050.0

8593026341407

ABRA

1100.0

Konverzia z XLS na XML

Na ďalšie spracovanie je potrebné vytvoriť XML nasledovne (v systéme Linux/Mac OS X je potrebné použiť ";" namiesto ;):

flexibee2xml --from-xls file.xls --evidence subscriber --to-xml file.xml

Výsledkom je XML:

<?xml version="1.0"?>

Ak by sa názvy stĺpcov v súbore XLS priamo zhodovali s názvami atribútov vo FlexiXML, bolo by to hotové (presne takto fungujú CSV a XLS v rozhraní FlexiBee REST API). Teraz musíme pripraviť konverzný skript, ktorý upraví XML. Na tento účel použijeme štandardnú transformáciu XSL (XSLT).

Konverzia z XML do XML (XSLT)

Transformácie XSL (XSLT) sú štandardizovaným nástrojom. Niekedy však existujú rozdiely v implementáciách, preto poskytujeme nástroj Flexi2XML, ktorý je postavený na rovnakom jadre ako Flexi. Tým sa zabezpečí maximálna kompatibilita.

Pripravme konverzný skript (subscriber-in.xslt):

<?xml version="1.0"?>

Existuje mnoho úvodov do XSLT(1, 2, ...).

V XSLT môžete iterovať (<?xml version="1.0"?> :key/> ). Toto však nie je klasické iteračné programovanie. Vieme, že XSLT má svoje rezervy, ale na tento účel sa zdá byť ideálny.

Potom použijeme príkaz:

flexibee2xml --from-xml file.xml --run-xslt subscriber-in.xslt --to-xml result.xml

Alebo jeden príkaz s preskočením medzikroku:

flexibee2xml --from-xls file.xls --evidence subscriber --run-xslt subscriber-in.xslt --to-xml result.xml

Výsledok je potom možné importovať cez Flexi buď priamo, alebo pomocou dávkového spracovania Flexi2XML.

Niekoľko poznámok na záver

Výslednú transformáciu XSLT môžete uložiť ako používateľskú transformáciu alebo ju integrovať priamo do systému Flexi (musíte nám ju poslať e-mailom). Takto možno systém Flexi naučiť jednoducho vytvárať alebo prijímať XML z iných systémov. Použitie používateľskej (alebo integrovanej) transformácie XSLT je opísané v dokumentácii REST-API.

Viacero súborov sa dá spracovať naraz - používame to, ak máme jeden súbor CSV/XLS so záhlaviami faktúr a druhý s položkami.

Flexi2XML sa dá použiť na rozdelenie veľkého XML na mnoho malých a ich postupné načítanie.

Did this answer your question?