﻿#########################################
#      KWP Workflow Service EDi			#
#         2022-09-07   Hufo			    #
#########################################

Konfiguration
----------------------------------------

"BnWinBenutzer"
Optional: Bnwinbenutzer unter dem der Service laufen soll, nicht der windows user. 
Wird nichts angegeben verwendet der Service default "ADMIN" 

"BnWinMandant"
Optional: Bnwinmandant unter dem der Service laufen soll.

"BnWinPath"
Erforderlich: (UNC) Pfad unter dem bnwin liegt.

"DbOutputPath"
Erforderlich: (UNC) Pfad unter dem die vom SQL Server erzeugte xml Datei zur Verarbeitung liegt.

"FileWatcherCareIntervalSeconds"
Optional: Sekunden in denen der interne Filesystemwatcher geprueft wird. 
Wird nichts angegeben verwendet der Service default 90s fuer die Pruefung. 

"HeartBeatIntervalForServiceConsole"
Optional: Minuten in denen Daten fuer die Serviceconsole auf die DB geschrieben werden.
Wird nichts angegeben verwendet der Service default 15 Minuten. 

"BnWinMandantForServiceConsole" 
Optional: Bnwinmandant unter dem die Daten der Serviceconsole geschrieben werden sollen

"DisableUpdate"
Optional: Deaktiviert den Updater.
Der Updater prueft ansonsten 60s nach dem Start des Services und nächtlich zwischen 1 und 4 Uhr auf neue Version.


Funktionsweise
----------------------------------------

Der Dienst erstellt beim Start einen Filesystemwatcher auf den unter "DbOutputPath" konfigurierten Pfad.
Ist der Pfad vorhanden wird zunaechst geprueft ob bereits Dateien zur Verarbeitunbg vorhanden sind (Neuerung zur Vorgaengerversion).
Wird eine Erstellung einer Xml-Datei in dem Verzeichnis erkannt versucht der Dienst daraus Daten fuer die 
Erstellung einer Aktivitaet zu lesen.
Sind die Daten ungueltig wird die datei umbenannt (Dateiendung '.err').
Bei Gueltigkeit der Daten wird versucht daraus Aktivitaeten zu erzeugen.
War dies erfolgreich wird die Datei entfernt.

Ein uebergeordneter FileWatcherCareJob checkt den Filewatcher und das Verzeichnis zyklisch 
(optional konfigurierbar via "FileWatcherCareIntervalSeconds").
Der Check beinhaltet reconnect zum DbOutputPath und ggf. einen Reset des Filesystemwatchers 
und die Abarbeitung 'liegengebliebener' Dateien im Fehlerfall.
