Zusätzlich zum Exportieren von Dokumenten aus DocuWare können Sie mit docXporter Indexdateien erstellen. Diese Funktion ist besonders wichtig beim Übertragen von Dokumenten und anderen Informationen in ERP- oder CRM-Systeme.
Es gibt keinen Standard für das Format und die Eigenschaften, in denen solche Indexdateien erstellt und verarbeitet werden. Es gibt nicht "die eine" Art von Indexdatei, sondern das Format und die Struktur unterscheiden sich manchmal erheblich zwischen den einzelnen Zielsystemen.
Mit der Scriban-Template-Engine erstellt docXporter nahezu jede Art von Indexdatei: CSV-Dateien und XML-Dateien sind kein Problem.
Vorlagen erstellen
Die Template-Engine basiert auf Scriban. Verwenden Sie das Handbuch auf der GitHub-Projektseite als Referenz: https://github.com/scriban/scriban/tree/master/doc
Im Ordner C:\ProgramData\docXporter\Templates finden Sie mehrere Vorlagen. Verwenden Sie diese als Grundlage für Ihre eigenen Vorlagen. Vorlagen sollten die Dateierweiterung .sbntxt haben. Machen Sie eine Kopie einer der Vorlagen für Ihre eigenen Zwecke.
Wir empfehlen Visual Studio Code und die zugehörige Scriban-Erweiterung für die Syntaxhervorhebung beim Bearbeiten des Editors.
Zugriff auf Indexfelder
Indexfelder sind als Variablen verfügbar. Der DocuWare-Datenbankname wird als Name in Großbuchstaben verwendet.
Alle Informationen zwischen geschweiften Klammern {{ statements between brackets }}
werden von der Template-Engine interpretiert. Alle anderen Texte außerhalb der Klammern sind statisch und bleiben unverändert.
Gekürzter Auszug aus der DATEV REWE-Vorlage:
{{-date.now | date.to_string "%Y%m%d%H%M%S"-}};;"DocXporter";"admin";"";"{{-BERATER-}}";
Der Inhalt des BERATER-Feldes wird rechts angezeigt. Wenn es zwischen statischen Textausgaben verwendet wird, wird der Feldname im Format {{-BERATER-}}
angegeben.
Das aktuelle Datum und die Uhrzeit werden links angezeigt.
Zugriff auf Tabellenfelder
Auf Tabellenfelder wird auf die gleiche Weise zugegriffen. Das Tabellenfeld SPLITBUCHUNG ist ebenfalls als Variable verfügbar. Eine Schleife kann verwendet werden, um über die Zeilen zu iterieren. Die Werte in den einzelnen Spalten werden dann über row.DBNAME abgerufen.
Gekürzter Auszug aus der DATEV REWE-Vorlage:
{{~ 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 beginnt mit einer
for
-Schleife. Dies führt dazu, dass die Template-Engine über jede Zeile (Variablerow
) im TabellenfeldSPLITBUCHUNG
iteriertAuf eine Spalte / ein Feld wird über
row.DBNAME
zugegriffen. Hier zum Beispiel{{- row.SPLIT_ERPEXPORT_BETRAG -}}
Natürlich kann auch innerhalb der Schleife auf die anderen Indexfelder zugegriffen werden:
{{-COMPANY-ACCOUNT-}}
Die Schleife wird in der letzten Zeile mit end beendet. Die Ausgabe zwischen for..end wird so lange in die Zielindexdatei geschrieben, wie Zeilen im Tabellenfeld vorhanden sind.
Auffällig ist die Zeile
{{- row.SPLIT_KONTO | get_value -}}
. Hier wird der WertSPLIT_KONTO
in einerget_value
-Funktion verarbeitet. In diesem speziellen Fall soll damit nur die Kontonummer (4711) und nicht der tatsächliche Wert aus dem Indexfeld (4711>Allgemeines Beispiel) ausgegeben werden.