Viele Inhalte sind nur für berechtigte Benutzer sichtbar (z.B. Kunden, IT-Systemhäuser, Partner)
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:
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.
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.
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.
Datensatz laden, in der Maske rechts auf "Dokument AI"
In einer sersten Stufe kann ein Ollama Modell verwendet werden, um die Klassifizierungsaufgabe zu übernehmen:
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"
}
\```
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.
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 |
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 |
PUBLIC
anDD_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
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.
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 |
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 | 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) |
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"
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 | 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, 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, 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 365 benötigt einen OAuth2 Login. Das ist leider unnötig kompliziert.
http://localhost
"Yes
email
offline_access
openid
SMTP.Send
User.Read
IMAP.AccessAsUser.All
IMAP.AccessAsApp
Mail.Read
Mail.Send
SMTP.SendAsApp
https://login.microsoftonline.com/<Dierctory (tenant) ID>/oauth2/v2.0/authorize
openid
email
offline_access
https://outlook.office.com/IMAP.AccessAsUser.All
DrDoc.WebServerService.exe
als normale Anwendung starten und nicht als Dienst$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
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/
RX <Overwrite:1|0> <Source-Field> match <Regex> <Match-Nr>
RX <Overwrite:1|0> <Source-Field> replace <Regex> <Replace-Value>
Escape Chars: "/" (Slash) und " " (Space) MÜSSEN in der Regex Expression durch entsprechende escape Chars ersetzt werden:
Zeichen | Escape-Zeichen |
---|---|
" " (Space) | \x20 |
"/" (Slash) | \x2F |
:: 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\-\)\–\+\x2F\(\.]){3,7}\)?[0-9\x20\-\)\–\+\x2F\(]{1,20}(?=\s)
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 |
*.eml, *.msg | Default Feldauswahl ASCII-Import-Definition „DD_EMAIL“:
|
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“:
|
|
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“:
|
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).
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:
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.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
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
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
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:*
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
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:*
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
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
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
Es gibt grundsätzlich zwei Möglichkeiten, für Dr.DOC Web ein TLS x509 Zertifikat für die Verbindungsverschlüsselung zu installieren.
443
MUSS am Server für Dr.DOC Web verfügbar sein443
und TCP Port 80
, mit Verweis auf den Server, aktiv sein
Dr.DOC Web Server Dienst beenden
sc.exe stop "Dr.DOC Web Server"
Ö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>
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:
Dr.DOC Web Server Dienst beenden
sc.exe stop "Dr.DOC Web Server"
Ö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>
Dr.DOC Web Server Dienst starten
sc.exe start "Dr.DOC Web Server"
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.
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 |
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
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/
So binden Sie ein Netzlaufwerk mittels WebDAV unter Windows 8 bzw. Windows 10 ein:
WebClient
muss laufen (automatisch). Das ist i.d.R. der Fall.https://support.apple.com/de-de/guide/mac-help/mchlp1546/mac
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.
net N: /DELETE
Protokoll zur Verwaltung von Terminen und Aufgaben.
Das Mapping der Termineigenschaften erfolgt über die Feldauswahlen wie hier beschrieben für Extension *.ics.
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/_/
Protokoll zur Verwaltung von Kontakten.
Das Mapping der Termineigenschaften erfolgt über die Feldauswahlen wie hier beschriebeen für Extension *.vcf.
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/_/