Hilfe zu Dr.DOC Web (Web Access)

Informationen effizient organisieren.
Mit der Dr.DOC Komplettlösung für revisionssichere Archivierung.


  Anfragen Preise berechnen Demo anfordern Mehr über Dr.DOC erfahren


Anmeldung/Authentifizierung und Benutzersync. aus dem Active Directory (AD)

Beschreibung

Benutzer Synchronisierung

Es können alle Benutzer samt Gruppenmitgliedschaft aus Ihrem Active Directory (AD) nach Dr.DOC Synchronisiert werden. Der Sync Intervall beträgt 30 Minuten. Folgende Eigenschaften werden übertragen:

  • Benutzername
  • Ganzer Name
  • Zugehörige Gruppenmitgliedschaften

Der Dr.DOC Benutzermanager MUSS für alle verwendeten Benutzerverwaltungen folgende Einstellungen gesetzte haben, unter Menü -> Benutzerverwaltung -> Eigenschaften -> "Automatische Anmeldung mit Netzwerk-Anmeldenamen" auf: "Ja, alle Benutzer" oder "Benutzerspezifisch" (empfohlen). Die Richtung ist unidirektional, vom AD nach Dr.DOC. Die Gruppenmitgliedschaften der Benutzer werden beim Sync angewendet; dabei werden keine Gruppen in Dr.DOC erstellt - nur die Benutzer den existiereden Gruppen hinzugefügt. Es werden keine Benutzer aus Dr.DOC gelöscht oder aus Gruppen augetragen.

Benutzer Authentifizierung

1.) Benutzer, die nicht im AD existieren, aber in Dr.DOC existieren, können wie gewohnt authentifiziert werden. Diese Benutzer sollten ein sicheres Passwort verwenden und den Flag "Automatische Anmeldung mit Netzwerk-Anmeldenamen" nicht aktiv haben.

2.) Alle anderen (vom AD nach Dr.DOC synchronisierte) Benutzer bekommen in Dr.DOC automatisch den Flag "Automatische Anmeldung mit Netzwerk-Anmeldenamen" und "Anmeldenamen identisch". Diese Benutzer werden über das AD bzw. via LDAP authentifiziert.

Aktivierung und Konfiguration (ab Version 1.0.80.0)

Melden Sie sich in Dr.DOC Web an. Sie benötigen das Recht, auf den Benutzermanager zuzugreifen (Im Dr.DOC Client, unter Menü Organisation -> Benutzermanager -> Benutzer in Benutzermanager wählen -> Beschreibung -> "Zugangsberechtigung für Benutzermanager"). Im Dr.DOC Web, unter Menü -> Einstellungen -> "Active Directory (AD)" können Sie den die AD Anmeldedaten eingeben und den Sync aktivieren.

LLM/KI/AI Künstliche Intelligenz und Chatbot

1. Dokument fragen und auswerten, "Chatbot"

Datensatz laden, in der Maske rechts auf "Dokument AI"

2. Beim Dok. Erstellen: Archiv automatisch wählen mit entsprechender Feldvorbelegung

In einer sersten Stufe kann ein Ollama Modell verwendet werden, um die Klassifizierungsaufgabe zu übernehmen:

  • Welches Archiv? (z.B. Einkauf Lieferscheine)
  • Welche Feldvorbelegung? (z.B. Dokument-Typ: Lieferschein, Bestellung, Rechnung)

Unter "Einstellungen" das Olama Model, Endpoint, Stadard-Archiv und Prompt setzen.

Der Prompt MUSS folgendes JSON Objekt zurückgeben, andernfalls wird das Standardarchiv gewählt. Durch die Wahl des Archivs und der Feldvorbelegung kann eine entsprechende Rekursive Archivierung gestartet werden (Document Encoder), siehe "3. Automatische Verschlagwortung innerhalb eines Archivs".

{
 archive: "doc",
 preset: "INBOX"
}

Beispiel:

