Flexi2XML kann auch als Konvertierungswerkzeug verwendet werden, um Daten von/nach ABRA Flexi zu konvertieren. Es kann eine Datei öffnen, sie in XML konvertieren, Konvertierungswerkzeuge darauf anwenden und wieder XML schreiben. Es kann dies in beide Richtungen tun.
Komplexere Konvertierungen von XLS nach Flexi
Flexi verfügt über grundlegende Funktionen zum Importieren von XLS (Excel). Für komplexere Fälle müssen Sie das Tool Flexi2XML verwenden.
Konvertierung aus Excel
Das Flexi2XML-Tool kann bisher direkt XLS-Dateien laden (und damit die REST-API). So soll ein XLS aussehen:
Produkt | Teilnehmer | Preis |
8593026341407 | FLEXI | 1000.0 |
8593026341407 | ARIT | 900.0 |
8593026341407 | VFH | 1050.0 |
8593026341407 | ABRA | 1100.0 |
Konvertierung von XLS nach XML
Für die weitere Verarbeitung müssen Sie XML wie folgt erstellen (unter Linux/Mac OS X müssen Sie ";" anstelle von ; verwenden):
flexibee2xml --from-xls file.xls --evidence subscriber --to-xml file.xml
Das Ergebnis ist XML:
<?xml version="1.0"?>
Wenn die Spaltennamen in der XLS-Datei direkt mit den Attributnamen in FlexiXML übereinstimmen würden, wären wir fertig (genau so funktionieren CSV und XLS in der FlexiBee REST API). Nun müssen wir ein Konvertierungsskript vorbereiten, das das XML modifiziert. Dazu verwenden wir den Standard XSL Transform (XSLT).
XML-zu-XML-Konvertierung (XSLT)
XSL-Transformationen (XSLT) sind ein standardisiertes Werkzeug. Allerdings gibt es manchmal Unterschiede in den Implementierungen, daher stellen wir das Tool Flexi2XML zur Verfügung, das auf demselben Kern wie Flexi aufbaut. Dies gewährleistet maximale Kompatibilität.
Lassen Sie uns ein Konvertierungsskript vorbereiten (subscriber-in.xslt):
<?xml version="1.0"?>
In XSLT können Sie iterieren( ),
konditionieren ( ), Inhalte indizieren (
:key/> ). Dies ist jedoch keine klassische iterative Programmierung. Wir wissen, dass XSLT seine Reserven hat, aber es scheint für diesen Zweck ideal zu sein.
Dann verwenden wir den Befehl:
flexibee2xml --from-xml file.xml --run-xslt subscriber-in.xslt --to-xml result.xml
Oder ein Befehl mit einem Zwischenschritt zum Überspringen:
flexibee2xml --from-xls file.xls --evidence subscriber --run-xslt subscriber-in.xslt --to-xml result.xml
Das Ergebnis kann dann über Flexi entweder direkt oder mittels Flexi2XML-Stapelverarbeitung importiert werden.
Einige Anmerkungen zum Schluss
Die resultierende XSLT-Transformation kann als User Transformation gespeichert oder direkt in Flexi integriert werden (Sie müssen sie uns per E-Mail zusenden). Auf diese Weise kann Flexi gelehrt werden, auf einfache Weise XML von anderen Systemen zu erzeugen oder zu konsumieren. Die Verwendung einer Benutzer- (oder integrierten) XSLT-Transformation ist in der REST-API-Dokumentation beschrieben.
Es können mehrere Dateien auf einmal verarbeitet werden - wir verwenden dies, wenn wir eine CSV/XLS mit Rechnungsköpfen und eine andere mit Einzelposten haben.
Flexi2XML kann verwendet werden, um ein großes XML in viele kleine zu zerhacken und diese dann sequentiell zu laden.