Indexdateien mit DocXporter erstellen

Sebastian Bartsch Aktualisiert von Sebastian Bartsch

Neben dem Export von Dokumenten aus DocuWare ermöglicht DocXporter auch die Erstellung von Indexdateien. Insbesondere bei der Übergabe von Dokumenten und weiteren Informationen an ERP oder CRM Systeme hat diese Funktion eine zentrale Bedeutung.

Leider gibt es keinen Standard in welchem Format und Ausprägung solche Indexdateien erzeugt und verarbeitet werden. Es gibt nicht die eine Ausprägung von Indexdatei. Format und Aufbau unterscheiden sich teils signifikant zwischen den einzelen Zielsystemen.

Mit DocXporter haben Sie dank der leistungsfähigen Template Engine nun die Möglichkeit nahezu jede Art von Indexdatei zu erzeugen: CSV-Dateien, XML-Dateien sind kein Problem.

Die nachfolgend beschriebene Funktion ist ab Version 6.0.23280 verfügbar

Konfiguration

Sofern Sie eine Sonderedition von DocXporter verwenden, z.B. in der Ausprägung für Addison setzen Sie sich bitte mit dem Support in Verbindung bevor Sie aktualisieren. Spezifische Sonderfunktionen werden ab dieser Version nicht mehr von DocXporter unterstützt und müssen auf Index-Templates migriert werden.
  1. Setzen Sie Einstellung IndexFileMode auf Document oder ResultSet.
  2. Erstellen Sie das Index-Template entsprechend Ihrer Anforderungen.
  3. Tragen Sie in die Einstellung TemplateFile den vollständigen Pfad zum Index-Template ein.

Erstellung von Templates

Die Template-Engine basiert auf Scriban in Version 5.9. Auf der GitHub Projektseite findet sich ein umfangreiches Handbuch welches als Referenz herangezogen werden sollte. https://github.com/scriban/scriban/tree/master/doc

Im Installationsordner von DocXporter finden Sie den Ordner templates. Die hier enthaltenen Vorlagen können bereits als Basis für eigene Templates verwendet werden. Templates sollten die Dateierweiterung .sbntxt haben.

Wir empfehlen zur Bearbeitung des Editor Visual Studio Code und die zugehörige Erweiterung Scriban für die Syntaxhervorhebung.

Zugriff auf Indexfelder

Indexfelder stehen als Variable zur Verfügung. Als Name wird der DocuWare-Datenbankname in Großbuchstaben verwendet.

Sämtliche Angaben die zwischen geschweiften Klammern stehen {{ Anweisungen zwischen den Klammern }} werden von der Template-Engine interpretiert. Alle anderen Texte außerhalb der Klammern sind statisch und bleiben unverändert.

Gekürzter Auszug aus dem DATEV REWE Template:

{{-date.now | date.to_string "%Y%m%d%H%M%S"-}};;"DocXporter";"admin";"";"{{-BERATER-}}";

  • Rechts wird der Inhalt des Feldes BERATER ausgeben. Eingesetzt zwischen statischen Textausgaben wird der FeldName im Format {{-BERATER-}} angegeben.
  • Links wird das aktuelle Datum mit Uhrzeit ausgeben.

Zugriff auf Tabellenfelder

Der Zugriff auf Tabellenfelder erfolgt analog. Das Tabellenfeld SPLITBUCHUNG steht ebenfalls als Variable zur Verfügung. Mittels einer Schleife kann über die Zeilen (row) iteriert werden. Der Zugriff auf die Werte in den einzelnen Spalten erfolgt dann über row.DBNAME

Gekürzter Auszug aus dem DATEV REWE Template:

{{~ for row in SPLITBUCHUNG   ~}}
{{- row.SPLIT_ERPEXPORT_BETRAG -}};{{- row.SPLIT_SOLLHABEN -}};"{{- W_HRUNG -}}";;;"";"{{- row.SPLIT_KONTO | get_value -}}";"{{-FIRMENKONTO-}}";
{{~ end # for of Table-Field ~}}

  • Das Beispiel startet mit einer for-Schleife. Damit iteriert die Template-Engine über jede Zeile (Variable row) im Tabellenfeld SPLITBUCHUNG
  • Der Zugriff auf eine Spalte / Feld erfolgt über row.DBNAME. Hier z.B. {{- row.SPLIT_ERPEXPORT_BETRAG -}}
  • Natürlich kann innerhalb der Schleife auch auf die übrigen Indexfelder zugegriffen werden: {{-FIRMENKONTO-}}
  • Abgeschlossen wird die Schleife in der letzen Zeile mit end. Die Ausgaben zwischen for..end wird solange in die Zielindexdatei geschrieben wie es Zeilen im Tabellenfeld gibt.
  • Auffällig ist die Zeile {{- row.SPLIT_KONTO | get_value -}} Hier wird der Wert SPLIT_KONTO in einer Funktion get_value verarbeitet. Dies hat in diesem speziellen Fall den Zweck damit nur die Kontonummer (4711) und nicht der tatsächliche Wert aus dem Indexfeld (4711>Allgemeines Beispiel) ausgegeben wird.

Wie waren wir?

Exportieren in ein anderes Dateiformat

DocXporter - Export für Addison

Support