**Incoming** means that the document text was addressed **to** the company "Dr.DOC GmbH".
**Outgoing** means that the document text was written or issued **by** the company "Dr.DOC GmbH".
The following attached **text** should be compared with the values   of the "desc" property of each JSON array element. Return one element of the JSON array that best describes the attached text.
\```text
{ocr}
\```

All JSON array elements:

\```json
[
{
"desc": [ "Incoming invoice", "purchasing bill", "Eingehende Rechnung", "Eingangsrechnung" ],
"archive": "rec",
"preset": "INVOICE_IN"
},
{
"desc": [ "Outgoing invoice", "sales invoice", "Ausgehende Rechnung", "Ausgangsrechnung" ],
"archive": "rec",
"preset": "INVOICE_OUT"
},
{
"desc": [ "Tax notice", "tax return", "sales tax return", "VAT return", "trade tax", "corporate tax", "tax return", "tax assessment", "Steuer Bescheid", "Steuererklärung", "Umsatzsteuervoranmeldung", "UStVA", "Gewerbesteuer", "Körperschaftssteuer" ],
"archive": "rec",
"preset": "TAX_IN"
},
{
"desc": [ "Account statement", "bank statement", "bank receipts", "Kontoauszug", "Bank Auszug", "Bank Belege", "Zahlungsavis" ],
"archive": "rec",
"preset": "ACC_IN"
},
{
"desc": [ "Incoming contract", "purchase contract", "purchasing contract", "rental contract", "Eingehender Vertrag", "Kaufvertrag", "Mietvertrag" ],
"archive": "rec",
"preset": "CONTRACT_IN"
},
{
"desc": [ "Outgoing contract", "maintenance contract", "loan contract", "sales contract", "Ausgehender Vertrag", "Wartungsvertrag", "Darlehensvertrag" ],
"archive": "rec",
"preset": "CONTRACT_OUT"
},
{
"desc": [ "Payroll documents", "wage slip", "Pay slip", "Salary", "Lohnunterlagen", "Lohnzettel" ],
"archive": "rec",
"preset": "WAGE"
},
{
"desc": [ "In all other cases, if no matching JSON array element has been found so far", "Brief", "Kundenanfrage", "Auswertung", "BWA", "Jahresabschluss", "Bilanz", "GuV", "Notar", "Satzung", "Mitarbeiter", "Handelsregister", "Registergericht", "Anforderung", "Lastenheft" ],
"archive": "doc",
"preset": "INBOX"
}
]
\```

Example output to return:

\```json
{
"archive": "doc",
"preset": "INBOX"
}
\```

3. Automatische Verschlagwortung innerhalb eines Archivs

In der zweiten Stufe kann ein Ollama Modell verwendet werden, um die Meta-Daten eines Dr.DOC Datensatzes automatisch aus dem OCR Text zu laden (Extraktion) und zu formattieren.

3.1. Neuen Document Encoder erstellen für den OCR Text

Es soll festgelegt werden, wie, welcher Document Encoder den OCR Text verarbeiten soll. In diesem Fall soll der DrDoc.WebServer.AiTextDocumentEncoder diese Aufgabe übernehmen. Dafür müssen wir einige Einstellungen setzen, damit klar ist, welches KI Modell, welcher Endpoint verwendet werden soll und wie der Response vom KI Modell verarbeitet weren soll. Wir übergeben in einem Prompt dem gewählten Modell den OCR Text mit einer entsprechenden Aufgabe. Die Antwort können wir in einem weiteren Schritt verarbeiten (rekursive Archivierung), z.B. indem der KI Response JSON Text an einen JSON Document Encoder übergeben wird (siehe 3.2.).

z.B. config/recursive/ki-er:

Property Name Property Value
Bschreibung
Property Value
Beispiel Wert
Enabled Aktivieren true
Proto_Type DrDoc.WebServer.AiTextDocumentEncoder DrDoc.WebServer.AiTextDocumentEncoder
Proto_Extension Extension *.txt *.txt
Selector_ArchiveName Archiv z.B. doc
Argument1 Ollama Endpoint / Server Adresse http://192.168.111.21:8080
Argument2 Ollama Model Name z.B. llama3
Argument3 Propmpt Text.
Im Text wird [ocr} mit dem OCR Text ersetzt.
Format the following Invoice text to text/xml, EN 16931, CrossIndustryInvoice, Schema "urn:cen.eu:en16931:2017#conformant#urn:zugferd.de:2p2:extended":
Argument4 Optional: Format. Mögliche Werte: json oder leer.
Wenn im nächsten Sschritt ein JSON Document Encoder verwendet wird, bitte json angeben.
z.B. json
Argument5 Optional: Regular Expression für KI Result. Es wird der erste erfolgreiche Match verwendet. (?<=(?:\`\`\`)(?:xml)?\r?\n)((?:.|\r|\n)+?)(?=\r?\n(?:\`\`\`)\r?\n)
Argument6 Request Mode. Mögliche Werte: chat oder generate z.B. generate
Argument7 Filename + Extension für rekursive Archivierung / Document Encoder,
siehe "3.2. Neuen Document Encoder erstellen, für den JSON Text"
ki.json
Recursive Rekursive Document Encoder config/recursive/RE JSON

3.2. Neuen Document Encoder erstellen, für den JSON Text

Wenn der Response vom KI Modell ein JSON Text ist, können die Eigenschafts-Werte aus dem Objekt bestimmten Dr.DOC Feldern zugewiesen werden (Mapping). Das machen wir über Dr.DOC Feldauswahlen. z.B. config/recursive/RE JSON:

Property Name Property Value
Bschreibung
Property Value
Beispiel Wert
Enabled Aktivieren true
Proto_Extension Extension *.json *.json
Selector_ArchiveName Name des Archivs rec
MapFieldSelectionName Feldauswahl Bezeichner für das Mapping DD_JSON
MapFieldSelectionType Feldauswahl Typ für das Mapping IMPORT_ASCII

3.3. Neue Feldauswahl erstellen für JSON Import

  1. Starten Sie den Dr.DOC Client am Server im Admin Modus und melden Sie sich als Benutzer PUBLIC an
  2. Wählen Sie im Menü: Einstellungen -> Feldauswahl für -> ASCII-Import
  3. Legen Sie eine Neue Feldauswahl an: DD_JSON

Beispiel 1: Alle Array Elemente in Tabellenspalte übertragen: JSON: { Property1: [ { SubProperty: "value 1" }, { SubProperty: "value 2" }, ] } Feldauswahl: Property1/*/SubProperty

Beispiel 2: Artikelanzahl holen und "1" eingeben, falls nichts gefunden wurde JSON: { Items: [ { Quantity: "" }, { Quantity: "3" }, ] } Feldauswahl: Items/*/Quantity"1"?

Beispiel 3: Umsatzsteuersatz holen und "%" hinten als Suffix anfügen JSON: { Items: [ { VatTaxRate: "19.0" }, { VatTaxRate: "7.0" }, ] } Feldauswahl: Items/*/VatTaxRate"%"

Beispiel 4: Bezeichner "Name" oder alternativ Nummer "ID" laden JSON: { ID: "123" } Feldauswahl: Name|ID

Systemvoraussetzungen, Ausführung und Betrieb

Systemvoraussetzungen, Ausführung und Betrieb

Betrieb des Web Servers: Command Line Interface (CLI) / Befehlszeile, Dienst/Service, Logs

Elektronische Rechnung

Elektronische Rechnung

Rechtlicher Rahmen

Unternehmen in Deutschland müssen/mussten bis 1. Januar 2025 die technischen Voraussetzungen schaffen für die Entgegennahme einer E-Rechnung. Mehr dazu: https://drdoc.com/node/de/solutions/e-invoice

Hinweis: Die genannten Informationen und Auskünfte enthalten nur erste Hinweise und ‎erheben daher keinen Anspruch auf Vollständigkeit. Obwohl sie mit größtmöglicher ‎Sorgfalt erstellt wurden, kann eine Haftung für ihre inhaltliche Richtigkeit nicht ‎übernommen werden. Sie können eine Beratung im Einzelfall, beispielsweise durch einen ‎Rechtsanwalt, Steuer- oder Unternehmensberater, nicht ersetzen.‎

Handlungsempfehlungen

  • Technische Voraussetzungen schaffen, für die Entgegennahme einer E-Rechnung
    • Archivierung/Import-Definition erweitern (XML)
    • Strukturierte Rechnungsinformationen in Metadaten laden
    • XRechnungen rendern / anzeigen
  • E-Mail-Archivierung über Dr.DOC (via Outlook Plugin oder IMAP E-Mail-Archivierung)
  • Eingangsrechnungsverarbeitung mit Workflows zur besseren Nachvollziehbarkeit.

Übersicht: Produkt-Funktions-Matrix

Prozess Format Produkt
Dr.DOC Web
Produkt
Dr.DOC Client/Server Netzwerk
1. generieren, ausstellen ZUGFeRD,
XRechnung (XML)
Ja: via WebNode Template + Maske -> Dokument generieren Nein
2. versenden Alles Ja: via E-Mail Ja: via E-Mail
3. archivieren / erfassen / verschlagworten ZUGFeRD Ja: via Einstellungen -> Rekursive Archivierung Ja: via Dokumenten-Import
" XRechnung (XML) Ja: via Einstellungen -> Rekursive Archivierung Ja: via ASCII-Import
PDF bei Archivierung generieren und XML einbetten
4. anzeigen / rendern ZUGFeRD Ja (PDF) Ja (PDF)
" XRechnung (XML) Ja, integrierter XRechnungs-Viewer Ja: Ansicht vom gerenderten PDF bei Archivierung
oder Raw XML-Ansicht
5. validieren ZUGFeRD,
XRechnung (XML)
Ja, über kostenpflichtiges Add-On Ja, über kostenpflichtiges Add-On

Option A: Implementierung im Dr.DOC Web Server

1.) Einstellungen/Feldauswahl für ASCII-Import (via Windows App als Dr.DOC Admin) 1.1.) Feldauswahl angelegen (Beispielname: XML_INVOICE). In das jeweilige Dr.DOC-Feld den kompletten XML-PFAD (XPath) zu dem gewünschten Importwert(en) eintragen. z.B. mit | separiert, um UBL und CII Rechnungen in einer Definition zu verarbeiten. Nachfolgend einige Beispieleinträge:

Dr.DOC Archiv-Feld Feldauswahl für ASCII-Import: XML-Import -Definition
Beleg-Nr. /CrossIndustryInvoice/ExchangedDocument/ID\|/Invoice/ID
Beleg-Datum /CrossIndustryInvoice/ExchangedDocument/IssueDateTime/DateTimeString\|/Invoice/IssueDate
Kunden-Name /CrossIndustryInvoice/SupplyChainTradeTransaction/ApplicableHeaderTradeAgreement/BuyerTradeParty/Name\|/Invoice/AccountingCustomerParty/Party/PartyLegalEntity/RegistrationName
Bruttobetrag /CrossIndustryInvoice/SupplyChainTradeTransaction/ApplicableHeaderTradeSettlement/SpecifiedTradeSettlementHeaderMonetarySummation/GrandTotalAmount\|/Invoice/LegalMonetaryTotal/TaxInclusiveAmount

2.) Dr.DOC Web: Einstellungen -> Rekursive Archivierung

2.1.) Rekursive Archivierungs-Einstellung anlegen für XML-Dateien (z.B. factur-x.xml), z.B. "config/recursive/RE XML"

Eigenschaft Wert Beschreibung
Enabled true Aktivieren
Proto_Extension *.xml Dokumenten Parser für XML Dateien wählen
Selector_Filename *.xml
Action None Mit Flag "None" Dokument nicht zwingend erstellen und Rechnungsinformationen (in Metainfo) laden
Action_FieldPreselectionName EINGANGSRECHNUNG Feldvorbelegung
MapFieldSelectionName XML_INVOICE Mapping Feldauswahl aus Schritt 1. übernehmen für Übernahme der strukturierte Rechnungsinformationen (XML)
MapFieldSelectionType IMPORT_ASCII Feldauswahl für ASCII-Import

2.2.) Rekursive Archivierungs-Einstellung anlegen für PDF-Dateien, z.B. "config/recursive/RE PDF CreateDocument"

Eigenschaft Wert Beschreibung
Enabled true Aktivieren
Proto_Extension *.pdf Dokumenten Parser für PDF Dateien wählen
Selector_Filename !AGB*&!*Geschäftsbedingungen*&!*Datenschutz*&*.pdf Dateinamen mit AGB etc. ignorieren
Action CreateDocument Dokument zwingend erstellen
Recursive config/recursive/RE XML Metadaten aus der Embedded XML-Datei laden (z.B. factur-x.xml)

Option B: Implementierung im Dr.DOC Netzwerk Server

Hinweis: Bitte passen sie die Pfade entsprechend auf Ihre Archivumgebung an.

1.) Einstellungen/Feldauswahl für ASCII-Import 1.1.) Feldauswahl angelegen (Beispielname: XML_CII). In das jeweilige Dr.DOC-Feld den kompletten XML-PFAD zu dem gewünschten Importwert eintragen. Nachfolgend einige Beispieleinträge:

Dr.DOC Archiv-Feld Feldauswahl für ASCII-Import: XML-Import -Definition
Beleg-Nr. /CrossIndustryInvoice/ExchangedDocument/ID.Value
Beleg-Datum /CrossIndustryInvoice/ExchangedDocument/IssueDateTime/DateTimeString.Value
Kunden-Nr. /CrossIndustryInvoice/SupplyChainTradeTransaction/ApplicableHeaderTradeAgreement/BuyerTradeParty/ID.Value
Kunden-Name /CrossIndustryInvoice/SupplyChainTradeTransaction/ApplicableHeaderTradeAgreement/BuyerTradeParty/Name.Value
Bruttobetrag /CrossIndustryInvoice/SupplyChainTradeTransaction/ApplicableHeaderTradeSettlement/SpecifiedTradeSettlementHeaderMonetarySummation/GrandTotalAmount.Value

1.2.) Feldauswahl angelegen (Beispielname: XML_UBL). In das jeweilige Dr.DOC-Feld den kompletten XML-PFAD zu dem gewünschten Importwert eintragen. Nachfolgend einige Beispieleinträge:

Dr.DOC Archiv-Feld Feldauswahl für ASCII-Import: XML-Import -Definition
Beleg-Nr. /Invoice/ID.Value
Beleg-Datum /Invoice/IssueDate.Value
Kunden-Name /Invoice/AccountingCustomerParty/Party/PartyLegalEntity/RegistrationName.Value
Bruttobetrag /Invoice/LegalMonetaryTotal/TaxInclusiveAmount

2.) DOCUIMP.INI Beispiel D:\DrDoc\ARCHIV\KOMM\DOCUIMP.INI, welche zwei Import-Verzeichnisse anlegt (Hot-Folder) für UBL und CII. Pfade müssen entsprechend angepasst werden.

[ORDNER]
LESEN=7

[ORDNER6]
ARBEIT=D:\DrDoc\ARCHIV\KOMM\ARBEIT
DOCUMENTS=D:\DrDoc\ARCHIV\DrDoc_Import\ZUGFeRD_CII
INI=ZUGFeRD_CII

[ORDNER7]
ARBEIT=D:\DrDoc\ARCHIV\KOMM\ARBEIT
DOCUMENTS=D:\DrDoc\ARCHIV\DrDoc_Import\ZUGFeRD_UBL
INI=XRECHNUNG_UBL

2.1.) ZUGFeRD_CII.ini Beispiel D:\DrDoc\ARCHIV\KOMM\ZUGFeRD_CII.ini, in welcher u. a. die unter Punkt (1) erstellte Feldauswahl für ASCII-Import zugewiesen ist, sowie Format=XML für den Profildatenimport aus der eingebetteten XML-Datei. Archiv, Pfade und Feldvorbelegung müssen entsprechend angepasst werden.

[ASCII_IMPORT]
SectionName=EXTENSION
MaxAnzahl=0   
;SectionName=DATEINAME, 0, 5            
;SectionName=EXTENSION, <offset>, <laenge>
 
[PDF]
Archiv=D:\DrDoc\ARCHIV\Komm\SERVER\dok
Feldauswahl=XML_CII
LinkNr=AutoLink
DokumenteImportieren=1
DateiTypDokumente=PDF
Format=XML
Feldvorbelegung=EINGANGSRECHNUNG
NCI_Komp=0
DokumentTrenner=

2.2.) ZUGFeRD_UBL.ini Beispiel D:\DrDoc\ARCHIV\KOMM\ZUGFeRD_UBL.ini, in welcher u. a. die unter Punkt (1) erstellte Feldauswahl für ASCII-Import zugewiesen ist, sowie Format=XML für den Profildatenimport aus der eingebetteten XML-Datei. Archiv, Pfade und Feldvorbelegung müssen entsprechend angepasst werden.

[ASCII_IMPORT]
SectionName=EXTENSION
MaxAnzahl=0   
;SectionName=DATEINAME, 0, 5            
;SectionName=EXTENSION, <offset>, <laenge>
 
[PDF]
Archiv=D:\DrDoc\ARCHIV\Komm\SERVER\dok
Feldauswahl=XML_UBL
LinkNr=AutoLink
DokumenteImportieren=1
DateiTypDokumente=PDF
Format=XML
Feldvorbelegung=EINGANGSRECHNUNG
NCI_Komp=0
DokumentTrenner=

3.) SPOOLIMP.INI Beispiel D:\DrDoc\ARCHIV\KOMM\SPOOLIMP.INI, welche zwei Import-Verzeichnisse anlegt (Hot-Folder) für UBL und CII. Pfade müssen entsprechend angepasst werden.

[ORDNER]
LESEN=6

[ORDNER6]
ARBEIT=D:\DrDoc\ARCHIV\KOMM\ARBEIT
ASCII=D:\DrDoc\ARCHIV\DrDoc_Import\XRECHNUNG_UBL
DOKUMENT=D:\DrDoc\ARCHIV\DrDoc_Import\XRECHNUNG_UBL
INI=XRECHNUNG_UBL

3.1.) XRECHNUNG_UBL.ini Beispiel D:\DrDoc\ARCHIV\KOMM\XRECHNUNG_UBL.ini, in welcher u. a. die unter Punkt (1) erstellte Feldauswahl für ASCII-Import zugewiesen ist. Archiv, Pfade und Feldvorbelegung müssen entsprechend angepasst werden.

[ASCII_IMPORT]
SectionName=EXTENSION
MaxAnzahl=0   
;SectionName=DATEINAME, 0, 5            
;SectionName=EXTENSION, <offset>, <laenge>
 
[XMD]
Archiv=D:\DrDoc\ARCHIV\Komm\SERVER\dok
Feldauswahl=XML_UBL
LinkNr=AutoLink
DokumenteImportieren=1
DateiTypDokumente=XML
Format=XML
Feldvorbelegung=EINGANGSRECHNUNG
NCI_Komp=0
Dubletten=aendern
FeldTrenner=59
SatzTrenner=13 10
DokumentTrenner=

3.2.) XML-Dateien-kopieren Script Der folgende Batch Script kopiert die *.XML Datei in eine *.XMD Datei, damit der Dr.DOC Server Import die *.XML-Datei für das Dokument und die *.XMD-Datei für die Meta-Daten verwenden kann:

@echo off
copy /Y "%~f1" "D:\DrDoc\ARCHIV\DrDoc_Import\XRECHNUNG_UBL\%~n1.xml"
copy /Y "%~f1" "D:\DrDoc\ARCHIV\DrDoc_Import\XRECHNUNG_UBL\%~n1.xmd"

E-Mail-Archivierung (IMAP)

E-Mail-Archivierung (IMAP)

Hinweis:

Mit Dr.DOC gibt es drei E-Mail-Archivierungs-Möglichkeiten. In dieser Doku geht es um die E-Mail-Archivierung via Dr.DOC Web.

Produkt Modul Besonderheiten
Dr.DOC Netzwerk (C/S) Dr.DOC Outlook Plugin Vorgangsbezogene (oder automatische) Archivierung in MS Outlook/Plugin via Dr.DOC Netzwerk Client
Dr.DOC Netzwerk (C/S) Dr.DOC Server Import Automatisierte Archivierung am Dr.DOC Netzwerk Server via Dateiimport
Dr.DOC Web Dr.DOC Web E-Mail-Archivierung (IMAP) Automatisierte, regelbasierte Archivierung am Dr.DOC Web Server via IMAP

Ziel der E-Mail-Archivierung via IMAP ist es, E-Mails automatisiert (unbeaufsichtigt) und regelbasiert zu archivieren. Um die E-Mail-Archivierung regelbasiert zu steuern, werden folgende Einstellungen im Dr.DOC Web Konfigurationsarchiv „node“ ausgelesen:

Type: EmailAccountConfigWebNode Name: config/email-account/<E-Mail-Account-Name>

Beispel: Name: config/email-account

Die Einstellungen werden nur beim Start des Dr.DOC Web Servers neu geladen. Damit eine Änderung wirksam wird, muss der Dienst neu gestartet werden. Aus Sicherheitsgründen sollte der Datensatz nur für den Server und berechtigte Administratoren zugreifbar sein, indem der User auf "System-Group" gesetzt wird.

Eine Vererbung über den Prototype-Namen ist möglich; z.B. auf config/email-account, um bestimmte Einstellungen für alle Konten anzuwenden. Wenn Property Values aus dem Prototype geladen werden sollen, muss das „Inherit“ Flag in der Property gesetzt sein. Damit ist es möglich, die Einstellungen, die für alle User gültig sind, in den Node "config/email-account" abszuspeichern und in den Konten-Nodes (z.B. "config/email-account/test") den Prototype Name auf "config/email-account" setzen und nur die Properties zu setzen, die überschrieben werden sollen (z.B. "Email", "Password", "Archive_SourceImapFolders", "Archive_Target_FieldPreselectionName").

Alle Properties haben den Type "ConfigWebNode".

Property Type Property Name Beschreibung Mögliche Werte
ConfigWebNode Enabled Gibt an, ob die Konfiguration aktiv ist true, false
ConfigWebNode Email E-Mail-Adresse (z.B. test@mail.de)
ConfigWebNode Password Passwort für SMTP/IMAP.
Nach dem erstmaligen Eintragen wird das Passwort verschlüsselt.
ConfigWebNode CheckSslCert Gibt an, ob das TLS/SSL Zertifikat des E-Mail-Servers geprüft werden soll true, false
ConfigWebNode ImapHost Hostname des IMAP Servers (z.B. mail.de)
ConfigWebNode ImapSSL Gibt an, ob eine verschlüsselte TLS/SSL Verbindung zum IMAP Server hergestellt werden soll true, false
ConfigWebNode ImapPort IMAP Portnummer (z.B. 993)
ConfigWebNode SmtpHost Hostname des SMTP Servers (z.B. mail.de)
ConfigWebNode SmtpSSL Gibt an, ob eine verschlüsselte TLS/SSL Verbindung zum SMTP Server hergestellt werden soll
ConfigWebNode SmtpPort SMTP Portnummer (z.B. 587)
ConfigWebNode Archive_Action
  • "Tag":
    • Markiert die E-Mail bei erfolgreicher Archivierung mit dem Tag/Keyword, welches in der Property "Archive_SuccessTag" angegeben wurde;
    • Dubletten werden mit dem Wert markiert, der in der Property "Archive_DuplicateTag" angegeben wurde.
  • "Move":
    • Verschiebt die E-Mail in ein Unterverzeichnis mit gleichem Namen wie das Quell-Verzeichnis.Die IMAP-Verzeichnisse werden automatisch erstellt und dürfen keinen "." oder "/" im Pfad-Segment enthalten. Der Verzeichnisname "Dr. Doc" wäre also ungültig.
    • Bei erfolgreicher Archivierung in das IMAP Verzeichnis, welches in der Property "Archive_SuccessImapFolder" angegeben wurde. Beispiel: <Archive_SuccessImapFolder>/<Source-Folder>
    • Dubletten werden in das IMAP Verzeichnis verschoben, welches in der Property "Archive_DuplicateImapFolder" angegeben wurde. Beispiel: <Archive_DuplicateImapFolder>/<Source-Folder>
    • Bei einem Fehler in das Verzeichnis, welches in der Property "Archive_ErrorImapFolder" angegeben wurde. Beispiel: <Archive_ErrorImapFolder>/<Source-Folder>
  • "Delete":
    • Löscht erfolgreich archivierte E-Mails
Tag, Move, Delete
ConfigWebNode Archive_SuccessTag Tag/Keyword für Property "Archive_Action" mit dem Wert "Tag"; bei erfolgreicher Archivierung;
Der Wert darf bei vielen IMAP Servern keine Leerzeichen oder Punkte enthalten
ConfigWebNode Archive_DuplicateTag Tag/Keyword für Property "Archive_Action" mit dem Wert "Tag"; bei fehlgeschlagener Archivierung wegen Eingabedublettenprüfung (Schlüsselfeld "DS" mit Feldauswahl für Dublettenprüfung);
Der Wert darf bei vielen IMAP Servern keine Leerzeichen oder Punkte enthalten
ConfigWebNode Archive_SuccessImapFolder Basis IMAP Verzeichnis für Property "Archive_Action" mit dem Wert "Move"; bei erfolgreicher Archivierung
ConfigWebNode Archive_DuplicateImapFolder Basis IMAP Verzeichnis für Property "Archive_Action" mit dem Wert "Move"; bei fehlgeschlagener Archivierung wegen Eingabedublettenprüfung (Schlüsselfeld "DS" mit Feldauswahl für Dublettenprüfung)
ConfigWebNode Archive_ErrorImapFolder Basis IMAP Verzeichnis für Property "Archive_Action" mit dem Wert "Move"; bei fehlgeschlagener Archivierung wegen eines Fehlers
ConfigWebNode Archive_SourceImapFolders Quell IMAP Verzeichnis(se), in dem die E-Mails archiviert werden sollen.
Pro Zeile ein Wert und darf nicht mit / beginnen.
Es können auch Wildcards mit "*" angegeben und UND-Bedingungen mit "&" angegeben werden.
z.B. "INBOX"
oder "Eingangsrechnung"
ConfigWebNode Archive_Target_UsermanagerName Ziel-Benutzerverwaltung
Pfad zur Usermanager *.BVD Datei
ConfigWebNode Archive_Target_ArchiveName Ziel-Archiv
Archiv-Name oder vollständiger Pfad zur KOMM\SERVER\*.da Datei
ConfigWebNode Archive_Target_FieldPreselectionName Anzuwendende Feldvorbelegung beim Erstellen des Datensatzes im Archiv "Archive_Target_ArchiveName".
Über die gesetzten Feldwerte aus der Feldvorbelegung und den übernommenen E-Mail Feldern (z.B. ASCII Import-Definition "DD_EMAIL") kann eine rekursive Archivierung getriggert werden.
ConfigWebNode Archive_Target_Duplicate Gibt an, wie Dubletten beim Erstellen eines Dokuments behandelt werden sollen:
  • "Drop": Dubletten verwerfen
  • "Replace": Dubletten ersetzen (Feldwerte können gelöscht werden)
  • "Change": Dublette ändern (nur gesetzte Feldwerte werden übertragen)
Drop, Replace, Change
ConfigWebNode OAuth2_ClientId MS 365 / AAD: "Overview" -> "Aplication (client) ID"
ConfigWebNode OAuth2_Authority MS 365 / AAD: "Overview" -> "Directory (tenant) ID" z.B. https://login.microsoftonline.com/{tenantId}/v2.0
ConfigWebNode OAuth2_Scopes MS 365 / AAD: "API permissions" -> "+Add a permission": Mehrere Einträge möglich (zeilenweise), z.B.:
https://outlook.office365.com/.default
Oder
openid
email
offline_access
https://outlook.office.com/IMAP.AccessAsUser.All
Oder in älteren Konfigurationen:
https://ps.outlook.com/.default
ConfigWebNode OAuth2_Secret MS 365 / AAD: "Certificates & secrets" -> "Client secrets" -> "+ New client secret": Text in Spalte "Value" abspeichern

Microsoft Office 365

Microsoft 365 benötigt einen OAuth2 Login. Das ist leider unnötig kompliziert.

  1. Microsoft Azure Active Directory IAM (AAD IAM starten und App hinzufügen mit IMAP Rechten) Siehe dazu: https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app
    1. https://portal.azure.com/#view/Microsoft\_AAD\_IAM/ActiveDirectoryMenuBlade/\~/Overview
      1. Register new App (+): https://portal.azure.com/#view/Microsoft\_AAD\_RegisteredApps/CreateApplicationBlade/isMSAApp\~/false
      2. "Authentication"
        1. "Platform configuration", "+ Add a platform" -> "Mobile and desktop applications" Redirect URIs: "http://localhost"
        2. "Advanced settings" -> "Allow public client flows": Yes
      3. "Certificates & secrets" -> "Client secrets" -> "+ New client secret": Text in Spalte "Value" abspeichern
      4. "API permissions" -> "+Add a permission" (mit "*" sind optional, wenn E-Mails auch versendet werden sollen)
        1. API "Microsoft Graph" -> "Delegated permission"
          1. OpenId permissions
            1. email
            2. offline_access
            3. openid
          2. SMTP
            1. * SMTP.Send
          3. User
            1. User.Read
          4. IMAP
            1. IMAP.AccessAsUser.All
        2. API "Office 365 Exchange Online" -> "APIs my organization uses" -> search "Office 365 Exchange Online" -> "Application permissions"
          1. IMAP
            1. IMAP.AccessAsApp
          2. Mail
            1. * Mail.Read
            2. * Mail.Send
          3. SMTP
            1. * SMTP.SendAsApp
        3. Check "Grant admin consent for <Tenant-Name>"
      5. Besitzer der App festlegen via Menü "Owners"
      6. Evtl.: Benutzer der App hinzufügen:
        1. https://portal.azure.com/?feature.msaljs=true#view/Microsoft\_AAD\_UsersAndTenants/UserManagementMenuBlade/\~/AllUsers
        2. Benutzer wählen
        3. "Authentication methods" ->
      7. "Overview" Access Points abspeichern (siehe 2. unten)
        1. Application (client) ID
        2. Directory (tenant) ID
  2. In den Einstellungen für E-Mail-Archivierung folgenden Eigenschaften setzen:
    • OAuth2_ClientId = siehe "Overview" -> "Aplication (client) ID"
    • OAuth2_Authority = siehe "Overview" -> "Directory (tenant) ID": https://login.microsoftonline.com/<Dierctory (tenant) ID>/oauth2/v2.0/authorize
    • OAuth2_Scopes = siehe "API Permissions":
      • openid email offline_access https://outlook.office.com/IMAP.AccessAsUser.All
    • OAuth2_Secret = siehe "Certificates & secrets" -> "Client secrets"

Variante A: Als Desktop App starten

  1. Die App DrDoc.WebServerService.exe als normale Anwendung starten und nicht als Dienst
  2. Es öffnet sich ein Web Browser Fenster. Bitte mit entsprechendem Konto anmelden, um der E-Mail-Archivierung die nötige Berechtigung zu erteilen.
  3. Wenn die Anmeldung erfolgreich war, kann Dr.DOC Web wieder als Dienst verwendet werden.

Variante B: PowerShell Script als Admin:

$AppId = "32d78307-96a6-4d33-k871-7d65d7ae345d"
$TenantId = "485ed665-e9ea-4569-xc67-4152462107fe"
$Email = "mail@drdoc.onmicrosoft.com"
$DisplayName = "Some principal name for IMAP/POP3"

Install-Module -Name ExchangeOnlineManagement
Import-module ExchangeOnlineManagement
Connect-ExchangeOnline -Organization $TenantId

# Install-Module -Name AzureAD
# Import-module AzureAD
# Connect-AzureAd -Tenant $TenantId

($Principal = Get-AzureADServicePrincipal -filter "AppId eq '$AppId'")
$PrincipalId = $Principal.ObjectId

# New-ServicePrincipal -AppId $AppId -ObjectId <OBJECT_ID>
New-ServicePrincipal -AppId $AppId -ServiceId $PrincipalId -DisplayName $DisplayName
 
Get-ServicePrincipal | fl

Add-MailboxPermission -Identity $Email -User $PrincipalId -AccessRights FullAccess

Verzeichnisse und Dateien

Verzeichnisse und Dateien

Übersicht aller Dateien und Verzeichnisse für den Web Server

Installation und Update

Installation und Update

Anleitung zur Installation von Dr.DOC Web.

Regex Autofelder

Regex Autofelder

Regex Autofelder benötigen das tools Verzeichnis. Die Funktionalität ist mit dem erweiterten Update docSysExt.exe (mit dem Suffix Ext ) enthalten. Es können z.B. Ticket-IDs, Rechnungsnummern, Firmennamen und E-Mail-Adressen automatisch aus einem OCR-Text-Feld ausgelesen werden.

Test auf: https://regexr.com/

Format

RX <Overwrite:1|0> <Source-Field> match <Regex> <Match-Nr>

RX <Overwrite:1|0> <Source-Field> replace <Regex> <Replace-Value>

Escape-Zeichen

Escape Chars: "/" (Slash) und " " (Space) MÜSSEN in der Regex Expression durch entsprechende escape Chars ersetzt werden:

Zeichen Escape-Zeichen
" " (Space) \x20
"/" (Slash) \x2F

Beispiele

:: Beispiel für: 1. Match Ergebnis aus ocr_text RX 0 ocr_text match <Regex> 1

:: Zeile nach Match "Rechnungsnr.": (?<=\sRechnungsnr\.:.*\r?\n\x20*)(.*)(?=[\r\n]*)

:: Letzte Änderung (Regex): 20.06.2023 17:17 Uhr

:: Rechnungs-Nummer RX 0 ocr_text match (?<=(?:Rechnung|Beleg|Invoice|Inv|Re\.)s?[\.\x20\-]{0,5}(?:nr|nummer|Number|reference|ref|ID|No)+?[\.\:\x20]{0,5}[\x20]{0,20})(([0-9A-Za-z_]{1,40}(?=\s(vom|v\.|\x2F)\x20([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{2,4})))|([0-9A-Za-z_]{1,40}(?=\s\s+))|([0-9A-Za-z_]{1,40}([0-9A-Za-z]{0,30}[_\-\x20\x2F]?){0,4})) 1

:. Rechnungsnummer aus einer Bank-Transaktion: (?<=^|\s|\n(RG|Invoice|Inv|Rechnung|RE)?((\.|\-)(No|Nr|Num))?\.?\:?\x20?)(RE|INV|RG)?[0-9]{3,20}((\/|\-)[0-9]{2,20}((\/|\-)[0-9]{2,20})?)?(?=$|\s|\n|\/)

:: Normales Datum RX 0 ocr_text match [0-9]{1,2}\.[0-9]{1,2}\.[0-9]{2,4}|[0-9]{1,2}\.?\x20\w{3,10}\.\x20[0-9]{2,4}|[0-9]{1,2}\x2F[0-9]{1,2}\x2F[0-9]{2,4} 1

:: Rechnungsdatum RX 0 ocr_text match (?<=(?:Rechnung|Rechnungs|Beleg|Invoice|Credit\x20Note|)*?[\x20\-]{0,5}(?:Datum|Date|([0-9]{3,20}\x20?\x2F))[\.\:\x20]{0,20})([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{2,4}|[0-9]{4,4}\-[0-9]{2,2}\-[0-9]{2,2}|[0-9]{1,2}\.?\x20\w{3,10}\.?\x20[0-9]{2,4}|[0-9]{1,2}\x2F[0-9]{1,2}\x2F[0-9]{2,4}) 1

:: Lieferdatum RX 0 ocr_text match (?<=(?:Leistung|Service|Liefer)s?[\x20\-]{0,5}(?:Datum|Date|([0-9]{3,20}\x20?\x2F))[\.\:\x20]{0,20})([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{2,4}|[0-9]{4,4}\-[0-9]{2,2}\-[0-9]{2,2}|[0-9]{1,2}\.?\x20\w{3,10}\.?\x20[0-9]{2,4}|[0-9]{1,2}\x2F[0-9]{1,2}\x2F[0-9]{2,4}) 1

:: Leistungsdatum (?<=(?:Leistungs|Service)[\x20\-]{0,5}(?:Zeitraum|Zeitpunkt|Datum|Date)[\.\:\x20]{0,20})([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{2,4}|[0-9]{4,4}\-[0-9]{2,2}\-[0-9]{2,2}|[0-9]{1,2}\.?\x20\w{3,10}\.?\x20[0-9]{2,4}|[0-9]{1,2}\x2F[0-9]{1,2}\x2F[0-9]{2,4})(?=\s)

:: Anfrage Ticket [#DRDOC#1234] RX 0 ocr_text match (?<=[#DRDOC#)[0-9][^]]+ 1

:: USt-Id DE12345678 RX 0 ocr_text match (?<=(\x20))[A-Z]{2}\x20?[0-9]{8,10} 1

:: IBAN RX 0 ocr_text match (?<=IBAN:?\x20)[A-Z]{2}(?:[\x20]?[0-9]){18,20} 1

:: Firma/Kunde/Lieferanten-Name RX 0 ocr_text match (?<=\s)([A-Za-z]{1,30}([\+\&\.\-\x20]{0,3}[A-Za-z0-9äöüß]*){0,4}\x20(Inc\.?|PLC|GmbH\x20?\&\x20Co\.?\x20?KG|GmbH|UG|KG|SE|e\.?v\.?|e\.?G\.?|Gesellschaft\x20?mbH|AG|Aktiengesellschaft|Ltd\.?))(?<!Dr\.\x20?Doc\x20?(GmbH)?)(?=\s|\,|\·|\|) 1

:: Kundennummer RX 0 ocr_text match (?<=(Kunden|Kdn|Kd|Customer)[\.\-\x20]{0,5}(Nr|nummer|ID|No)[\.\:\x20]{0,5})([0-9\-]+) 1

:: E-Mail RX 0 ocr_text match (?<=\s)[a-z-\.]{1,20}@[a-z-\.]{1,20}\.[a-z]{1,5}(?=\s) 1

:: E-Mail (ohne ..@drdoc.com) RX 0 note match (?<=\s)[a-z-\.]{1,20}@[a-z-\.]{1,20}\.[a-z]{1,5}(?=\s)(?<!@drdoc\.com) 1

:: PLZ RX 0 note match (?<=\s([a-z]{1,3}[-\x20]?)?)[0-9]{4,5}(?=\x20([a-zöäü]{2,30}[-\x20]?){1,3}\s) 1

:: PLZ (ohne 80807) RX 0 note match (?<=\s([a-z]{1,3}[-\x20]?)?)[0-9]{4,5}(?=\x20([a-zöäü]{2,30}[-\x20]?){1,3}\s)(?<!80807) 1

:: Ort RX 0 note match (?<=\s([a-z]{1,3}[-\x20]?)?[0-9]{4,5}\x20)([a-zöäü]{2,30}[-\x20]?){1,3}(?=\s) 1

:: Ort (ohne 80807 München) RX 0 note match (?<!80807\x20)(?<=\s([a-z]{1,3}[-\x20]?)?[0-9]{4,5}\x20)([a-zöäü]{2,30}[-\x20]?){1,3}(?=\s) 1

:: Straße RX 0 note match ([a-zöäüß]+\.?[\x20\-]?){1,4}(Str\.|Str|Straße|Platz|Street|Plaza)\x20[0-9]{1,3}(\-[0-9]{1,3})?[a-z]? 1

:: Straße (ohne Heinrich-Kley-Str. 2) RX 0 note match ([a-zöäüß]+\.?[\x20\-]?){1,4}(Str\.|Str|Straße|Platz|Street|Plaza)\x20[0-9]{1,3}(\-[0-9]{1,3})?[a-z]?(?<!Heinrich-Kley-Str(\.?|aße)\x202)(?=\s) 1

:: Telephon/Phone RX 0 note match (?<=\s)[\+\(0]([0-9\x20\-\)\&#8211;\+\x2F\(\.]){3,7}\)?[0-9\x20\-\)\&#8211;\+\x2F\(]{1,20}(?=\s)

Rekursive Archivierung (Document Encoder/Decder)

Document Decoder: Der Zweck der rekursiven Archivierung ist das strukturierte Auslesen (Dokument zu Metadaten) mit deren Inhalten (z.B. E-Mail-Anhänge) durch regelbasierte Archivierung. Diese Funktion ist sinnvoll für "zusammengesetzte" und „verschachtelte“ Dateiformate (z.B. E-Mails). Beispiel: archiviere nur die PDFs aus einer E-Mail, wobei die Anhänge nicht mit „AGB“ beginnen dürfen und falls darin eine ZugFerd XML enthalten ist, übertrage die Rechnungsinformationen in die Metainfo.

Document Encoder: 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. Die Funktionen der rekursiven Archivierung kann mit der E-Mail-Archivierung kombiniert werden. Jedes Dateiformat hat bestimmte Felder die über eine Dr.DOC Feldauswahl „gemappt“ werden. Der Name der Standard-Feldauswahl fängt in der Regel mit „DD_“ an. Über die rekursiven Archivierungs Regeln können spezielle Definitionen erstellt 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.

Dokumenten-Format Extensions Mapping Rekursiv?
PDF Dokument *.pdf, *.tiff, *.tif 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
E-Mail *.eml, *.msg Default Feldauswahl ASCII-Import-Definition „DD_EMAIL“:
  • FROM
  • FROM_NAME
  • FROM_ADDRESS
  • TO
  • TO_NAME
  • TO_ADDRESS
  • BCC
  • BCC_NAME
  • BCC_ADDRESS
  • CC
  • CC_NAME
  • CC_ADDRESS
  • SUBJECT
  • DATETIME
  • DATE
  • TIME
  • ID
  • BODY
  • BODY_TEXT
  • BODY_HTML
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/SubProperty2
z.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/\*/SubProperty3
Beispiel JSON:
{ Property1: [ { SubProperty2: "value 1" }, { SubProperty2: "value 2" }, ] }
JPEG *.jpg, *.jpeg Feldauswahl ASCII-Import-Definition „DD_JPG“:
  • LOCATION (GPS Location)
  • DATE (Aufnahme-Datum auslesen)
  • TIME (Aufnahme-Zeit auslesen)
  • DATETIME (Aufnahme-Datum/Zeit auslesen)
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:
  • ID
  • Location
  • CalStartDateTime
  • CalStartDate
  • CalStartTime
  • CalEndDateTime
  • CalEndDate
  • CalEndTime
  • CalCompleted
  • Priority
  • CalSubject
  • CalUser
  • CalText
  • Categories
  • CalDuration
  • CalSeriesPeriod
  • CalRemDeadline
Kontakte V-Card *.vcf Feldauswahl ASCII-Import-Definition „DD_CONTACT“:
  • NAME
  • PRENAME
  • LASTNAME
  • TITLE
  • ORG
  • BIRTHDAY
  • EMAIL
  • EMAIL<1-5>
  • PHONE
  • PHONE<1-5>
  • FAX
  • FAX<1-5>
  • STREET
  • CITY
  • REGION
  • ZIP
  • COUNTRY
  • NOTE
  • WEB

REST API

REST API

Die REST API für Dr.DOC Web ist eine Daten-Schnittstelle. Hier finden Sie die Dokumentation.

OCR-Texterkennung und automatische Belegtrennung via Barcode am Dr.DOC Netzwerk Server

OCR-Texterkennung und automatische Belegtrennung via Barcode am Dr.DOC Netzwerk Server

Wichtiger Hinweis: bitte beachten Sie beim Import am Server, bei (wenn alle Kriterien zutreffen):

  • Verwendung des Dubletten-Schlüsselfelds "DS"
  • Feldauswahl für Eingabedubletten
  • Feldvorbelegung "%F%" oder Autofeld "F"

Grund: Bei der Belegtrennung bekommen beide Dateien (bei Belegtrennung) den selben Dateinamen. Das kann zu unerwünschten Dubletten-Fehlern beim Import führen (Duplicate entry: DS wird verworfen oder ersetzt).

Option 1: Keine Scan-Jobs (PDF oder TIFF)

Diese Option bietet sich an, wenn PDFs archiviert werden sollen und/oder noch keine Scan-Jobs konfiguriert wurden.

Am Server in INI-Datei "KOMM\DOCUIMP.INI" bzw. der Verzeichnis-Import INI folgende Konfiguration vornehmen:

[DEFAULT_ASCII]
; oder Extension-spezifisch: [pdf]
Feldvorbelegung=<Name-Feldvorbelegung>
DateiTypDokumente=*
LinkNr=AutoLink
DokumenteImportieren=1

; Option 1: Barcode-Trennung + KEINE OCR + Extern-Link
BarcodeTrennung=1
; Option 2: Barcode-Trennung + OCR + Extern-Link
BarcodeTrennung=2

Am Server in INI-Datei, Archivspezifische INI im Formverzeichnis ("FORM\<Archiv-Name>.ini"): Feldname für OCR-Feld eintragen

[BARCODE_TEXT]
Fieldname=<Barcode-Feldname>

Am Server in INI-Datei, "%appdata%\ARCHIV.INI" und "%programdata%\ARCHIV.INI":

[OCR_SCANNEN]
BARCODE=1
OCR=1
SCHWELLWERT=0.00
; Für Intern-Link
EXTENDED=1
; Timeout erhöhen, da die OCR Sequentiell und nicht parallel ausgeführt wird.
[SERVICE]
TIMEOUT=10
[BARCODESETTINGS]
; Key "Types" nicht definieren, um alle Barcode-Type zuzulassen, ansonsten
; QR-Code: 65536
; Code-128: 4
; EAN-8: 8
; EAN-13: 16
; Codebar: 32
; UPCA: 1024
; UPCE: 2048
; PDF417: 8192
; Data-Matrix: 16384
; Data-Bar: 121072
Types=65536

Diese Option bietet sich an, wenn TIFFs archiviert werden sollen oder/und bereits Scan-Jobs konfiguriert wurden. Scan-Jobs sind über den Dr.DOC Client zu konfigurieren (Einstellungen -> Dokument-Quelle -> OCR-Scanner). Anschließend kann ein neues Dokument gescannt werden und die Einstellungen am Scan-Job vorgenommen werden (siehe Handbuch). Folgende Dateien sind aus dem TMP-Verzeichnis an den Dr.DOC Server-Service TMP-Verzeichnis zu übertragen:

  • *.tcf
  • *.rlt
  • scanjobjs.job

Am Server in INI-Datei "KOMM\DOCUIMP.INI" bzw. der Verzeichnis-Import INI folgende Konfiguration vornehmen:

[DEFAULT_ASCII]
; oder Extension-spezifisch: [pdf]
Feldvorbelegung=<Name-Feldvorbelegung>
LinkNr=BilddateiIntern
DateiTypDokumente=*

; Option 1: Barcode-Trennung + OCR + Scan-Job + Intern-Link
DokumenteImportieren=2
BarcodeTrennung=1
; Nummer des Scan-Jobs
ScanJob=1

; Option 2: KEINE Barcode-Trennung + OCR + Scan-Job + Intern-Link
DokumenteImportieren=2
BarcodeTrennung=0
; Nummer des Scan-Jobs
ScanJob=1

; Option 3: Nur für TIFF Dokumente: KEINE Barcode-Trennung + OCR + Scan-Job + Intern-Link
[tif]
LinkNr=BilddateiIntern
DokumenteImportieren=1
BarcodeTrennung=0
; Nummer des Scan-Jobs
ScanJob=1

Am Server in INI-Datei, "%appdata%\ARCHIV.INI" und "%programdata%\ARCHIV.INI":

[OCR_SCANNEN]
BARCODE=1
OCR=1
SCHWELLWERT=0.00
EXTENDED=1
[PDF]
; OCR wird immer ausgeführt, auch bei durchsuchbaren PDFs
RENDERING=1

Dr.DOC Standard

Dr.DOC Standard

Archive administrieren

Archivumgebung initialisieren und Pfade anpassen

Dr.Doc.Standard.exe init:<API-KEY> ip:<IP-Adresse> port:<Port> env-init:<Archivumgebung-Basis-Verzeichnis> Beispiel: Dr.Doc.Standard.exe init:00001fjkdh ip:192.178.178.2 port:9995 env-init:D:\ARCHIV

Archiv umbenennen

Dr.Doc.Standard.exe init:<API-KEY> bvd:<BVD-Pfad> "signin:<Username>:<Password>" rename-archive:<Old-Archive-Name>,<New-Archive-Name> Beispiel: Dr.Doc.Standard.exe init:00001fjkdh "bvd:%TARGET_DIR%\USER\user.bvd" "signin:PUBLIC:Gast" rename-archive:docs,doc

Archiv reorganisieren

Ein Archiv reorganisieren

Dr.Doc.Standard.exe init:<API-KEY> bvd:<BVD-Pfad> "signin:<Username>:<Password>" reo-archive:<Archive-Name> Beispiel: Dr.Doc.Standard.exe init:00001fjkdh "bvd:%TARGET_DIR%\USER\user.bvd" "signin:PUBLIC:Gast" reo-archive:doc

Alle Archive reorganisieren

Dr.Doc.Standard.exe init:<API-KEY> bvd:<BVD-Pfad> "signin:<Username>:<Password>" reo-archive:* Beispiel: Dr.Doc.Standard.exe init:00001fjkdh "bvd:%TARGET_DIR%\USER\user.bvd" "signin:PUBLIC:Gast" reo-archive:*

Archiv zurücksetzen/Reset

Ein Archiv zurücksetzen/Reset

Dabei werden alle Daten und Dokumente gelöscht! Dr.Doc.Standard.exe init:<API-KEY> bvd:<BVD-Pfad> "signin:<Username>:<Password>" reset-archive:<Archive-Name> Beispiel: Dr.Doc.Standard.exe init:00001fjkdh "bvd:%TARGET_DIR%\USER\user.bvd" "signin:PUBLIC:Gast" reset-archive:doc

Alle Archive zurücksetzen/Reset

Dabei werden alle Daten und Dokumente gelöscht! Dr.Doc.Standard.exe init:<API-KEY> bvd:<BVD-Pfad> "signin:<Username>:<Password>" reset-archive:* Beispiel: Dr.Doc.Standard.exe init:00001fjkdh "bvd:%TARGET_DIR%\USER\user.bvd" "signin:PUBLIC:Gast" reset-archive:*

Benutzerverwaltung

Benutzer erstellen oder Passwort ändern

Dr.Doc.Standard.exe init:<API-KEY> bvd:<BVD-Pfad> "signin:<Username>:<Password>" set-user-password:<Username>:<Password> Beispiel: Dr.Doc.Standard.exe init:00001fjkdh "bvd:%TARGET_DIR%\USER\user.bvd" "signin:PUBLIC:Gast" set-user-password:hans.mueller:1234

Benutzer löschen

Dr.Doc.Standard.exe init:<API-KEY> bvd:<BVD-Pfad> "signin:<Username>:<Password>" delete-user:<Username> Beispiel: Dr.Doc.Standard.exe init:00001fjkdh "bvd:%TARGET_DIR%\USER\user.bvd" "signin:PUBLIC:Gast" delete-user:hans.mueller

Gruppe löschen

Dr.Doc.Standard.exe init:<API-KEY> bvd:<BVD-Pfad> "signin:<Username>:<Password>" delete-group:<Username> Beispiel: Dr.Doc.Standard.exe init:00001fjkdh "bvd:%TARGET_DIR%\USER\user.bvd" "signin:PUBLIC:Gast" delete-group:hans.mueller

TLS/SSL x509 Zertifikat installieren

TLS/SSL x509 Zertifikat installieren

Es gibt grundsätzlich zwei Möglichkeiten, für Dr.DOC Web ein TLS x509 Zertifikat für die Verbindungsverschlüsselung zu installieren.

  • A: Automatisch mit LetsEncrypt / Certbot
    • Weitgehend automatisierte Aktualisierung
    • Kostenlos, aber eine kleine Spende wäre nett: https://letsencrypt.org/donate/
    • Port 443 MUSS am Server für Dr.DOC Web verfügbar sein
    • Port Forwarding MUSS am Router für TCP Port 443 und TCP Port 80, mit Verweis auf den Server, aktiv sein
      • Bei Fritz Box: "Internet -> Freigaben -> Portfreigaben -> "Gerät für Freigaben hinzufügen" -> "Neue Freigabe" ->
        • Anwendung "HTTP-Server"
        • Anwendung "HTTPS-Server" oder
        • Anwendung "Andere Anwendung", Protokoll "TCP", Port "80"
        • Anwendung "Andere Anwendung", Protokoll "TCP", Port "443"
    • Sicherheitsfeatures nicht anpassbar
  • B: Manuelle Installation mit eigenem Zertifikat
    • Zu bevorzugen, wenn man eine PKI in der Organisation hat
    • Etwas komplizierter in der Einrichtung aber dafür mehr Anpassungsmöglichkeiten (Port, Schlüssellänge, Laufzeiten etc.)
    • Theoretisch sicherer, aber in der Praxis läuft bei den allermeisten CAs/TSPs der Signierungsprozess unsicher ab, da die CA den private Key erzeugt. Sicher(er) wäre, wenn die Organisation einen Private Key erzeugt, sowie einen Signing Request an die CA sendet und die CA den Signing Request bzw. das Zert signiert.

A: Automatisch mit LetsEncrypt / Certbot

1. Schritt

Dr.DOC Web Server Dienst beenden sc.exe stop "Dr.DOC Web Server"

2. Schritt

Öffnen Sie in Ihrem Dr.DOC Web Basisverzeichnis im Unterverzeichnis "confisgs" die Datei "server.ini" Pfad: <Web-Basisverzeichnis>\configs\server.ini z.B. C:\DrDOC\WEB\configs\server.ini

Bitte passen Sie folgende Einträge an:

[SERVER]
HOSTNAME=<Ihr Hostname>

3. Schritt

Als Administrator ausführen: Pfad: <Web-Basisverzeichnis>\cert.bat z.B. C:\DrDOC\WEB\cert.bat

Die LetsEncrypt Zertifikate laufen ca. alle drei Monate ab und müssen erneuert werden. Der Certbot aktualisiert die Zertifikat automatisch.

Folgende Aktionen werden ausgeführt:

  • CertBot (LetsEncrypt) installieren
  • Port setzen
  • PEM Datei Pfad setzen (SSL_CERT_FILE_PRIVATE, SSL_CERT_FILE_PUBLIC)
  • Server starten
  • Zertifikat für Web Server setzen

B: Manuelle Installation mit eigenem Zertifikat

1. Schritt

Dr.DOC Web Server Dienst beenden sc.exe stop "Dr.DOC Web Server"

2. Schritt

Öffnen Sie in Ihrem Dr.DOC Web Basisverzeichnis im Unterverzeichnis "configs" die Datei "server.ini" Pfad: <Web-Basisverzeichnis>\configs\server.ini z.B. C:\DrDOC\WEB\configs\server.ini

Bitte passen Sie folgende Einträge an:

[SERVER]
HOSTNAME=<Ihr Hostname>
PORT=443
Access-Control-Allow-Origin=<Sichere Quellen>
SSL_ACTIVE=true

SSL_CERT_FILE=<Pfad zur *.pfx Datei ODER Fingerprint des Zertifikats im Windows Zertifikate Store>
SSL_CERT_PASSWORD=<Passwort zur *.pfx Datei>

; oder PEM Zertifikat mit je einer Datei für Private- und Public Key

SSL_CERT_FILE_PRIVATE=<Pfad zur private key Datei>
SSL_CERT_FILE_PUBLIC=<Pfad zur PEM Cert Datei>

3. Schritt

Dr.DOC Web Server Dienst starten sc.exe start "Dr.DOC Web Server"

Web Node

Dr.DOC Web Node

Web Nodes sind Inhaltstypen für Dr.DOC Web.

WebDAV, CalDAV, CardDAV

WebDAV, CalDAV, CardDAV

WebDAV

Protokoll zur Verwaltung von Dokumenten. Das ermöglicht den direkten Zugriff auf Dr.DOC Dokumente via Windows Explorer und andere WebDAV Clients. Es werden pro Dr.DOC Archiv Feldauswahlen erstellt, um die Zuweisung einer WebDAV Eigenschaft mit einem Dr.DOC Feld und deren Werten zu verknüpfen. Dadurch kann man Dokumente mit entsprechenden Feldvorbelegungen erstellen oder danach suchen.

ASCII-Importdefinition "WEB_DAV"

Erstellen Sie eine Feldauswahl vom Typ ASCII-Importdefinition mit dem Namen "WEB_DAV" und folgenden Eigenschaften:

Feldwert in Feldauswahl Pflichtfeld Beschreibung Beispiel Feldname Beispiel Autofeld
DATE Änderungsdatum geaendert_am D
TIME Änderungszeit geaendert_um T
DATETIME Änderungsdatum/Zeit DT
DNAME<Level> Beschreibt den Verzeichnisnamen. <Level> kann Werte zwischen 1 bis 5 haben.
Jede Verzeichnis-Ebene entspricht einem DNAME<Level>-Eintrag wird einem Dr.DOC Feld zugeordnet bzw. im Client als Verzeichnis dargestellt. Aus der Kombination bildet sich der Verzeichnisname.
Firma FF<Level>
FNAME<Level> x Beschreibt den Dateinamen. <Level> kann Werte zwischen 1 bis 4 haben.
Jede Ebene wird einem Dr.DOC Feld zugeordnet und im Dateinamen mit __-__ aneinandergefügt. Aus der Kombination bildet sich der Dateiname.
Die Kombination der zugewiesenen Felder MUSS eindeutig sein.
Name F
ID x Eindeutige ID/GUID.
CalDAV Client Apps setzen beim Erstellen teils eindeutige IDs und erwarten, dass die ID nicht geändert wird.
Wenn ein Dokument in Dr.DOC erstellt wurde, sollte ebenfalls eine eindeutige ID erstellt werden. Es empfiehlt sich ein veränderbares ID-Feld mit eindeutigem Schlüssel. Siehe Autofeld. Andernfalls kann auch das Dr.DOC Feld DokuNr verwendet werden.
uid V DrDocGUID

WebDAV Pfad

Der WebDAV Pfad baut sich wie folgt zusammen: https://<domain>.<tld>:<Port>/webdav/<Archiv-Name>/<Suchvorlage>/<DNAME1>/<DNAME..>/<FNAME1>__-__<FNAME..>.<Extension>

Parameter Beschreibung
<domain>.<tld>:<Port> Server HTTP(S) Adresse
<Archiv-Name> Name des Archivs
<Suchvorlage> Name der Suchvorlage.
Der Wert _ gibt an, dass alle Dokumente/Datensätze des Archivs angezeigt werden sollen.

z.B.: https://drdoc.com/webdav/doc/Firma 1/Eingangsrechnung/Lieferant Maier GmbH__-__12345.pdf

Netzlaufwerk am Windows Client einbinden

Option A: Windows über CMD

Ggf. WebDAV Web Client installieren: powershell -command "& {&Install-WindowsFeature WebDav-Redirector}"

Wenn Sie kein TLS/SSL Zertifikat im Dr.DOC Web installiert haben (TLS x509 Cert. wird dringend empfohlen!), muss folgendes ausgeführt werden, um unverschlüsselte Verbindungen zu erlauben. reg add "HKLM\SYSTEM\CurrentControlSet\Services\WebClient\Parameters" /v BasicAuthLevel /t REG_DWORD /d "1" /f

WebClient Dienst starten: sc start "WebClient"

Als Dr.DOC WebDAV als Netzlaufwerk einbinden (<drdoc.com> anpassen): ping drdoc.com -n 2 net use N: https://<drdoc.com>/webdav/

Option B: Windows über GUI

So binden Sie ein Netzlaufwerk mittels WebDAV unter Windows 8 bzw. Windows 10 ein:

  1. Der Dienst WebClient muss laufen (automatisch). Das ist i.d.R. der Fall.
  2. Öffnen Sie den Windows-Explorer.
  3. Windows 8: Klicken Sie oben in der Menüleiste im Reiter Computer auf Netzwerkadresse hinzufügen. Windows 10: Klicken Sie in der Menüleiste links mit der rechten Maustaste auf Netzwerk. Klicken Sie anschließend auf Netzlaufwerk verbinden... .
  4. Wählen Sie das gewünschte Laufwerk.
  5. Klicken Sie auf den Link Verbindung mit einer Website herstellen, auf der Sie Dokumente und Bilder speichern können. Das Fenster Eine Netzwerkadresse hinzufügen öffnet sich.
  6. Klicken Sie auf Weiter.
  7. Klicken Sie auf Eine benutzerdefinierte Netzwerkadresse auswählen.
  8. Klicken Sie auf Weiter. Das Fenster Eine Netzwerkadresse hinzufügen  öffnet sich.
  9. Geben Sie im Feld Internet- oder Netzwerkadresse: Ihre Domain im folgenden Format ein: https://ihre-domain.de:443/webdav/
Mac OS

https://support.apple.com/de-de/guide/mac-help/mchlp1546/mac

Android

App Davx5, siehe: https://www.davx5.com/ Es können auch Aufgaben, Termine und Journals synchronisiert werden! Für Organisationen gibt es die App "Managed DAVx⁵" mit der die Einstellungen auf alle Geräte der Organisation ausgerollt werden können.

Netzlaufwerk am Client entfernen

Option A: Windows über CMD

net N: /DELETE

CalDAV

Protokoll zur Verwaltung von Terminen und Aufgaben.

Feldauswahl

Das Mapping der Termineigenschaften erfolgt über die Feldauswahlen wie hier beschrieben für Extension *.ics.

CalDAV Pfad

Der CalDAV Pfad baut sich wie folgt zusammen, hat keine Verzeichnisse mit DNAME1 etc. https://<domain>.<tld>/caldav/<Archiv-Name>/<Suchvorlage>/<ID>.ics z.B.: https://drdoc.com/caldav/termine/_/123456.ics Pfad für CalDAV Client (z.B. Thunderbird oder DAVx5): https://drdoc.com/caldav/termine/_/

CardDAV

Protokoll zur Verwaltung von Kontakten.

Feldauswahl

Das Mapping der Termineigenschaften erfolgt über die Feldauswahlen wie hier beschriebeen für Extension *.vcf.

CardDAV Pfad

Der CardDAV Pfad baut sich wie der WebDAV Pfad zusammen, hat keine Verzeichnisse mit DNAME1 etc. https://<domain>.<tld>/carddav/<Archiv-Name>/<Suchvorlage>/<ID>.vcf z.B.: https://drdoc.com/carddav/kontakte/_/123456.vcf Pfad für CardDAV Client (z.B. DAVx5): https://drdoc.com/carddav/kontakte/_/

Diese Website verwendet aus technischen Gründen Cookies für das Caching bzw. Bereitstellen von Session-bezogenen Inhalten. Diese Website verwendet Cookies und nutzt Website Tracking-Technologien von Dritten, um ihre Dienste anzubieten, stetig zu verbessern und Werbung entsprechend der Interessen der Nutzer anzuzeigen.
Ich bin mit der Datenschutzerklärung einverstanden und kann meine Einwilligung jederzeit mit Wirkung für die Zukunft widerrufen oder ändern.
Aus Gründen der Vernunft und besseren Lesbarkeit verzichten wir auf die gleichzeitige Verwendung der Sprachformen männlich und weiblich. Sämtliche Personenbezeichnungen gelten daher gleichermaßen für alle Geschlechter.