diff --git a/app/DDWDResultHandler/clsProfil.vb b/app/DDWDResultHandler/clsProfil.vb index 9f6d371..3fc42d9 100644 --- a/app/DDWDResultHandler/clsProfil.vb +++ b/app/DDWDResultHandler/clsProfil.vb @@ -36,7 +36,7 @@ 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") + clsLogger.AddDetailLog("Raw-Daten für Profil '" & _Profilname & "', GUID: " & _profGUID & " geladen - Last Run: " & _proflastRun.ToString) Return True End If Next @@ -54,362 +54,369 @@ Public Class clsProfil 'Durchlauf des Profils wird aus dem Service gestartet wenn Init = True war Public Shared Function Profil_Durchlauf() Dim _error As Boolean = False - 'Try Dim Run_Profile As Boolean = False - 'Soll die Verarbeitung heute durchgeführt werden?? - 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) - Dim arr As String() - arr = _profRunType.Split(";") - clsLogger.AddDetailLog("arr(1): " & arr(1).ToString) - Select Case arr(0) - Case "TIME" - ' Dim intervall As Integer = clsSQLITE.konf_intervall / 60 - clsLogger.AddDetailLog("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) - If Time_next.ToString.StartsWith("11.11.1911") Then - clsLogger.AddDetailLog("Manueller Durchlauf des Profils - 11.11.1911") - Run_Profile = True - Else - 'Ist die Uhrzeit in der Range - If _RunTime.ToShortTimeString = Now.ToShortTimeString Then - Run_Profile = True - End If - End If + Try - Case "INTV" - 'Die Differenz berechnen - Dim DiffMin As Integer = DateDiff(DateInterval.Minute, _proflastRun, Date.Now) - Dim msg As String - msg = "Minutenangaben: " & vbNewLine - msg = msg & "DiffMin: " & DiffMin & vbNewLine - msg = msg & "Intervall: " & arr(1) - clsLogger.AddDetailLog(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) - End Select - If Run_Profile = True Then - clsLogger.Add(">> Start des Durchlaufes für Profil '" & _Profilname & "'", False) - 'den Durchlaufszeitpunkt speichern - clsDatatabase.Execute_non_Query("Update TBWMRH_PROFIL SET Running = 1 WHERE GUID = " & _profGUID) - clsLogger.AddDetailLog("Prüfen der windream-Suche.......") - If File.Exists(_profwdSuche) = False Then - clsLogger.Add("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: ") - Dim windreamSucheErgebnisse As WMObjects = clsWindream_allgemein.GetSearchDocuments(_profwdSuche) - If windreamSucheErgebnisse Is Nothing Then - clsLogger.Add("windreamSucheErgebnisse is nothing!", True, "clsProfil.Profil_Durchlauf") + 'Soll die Verarbeitung heute durchgeführt werden?? + 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("RUN CONFIGURED FOR TODAY") + clsLogger.AddDetailLog("_RunType: " & _profRunType) + Dim arr As String() + arr = _profRunType.Split(";") + clsLogger.AddDetailLog("arr(1): " & arr(1).ToString) + Select Case arr(0) + Case "TIME" + ' Dim intervall As Integer = clsSQLITE.konf_intervall / 60 + clsLogger.AddDetailLog("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) + If Time_next.ToString.StartsWith("11.11.1911") Then + clsLogger.AddDetailLog("Manueller Durchlauf des Profils - 11.11.1911") + Run_Profile = True + Else + 'Ist die Uhrzeit in der Range + If _RunTime.ToShortTimeString = Now.ToShortTimeString Then + Run_Profile = True + End If + End If + + Case "INTV" + 'Die Differenz berechnen + Dim DiffMin As Integer = DateDiff(DateInterval.Minute, _proflastRun, Date.Now) + Dim msg As String + msg = "DiffMin: " & DiffMin & vbNewLine & "Intervall: " & arr(1) + clsLogger.AddDetailLog(msg) + If DiffMin >= CInt(arr(1)) Then + 'Den Durchlauf erlauben + Run_Profile = True + Else + clsLogger.AddDetailLog("No run as " & DiffMin & " >= CInt(" & arr(1) & ") is false ") + + End If + Case Else + clsLogger.Add(">> _profRunType konnte nicht ausgewertet werden - " & arr(0), False) + End Select + If Run_Profile = True Then + clsLogger.Add(">> Start des Durchlaufes für Profil '" & _Profilname & "'", False) + 'den Durchlaufszeitpunkt speichern + clsDatatabase.Execute_non_Query("Update TBWMRH_PROFIL SET Running = 1 WHERE GUID = " & _profGUID) + clsLogger.AddDetailLog("Prüfen der windream-Suche.......") + If File.Exists(_profwdSuche) = False Then + clsLogger.Add("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 - 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") - 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) - If DT_PROFIL_JOB.Rows.Count > 0 Then + Else + ' windream-Suche für Profil starten + clsLogger.AddDetailLog("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() + 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") + 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) + If DT_PROFIL_JOB.Rows.Count > 0 Then - If clsDateiverarbeitung.InitProfilData = True Then - clsLogger.AddDetailLog("clsDateiverarbeitung.InitProfilData = True") + If clsDateiverarbeitung.InitProfilData = True Then + clsLogger.AddDetailLog("clsDateiverarbeitung.InitProfilData = True") - 'For Each DR_PR_JB As DataRow In DT_PROFIL_JOB.Rows - ' Dim result = DR_PR_JB.Item("JOB_TYP").ToString.ToUpper - ' Select Case DR_PR_JB.Item("JOB_TYP").ToString.ToUpper - ' Case "BNS json Download".ToUpper - ' 'ARRAY oder Äqivalent bilden - ' Dim sb As New StringBuilder() - ' Dim sw As New StringWriter(sb) - ' Using writer As JsonWriter = New JsonTextWriter(sw) - ' writer.Formatting = Formatting.Indented + 'For Each DR_PR_JB As DataRow In DT_PROFIL_JOB.Rows + ' Dim result = DR_PR_JB.Item("JOB_TYP").ToString.ToUpper + ' Select Case DR_PR_JB.Item("JOB_TYP").ToString.ToUpper + ' Case "BNS json Download".ToUpper + ' 'ARRAY oder Äqivalent bilden + ' Dim sb As New StringBuilder() + ' Dim sw As New StringWriter(sb) + ' Using writer As JsonWriter = New JsonTextWriter(sw) + ' writer.Formatting = Formatting.Indented - ' writer.WriteStartObject() - ' writer.WritePropertyName("CPU") - ' writer.WriteValue("Intel") - ' writer.WritePropertyName("PSU") - ' writer.WriteValue("500W") - ' writer.WritePropertyName("Drives") - ' writer.WriteStartArray() - ' writer.WriteValue("DVD read/writer") - ' writer.WriteComment("(broken)") - ' writer.WriteValue("500 gigabyte hard drive") - ' writer.WriteValue("200 gigabype hard drive") - ' writer.WriteEnd() - ' writer.WriteEndObject() - ' End Using - ' Console.WriteLine(sb.ToString()) - ' End Select - 'Next - Dim FileJobSuccessful As Boolean = False - 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 - Case "Export HDD".ToUpper - clsLogger.AddDetailLog("Case Export HDD") - 'Für jedes Dokument in der Windream-Ergebnisliste - 'For Each dok As WMObject In windreamSucheErgebnisse - ' aktuelles Dokument zum Export bereitstellen - EXPORTED_FILENAME = "" - If clsDateiverarbeitung.Export_File(WMdok, DR_PR_JB.Item("STRING1")) = True Then - FileJobSuccessful = True - 'If DT_PROFIL_FILE_JOB.Rows.Count > 0 Then - ' clsLogger.AddDetailLog("Anzahl DT_PROFIL_FILE_JOB.Rows.Count:" & DT_PROFIL_FILE_JOB.Rows.Count) - ' 'Für jeden File-Job + ' writer.WriteStartObject() + ' writer.WritePropertyName("CPU") + ' writer.WriteValue("Intel") + ' writer.WritePropertyName("PSU") + ' writer.WriteValue("500W") + ' writer.WritePropertyName("Drives") + ' writer.WriteStartArray() + ' writer.WriteValue("DVD read/writer") + ' writer.WriteComment("(broken)") + ' writer.WriteValue("500 gigabyte hard drive") + ' writer.WriteValue("200 gigabype hard drive") + ' writer.WriteEnd() + ' writer.WriteEndObject() + ' End Using + ' Console.WriteLine(sb.ToString()) + ' End Select + 'Next + Dim FileJobSuccessful As Boolean = False + 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 + Case "Export HDD".ToUpper + clsLogger.AddDetailLog("Case Export HDD") + 'Für jedes Dokument in der Windream-Ergebnisliste + 'For Each dok As WMObject In windreamSucheErgebnisse + ' aktuelles Dokument zum Export bereitstellen + EXPORTED_FILENAME = "" + If clsDateiverarbeitung.Export_File(WMdok, DR_PR_JB.Item("STRING1")) = True Then + FileJobSuccessful = True + 'If DT_PROFIL_FILE_JOB.Rows.Count > 0 Then + ' clsLogger.AddDetailLog("Anzahl DT_PROFIL_FILE_JOB.Rows.Count:" & DT_PROFIL_FILE_JOB.Rows.Count) + ' '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() - ' Exit For - ' End If - ' Select Case DR_PR_FILE_JOB.Item("TYP").ToString.ToLower - ' Case "Set Index".ToLower - ' Try - ' 'Überprüfen ob Value bereits gesetzt wurde? - ' Dim idxName As String = DR_PR_FILE_JOB.Item("STRING1").ToString - ' Dim idxvalue As String = DR_PR_FILE_JOB.Item("STRING2").ToString - ' If idxvalue.Contains("[%DATETIME]") Then - ' idxvalue = idxvalue.Replace("[%DATETIME]", Now.ToString) - ' End If - ' clsLogger.AddDetailLog("Datei soll mit Index '" & idxName & "'indexiert werden...") - ' Dim arrIndex() As String - ' ReDim Preserve arrIndex(0) - ' arrIndex(0) = idxName - ' clsLogger.AddDetailLog("...nach arrIndex") + ' 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() + ' Exit For + ' End If + ' Select Case DR_PR_FILE_JOB.Item("TYP").ToString.ToLower + ' Case "Set Index".ToLower + ' Try + ' 'Überprüfen ob Value bereits gesetzt wurde? + ' Dim idxName As String = DR_PR_FILE_JOB.Item("STRING1").ToString + ' Dim idxvalue As String = DR_PR_FILE_JOB.Item("STRING2").ToString + ' If idxvalue.Contains("[%DATETIME]") Then + ' idxvalue = idxvalue.Replace("[%DATETIME]", Now.ToString) + ' End If + ' clsLogger.AddDetailLog("Datei soll mit Index '" & idxName & "'indexiert werden...") + ' Dim arrIndex() As String + ' ReDim Preserve arrIndex(0) + ' arrIndex(0) = idxName + ' clsLogger.AddDetailLog("...nach arrIndex") - ' Dim arrValue() As String + ' Dim arrValue() As String - ' Dim aktvalue As Object - ' aktvalue = WMdok.GetVariableValue(idxName) - ' clsLogger.AddDetailLog("...nach aktValue zuweisen..") + ' Dim aktvalue As Object + ' aktvalue = WMdok.GetVariableValue(idxName) + ' clsLogger.AddDetailLog("...nach aktValue zuweisen..") - ' If aktvalue Is Nothing Then - ' clsLogger.AddDetailLog("Index '" & idxName & "' ist noch leer.") - ' ReDim Preserve arrValue(0) - ' arrValue(0) = idxvalue - ' Else - ' clsLogger.AddDetailLog("Index '" & idxName & "' ist bereits gefüllt.") - ' Dim myArray() - ' ReDim myArray(0) - ' myArray(0) = idxvalue + ' If aktvalue Is Nothing Then + ' clsLogger.AddDetailLog("Index '" & idxName & "' ist noch leer.") + ' ReDim Preserve arrValue(0) + ' arrValue(0) = idxvalue + ' Else + ' clsLogger.AddDetailLog("Index '" & idxName & "' ist bereits gefüllt.") + ' Dim myArray() + ' ReDim myArray(0) + ' myArray(0) = idxvalue - ' Dim VektorArray() - ' VektorArray = Return_VektorArray(WMdok, idxName, myArray, True) + ' Dim VektorArray() + ' VektorArray = Return_VektorArray(WMdok, idxName, myArray, True) - ' If VektorArray Is Nothing = False Then - ' ReDim arrValue(VektorArray.Length - 1) - ' Array.Copy(VektorArray, arrValue, VektorArray.Length) - ' End If + ' If VektorArray Is Nothing = False Then + ' ReDim arrValue(VektorArray.Length - 1) + ' Array.Copy(VektorArray, arrValue, VektorArray.Length) + ' End If - ' End If + ' End If - ' 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") - ' End If + ' 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") + ' End If - ' Catch ex As Exception - ' 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...") - ' 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...") - ' clsDateiverarbeitung.Rename_File_Vektor(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString) - ' Case "Execute Oracle Command".ToLower - ' Try - ' clsLogger.AddDetailLog("Execute Oracle Comman.......") - ' 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)") - ' 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.......") - ' FileJobSuccessful = clsDateiverarbeitung.RUN_MSSQL_COMMAND(WMdok, MSSQLconnectionstring, MSSQLCommandRAW) - ' Catch ex As Exception - ' clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteMSSQLCommand)") - ' End Try - ' End Select - ' 'Abschluss Bearbeitung File Job - ' clsLogger.WriteLog() - ' Next - 'Else - ' clsLogger.Add(">> KEINE File-JOBS für Profil '" & _Profilname & "' angelegt!", False, "clsProfil.Profil_Durchlauf") - ' clsLogger.WriteLog() - 'End If - Else - clsDatatabase.Execute_non_Query("UPDATE TBWMRH_PROFIL SET Running = 0, LETZTER_DURCHLAUF = Getdate() WHERE GUID = " & _profGUID) - End If + ' Catch ex As Exception + ' 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...") + ' 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...") + ' clsDateiverarbeitung.Rename_File_Vektor(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString) + ' Case "Execute Oracle Command".ToLower + ' Try + ' clsLogger.AddDetailLog("Execute Oracle Comman.......") + ' 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)") + ' 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.......") + ' FileJobSuccessful = clsDateiverarbeitung.RUN_MSSQL_COMMAND(WMdok, MSSQLconnectionstring, MSSQLCommandRAW) + ' Catch ex As Exception + ' clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteMSSQLCommand)") + ' End Try + ' End Select + ' 'Abschluss Bearbeitung File Job + ' clsLogger.WriteLog() + ' Next + 'Else + ' clsLogger.Add(">> KEINE File-JOBS für Profil '" & _Profilname & "' angelegt!", False, "clsProfil.Profil_Durchlauf") + ' clsLogger.WriteLog() + 'End If + Else + clsDatatabase.Execute_non_Query("UPDATE TBWMRH_PROFIL SET Running = 0, LETZTER_DURCHLAUF = Getdate() WHERE GUID = " & _profGUID) + End If 'Next - Case "BNS json Download".ToUpper - FileJobSuccessful = clsDateiverarbeitung.BNSjsonDownload(WMdok, DR_PR_JB.Item("STRING1"), DR_PR_JB.Item("STRING2")) + Case "BNS json Download".ToUpper + FileJobSuccessful = clsDateiverarbeitung.BNSjsonDownload(WMdok, DR_PR_JB.Item("STRING1"), DR_PR_JB.Item("STRING2")) - End Select - 'Abschluss Bearbeitung Job - clsLogger.WriteLog() - Next - '################################## - 'JETZT DER DURCHLAUF DER DATEI-JOBS - '################################## - If DT_PROFIL_FILE_JOB.Rows.Count > 0 Then - Dim filecount As Integer = 0 - '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() - Exit For - End If - Select Case DR_PR_FILE_JOB.Item("TYP").ToString.ToLower - Case "Set Index".ToLower - Try - 'Überprüfen ob Value bereits gesetzt wurde? - Dim idxName As String = DR_PR_FILE_JOB.Item("STRING1").ToString - Dim idxvalue As String = DR_PR_FILE_JOB.Item("STRING2").ToString - If idxvalue.Contains("[%DATETIME]") Then - idxvalue = idxvalue.Replace("[%DATETIME]", Now.ToString) - End If - clsLogger.AddDetailLog("Datei soll mit Index '" & idxName & "'indexiert werden...") - Dim arrIndex() As String - ReDim Preserve arrIndex(0) - arrIndex(0) = idxName - clsLogger.AddDetailLog("...nach arrIndex") + End Select + 'Abschluss Bearbeitung Job + clsLogger.WriteLog() + Next + '################################## + 'JETZT DER DURCHLAUF DER DATEI-JOBS + '################################## + If DT_PROFIL_FILE_JOB.Rows.Count > 0 Then + Dim filecount As Integer = 0 + '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() + Exit For + End If + Select Case DR_PR_FILE_JOB.Item("TYP").ToString.ToLower + Case "Set Index".ToLower + Try + 'Überprüfen ob Value bereits gesetzt wurde? + Dim idxName As String = DR_PR_FILE_JOB.Item("STRING1").ToString + Dim idxvalue As String = DR_PR_FILE_JOB.Item("STRING2").ToString + If idxvalue.Contains("[%DATETIME]") Then + idxvalue = idxvalue.Replace("[%DATETIME]", Now.ToString) + End If + clsLogger.AddDetailLog("Datei soll mit Index '" & idxName & "'indexiert werden...") + Dim arrIndex() As String + ReDim Preserve arrIndex(0) + arrIndex(0) = idxName + clsLogger.AddDetailLog("...nach arrIndex") - Dim arrValue() As String + Dim arrValue() As String - Dim aktvalue As Object - aktvalue = WMdok.GetVariableValue(idxName) - clsLogger.AddDetailLog("...nach aktValue zuweisen..") + Dim aktvalue As Object + aktvalue = WMdok.GetVariableValue(idxName) + clsLogger.AddDetailLog("...nach aktValue zuweisen..") - If aktvalue Is Nothing Then - clsLogger.AddDetailLog("Index '" & idxName & "' ist noch leer.") - ReDim Preserve arrValue(0) - arrValue(0) = idxvalue - Else - clsLogger.AddDetailLog("Index '" & idxName & "' ist bereits gefüllt.") - Dim myArray() - ReDim myArray(0) - myArray(0) = idxvalue + If aktvalue Is Nothing Then + clsLogger.AddDetailLog("Index '" & idxName & "' ist noch leer.") + ReDim Preserve arrValue(0) + arrValue(0) = idxvalue + Else + clsLogger.AddDetailLog("Index '" & idxName & "' ist bereits gefüllt.") + Dim myArray() + ReDim myArray(0) + myArray(0) = idxvalue - Dim VektorArray() - VektorArray = Return_VektorArray(WMdok, idxName, myArray, True) + Dim VektorArray() + VektorArray = Return_VektorArray(WMdok, idxName, myArray, True) + + If VektorArray Is Nothing = False Then + ReDim arrValue(VektorArray.Length - 1) + Array.Copy(VektorArray, arrValue, VektorArray.Length) + End If - If VektorArray Is Nothing = False Then - ReDim arrValue(VektorArray.Length - 1) - Array.Copy(VektorArray, arrValue, VektorArray.Length) End If - End If + 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") + End If - 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") - End If + Catch ex As Exception + 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...") + 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...") + clsDateiverarbeitung.Rename_File_Vektor(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString) + Case "Execute Oracle Command".ToLower + Try + clsLogger.AddDetailLog("Execute Oracle Comman.......") + 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)") + 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.......") + FileJobSuccessful = clsDateiverarbeitung.RUN_MSSQL_COMMAND(WMdok, MSSQLconnectionstring, MSSQLCommandRAW) + Catch ex As Exception + clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteMSSQLCommand)") + End Try + End Select + If filecount >= 20 Then + clsLogger.WriteLog() + filecount = 0 + End If + 'Abschluss Bearbeitung File Job - Catch ex As Exception - 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...") - 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...") - clsDateiverarbeitung.Rename_File_Vektor(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString) - Case "Execute Oracle Command".ToLower - Try - clsLogger.AddDetailLog("Execute Oracle Comman.......") - 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)") - 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.......") - FileJobSuccessful = clsDateiverarbeitung.RUN_MSSQL_COMMAND(WMdok, MSSQLconnectionstring, MSSQLCommandRAW) - Catch ex As Exception - clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteMSSQLCommand)") - End Try - End Select - If filecount >= 20 Then - clsLogger.WriteLog() - filecount = 0 - End If - 'Abschluss Bearbeitung File Job - - Next - Else - clsLogger.Add(">> KEINE File-JOBS für Profil '" & _Profilname & "' angelegt!", False, "clsProfil.Profil_Durchlauf") - clsLogger.WriteLog() - End If - Next - clsLogger.WriteLog() + Next + Else + clsLogger.Add(">> KEINE File-JOBS für Profil '" & _Profilname & "' angelegt!", False, "clsProfil.Profil_Durchlauf") + clsLogger.WriteLog() + End If + Next + clsLogger.WriteLog() + Else + clsLogger.Add(">> Initialisierung Profil nicht erfolgreich", True) + clsLogger.WriteLog() + End If Else - clsLogger.Add(">> Initialisierung Profil nicht erfolgreich", True) + clsLogger.Add(">> KEINE JOBS für Profil '" & _Profilname & "' angelegt!", False, "clsProfil.Profil_Durchlauf") clsLogger.WriteLog() End If Else - clsLogger.Add(">> KEINE JOBS für Profil '" & _Profilname & "' angelegt!", False, "clsProfil.Profil_Durchlauf") + ' keine Dateien zum Importieren + clsLogger.Add(">> Keine windream-Dokumente für Profil '" & _Profilname & "' vorhanden/gefunden.", False) + clsLogger.Add("", False) clsLogger.WriteLog() End If - Else - ' keine Dateien zum Importieren - clsLogger.Add(">> Keine windream-Dokumente für Profil '" & _Profilname & "' vorhanden/gefunden.", False) - clsLogger.Add("", False) - clsLogger.WriteLog() End If + End If - + Else + clsLogger.AddDetailLog("Verarbeitung für heute NICHT konfiguriert") + clsLogger.WriteLog() End If - Else - clsLogger.AddDetailLog("Verarbeitung für heute NICHT konfiguriert") + If Run_Profile = True Then + '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") + End If + clsLogger.AddDetailLog("") clsLogger.WriteLog() - 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() - Return True - 'Catch ex As Exception - ' clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf") - ' clsDatatabase.Execute_non_Query("Update TBWMRH_PROFIL SET Running = 0 WHERE GUID = " & _profGUID) - ' CriticalError = False - - ' Return False - 'End Try + Return True + Catch ex As Exception + clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf") + If Run_Profile = True Then + clsDatatabase.Execute_non_Query("Update TBWMRH_PROFIL SET Running = 0 WHERE GUID = " & _profGUID) + End If + ' + CriticalError = False + Return False + End Try End Function Private Shared Function Return_VektorArray(ByVal oDocument As WMObject, vktIndexName As String, NIIndexe As Object, CheckDuplikat As Boolean)