MS Klassen überarbeitet NLOG integriert
This commit is contained in:
@@ -5,6 +5,7 @@ Imports Newtonsoft.Json
|
||||
|
||||
Public Class clsProfil
|
||||
Inherits clsCURRENT
|
||||
Private Shared Logger As NLog.Logger = NLog.LogManager.GetCurrentClassLogger
|
||||
#Region "***** Variablen *****"
|
||||
|
||||
|
||||
@@ -15,20 +16,22 @@ Public Class clsProfil
|
||||
|
||||
Private Shared WD_aktivesDokument As WMObject
|
||||
#End Region
|
||||
Public Shared Function Init(guid As Integer)
|
||||
Try
|
||||
Sub New(PROFIL_ID As Integer, LogSpeicherort As String, praefix As String)
|
||||
Init(PROFIL_ID)
|
||||
|
||||
clsLogger.AddDetailLog("Start Initialisierung Profil für GUID: " & guid.ToString)
|
||||
Dim DT As DataTable = clsDatatabase.Return_Datatable("Select * from TBWMRH_PROFIL where GUID = " & guid)
|
||||
End Sub
|
||||
Public Shared Function Init(PROFIL_ID As Integer)
|
||||
Try
|
||||
Logger.Info("Start Initialisierung Profil für GUID: " & PROFIL_ID.ToString)
|
||||
Dim DT As DataTable = clsDatatabase.Return_Datatable("Select * from TBWMRH_PROFIL where GUID = " & PROFIL_ID)
|
||||
If DT.Rows.Count > 0 Then
|
||||
For Each DR As DataRow In DT.Rows
|
||||
clsCURRENT._profGUID = guid
|
||||
_profGUID = PROFIL_ID
|
||||
_Profilname = CStr(DR.Item("Profilname"))
|
||||
clsLogger.AddDetailLog("Check Profilname '" & _Profilname & "', GUID: " & _profGUID & " geladen")
|
||||
Logger.Info("Check Profilname '" & _Profilname & "', GUID: " & _profGUID & " geladen")
|
||||
' Überprüfen ob Profil aktiv oder inaktiv
|
||||
If CBool(DR.Item("Aktiv")) = False Then
|
||||
clsLogger.Add("## Profil '" & _Profilname & "' ist inaktiv geschaltet", False)
|
||||
clsLogger.Add("", False)
|
||||
Logger.Info("## Profil '" & _Profilname & "' ist inaktiv geschaltet")
|
||||
Return False
|
||||
Else
|
||||
_profObjekttyp = CStr(DR.Item("Objekttyp"))
|
||||
@@ -36,17 +39,17 @@ Public Class clsProfil
|
||||
_profDay = CStr(DR.Item("Day"))
|
||||
_profRunType = CStr(DR.Item("Run"))
|
||||
_proflastRun = DR.Item("Letzter_Durchlauf")
|
||||
clsLogger.AddDetailLog("Raw-Daten für Profil '" & _Profilname & "', GUID: " & _profGUID & " geladen")
|
||||
Logger.Info("Raw-Daten für Profil '" & _Profilname & "', GUID: " & _profGUID & " geladen")
|
||||
Return True
|
||||
End If
|
||||
Next
|
||||
Else
|
||||
clsLogger.Add("Achtung - keine Profile für diesen Durchlaufthread verfügbar", False)
|
||||
Logger.Warn("Achtung - keine Profile für diesen Durchlaufthread verfügbar")
|
||||
Return False
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError(ex.Message, "Profil_Init")
|
||||
Logger.Error(ex)
|
||||
Return False
|
||||
End Try
|
||||
|
||||
@@ -60,21 +63,21 @@ Public Class clsProfil
|
||||
Dim Dayofweek As Integer = My.Computer.Clock.LocalTime.DayOfWeek
|
||||
If _profDay.Substring(Dayofweek - 1, 1) = 1 Then
|
||||
'Verarbeitung soll heute durchgeführt werden
|
||||
clsLogger.AddDetailLog("Verarbeitung soll heute durchgeführt werden!")
|
||||
clsLogger.AddDetailLog("_RunType: " & _profRunType)
|
||||
Logger.Info("Verarbeitung soll heute durchgeführt werden!")
|
||||
Logger.Info("_RunType: " & _profRunType)
|
||||
Dim arr As String()
|
||||
arr = _profRunType.Split(";")
|
||||
clsLogger.AddDetailLog("arr(1): " & arr(1).ToString)
|
||||
Logger.Info("arr(1): " & arr(1).ToString)
|
||||
Select Case arr(0)
|
||||
Case "TIME"
|
||||
' Dim intervall As Integer = clsSQLITE.konf_intervall / 60
|
||||
clsLogger.AddDetailLog("Intervall: 1 Minute")
|
||||
Logger.Info("Intervall: 1 Minute")
|
||||
Dim Time_next As DateTime = _proflastRun.AddMinutes(1)
|
||||
Dim _RunTime As Date = CDate(arr(1))
|
||||
clsLogger.AddDetailLog("ProfilTime: " & _RunTime)
|
||||
clsLogger.AddDetailLog("_RunTime.ToShortTimeString: " & _RunTime.ToShortTimeString & " # " & "Now.ToShortTimeString: " & Now.ToShortTimeString)
|
||||
Logger.Info("ProfilTime: " & _RunTime)
|
||||
Logger.Info("_RunTime.ToShortTimeString: " & _RunTime.ToShortTimeString & " # " & "Now.ToShortTimeString: " & Now.ToShortTimeString)
|
||||
If Time_next.ToString.StartsWith("11.11.1911") Then
|
||||
clsLogger.AddDetailLog("Manueller Durchlauf des Profils - 11.11.1911")
|
||||
Logger.Info("Manueller Durchlauf des Profils - 11.11.1911")
|
||||
Run_Profile = True
|
||||
Else
|
||||
'Ist die Uhrzeit in der Range
|
||||
@@ -90,67 +93,66 @@ Public Class clsProfil
|
||||
msg = "Minutenangaben: " & vbNewLine
|
||||
msg = msg & "DiffMin: " & DiffMin & vbNewLine
|
||||
msg = msg & "Intervall: " & arr(1)
|
||||
clsLogger.AddDetailLog(msg)
|
||||
Logger.Info(msg)
|
||||
If DiffMin >= CInt(arr(1)) Then
|
||||
'Den Durchlauf erlauben
|
||||
Run_Profile = True
|
||||
End If
|
||||
Case Else
|
||||
clsLogger.Add(">> _profRunType konnte nicht ausgewertet werden - " & arr(0), False)
|
||||
Logger.Warn("_profRunType konnte nicht ausgewertet werden - " & arr(0))
|
||||
End Select
|
||||
If Run_Profile = True Then
|
||||
ClassWMResulthandler.clsCURRENT.DT_TBDD_EMAIL = clsDatatabase.Return_Datatable("SELECT * FROM TBDD_EMAIL_ACCOUNT WHERE ACTIVE = 1")
|
||||
ClassWMResulthandler.clsCURRENT.ARR_Exported_Files = Nothing
|
||||
clsLogger.Add(">> Start des Durchlaufes für Profil '" & _Profilname & "'", False)
|
||||
clsCURRENT.DT_TBDD_EMAIL = clsDatatabase.Return_Datatable("SELECT * FROM TBDD_EMAIL_ACCOUNT WHERE ACTIVE = 1")
|
||||
clsCURRENT.PROFILE_HandledFiles = Nothing
|
||||
Logger.Info("Start des Durchlaufes für Profil '" & _Profilname & "'")
|
||||
'den Durchlaufszeitpunkt speichern
|
||||
clsDatatabase.Execute_non_Query("Update TBWMRH_PROFIL SET Running = 1 WHERE GUID = " & _profGUID)
|
||||
clsLogger.AddDetailLog("Prüfen der windream-Suche.......")
|
||||
Logger.Info("Prüfen der windream-Suche.......")
|
||||
If File.Exists(_profwdSuche) = False Then
|
||||
clsLogger.Add("Die Windream-Suche '" & _profwdSuche & "' existiert nicht!", True, "clsProfil.Profil_Durchlauf")
|
||||
Logger.Warn("Die Windream-Suche '" & _profwdSuche & "' existiert nicht!", True, "clsProfil.Profil_Durchlauf")
|
||||
'wenn die gesuchte File eine Suche ist: per MAil informierne und Indexierung abbrechen
|
||||
clsDatatabase.Execute_non_Query("Update TBWMRH_PROFIL SET Running = 0 WHERE GUID = " & _profGUID)
|
||||
clsLogger.WriteLog()
|
||||
Return False
|
||||
Else
|
||||
' windream-Suche für Profil starten
|
||||
clsLogger.AddDetailLog("GetSearchDocuments für Suche '" & _profwdSuche & "' starten: ")
|
||||
Logger.Info("GetSearchDocuments für Suche '" & _profwdSuche & "' starten: ")
|
||||
Dim windreamSucheErgebnisse As WMObjects = clsWindream_allgemein.GetSearchDocuments(_profwdSuche)
|
||||
If windreamSucheErgebnisse Is Nothing Then
|
||||
clsLogger.Add("windreamSucheErgebnisse is nothing!", True, "clsProfil.Profil_Durchlauf")
|
||||
clsLogger.WriteLog()
|
||||
Logger.Warn("windreamSucheErgebnisse is nothing!", True, "clsProfil.Profil_Durchlauf")
|
||||
Return False
|
||||
End If
|
||||
If windreamSucheErgebnisse.Count > 0 Then
|
||||
clsLogger.Add("- Insgesamt sollen '" & windreamSucheErgebnisse.Count & "' Dateien bearbeitet werden", False)
|
||||
clsLogger.AddDetailLog("SELECT * FROM TBWMRH_PROFIL_JOB WHERE AKTIV = 1 AND PROFIL_ID = " & _profGUID & " ORDER BY REIHENFOLGE")
|
||||
Logger.Info("- Insgesamt sollen '" & windreamSucheErgebnisse.Count & "' Dateien bearbeitet werden")
|
||||
Logger.Info("SELECT * FROM TBWMRH_PROFIL_JOB WHERE AKTIV = 1 AND PROFIL_ID = " & _profGUID & " ORDER BY REIHENFOLGE")
|
||||
Dim DT_PROFIL_JOB As DataTable = clsDatatabase.Return_Datatable("SELECT * FROM TBWMRH_PROFIL_JOB WHERE AKTIV = 1 AND PROFIL_ID = " & _profGUID & " ORDER BY REIHENFOLGE")
|
||||
Dim DT_PROFIL_FILE_JOB As DataTable = clsDatatabase.Return_Datatable("SELECT * FROM TBWMRH_PROFIL_FILE_JOB WHERE AKTIV = 1 AND PROFIL_ID = " & _profGUID & " ORDER BY REIHENFOLGE")
|
||||
clsLogger.AddDetailLog("DT_PROFIL_JOB und DT_PROFIL_FILE_JOB generiert ")
|
||||
clsLogger.AddDetailLog("DT_PROFIL_JOB.Rows.Count = " & DT_PROFIL_JOB.Rows.Count)
|
||||
clsLogger.AddDetailLog("DT_PROFIL_FILE_JOB.Rows.Count = " & DT_PROFIL_FILE_JOB.Rows.Count)
|
||||
Logger.Info("DT_PROFIL_JOB und DT_PROFIL_FILE_JOB generiert ")
|
||||
Logger.Info("DT_PROFIL_JOB.Rows.Count = " & DT_PROFIL_JOB.Rows.Count)
|
||||
Logger.Info("DT_PROFIL_FILE_JOB.Rows.Count = " & DT_PROFIL_FILE_JOB.Rows.Count)
|
||||
If DT_PROFIL_JOB.Rows.Count > 0 Then
|
||||
|
||||
If clsDateiverarbeitung.InitProfilData = True Then
|
||||
clsLogger.AddDetailLog("clsDateiverarbeitung.InitProfilData = True")
|
||||
Logger.Info("clsDateiverarbeitung.InitProfilData = True")
|
||||
For Each _JOBROW As DataRow In DT_PROFIL_JOB.Rows
|
||||
clsLogger.AddDetailLog("JOB_TYP: " & _JOBROW.Item("JOB_TYP").ToString.ToUpper & " GUID: " & _JOBROW.Item("GUID").ToString)
|
||||
Logger.Info("JOB_TYP: " & _JOBROW.Item("JOB_TYP").ToString.ToUpper & " GUID: " & _JOBROW.Item("GUID").ToString)
|
||||
Next
|
||||
Dim FileJobSuccessful As Boolean = False
|
||||
Dim CountExportedDoc As Integer = 0
|
||||
clsCURRENT.PROFILE_HandledFiles = Nothing
|
||||
For Each WMdok As WMObject In windreamSucheErgebnisse
|
||||
For Each DR_PR_JB As DataRow In DT_PROFIL_JOB.Rows
|
||||
Select Case DR_PR_JB.Item("JOB_TYP").ToString.ToUpper
|
||||
Case "Create Mail Attachment".ToUpper
|
||||
'XX
|
||||
Dim Email_Empfänger = DR_PR_JB.Item("STRING1")
|
||||
clsLogger.AddDetailLog("Email_Empfänger: " & Email_Empfänger)
|
||||
Logger.Info("Email_Empfänger: " & Email_Empfänger)
|
||||
Dim Email_Betreff = DR_PR_JB.Item("STRING2")
|
||||
clsLogger.AddDetailLog("Email_Betreff: " & Email_Betreff)
|
||||
Logger.Info("Email_Betreff: " & Email_Betreff)
|
||||
Dim Email_Body = DR_PR_JB.Item("STRING3")
|
||||
clsLogger.AddDetailLog("Email_Body: " & Email_Body)
|
||||
Logger.Info("Email_Body: " & Email_Body)
|
||||
Dim EMAIL_PROFIL = DR_PR_JB.Item("STRING4")
|
||||
clsLogger.AddDetailLog("EMAIL_PROFIL: " & EMAIL_PROFIL)
|
||||
If Not IsNothing(ClassWMResulthandler.clsCURRENT.DT_TBDD_EMAIL) And ClassWMResulthandler.clsCURRENT.DT_TBDD_EMAIL.Rows.Count >= 1 Then
|
||||
Logger.Info("EMAIL_PROFIL: " & EMAIL_PROFIL)
|
||||
If Not IsNothing(clsCURRENT.DT_TBDD_EMAIL) And clsCURRENT.DT_TBDD_EMAIL.Rows.Count >= 1 Then
|
||||
Dim MAILFROM As String = ""
|
||||
Dim MAILSMTP As String = ""
|
||||
Dim MAIL_USER As String = ""
|
||||
@@ -158,7 +160,7 @@ Public Class clsProfil
|
||||
Dim MAIL_SSL As Boolean = False
|
||||
Dim MAIL_PORT As String = "25"
|
||||
|
||||
For Each emailrow As DataRow In ClassWMResulthandler.clsCURRENT.DT_TBDD_EMAIL.Rows
|
||||
For Each emailrow As DataRow In clsCURRENT.DT_TBDD_EMAIL.Rows
|
||||
If emailrow.Item("GUID") = CInt(EMAIL_PROFIL) Then
|
||||
MAILFROM = emailrow.Item("EMAIL_FROM")
|
||||
MAILSMTP = emailrow.Item("EMAIL_SMTP")
|
||||
@@ -176,42 +178,42 @@ Public Class clsProfil
|
||||
If PWPlain <> "" Then
|
||||
MAIL_USER_PW = PWPlain
|
||||
Else
|
||||
clsLogger.AddError("PWPlain is string.empty - Could not decrypt passwort", "clsProfil.Profil_Durchlauf(wrapper.DecryptData(MAIL_USER_PW))")
|
||||
clsLogger.WriteLog()
|
||||
Logger.Warn("PWPlain is string.empty - Could not decrypt passwort181")
|
||||
|
||||
Return False
|
||||
End If
|
||||
|
||||
Else
|
||||
clsLogger.AddError("PWPlain is nothing - Could not decrypt passwort", "clsProfil.Profil_Durchlauf(wrapper.DecryptData(MAIL_USER_PW))")
|
||||
clsLogger.WriteLog()
|
||||
Logger.Warn("PWPlain is string.empty - Could not decrypt passwort188")
|
||||
|
||||
Return False
|
||||
End If
|
||||
If Email_Empfänger.ToString.Contains("[%") Then
|
||||
Email_Empfänger = clsDateiverarbeitung.REGEX_REPLACE(WMdok, Email_Empfänger)
|
||||
clsLogger.AddDetailLog("Email_Empfänger: " & Email_Empfänger)
|
||||
Logger.Info("Email_Empfänger: " & Email_Empfänger)
|
||||
End If
|
||||
|
||||
Email_Betreff = clsDateiverarbeitung.REGEX_REPLACE(WMdok, Email_Betreff)
|
||||
Email_Body = clsDateiverarbeitung.REGEX_REPLACE(WMdok, Email_Body)
|
||||
Dim FILENAME = ClassWMResulthandler.clsCURRENT.WDLAUFWERK & ":" & WMdok.aPath
|
||||
Dim FILENAME = clsCURRENT.WDLAUFWERK & ":" & WMdok.aPath
|
||||
clsEmail.Email_Send_Independentsoft(Email_Betreff, Email_Body, Email_Empfänger, MAILFROM, MAILSMTP, MAIL_PORT, MAIL_USER, MAIL_USER_PW, MAIL_SSL, FILENAME)
|
||||
|
||||
|
||||
Else
|
||||
clsLogger.AddError("DT_TBDD_EMAIL is nothing or contains no rows", "clsProfil.Profil_Durchlauf(end concatted file via mail)")
|
||||
clsLogger.WriteLog()
|
||||
Logger.Warn("DT_TBDD_EMAIL is nothing or contains no rows")
|
||||
|
||||
Return False
|
||||
End If
|
||||
|
||||
Case "Export HDD".ToUpper
|
||||
clsLogger.AddDetailLog("Case Export HDD")
|
||||
Logger.Info("Case Export HDD")
|
||||
'Für jedes Dokument in der Windream-Ergebnisliste
|
||||
'For Each dok As WMObject In windreamSucheErgebnisse
|
||||
' aktuelles Dokument zum Export bereitstellen
|
||||
ClassWMResulthandler.clsCURRENT.EXPORTED_FILENAME = ""
|
||||
clsCURRENT.EXPORTED_FILENAME = ""
|
||||
If clsDateiverarbeitung.Export_File(WMdok, DR_PR_JB.Item("STRING1")) = True Then
|
||||
ReDim Preserve ClassWMResulthandler.clsCURRENT.ARR_Exported_Files(CountExportedDoc)
|
||||
ClassWMResulthandler.clsCURRENT.ARR_Exported_Files(CountExportedDoc) = ClassWMResulthandler.clsCURRENT.EXPORTED_FILENAME
|
||||
ReDim Preserve clsCURRENT.PROFILE_HandledFiles(CountExportedDoc)
|
||||
clsCURRENT.PROFILE_HandledFiles(CountExportedDoc) = clsCURRENT.EXPORTED_FILENAME
|
||||
CountExportedDoc += 1
|
||||
FileJobSuccessful = True
|
||||
Else
|
||||
@@ -226,7 +228,7 @@ Public Class clsProfil
|
||||
Dim printername = DR_PR_JB.Item("STRING1")
|
||||
Dim filename = clsCURRENT.WDLAUFWERK & ":" & WMdok.aPath '& "\" & WMdok.aName
|
||||
If File.Exists(pdfxchange) = False Then
|
||||
clsLogger.Add("PDFXChange existiert nicht am Ort...", True)
|
||||
Logger.Warn("PDFXChange existiert nicht am Ort...")
|
||||
Continue For
|
||||
End If
|
||||
Dim myProcess As New Process
|
||||
@@ -236,7 +238,7 @@ Public Class clsProfil
|
||||
Dim _argument As String = "/printto: """ & printername & """ """ & filename & """"
|
||||
|
||||
myProcess.StartInfo.Arguments = _argument
|
||||
clsLogger.AddDetailLog("Arguments: " & _argument)
|
||||
Logger.Info("Arguments: " & _argument)
|
||||
Try
|
||||
myProcess.Start()
|
||||
Dim p As Process
|
||||
@@ -248,25 +250,33 @@ Public Class clsProfil
|
||||
Do While p.HasExited = False
|
||||
|
||||
If sw.Elapsed.TotalSeconds = 30 Then
|
||||
clsLogger.AddDetailLog("Still waiting (30 sec) for ending of process-id: " & myProcess.Id.ToString)
|
||||
Logger.Info("Still waiting (30 sec) for ending of process-id: " & myProcess.Id.ToString)
|
||||
ElseIf sw.Elapsed.TotalMinutes = 1 Then
|
||||
clsLogger.AddDetailLog("Still waiting (60 sec) for ending of process-id: " & myProcess.Id.ToString & " - Exit now")
|
||||
Logger.Info("Still waiting (60 sec) for ending of process-id: " & myProcess.Id.ToString & " - Exit now")
|
||||
Exit Do
|
||||
End If
|
||||
Loop
|
||||
clsLogger.AddDetailLog("...process has exited: ")
|
||||
Logger.Info("...process has exited: ")
|
||||
FileJobSuccessful = True
|
||||
sw.Stop()
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError(ex.Message, "clsProfil.Print2Printer StartProcess")
|
||||
Logger.Error(ex)
|
||||
End Try
|
||||
clsLogger.WriteLog()
|
||||
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(Print2Printer)")
|
||||
Logger.Error(ex)
|
||||
|
||||
End Try
|
||||
Case "Send InfoMail with WM-Search".ToUpper
|
||||
If clsCURRENT.PROFILE_HandledFiles.Length - 1 <> CountExportedDoc Then
|
||||
ReDim Preserve clsCURRENT.PROFILE_HandledFiles(CountExportedDoc)
|
||||
clsCURRENT.PROFILE_HandledFiles(CountExportedDoc) = clsCURRENT.EXPORTED_FILENAME
|
||||
CountExportedDoc += 1
|
||||
End If
|
||||
|
||||
End Select
|
||||
'Abschluss Bearbeitung Job
|
||||
clsLogger.WriteLog()
|
||||
|
||||
|
||||
Next
|
||||
'##################################
|
||||
'JETZT DER DURCHLAUF DER DATEI-JOBS
|
||||
@@ -275,8 +285,7 @@ Public Class clsProfil
|
||||
'Für jeden File-Job
|
||||
For Each DR_PR_FILE_JOB As DataRow In DT_PROFIL_FILE_JOB.Rows
|
||||
If FileJobSuccessful = False Then
|
||||
clsLogger.Add("AUSSTIEG FOR SCHLEIFE...", True)
|
||||
clsLogger.WriteLog()
|
||||
Logger.Warn("AUSSTIEG FOR SCHLEIFE...")
|
||||
Exit For
|
||||
End If
|
||||
Select Case DR_PR_FILE_JOB.Item("TYP").ToString.ToLower
|
||||
@@ -288,24 +297,24 @@ Public Class clsProfil
|
||||
If idxvalue.Contains("[%DATETIME]") Then
|
||||
idxvalue = idxvalue.Replace("[%DATETIME]", Now.ToString)
|
||||
End If
|
||||
clsLogger.AddDetailLog("Datei soll mit Index '" & idxName & "'indexiert werden...")
|
||||
Logger.Info("Datei soll mit Index '" & idxName & "'indexiert werden...")
|
||||
Dim arrIndex() As String
|
||||
ReDim Preserve arrIndex(0)
|
||||
arrIndex(0) = idxName
|
||||
clsLogger.AddDetailLog("...nach arrIndex")
|
||||
Logger.Info("...nach arrIndex")
|
||||
|
||||
Dim arrValue() As String
|
||||
|
||||
Dim aktvalue As Object
|
||||
aktvalue = WMdok.GetVariableValue(idxName)
|
||||
clsLogger.AddDetailLog("...nach aktValue zuweisen..")
|
||||
Logger.Info("...nach aktValue zuweisen..")
|
||||
|
||||
If aktvalue Is Nothing Then
|
||||
clsLogger.AddDetailLog("Index '" & idxName & "' ist noch leer.")
|
||||
Logger.Info("Index '" & idxName & "' ist noch leer.")
|
||||
ReDim Preserve arrValue(0)
|
||||
arrValue(0) = idxvalue
|
||||
Else
|
||||
clsLogger.AddDetailLog("Index '" & idxName & "' ist bereits gefüllt.")
|
||||
Logger.Info("Index '" & idxName & "' ist bereits gefüllt.")
|
||||
Dim myArray()
|
||||
ReDim myArray(0)
|
||||
myArray(0) = idxvalue
|
||||
@@ -323,64 +332,64 @@ Public Class clsProfil
|
||||
If arrValue Is Nothing = False Then
|
||||
clsWindream_Index.RunIndexing(WMdok, arrIndex, arrValue, _profObjekttyp)
|
||||
Else
|
||||
clsLogger.Add(">> arrValue is nothing - keine Indexierung", False, "clsProfil.Profil_Durchlauf")
|
||||
Logger.Warn("arrValue is nothing - keine Indexierung")
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(SetIndex)")
|
||||
Logger.Error(ex)
|
||||
'clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(SetIndex)")
|
||||
End Try
|
||||
Case "Rename File with windream Index".ToLower
|
||||
clsLogger.AddDetailLog("Exportierte Datei soll nach Indexvorgaben umbenannt werden...")
|
||||
Logger.Info("Exportierte Datei soll nach Indexvorgaben umbenannt werden...")
|
||||
clsDateiverarbeitung.Rename_File(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString)
|
||||
Case "Rename File with WMVector (only one)".ToLower
|
||||
clsLogger.AddDetailLog("Exportierte Datei soll nach VektorIndexvorgaben umbenannt werden...")
|
||||
Logger.Info("Exportierte Datei soll nach VektorIndexvorgaben umbenannt werden...")
|
||||
clsDateiverarbeitung.Rename_File_Vektor(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString)
|
||||
Case "Execute Oracle Command".ToLower
|
||||
Try
|
||||
clsLogger.AddDetailLog("Execute Oracle Command.......")
|
||||
Logger.Info("Execute Oracle Command.......")
|
||||
Dim oracleconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString
|
||||
Dim oracleCommandRAW = DR_PR_FILE_JOB.Item("STRING2").ToString
|
||||
FileJobSuccessful = clsDateiverarbeitung.RUN_ORACLE_COMMAND(WMdok, oracleconnectionstring, oracleCommandRAW)
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteOracleCommand)")
|
||||
Logger.Error(ex)
|
||||
'clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteOracleCommand)")
|
||||
End Try
|
||||
Case "Execute MSSQL Command".ToLower
|
||||
Try
|
||||
Dim MSSQLconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString
|
||||
Dim MSSQLCommandRAW = DR_PR_FILE_JOB.Item("STRING2").ToString
|
||||
clsLogger.AddDetailLog("Execute MSSQL Command.......")
|
||||
Logger.Info("Execute MSSQL Command.......")
|
||||
FileJobSuccessful = clsDateiverarbeitung.RUN_MSSQL_COMMAND(WMdok, MSSQLconnectionstring, MSSQLCommandRAW)
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteMSSQLCommand)")
|
||||
Logger.Error(ex)
|
||||
'clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteMSSQLCommand)")
|
||||
End Try
|
||||
End Select
|
||||
'Abschluss Bearbeitung File Job
|
||||
|
||||
Next
|
||||
clsLogger.WriteLog()
|
||||
Else
|
||||
clsLogger.Add(">> KEINE File-JOBS für Profil '" & _Profilname & "' angelegt!", False, "clsProfil.Profil_Durchlauf")
|
||||
clsLogger.WriteLog()
|
||||
Logger.Warn("KEINE File-JOBS für Profil '" & _Profilname & "' angelegt!")
|
||||
End If
|
||||
Next
|
||||
clsLogger.WriteLog()
|
||||
|
||||
'Jetzt nochmal ein Durchlauf für Profiljobs wo alle Dateien abgearbeitet wurden.
|
||||
For Each DR_PR_JB As DataRow In DT_PROFIL_JOB.Rows
|
||||
clsLogger.AddDetailLog("Now again working on profile-type: " & DR_PR_JB.Item("JOB_TYP") & " - ID: " & DR_PR_JB.Item("GUID"))
|
||||
Logger.Info("Now again working on profile-type: " & DR_PR_JB.Item("JOB_TYP") & " - ID: " & DR_PR_JB.Item("GUID"))
|
||||
Select Case DR_PR_JB.Item("JOB_TYP").ToString.ToUpper
|
||||
Case "Concat Files to one pdf".ToUpper
|
||||
clsLogger.AddDetailLog("Case Concat Files to one pdf....")
|
||||
Logger.Info("Case Concat Files to one pdf....")
|
||||
Dim pdftk = clsCURRENT.DT_TBWMRH_KONFIGURATION.Rows(0).Item("PDF_TK_LOCATION")
|
||||
clsLogger.AddDetailLog("pdftk location: " & pdftk)
|
||||
Logger.Info("pdftk location: " & pdftk)
|
||||
clsCURRENT.CONCATTED_FILE = DR_PR_JB.Item("STRING1")
|
||||
clsLogger.AddDetailLog("CONCATTED_FILE location: " & ClassWMResulthandler.clsCURRENT.CONCATTED_FILE)
|
||||
Logger.Info("CONCATTED_FILE location: " & clsCURRENT.CONCATTED_FILE)
|
||||
Dim deleteJaNein = DR_PR_JB.Item("STRING2").ToString.ToUpper
|
||||
clsLogger.AddDetailLog("deleteJaNein: " & deleteJaNein.ToString)
|
||||
Logger.Info("deleteJaNein: " & deleteJaNein.ToString)
|
||||
If File.Exists(pdftk) Then
|
||||
If File.Exists(ClassWMResulthandler.clsCURRENT.CONCATTED_FILE) Then
|
||||
If File.Exists(clsCURRENT.CONCATTED_FILE) Then
|
||||
Try
|
||||
File.Delete(ClassWMResulthandler.clsCURRENT.CONCATTED_FILE)
|
||||
File.Delete(clsCURRENT.CONCATTED_FILE)
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
@@ -394,7 +403,7 @@ Public Class clsProfil
|
||||
|
||||
Dim _argument As String
|
||||
Dim i As Integer
|
||||
For Each str As String In ClassWMResulthandler.clsCURRENT.ARR_Exported_Files
|
||||
For Each str As String In clsCURRENT.PROFILE_HandledFiles
|
||||
If i = 0 Then
|
||||
_argument = """" & str & """"
|
||||
Else
|
||||
@@ -402,16 +411,16 @@ Public Class clsProfil
|
||||
End If
|
||||
i += 1
|
||||
Next
|
||||
If File.Exists(ClassWMResulthandler.clsCURRENT.CONCATTED_FILE) Then
|
||||
If File.Exists(clsCURRENT.CONCATTED_FILE) Then
|
||||
Try
|
||||
File.Delete(ClassWMResulthandler.clsCURRENT.CONCATTED_FILE)
|
||||
File.Delete(clsCURRENT.CONCATTED_FILE)
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
|
||||
End If
|
||||
myProcess.StartInfo.Arguments = _argument & " cat output " & ClassWMResulthandler.clsCURRENT.CONCATTED_FILE
|
||||
clsLogger.AddDetailLog("Arguments: " & _argument & " cat output " & ClassWMResulthandler.clsCURRENT.CONCATTED_FILE)
|
||||
myProcess.StartInfo.Arguments = _argument & " cat output " & clsCURRENT.CONCATTED_FILE
|
||||
Logger.Info("Arguments: " & _argument & " cat output " & clsCURRENT.CONCATTED_FILE)
|
||||
myProcess.Start()
|
||||
ProcID = myProcess.Id
|
||||
|
||||
@@ -424,50 +433,50 @@ Public Class clsProfil
|
||||
Do While p.HasExited = False
|
||||
|
||||
If sw.Elapsed.TotalSeconds = 30 Then
|
||||
clsLogger.AddDetailLog("Still waiting (30 sec) for ending of process-id: " & ProcID.ToString)
|
||||
Logger.Info("Still waiting (30 sec) for ending of process-id: " & ProcID.ToString)
|
||||
ElseIf sw.Elapsed.TotalMinutes = 1 Then
|
||||
clsLogger.AddDetailLog("Still waiting (60 sec) for ending of process-id: " & ProcID.ToString & " - Exit now")
|
||||
Logger.Info("Still waiting (60 sec) for ending of process-id: " & ProcID.ToString & " - Exit now")
|
||||
Exit Do
|
||||
End If
|
||||
Loop
|
||||
clsLogger.AddDetailLog("...process has exited: ")
|
||||
Logger.Info("...process has exited: ")
|
||||
sw.Stop()
|
||||
clsLogger.AddDetailLog("Waiting for file: " & ClassWMResulthandler.clsCURRENT.CONCATTED_FILE)
|
||||
Do While File.Exists(ClassWMResulthandler.clsCURRENT.CONCATTED_FILE) = False
|
||||
Logger.Info("Waiting for file: " & clsCURRENT.CONCATTED_FILE)
|
||||
Do While File.Exists(clsCURRENT.CONCATTED_FILE) = False
|
||||
Console.WriteLine("...not existing!")
|
||||
Loop
|
||||
If deleteJaNein = "JA" Then
|
||||
For Each str As String In ClassWMResulthandler.clsCURRENT.ARR_Exported_Files
|
||||
For Each str As String In clsCURRENT.PROFILE_HandledFiles
|
||||
Try
|
||||
File.Delete(str)
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError("Unexpected error in deleting ARR_Exported_Files files: " & ex.Message, "clsProfil.Profil_Durchlauf(Concat Files to one pdf)")
|
||||
Logger.Error(ex)
|
||||
End Try
|
||||
|
||||
Next
|
||||
End If
|
||||
clsLogger.WriteLog()
|
||||
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError("Unexpected error: " & ex.Message, "clsProfil.Profil_Durchlauf(Concat Files to one pdf)")
|
||||
Logger.Error(ex) '("Unexpected error: " & ex.Message, "clsProfil.Profil_Durchlauf(Concat Files to one pdf)")
|
||||
End Try
|
||||
|
||||
|
||||
Else
|
||||
clsLogger.AddError("pdftk is not existing", "clsProfil.Profil_Durchlauf(Concat Files to one pdf)")
|
||||
Logger.Warn("pdftk is not existing")
|
||||
End If
|
||||
Case "Send concatted file via mail".ToUpper
|
||||
clsLogger.AddDetailLog("CASE Send concatted file via mail.... ")
|
||||
If File.Exists(ClassWMResulthandler.clsCURRENT.CONCATTED_FILE) = True Then
|
||||
Logger.Info("CASE Send concatted file via mail.... ")
|
||||
If File.Exists(clsCURRENT.CONCATTED_FILE) = True Then
|
||||
|
||||
Dim Email_Empfänger = DR_PR_JB.Item("STRING1")
|
||||
clsLogger.AddDetailLog("Email_Empfänger: " & Email_Empfänger)
|
||||
Logger.Info("Email_Empfänger: " & Email_Empfänger)
|
||||
Dim Email_Betreff = DR_PR_JB.Item("STRING2")
|
||||
clsLogger.AddDetailLog("Email_Betreff: " & Email_Betreff)
|
||||
Logger.Info("Email_Betreff: " & Email_Betreff)
|
||||
Dim Email_Body = DR_PR_JB.Item("STRING3")
|
||||
clsLogger.AddDetailLog("Email_Body: " & Email_Body)
|
||||
Logger.Info("Email_Body: " & Email_Body)
|
||||
Dim EMAIL_PROFIL = DR_PR_JB.Item("STRING4")
|
||||
clsLogger.AddDetailLog("EMAIL_PROFIL: " & EMAIL_PROFIL)
|
||||
If Not IsNothing(ClassWMResulthandler.clsCURRENT.DT_TBDD_EMAIL) And ClassWMResulthandler.clsCURRENT.DT_TBDD_EMAIL.Rows.Count >= 1 Then
|
||||
Logger.Info("EMAIL_PROFIL: " & EMAIL_PROFIL)
|
||||
If Not IsNothing(clsCURRENT.DT_TBDD_EMAIL) And clsCURRENT.DT_TBDD_EMAIL.Rows.Count >= 1 Then
|
||||
Dim MAILFROM As String = ""
|
||||
Dim MAILSMTP As String = ""
|
||||
Dim MAIL_USER As String = ""
|
||||
@@ -475,7 +484,7 @@ Public Class clsProfil
|
||||
Dim MAIL_SSL As Boolean = False
|
||||
Dim MAIL_PORT As Integer
|
||||
|
||||
For Each emailrow As DataRow In ClassWMResulthandler.clsCURRENT.DT_TBDD_EMAIL.Rows
|
||||
For Each emailrow As DataRow In clsCURRENT.DT_TBDD_EMAIL.Rows
|
||||
If emailrow.Item("GUID") = CInt(EMAIL_PROFIL) Then
|
||||
MAILFROM = emailrow.Item("EMAIL_FROM")
|
||||
MAILSMTP = emailrow.Item("EMAIL_SMTP")
|
||||
@@ -493,58 +502,52 @@ Public Class clsProfil
|
||||
If PWPlain <> "" Then
|
||||
MAIL_USER_PW = PWPlain
|
||||
Else
|
||||
clsLogger.AddError("PWPlain is string.empty - Could not decrypt passwort", "clsProfil.Profil_Durchlauf(wrapper.DecryptData(MAIL_USER_PW))")
|
||||
clsLogger.WriteLog()
|
||||
Logger.Warn("PWPlain is string.empty - Could not decrypt passwort")
|
||||
|
||||
Return False
|
||||
End If
|
||||
|
||||
Else
|
||||
clsLogger.AddError("PWPlain is nothing - Could not decrypt passwort", "clsProfil.Profil_Durchlauf(wrapper.DecryptData(MAIL_USER_PW))")
|
||||
clsLogger.WriteLog()
|
||||
Logger.Warn("PWPlain is string.empty - Could not decrypt passwort1")
|
||||
|
||||
Return False
|
||||
End If
|
||||
|
||||
clsEmail.Email_Send_Independentsoft(Email_Betreff, Email_Body, Email_Empfänger, MAILFROM, MAILSMTP, MAIL_PORT, MAIL_USER, MAIL_USER_PW, MAIL_SSL, ClassWMResulthandler.clsCURRENT.CONCATTED_FILE)
|
||||
clsEmail.Email_Send_Independentsoft(Email_Betreff, Email_Body, Email_Empfänger, MAILFROM, MAILSMTP, MAIL_PORT, MAIL_USER, MAIL_USER_PW, MAIL_SSL, clsCURRENT.CONCATTED_FILE)
|
||||
|
||||
|
||||
Else
|
||||
clsLogger.AddError("DT_TBDD_EMAIL is nothing or contains no rows", "clsProfil.Profil_Durchlauf(end concatted file via mail)")
|
||||
clsLogger.WriteLog()
|
||||
Logger.Warn("DT_TBDD_EMAIL is nothing or contains no rows")
|
||||
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
clsLogger.AddError("File not existing: " & ClassWMResulthandler.clsCURRENT.CONCATTED_FILE, "clsProfil.Profil_Durchlauf(Send concatted file via mail)")
|
||||
Logger.Warn("File not existing: " & clsCURRENT.CONCATTED_FILE)
|
||||
|
||||
End If
|
||||
|
||||
|
||||
End Select
|
||||
Next
|
||||
clsLogger.WriteLog()
|
||||
Else
|
||||
clsLogger.Add(">> Initialisierung Profil nicht erfolgreich", True)
|
||||
clsLogger.WriteLog()
|
||||
Logger.Warn("Initialisierung Profil nicht erfolgreich")
|
||||
End If
|
||||
Else
|
||||
clsLogger.Add(">> KEINE JOBS für Profil '" & _Profilname & "' angelegt!", False, "clsProfil.Profil_Durchlauf")
|
||||
clsLogger.WriteLog()
|
||||
Logger.Warn("KEINE JOBS für Profil '" & _Profilname & "' angelegt!")
|
||||
End If
|
||||
Else
|
||||
' keine Dateien zum Importieren
|
||||
clsLogger.Add(">> Keine windream-Dokumente für Profil '" & _Profilname & "' vorhanden/gefunden.", False)
|
||||
clsLogger.Add("", False)
|
||||
clsLogger.WriteLog()
|
||||
Logger.Warn("Keine windream-Dokumente für Profil '" & _Profilname & "' vorhanden/gefunden.")
|
||||
End If
|
||||
End If
|
||||
|
||||
End If
|
||||
Else
|
||||
clsLogger.AddDetailLog("Verarbeitung für heute NICHT konfiguriert")
|
||||
clsLogger.WriteLog()
|
||||
Logger.Info("Verarbeitung für heute NICHT konfiguriert")
|
||||
End If
|
||||
'Abschluss des Profiles
|
||||
clsDatatabase.Execute_non_Query("UPDATE TBWMRH_PROFIL SET Running = 0, LETZTER_DURCHLAUF = GETDATE() WHERE GUID = " & _profGUID)
|
||||
clsLogger.AddDetailLog("'UPDATE TBWMRH_PROFIL SET Running = 0' ausgeführt")
|
||||
clsLogger.WriteLog()
|
||||
Logger.Info("'UPDATE TBWMRH_PROFIL SET Running = 0' ausgeführt")
|
||||
Return True
|
||||
'Catch ex As Exception
|
||||
' clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf")
|
||||
@@ -586,7 +589,7 @@ Public Class clsProfil
|
||||
End If
|
||||
Next
|
||||
Else
|
||||
clsLogger.AddDetailLog("Duplikatprüfung soll durchgeführt werden.")
|
||||
Logger.Info("Duplikatprüfung soll durchgeführt werden.")
|
||||
'Duplikat Prüfung an, also nur anhängen wenn Wert <>
|
||||
For Each WDValue As Object In wertWD
|
||||
If WDValue Is Nothing = False Then
|
||||
@@ -594,7 +597,7 @@ Public Class clsProfil
|
||||
ReDim Preserve ValueArray(Anzahl)
|
||||
'Den Wert im Array speichern
|
||||
ValueArray(Anzahl) = WDValue.ToString
|
||||
clsLogger.AddDetailLog("Value (" & Anzahl & ") " & WDValue.ToString)
|
||||
Logger.Info("Value (" & Anzahl & ") " & WDValue.ToString)
|
||||
Anzahl += 1
|
||||
End If
|
||||
Next
|
||||
@@ -602,21 +605,21 @@ Public Class clsProfil
|
||||
For Each NewValue As Object In NIIndexe
|
||||
If NewValue Is Nothing = False Then
|
||||
If ValueArray.Contains(NewValue) = False Then
|
||||
clsLogger.AddDetailLog("New Value (" & Anzahl & ") " & NewValue.ToString)
|
||||
Logger.Info("New Value (" & Anzahl & ") " & NewValue.ToString)
|
||||
'Das Array anpassen
|
||||
ReDim Preserve ValueArray(Anzahl)
|
||||
'Den Wert im Array speichern
|
||||
ValueArray(Anzahl) = NewValue.ToString
|
||||
Anzahl += 1
|
||||
Else
|
||||
clsLogger.AddDetailLog("Value '" & NewValue.ToString & "' bereits in Vektorfeld enthalten")
|
||||
Logger.Info("Value '" & NewValue.ToString & "' bereits in Vektorfeld enthalten")
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
clsLogger.AddDetailLog("Vektorfeld ist noch leer....")
|
||||
Logger.Info("Vektorfeld ist noch leer....")
|
||||
'Den/die Neuen Wert(e) anfügen
|
||||
For Each NewValue As Object In NIIndexe
|
||||
If NewValue Is Nothing = False Then
|
||||
@@ -629,7 +632,7 @@ Public Class clsProfil
|
||||
ValueArray(Anzahl) = NewValue.ToString
|
||||
Anzahl += 1
|
||||
Else
|
||||
clsLogger.AddDetailLog("Value '" & NewValue.ToString & "' bereits in Array enthalten")
|
||||
Logger.Info("Value '" & NewValue.ToString & "' bereits in Array enthalten")
|
||||
End If
|
||||
Else 'Dererste Wert, also hinzufügen
|
||||
'Das Array anpassen
|
||||
@@ -651,10 +654,10 @@ Public Class clsProfil
|
||||
Next
|
||||
End If
|
||||
|
||||
clsLogger.AddDetailLog("Return ValueArray: length " & ValueArray.Length)
|
||||
Logger.Info("Return ValueArray: length " & ValueArray.Length)
|
||||
Return ValueArray
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError(ex.Message, "Return_VektorArray")
|
||||
Logger.Error(ex)
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Reference in New Issue
Block a user