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"?>
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.