Document Encoder dienen dem Mapping zwischen Dokument zu Metadaten (teils bidirektional) sowie der Verarbeitung der eingebetteten Dokumente (rekursive Archivierung).
Der primäre Zweck der rekursiven Archivierung ist das strukturierte Auslesen (Dokument zu Metadaten) mit deren eingebetteten Inhalten (z.B. E-Mail-Anhänge) durch regelbasierte Archivierung.
Ausgelöst wird die rekursive Archivierung beim Import bzw. durch eine API beim Export. Ob eine rekursive Archivierungsregel/Document Encoder ausgeführt wird, entscheidet der Selector.
Dabei können unterschiedliche Merkmale verwendet werden, z.B. Datei Typ/Extension, Archiv Name, Dateiname, Feldauswahl(en) mit UND/ODER verkettet.
Jedes Dateiformat/Dokument Typ hat bestimmte logische Funktions Felder, die über eine Dr.DOC Feldauswahl „gemappt“ werden. z.B. für E-Mails: E-Mail Absender zu Dr.DOC Feld "EmailFromAddr".
I.d.R. ist das Mapping unidirektional, vom Dokument zur strukturierten Metainfo.
Für einige Dateiformate ist es möglich, diesen Vorgang umzukehren (Metadaten zu Dokument) und aus den Metadaten wieder ein Dokument zu generieren (derzeit nur Termine, Aufgaben, Kontakte, CSV). Das findet Verwendung bei der Nutzung von CalDAV und CardDAV sowie dem Export.
Ein vollständig bidirektionales Mapping ist nur möglich, wenn die Metadaten Struktur des Archivs jedes Dokument des Typs vollständig und ohne Informationsverlust repräsentieren/abbilden kann.
Der Name der Dr.DOC Standard-Feldauswahl hat grundsätzlich das Präfix „DD_“ und in ist i.d.R. vom Dr.DOC Feldauswahl Typ Import Ascii.
Beispielhafter Anwendungfall wären Kontakte mit DD_CONTACT oder E-Mails mit DD_EMAIL. In einem allgemeinen Schriftgutarchiv müsste man unterscheiden. z.B. Ist es der Dokument-Typ Brief oder Lieferschein? Ist die E-Mail Eingehend oder ausgehend?.
Die Definition einer Standard-Feldauswahl ist nur sinnvoll, wenn das Mapping im Archiv invariant zum jeweiligen Dokument des entsprechenden Typs ist, kann aber dennoch als Fallback für das Mapping des Prototypes (wenn kein eigens angelegter Document Encoder explizit greift) sinnvoll sein.
Es können Fixwerte in Double Quotes "Fixwert" eingetragen werden, z.B. als Suffix oder Präfix, z.B. "From: " FROM_ADDRESS
Die Mapping Eigenschaften werden von den Fixwerten durch (Blank) betrennt.
" werden als \" escaped, also z.B. "Hallo \"Welt\""
Es gibt die Möglichkeit, Fixwerte in Tabellenzeilen zu positionieren, mit einem : nach der Mapping Eigenschaft Syntax:
PROP: "Fixwert"
Das ist nützlich, wenn eine Tabelle mit mehrere Spalten hat.
Beispiel: In die Tabellenzeile, in die die Absender E-Mail-Adresse eingetragen wird (Feld EmailAddress), "From:" in Feld EmailType eintragen
EmailType: FROM_ADDRESS: "From:"
EmailAddress: FROM_ADDRESS
Diese Funktion ist sinnvoll für "zusammengesetzte" und "verschachtelte" Dateiformate (z.B. E-Mails, Zip, ZUGeRD). D.h. bei Dokument Typen, die eingebettete Dokumente haben können.
Die Funktionen der rekursiven Archivierung kann z.B. mit der E-Mail-Archivierung kombiniert werden.
Über die rekursiven Archivierungs Regeln können spezielle Definitionen erstellt und verkettet werden.
Beispiel: Aus einer E-Mail wird eine eine ZIP-Datei gelesen, daraus soll ein PDF Dokument archiviert werden, aber die Metadaten sollen aus der Embedded XML aus der PDF-Datei geholt werden.
Oder: archiviere nur die PDFs aus einer E-Mail, wobei die Anhänge nicht mit „AGB“ beginnen dürfen und falls darin eine ZUGeRD XML enthalten ist, übertrage die Rechnungsinformationen in die Metainfo.
Alle Document Encoder, die mit
STD_beginnen, werden bei jedem Update/Upgrade von Dr.DOC Web automatisch vollständig überschrieben. Wenn Sie einen Standard Document Encoder nutzen wollen, kopieren oder überlanden Sie diesen (Prototype).
Alle Document Encoder, die mitDEFAULT_beginnen, werden bei jedem Update/Upgrade von Dr.DOC Web automatisch angelegt, jedoch nie überschrieben.
Sie sollten daher keine eigenen Document Encoder anlegen, die mit folgendem Namen beginnen:STD_,DEFAULT_
| Dokumenten-Format | Extensions | Mapping | Rekursiv? |
|---|---|---|---|
| PDF Dokument | *.pdf, *.tiff, *.tif | Verschlagwortung via KI oder Regex Autofelder. OCR Text über Archivspezifische INI im FORM-Verzeichnis: [PDF_TEXT] Fieldname=<OCR-Feldname> |
Embedded Files archivieren; z.B. Xrechnung.xml oder zugferd xml rekursiv archivieren |
| *.eml, *.msg | Default Feldauswahl ASCII-Import-Definition „DD_EMAIL“:
"Fixwert" eingetragen werden, z.B. als Suffix oder Präfix, z.B. "From: " FROM_ADDRESS |
Anhänge und Termine | |
| XML | *.xml | Default Feldauswahl ASCII-Import-Definition „DD_XML“:Je Feld ein XPath Der XPath darf von einem Prefix und Suffix umgeben sein. z.B. Document/Rabatt "%"z.B. mit Optionalem Prefix, wenn kein Wert gefunden wurde: Property1/SubProperty2 "1"?z.B. für mehrere alternative Pfade mit Property1/SubProperty2\ PropertyX/SubProperty2 "1"? |
|
| CSV | *.csv | Default Feldauswahl ASCII-Import-Definition „DD_CSV“: |
Zeilen als neuen Datensatz |
| JSON | *.json | Default Feldauswahl ASCII-Import-Definition „DD_JSON“:Syntax für Wert einer Property: Property1/SubProperty2z.B. mit Prefix: Property1/SubProperty2 "%"z.B. mit Optionalem Prefix, wenn kein Wert gefunden wurde: Property1/SubProperty2 "1"?z.B. für mehrere alternative Pfade mit "\ "Property1/SubProperty2\>PropertyX/SubProperty2 "1"?Beispiel JSON: { Property1: { SubProperty2: "value" } }Syntax für die Property von Array Elementen: Property1/\*/SubProperty3Beispiel JSON: { Property1: [ { SubProperty2: "value 1" }, { SubProperty2: "value 2" }, ] } |
|
| JPEG | *.jpg, *.jpeg | Feldauswahl ASCII-Import-Definition „DD_JPG“:
|
|
| ZIP | *.zip | Alle Dateien / Entries | |
| Termine iCal Ausgabe, Notiz, Journal, Termin |
*.ics | Feldauswahl "Kalender-Terminfelder"-Definition „DD_EVENT“ für Termine,Feldauswahl "Kalender-Aufgabenfelder"-Definition „ DD_TASK“ für Aufgaben,Feldauswahl "Kalender-Terminfelder"-Definition „ DD_NOTE“ für Notizen/Journal:
|
|
| Kontakte V-Card | *.vcf | Feldauswahl ASCII-Import-Definition „DD_CONTACT“:
|
Um die Archivierung regelbasiert zu steuern, werden folgende Einstellungen im Dr.DOC Web Konfigurationsarchiv „node“ ausgelesen:
Type: ConfigWebNode
Name: config/recursive
Name: config/recursive/<Rule-Name>
Eine Vererbung über den Prototype-Namen ist möglich. Wenn Property Values aus dem Prototype geladen werden sollen, muss das „Inherit“ Flag in der Property gesetzt sein oder die Property nicht angegeben werden.
Alle Properties haben i.d.R. den Type ConfigWebNode.
Rekursive Archivierungsregeln sind Instanzen des jeweiligen Document Encoders/Decoders.
Die Rekursiven Archivierungsregeln (Document Encoder/Decoder Instanz) beziehen sich immer auf einen bestimmten Datei/Dokument-Typ (Document Encoder/Decoder), der über die Property Proto_Extension oder Proto_Type gesteuert werden kann.
Der Document Encoder/Decoder definiert, wie Felder grundsätzlich "gemappt" werden sollen (eine E-Mail hat einen Betreff und ein PDF Dokument OCR Text).
Die Document Encoder/Decoder Instanzen definieren, wann welches Dokument wie archiviert werden soll. Die Steuerung erfolgt durch Feldauswahlen (z.B. Suchvorlage oder Feldvorbelegung) und Dateinamen (z.B. Extension).
Sollte beim Archivieren keine passende Document Encoder/Decoder Instanz gefunden werden, wird der entsprechende Document Encoder/Decoder Prototyp gewählt.
Rekursion:
Eine Document Encoder/Decoder Instanz kann über die Property Recursive weitere Document Encoder/Decoder Instanzen definieren. Sollte ein Dokument weitere Dokumente "embedded" haben (z.B. Anhänge in einer E-Mail, Embedded XML in einer PDF, Dateien in einer ZIP), werden diese Dokumente durchlaufen, mit den in der Property Recursive angegebenen Document Encoder/Decoder Instanzen.
Über die Property Action kann die Verarbeitung von Dokument und Meta-Info gesteuert werden.
Aus Sicherheitsgründen sollte der Datensatz nur für den Server und berechtigte Administratoren zugreifbar sein, indem das Feld "User" auf den Wert "System-Group" gesetzt wird (Standardeinstellung).
über die Document Encoder Properties lässt sich das Verhalten eines Document Encoders einstellen.
| Property Type | Property Name | Beschreibung | Mögliche Werte |
|---|---|---|---|
| BoolWebNode | Enabled | Gibt an, ob die Regel aktiv ist. Wenn nichts angegegeben ist, wird der Wert "true" angenommen. | true, false |
| ConfigWebNode | Proto_Type | Document-Encoder/Decoder Typ Derzeit unbenutzt. |
|
| ConfigWebNode | Proto_Extension | z.B. "*.eml|*.msg“ Wählt den Document-Encoder/Decoder über die File-Extension des zu archivierenden Dokuments. | |
| ConfigWebNode | Selector_UsermanagerName | Usermanager-Name oder voller Pfad zur BVD Datei | |
| ConfigWebNode | Selector_ArchiveName | Archiv-Name oder voller Pfad zur KOMM\SERVER\*.da Datei | |
| ConfigWebNode | Selector_Filename | Regel für Dateiname (z.B. *.eml|*.msg) | |
| ConfigWebNode | Selector_FieldSelectionNames | Pro Zeile ein Wert.Name der Feldauswahl(en), mit der das Dokument verglichen werden soll. | |
| BoolWebNode | Selector_FieldSelectionAND | - „true“: gibt an, dass alle Selector_FieldSelectionNames „wahr“ sein müssen - „false“: es genügt, wenn nur eine „wahr“ ist |
true, false |
| ConfigWebNode | Selector_FieldSelectionCaseSensitive | - „true“: beim Vergleich Groß-/Kleinschreibung beachten - „false“: Groß-/Kleinschreibung ignorieren |
true, false |
| ConfigWebNode | Selector_FieldSelectionType | Feldauswahl-Typ festlegen | IMPORT_ASCII, EXPORT_ASCII, FIELDCONTENT, CAL_APPOINTMENT, CAL_TASK, PRESET, SEARCHTEMPLATE |
| BoolWebNode | Selector_FieldSelectionGetMetaFromDoc | Default: false Sollte nur "true" sein, wenn eine Feldauswahl angegeben wurde und sich der Wert der Meta-Info für die Feldauswahl-Prüfung Selector_FieldSelectionNames, aus dem Inhalt des Dokuments ableitet (Document Encoder). Es wird dieser Document Encoder zum Laden der Metas-Info aus dem Dokument verwendet, mittels MapFieldSelectionName und MapFieldSelectionType. |
true, false |
| BoolWebNode | Selector_EmptyMetaInfoAllowed | Default: true Gibt an, ob es ein Positiver Selector ist, wenn eine Meta-Info/Profildaten leer ist und Selector_FieldSelectionNames definiert sind. |
true, false |
| ConfigWebNode | Action | Ab V114 / 28.08.2025 Die Property " Action" wird bei der Archivierung angewendet, besonders relevant bei rekursiver Archivierung; also wenn "Recursive" vom Aufrufer definiert wurde.Damit kann die Verarbeitung von Dokument und Meta-Info gesteuert werden, bei einer mehrstufigen Verarbeitung. -> Skip: überspringen: Meta-Info und Dokument ignorieren. Es werden nur Document Encoder unter "Recursive" verarbeitet. Beispiel: E-Mail ignorieren aber Anhänge archivieren.-> CreateDocument: Neues Dokument erstellen, mit neuer Meta-Info. Falls dieser Document Encoder ein Recursive Document Encoder ist, kann der Aufrufer mit Recursive_SkipAndAppendOCR: true diesen Document Encoder im Document Encoder Result auf Action: Skip setzen.--- Migration auf V114 Alle Actions mit Merge oder None erhalten mit der Migration auf V114 automatisch die Action Skip, sowie, falls alle Recursive Document Enocder die Action Skip haben, Recursive_MapFields mit *, Recursive_MapFieldsReverse mit *, Recursive_SkipAndAppendOCR mit true, für das Mapping/Merge aller Feldwerte.-- Migration von V110 -> V111 Alle Actions mit CreateDocumentMerge erhalten mit der Migration auf V111 automatisch die Action CreateDocument und Recursive_MapFields mit *, für das Mapping/Merge aller Feldwerte.--- Bis V110 / 22.08.2025 Die Property " Action" wird nur angewendet, bei rekursiver Archivierung; also wenn "Recursive" vom Aufrufer definiert wurde.Damit kann die Verarbeitung von Dokument und Meta-Info gesteuert werden. -> Skip: überspringen: Meta-Info und Dokument ignorieren. Document Encoder unter "Recursive" verden verarbeitet. Beispiel: E-Mail ignorieren aber Anhänge archivieren.-> None: kein neues Dokument erstellen und Meta-Info/Profildaten in den aufrufenden Datensatz laden, aus der Meta-Info aus diesem Dokument (je nach Document Encoder). Es wird das erste Dokument in der Kette der Document Encoder erstellt, wenn alle rekursiven Document Encoder die Action None haben.-> CreateDocument: Neues Dokument erstellen, mit neuer Meta-Info.-> CreateDocumentMerge: Nur angewendet, wenn der Aufrufer (rekursiv) das gleiche Archiv hat. Neues Dokument erstellen, aber Meta-Info/Profildaten vom Aufrufer übernehmen. Dateinamen Autofleder F und FO sowie Dateinamen Variablen (aus Feldvorbelegung) %F% und %FO% werden zurückgesetzt, damit der Dateiname des rekursiven Dokuments verwendet wird. Z.B. um für einen E-Mail-Anhang (dieser), die Abesender E-Mail-Adresse aus der E-Mail-Nachricht (Aufrufer) zu übernehmen. |
Skip, CreateDocument |
| ConfigWebNode | Action_FieldPreselectionName | Name der Feldvorbelegung für das Erstellen neuer Dokumente/Datensätze. Es können mehrere Meta-Infos angegeben werden zur Kombination. Es werden keine Feldwerte überschrieben (siehe Action_FieldPreselectionOverwrite). |
|
| ConfigWebNode | Action_FieldPreselectionOverwrite | Default: false Gibt an, ob die Feldauswahl für Feldvorbelegung Feldwerte überschreiben kann. |
true, false |
| ConfigWebNode | MapFieldSelectionName | Name der Mapping-Feldauswahl | |
| ConfigWebNode | MapFieldSelectionType | Typ der Mapping Feldauswahl | IMPORT_ASCII, EXPORT_ASCII, FIELDCONTENT, CAL_APPOINTMENT, CAL_TASK, PRESET, SEARCHTEMPLATE |
| ConfigWebNode | Recursive | Pro Zeile ein Wert.Name(n) der Rekursiven Archivierungs-Einstellung(en) die für Anhänge dieses Dokuments durchlaufen werden sollen.z.B. "config/recursive/RE PDF CreateDocument". | |
| ConfigWebNode | Recursive_ExecuteAll | Default: false Alle rekursiven Document Encoder ausführen, welche die Kriterien erfüllen (Enabled, Selected_ etc.). Also NICHT beim ersten erfolgreichen Document Encoder abbrechen. |
true, false |
| ConfigWebNode | Recursive_ExecuteDefault | Default: false Nachdem alle recursiven Document Encoder aus der Property Recursive durchlaufen wurden, ggf. zusätzlich die default/Standard/Prototype Document Encoder ausführen (z.B. DD_EMAIL, DD_TASK, DD_CONTACT, DD_XML, DD_JSON etc.) |
true, false |
| ConfigWebNode | Recursive_SkipAndAppendOCR | Default: false Für Datenübergabe vom Recursive Document Encoder an diesen Document Encoder (Aufrufer): Action des Recursive Recursive Document Encoder Result auf "Skip" setzen, und Feldwerte wie in "Recursive_MapFieldsReverse" angegeben übernehmen, und OCR Text übernehmen. |
true, false |
| ConfigWebNode | Recursive_MapFields | Ab V111 / 22.08.2025 Felder Mappen / Mergen zwischen diesen und dem recursive Document Encoder. Ein Mapping zwischen verschiedenen Archiven ist möglich.
F und FO sowie Dateinamen Variablen (aus Feldvorbelegung) %F% und %FO% werden zurückgesetzt, damit der Dateiname des rekursiven Dokuments verwendet wird. Z.B. um für einen E-Mail-Anhang (dieser), die Absender E-Mail-Adresse aus der E-Mail-Nachricht (Aufrufer) zu übernehmen oder die E-Mail-Message-ID als logische Klammer. |
* odersourceFieldName2=>TargetFieldName2 |
| ConfigWebNode | Recursive_MapFieldsReverse | Ab V114 / 28.08.2025 Wie Recursive_MapFields, nur in die andere Richtung, vom Recursive Document Encoder zum Aufrufer.Wir in Kombination mit Action: Skip verwendet, um die Meta Info vom Recursive Document Encoder zu übernehmen. z.B. aus ZUGFeRD PDF (Action: CreateDocument, Recursive_SkipAndAppendOCR: true) die Metadaten aus der embedded XML übernehmen. |
|
| ConfigWebNode | Recursive_ExecuteMagicAI | Default: false Als Recursive Document Encoder die magische Archivierung ausführen. Die KI wählt selbstständig den passenden Document Encoder. z.B. Wenn man für eine E-Mail (*.eml) Recursive_ExecuteMagicAI mit true setzt, dann kann die KI für den E-Mail-Anhang den passenden Document Encoder wählen (z.B. eine Rechnung). |
true, false |
| ConfigWebNode | Recursive_FilenameWhitelist | Bei rekursiver Archivierung: nur Dateinamen verarbeiten, die den angegebenen Regeln entsprechen, z.B. !*.png&!*.ico&!*AGB*&!*Datenschutz*Wir nur aktiv, wenn ein Wert gesetzt ist. |
|
| ConfigWebNode | Recursive_FilenameDuplicateWhitelist | Bei rekursiver Archivierung: Wenn ein Dateiname bei der rekursiven Archivierung mehrfach vorkommt (z.B. Anhänge einer E-Mail mit .pdf und .xml), Sollen nur Dateinamen nach den angegebenen Regelen akzeptiert werden (z.B. *.xml). Derzeit nur für E-Mails implementiert. z.B. In E-Mail nur E-Rechnungen verarbeiten und PDF ignorieren, falls der Dateiname gleich ist.Wir nur aktiv, wenn ein Wert gesetzt ist. |
|
| ConfigWebNode | AI_Enabled | Default: false Ollama AI aktivieren zur automatischen KI Verschlagwortung. Für den Document Enocer config/recursive/DEFAULT_AI aktiviert der Wert true den KI Chat sowie die magische Archivierung. |
true, false |
| ConfigWebNode | AI_OllamaEndpoint | Ollama Endpoint | true, false |
| ConfigWebNode | AI_OllamaModel | Ollama Model | |
| ConfigWebNode | AI_MaxPagesCount | Default: -1 "-1" für alle Seiten. Maximale Anzahl zu verarbeitende Seiten begrenzen. |
-1, 1-N |
| ConfigWebNode | AI_DocumentLabel | Kurze Dokument Bezeichnung. Pflichtfeld für "magische Archivierung". Anhand dieses Textes wählt die "magische Archivierung" den Document Encoder via KI aus. Wenn kein Text angelegt ist, kann der Document Encoder auch nicht im Rahmen der "magischen Archivierung" ausgewählt werden. https://drdoc.com/node/de/products/web/doku/ai-kuenstliche-intelligenz |
|
| ConfigWebNode | AI_DocumentDescription | Kurze Dokument Beschreibung. Optional: Anhand dieses Textes wählt die "magische Archivierung" den Document Encoder via KI aus. |
|
| ConfigWebNode | AI_ExecuteBeforeRecursive | Default: true AI vor den Recursive Document Encoders ausführen. z.B. auf "false" setzen, wenn für eine auf eine ZUGFeRD Rechnung, wg. der im PDF eingebetteten strukturierten XML, keine KI Verschlagwortung notwendig ist. |
true, false |
| ConfigWebNode | AI_ExecuteAfterRecursiveSuccess | Default: false Wird nur relevant/aktiv, wenn AI_ExecuteBeforeRecursive=false. Soll die AI selbst dann ausgeführt werden, wenn bereits ein recursive Document Encoder ausgeführt wurde? AI nur ausführen, wenn AI noch nicht ausgeführt wurde und mindestens ein Recursive Document Encoder erfolgreich ausgeführt wurde. z.B. nützlich, wenn eine auf eine PDF ZUGFeRD Rechnung wg. der strukturierten eingebetteten XML keine KI Verschlagwortung auf Ebene des PDFs notwendig ist. Ein Fallback, wenn die Metadaten durch die Rekursiven Document Encoder nicht immer gefüllt werden. (z.B. bei ZUFeRD Rechnung: PDF -> XML) |
true, false |
| ConfigWebNode | AI_MapFieldSelectionName | Default: DD_FIELD_DESC Bezeichner für Feldauswahl vom Typ IMPORT_ASCII. Enthält AI Mapping Feld Beschreibungen in Textform, um dem KI Modell die Dr.DOC Felder zu beschreiben. |
|
| ConfigWebNode | AI_OverwriteMetaInfo | Default: false AI kann Profildaten überschreiben. |
true, false |
| ConfigWebNode | AI_ImageVisionOCR | Default: false OCR über AI/KI Vision Modell ausführen. |
true, false |
| ConfigWebNode | Log | Default: true Grund/Ursache loggen, warum ein Document Encoder nicht gewählt wurde. |
true, false |
Daraus ergibt sich z.B. folgender Tree and Document Encodern: