Konfiguration des Validation Service

Aktualisiert 4 weeks ago von DocuScan Support

Die nachfolgend beschriebenen Funktionen ist ab Version 1.0.19295 verfügbar.

Die Konfigurationseinstellungen werden in der Datei config.json vorgenommen, welche sich im Installationsordner befindet. Sofern diese Datei nicht vorhanden sein sollte muss diese erstellt werden.

Sofern diese Datei noch nicht vorhanden ist, erstellen Sie bitte eine neue Textdatei mit diesem Namen. Eine Beispieldatei ist diesem Artikel angefügt: config.json

Die Beispieldatei dient nur der Veranschaulichung und muss entsprechend Ihrer DocuWare Konfiguration angepasst werden. Bitte orientieren Sie sich in erster Linie an den Informationen in diesem Artikel.

Öffnen Sie diese Datei in einem Texteditor und suchen folgenden Bereich:

{
"LicenseKey" : "LIZENZSCHLÜSSEL",
"LogValidationData" : "false",
"DocuWarePlatformUrl": "http://docuwareserver/DocuWare/Platform",
"DocuWareUserName": "dwuser",
"DocuWarePassword": "dwpassword",
"StopValidationIfFailed": "true",
"Rules": [
REGELN SIEHE WEITER UNTEN. DIESER AUSCHNITT DIENT NUR DER DOKUMENTATION
]
}

Bei LicenseKey wird der Lizenzschlüssel eingefügt, den Sie für die lizensierte Organisation erhalten haben.

Für die Demo Firma Peters Engineering lautet der Schlüssel lwAAAAQAAAB1lksAWKfUARIAUGV0ZXJzIEVuZ2luZWVyaW5nB9Z1VlV4KIyS15ZR4ZHHz1Fo0TAnblz5KiuM3IFVVonkMG2eXawN5xwdB6UULFmj

Ohne Angabe eines Lizenzschlüssels kann der Validation Service für einen Testzeitraum von 30 Tagen genutzt werden.

LogValidationData (true/false) ermöglicht die Daten der Validierungsabfrage in das Logfile zu schreiben. Dies erfordert zudem, dass das Loglevel mindest auf INFO eingestellt wurde. INFO ist der Standardwert.

Wir empfehlen die Aktivierung (true) dieser Einstellung nur dann, wenn die Validierungsabfragen zur Fehleranalyse benötigt werden. Ansonsten werden die Logdateien mit unnötigen Informationen überfrachtet.

Während der Validierung werden die Anzeigetexte der DocuWare Felder aus DocuWare abgefragt. Dafür sind die Zugangsdaten von DocuWare erforderlich. Füllen Sie dazu bitte die Felder DocuWarePlatformUrl, DocuWareUserName und DocuWarePassword aus. Der DocuWare Organisationsname wird aus der Validierungsanfrage übernommen.

Normalerweise wird die Validierung beendet, sobald die Validierung einer Regel fehlschlägt. Sollen dennoch die verbliebenenen Regeln abgearbeitet werden, dann muss die Einstellung StopValidationIfFailed auf false gesetzt werden.

Konfigurationsdatei

Für die Konfigurationsdatei wird das JSON-Format verwendet.

Wenn eine Regel mehrfach mit unterschiedlichen Einstellungen verwendet werden soll, dann kann der entsprechende Block einfach dupliziert werden. Bitte achten Sie auf die korrekte Setzung der geschweiften Klammer und Kommata.

Verfügbare Regeln

Regelname

Beschreibung

EmptyFieldFromListRule

Wenn ein Feld leer ist, dann dürfen andere Felder nicht leer sein.

MandatoryFieldsRule

Pflichtfeldprüfung

SqlRule

Prüft anhand der ausgefüllten Werte ob eine Datenbankabfrage Werte zurück gibt oder nicht (Dublettenprüfung)

MandatoryFieldsFromTableRule

Prüft anhand der ausgefüllten Werte die erforderlichen Pflichtfelder über eine Tabellenmatrix.

ValidValuesByConditionRule

Prüft anhand des Wertes eines Feldes ob in einem anderen Feld nur die erlaubten Werte enthalten sind.

EmptyFieldsByConditionRule

Prüft anhand des Wertes eines Feldes ob andere Felder ausgefüllt sind.

Allgemeine Informationen zu den Regeln

Jede Regel verfügt über eine Reihe von übergeordneten Eigenschaften. Die Angabe dieser Eigenschaften ist, sofern nicht anders angegeben, optional.

Eigenschaft

Beschreibung

Pflichtangabe

Active

Um eine Regel vorrübergehend zu deaktivieren wird der Wert false erwartet. Andernfalls kann die Regel durch die explizite Angabe von true aktiviert werden oder die Eigenschaft wird entfernt.

Nein

RuleType

Definiert die Art der Regel. Mehr Informationen dazu und welche Angaben zu tätigen sind werden weiter unten beschrieben.

Ja

Description

Eine Beschreibung der Regel um diese in der Konfiguration leichter wiederzufinden.

Nein

FileCabinetId

Wenn angegeben, dann wird die Regel nur für das Archiv mit der entsprechenden GUID angewendet, andernfalls wird diese Regel übersprungen.

Nein

DialogId

Wenn angegeben, dann wird die Regel nur für den angegebenen Dialog angewendet. Wenn die DialogId angegeben wird, dann wird die Einstellung für die FileCabinetId ignoriert.

Nein

MessageText

Eine Vorlage für einen alternativen Text, sofern die Validierung nicht erfolgreich war. Der variable Feldname wird durch den Platzhalter {0} angegeben. Beispiel: Der Wert in Feld {0} ist ungültig. Wird die Eintrag MessageText leer oder weggelassen wird eine Standardmeldung ausgegeben.

Nein

EmptyFieldFromListRule

Diese Regel entspricht dem Typ 4 der alten Validation.dll

Wenn das in EmptyFieldName angegebene Feld nicht ausgefüllt wurde, dann müssen die Felder in NotEmptyFields ausgefüllt werden.

{
"RuleType": "EmptyFieldFromListRule",
"Description" : "Eigene Beschreibung dieser Regel",
"EmptyFieldName": "COMPANY",
"NotEmptyFields": [
"STREET",
"POSTCODE",
"CITY"
]
}

MandatoryFieldsRule

Prüft ob die Felder in NotEmptyFields gefüllt sind.

Bis einschließlich DocuWare 7.0 können Pflichtfelder nur auf Archivebene definiert werden. Mit dieser Regel ist es möglich Pflichtfelder auf Dialogebene anzugeben. Bitte achten Sie darauf keine Pflichtfelder auf Archivebene zu definieren um ggf. Konflikte zu vermeiden.
{
"RuleType": "MandatoryFieldsRule",
"Description" : "Eigene Beschreibung dieser Regel",
"NotEmptyFields": [
"STREET",
"POSTCODE",
"CITY"
]
}

SqlRule

Diese Regel entspricht dem Typ 1, 7, 8 und 9 der alten Validation.dll

Führt die SQL Abfrage die in QueryTemplate definiert wurde aus. Die in geschweiften Klammern angegebenen Platzhalter werden durch den Wert des entsprechenden Feldes ersetzt. Es wird geprüft ob die SQL Abfrage Daten liefert.

InvertValidationResult erlaubt die Werte false oder true. Durch die Angabe von false schlägt die Validierung fehl, wenn keine Datensätze gefunden werden. Bei der Angabe von true schlägt die Validierung fehl, wenn Datensätze gefunden werden. Letzerer Fall ist bespielsweise für eine Dublettenprüfung anwendbar.

Der ConnectionString muss passend zum angegebenen DatabaseType eingetragen werden. Umfangreiche Informationen zu ConnectionStrings finden Sie auch auf http://www.connectionstrings.com

Für DatabaseType können folgende Werte angebeben werden. Bitte achten Sie auf Groß-/Kleinschreibung.

SqlServer

Microsoft SQL Server

MySql

MySQL

Odbc

Wenn Sie eine ODBC Verbindung verwenden

OleDb

Wenn die Verbindung über einen OLEDB Provider hergestellt wird.

{
"RuleType": "SqlRule",
"Description" : "Eigene Beschreibung dieser Regel",
"DatabaseType": "SqlServer",
"ConnectionString": "CN",
"QueryTemplate": "SELECT * FROM TABLE WHERE Field={COMPANY}",
"InvertValidationResult" : "false"
}
Datumswerte in der SQL Abfrage verwenden

Wenn Sie ein Indexfeld mit einem Datumwert in der SQL Abfrage verwenden, dann muss dieser entsprechend konvertiert werden. Angenommen die Datum-Format-Einstellungen auf dem Webserver sind auf Deutsch eingestellt, dann würde an die SQL-Abfrage folgender Wert übergeben: 24.12.2019 00:00:00

Damit dieser Wert beim Vergleichen mit einem DATETIME Feld korrekt interpretiert wird, muss die SQL Abfrage wie folgt eingestellt werden:

SELECT * FROM TABLE WHERE Field=convert(datetime, '{DATEINDEXFIELD}', 104)

Weitere Informationen über den convert() Befehl finden Sie auf den Mircosoft-Webseiten.

MandatoryFieldsFromTableRule

Diese Regel entspricht dem Typ 6 der alten Validation.dll

Die SQL Abfrage, die in QueryTemplate definiert wurde, wird ausgeführt um aus einer Tabellenmatrix die Felder zu ermitteln die ausgefüllt werden müssen. Es wird geprüft ob die erforderlichen Felder ausgefüllt wurden.

Der ConnectionString muss passend zum angegebenen DatabaseType eingetragen werden. Umfangreiche Informationen zu ConnectionStrings finden Sie auch auf http://www.connectionstrings.com

Für DatabaseType können folgende Werte angebeben werden. Bitte achten Sie auf Groß-/Kleinschreibung.

SqlServer

Microsoft SQL Server

MySql

MySQL

Odbc

Wenn Sie eine ODBC Verbindung verwenden

OleDb

Wenn die Verbindung über einen OLEDB Provider hergestellt wird.

{
"RuleType": "MandatoryFieldsFromTableRule",
"Description" : "Eigene Beschreibung dieser Regel",
"DatabaseType": "SqlServer",
"ConnectionString": "Connection String for DatabaseType",
"QueryTemplate": "SELECT * FROM FSBERECHTIGUNGEN WHERE ABEREICH='{BEREICH}' AND ATHEMA='{THEMA}'"
}

Aufbau der Tabellenmatrix

Dem Beispiel oben folgend wäre folgender Aufbau der Tabellenmatrix erforderlich:

ABEREICH

ATHEMA

Pflichtfeld1

Pflichtfeld2

Pflichtfeld3

Bereich1

Thema1

X

X

Bereich1

Thema2

X

Die Feldnamen Pflichtfeld1...Pflichtfeldn müssen den Feldnamen des DocuWare Archivs entsprechen.

Wenn das Feld ein Pflichtfeld ist, dann muss der Feldwert = X sein.

Beispiel

Wenn im Ablagedialog in das Feld ABEREICH der Wert Bereich1 und in das Feld ATHEMA der Wert Thema1 eingetragen wurde, dann müssen die Felder Pflichtfeld1 und Pflichtfeld3 ebenfalls ausgefüllt werden.

Wenn jedoch im Ablagedialog in das Feld ABEREICH der Wert Bereich1 und in das Feld ATHEMA der Wert Thema2 eingetragen wurde, dann muss nur das Feld Pflichtfeld2 ausgefüllt werden.

ValidValuesByConditionRule

Diese Regel entspricht dem Typ 3 der alten Validation.dll

Prüft wenn im CheckField die CheckFieldCondition zutrifft ob im ProbeField einer der Werte aus ValidValues eingetragen ist.

{
"RuleType": "ValidValuesByConditionRule",
"Description" : "Eigene Beschreibung dieser Regel",
"CheckField": "DOCTYPE",
"CheckFieldCondition": "Invoice",
"ProbeField": "SUBDOCTYPE",
"ValidValues": [
"Purchase Invoice",
"Sales Invoice"
]
}

EmptyFieldsByConditionRule

Prüft wenn im CheckField die CheckFieldCondition zutrifft ob die Felder in NotEmptyFields gefüllt sind.

InvertValidationResult erlaubt die Werte false oder true. Wird der Wert auf true festgelegt, dann schlägt die Validierung fehl wenn Werte in NotEmptyFields eingetragen wurden.

{
"RuleType": "EmptyFieldsByConditionRule",
"Description" : "Eigene Beschreibung dieser Regel",
"InvertValidationResult" : "false",
"CheckField": "DOCTYPE",
"CheckFieldCondition": "Invoice",
"NotEmptyFields": [
"SKONTO",
"AMOUNT"
]
}


Wie waren wir?