This commit is contained in:
Digital Data - Marlon Schreiber 2018-02-08 12:39:07 +01:00
parent d835accd7d
commit d9a91aec19

View File

@ -36,7 +36,7 @@ Public Class clsProfil
_profDay = CStr(DR.Item("Day")) _profDay = CStr(DR.Item("Day"))
_profRunType = CStr(DR.Item("Run")) _profRunType = CStr(DR.Item("Run"))
_proflastRun = DR.Item("Letzter_Durchlauf") _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 Return True
End If End If
Next Next
@ -54,362 +54,369 @@ Public Class clsProfil
'Durchlauf des Profils wird aus dem Service gestartet wenn Init = True war 'Durchlauf des Profils wird aus dem Service gestartet wenn Init = True war
Public Shared Function Profil_Durchlauf() Public Shared Function Profil_Durchlauf()
Dim _error As Boolean = False Dim _error As Boolean = False
'Try
Dim Run_Profile As Boolean = False Dim Run_Profile As Boolean = False
'Soll die Verarbeitung heute durchgeführt werden?? Try
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
Case "INTV" 'Soll die Verarbeitung heute durchgeführt werden??
'Die Differenz berechnen Dim Dayofweek As Integer = My.Computer.Clock.LocalTime.DayOfWeek
Dim DiffMin As Integer = DateDiff(DateInterval.Minute, _proflastRun, Date.Now) If _profDay.Substring(Dayofweek - 1, 1) = 1 Then
Dim msg As String 'Verarbeitung soll heute durchgeführt werden
msg = "Minutenangaben: " & vbNewLine clsLogger.AddDetailLog("RUN CONFIGURED FOR TODAY")
msg = msg & "DiffMin: " & DiffMin & vbNewLine clsLogger.AddDetailLog("_RunType: " & _profRunType)
msg = msg & "Intervall: " & arr(1) Dim arr As String()
clsLogger.AddDetailLog(msg) arr = _profRunType.Split(";")
If DiffMin >= CInt(arr(1)) Then clsLogger.AddDetailLog("arr(1): " & arr(1).ToString)
'Den Durchlauf erlauben Select Case arr(0)
Run_Profile = True Case "TIME"
End If ' Dim intervall As Integer = clsSQLITE.konf_intervall / 60
Case Else clsLogger.AddDetailLog("Intervall: 1 Minute")
clsLogger.Add(">> _profRunType konnte nicht ausgewertet werden - " & arr(0), False) Dim Time_next As DateTime = _proflastRun.AddMinutes(1)
End Select Dim _RunTime As Date = CDate(arr(1))
If Run_Profile = True Then clsLogger.AddDetailLog("ProfilTime: " & _RunTime)
clsLogger.Add(">> Start des Durchlaufes für Profil '" & _Profilname & "'", False) clsLogger.AddDetailLog("_RunTime.ToShortTimeString: " & _RunTime.ToShortTimeString & " # " & "Now.ToShortTimeString: " & Now.ToShortTimeString)
'den Durchlaufszeitpunkt speichern If Time_next.ToString.StartsWith("11.11.1911") Then
clsDatatabase.Execute_non_Query("Update TBWMRH_PROFIL SET Running = 1 WHERE GUID = " & _profGUID) clsLogger.AddDetailLog("Manueller Durchlauf des Profils - 11.11.1911")
clsLogger.AddDetailLog("Prüfen der windream-Suche.......") Run_Profile = True
If File.Exists(_profwdSuche) = False Then Else
clsLogger.Add("Die Windream-Suche '" & _profwdSuche & "' existiert nicht!", True, "clsProfil.Profil_Durchlauf") 'Ist die Uhrzeit in der Range
'wenn die gesuchte File eine Suche ist: per MAil informierne und Indexierung abbrechen If _RunTime.ToShortTimeString = Now.ToShortTimeString Then
clsDatatabase.Execute_non_Query("Update TBWMRH_PROFIL SET Running = 0 WHERE GUID = " & _profGUID) Run_Profile = True
clsLogger.WriteLog() End If
Return False End If
Else
' windream-Suche für Profil starten Case "INTV"
clsLogger.AddDetailLog("GetSearchDocuments für Suche '" & _profwdSuche & "' starten: ") 'Die Differenz berechnen
Dim windreamSucheErgebnisse As WMObjects = clsWindream_allgemein.GetSearchDocuments(_profwdSuche) Dim DiffMin As Integer = DateDiff(DateInterval.Minute, _proflastRun, Date.Now)
If windreamSucheErgebnisse Is Nothing Then Dim msg As String
clsLogger.Add("windreamSucheErgebnisse is nothing!", True, "clsProfil.Profil_Durchlauf") 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() clsLogger.WriteLog()
Return False Return False
End If Else
If windreamSucheErgebnisse.Count > 0 Then ' windream-Suche für Profil starten
clsLogger.Add("- Insgesamt sollen '" & windreamSucheErgebnisse.Count & "' Dateien bearbeitet werden", False) clsLogger.AddDetailLog("GetSearchDocuments für Suche '" & _profwdSuche & "' starten: ")
clsLogger.AddDetailLog("SELECT * FROM TBWMRH_PROFIL_JOB WHERE AKTIV = 1 AND PROFIL_ID = " & _profGUID & " ORDER BY REIHENFOLGE") Dim windreamSucheErgebnisse As WMObjects = clsWindream_allgemein.GetSearchDocuments(_profwdSuche)
Dim DT_PROFIL_JOB As DataTable = clsDatatabase.Return_Datatable("SELECT * FROM TBWMRH_PROFIL_JOB WHERE AKTIV = 1 AND PROFIL_ID = " & _profGUID & " ORDER BY REIHENFOLGE") If windreamSucheErgebnisse Is Nothing Then
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.Add("windreamSucheErgebnisse is nothing!", True, "clsProfil.Profil_Durchlauf")
clsLogger.AddDetailLog("DT_PROFIL_JOB und DT_PROFIL_FILE_JOB generiert ") clsLogger.WriteLog()
clsLogger.AddDetailLog("DT_PROFIL_JOB.Rows.Count = " & DT_PROFIL_JOB.Rows.Count) Return False
clsLogger.AddDetailLog("DT_PROFIL_FILE_JOB.Rows.Count = " & DT_PROFIL_FILE_JOB.Rows.Count) End If
If DT_PROFIL_JOB.Rows.Count > 0 Then 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 If clsDateiverarbeitung.InitProfilData = True Then
clsLogger.AddDetailLog("clsDateiverarbeitung.InitProfilData = True") clsLogger.AddDetailLog("clsDateiverarbeitung.InitProfilData = True")
'For Each DR_PR_JB As DataRow In DT_PROFIL_JOB.Rows 'For Each DR_PR_JB As DataRow In DT_PROFIL_JOB.Rows
' Dim result = DR_PR_JB.Item("JOB_TYP").ToString.ToUpper ' Dim result = DR_PR_JB.Item("JOB_TYP").ToString.ToUpper
' Select Case DR_PR_JB.Item("JOB_TYP").ToString.ToUpper ' Select Case DR_PR_JB.Item("JOB_TYP").ToString.ToUpper
' Case "BNS json Download".ToUpper ' Case "BNS json Download".ToUpper
' 'ARRAY oder Äqivalent bilden ' 'ARRAY oder Äqivalent bilden
' Dim sb As New StringBuilder() ' Dim sb As New StringBuilder()
' Dim sw As New StringWriter(sb) ' Dim sw As New StringWriter(sb)
' Using writer As JsonWriter = New JsonTextWriter(sw) ' Using writer As JsonWriter = New JsonTextWriter(sw)
' writer.Formatting = Formatting.Indented ' writer.Formatting = Formatting.Indented
' writer.WriteStartObject() ' writer.WriteStartObject()
' writer.WritePropertyName("CPU") ' writer.WritePropertyName("CPU")
' writer.WriteValue("Intel") ' writer.WriteValue("Intel")
' writer.WritePropertyName("PSU") ' writer.WritePropertyName("PSU")
' writer.WriteValue("500W") ' writer.WriteValue("500W")
' writer.WritePropertyName("Drives") ' writer.WritePropertyName("Drives")
' writer.WriteStartArray() ' writer.WriteStartArray()
' writer.WriteValue("DVD read/writer") ' writer.WriteValue("DVD read/writer")
' writer.WriteComment("(broken)") ' writer.WriteComment("(broken)")
' writer.WriteValue("500 gigabyte hard drive") ' writer.WriteValue("500 gigabyte hard drive")
' writer.WriteValue("200 gigabype hard drive") ' writer.WriteValue("200 gigabype hard drive")
' writer.WriteEnd() ' writer.WriteEnd()
' writer.WriteEndObject() ' writer.WriteEndObject()
' End Using ' End Using
' Console.WriteLine(sb.ToString()) ' Console.WriteLine(sb.ToString())
' End Select ' End Select
'Next 'Next
Dim FileJobSuccessful As Boolean = False Dim FileJobSuccessful As Boolean = False
For Each WMdok As WMObject In windreamSucheErgebnisse For Each WMdok As WMObject In windreamSucheErgebnisse
For Each DR_PR_JB As DataRow In DT_PROFIL_JOB.Rows For Each DR_PR_JB As DataRow In DT_PROFIL_JOB.Rows
Select Case DR_PR_JB.Item("JOB_TYP").ToString.ToUpper Select Case DR_PR_JB.Item("JOB_TYP").ToString.ToUpper
Case "Create Mail Attachment".ToUpper Case "Create Mail Attachment".ToUpper
Case "Export HDD".ToUpper Case "Export HDD".ToUpper
clsLogger.AddDetailLog("Case Export HDD") clsLogger.AddDetailLog("Case Export HDD")
'Für jedes Dokument in der Windream-Ergebnisliste 'Für jedes Dokument in der Windream-Ergebnisliste
'For Each dok As WMObject In windreamSucheErgebnisse 'For Each dok As WMObject In windreamSucheErgebnisse
' aktuelles Dokument zum Export bereitstellen ' aktuelles Dokument zum Export bereitstellen
EXPORTED_FILENAME = "" EXPORTED_FILENAME = ""
If clsDateiverarbeitung.Export_File(WMdok, DR_PR_JB.Item("STRING1")) = True Then If clsDateiverarbeitung.Export_File(WMdok, DR_PR_JB.Item("STRING1")) = True Then
FileJobSuccessful = True FileJobSuccessful = True
'If DT_PROFIL_FILE_JOB.Rows.Count > 0 Then 'If DT_PROFIL_FILE_JOB.Rows.Count > 0 Then
' clsLogger.AddDetailLog("Anzahl DT_PROFIL_FILE_JOB.Rows.Count:" & DT_PROFIL_FILE_JOB.Rows.Count) ' clsLogger.AddDetailLog("Anzahl DT_PROFIL_FILE_JOB.Rows.Count:" & DT_PROFIL_FILE_JOB.Rows.Count)
' 'Für jeden File-Job ' 'Für jeden File-Job
' For Each DR_PR_FILE_JOB As DataRow In DT_PROFIL_FILE_JOB.Rows ' For Each DR_PR_FILE_JOB As DataRow In DT_PROFIL_FILE_JOB.Rows
' If FileJobSuccessful = False Then ' If FileJobSuccessful = False Then
' clsLogger.Add("AUSSTIEG FOR SCHLEIFE...", True) ' clsLogger.Add("AUSSTIEG FOR SCHLEIFE...", True)
' clsLogger.WriteLog() ' clsLogger.WriteLog()
' Exit For ' Exit For
' End If ' End If
' Select Case DR_PR_FILE_JOB.Item("TYP").ToString.ToLower ' Select Case DR_PR_FILE_JOB.Item("TYP").ToString.ToLower
' Case "Set Index".ToLower ' Case "Set Index".ToLower
' Try ' Try
' 'Überprüfen ob Value bereits gesetzt wurde? ' 'Überprüfen ob Value bereits gesetzt wurde?
' Dim idxName As String = DR_PR_FILE_JOB.Item("STRING1").ToString ' Dim idxName As String = DR_PR_FILE_JOB.Item("STRING1").ToString
' Dim idxvalue As String = DR_PR_FILE_JOB.Item("STRING2").ToString ' Dim idxvalue As String = DR_PR_FILE_JOB.Item("STRING2").ToString
' If idxvalue.Contains("[%DATETIME]") Then ' If idxvalue.Contains("[%DATETIME]") Then
' idxvalue = idxvalue.Replace("[%DATETIME]", Now.ToString) ' idxvalue = idxvalue.Replace("[%DATETIME]", Now.ToString)
' End If ' End If
' clsLogger.AddDetailLog("Datei soll mit Index '" & idxName & "'indexiert werden...") ' clsLogger.AddDetailLog("Datei soll mit Index '" & idxName & "'indexiert werden...")
' Dim arrIndex() As String ' Dim arrIndex() As String
' ReDim Preserve arrIndex(0) ' ReDim Preserve arrIndex(0)
' arrIndex(0) = idxName ' arrIndex(0) = idxName
' clsLogger.AddDetailLog("...nach arrIndex") ' clsLogger.AddDetailLog("...nach arrIndex")
' Dim arrValue() As String ' Dim arrValue() As String
' Dim aktvalue As Object ' Dim aktvalue As Object
' aktvalue = WMdok.GetVariableValue(idxName) ' aktvalue = WMdok.GetVariableValue(idxName)
' clsLogger.AddDetailLog("...nach aktValue zuweisen..") ' clsLogger.AddDetailLog("...nach aktValue zuweisen..")
' If aktvalue Is Nothing Then ' If aktvalue Is Nothing Then
' clsLogger.AddDetailLog("Index '" & idxName & "' ist noch leer.") ' clsLogger.AddDetailLog("Index '" & idxName & "' ist noch leer.")
' ReDim Preserve arrValue(0) ' ReDim Preserve arrValue(0)
' arrValue(0) = idxvalue ' arrValue(0) = idxvalue
' Else ' Else
' clsLogger.AddDetailLog("Index '" & idxName & "' ist bereits gefüllt.") ' clsLogger.AddDetailLog("Index '" & idxName & "' ist bereits gefüllt.")
' Dim myArray() ' Dim myArray()
' ReDim myArray(0) ' ReDim myArray(0)
' myArray(0) = idxvalue ' myArray(0) = idxvalue
' Dim VektorArray() ' Dim VektorArray()
' VektorArray = Return_VektorArray(WMdok, idxName, myArray, True) ' VektorArray = Return_VektorArray(WMdok, idxName, myArray, True)
' If VektorArray Is Nothing = False Then ' If VektorArray Is Nothing = False Then
' ReDim arrValue(VektorArray.Length - 1) ' ReDim arrValue(VektorArray.Length - 1)
' Array.Copy(VektorArray, arrValue, VektorArray.Length) ' Array.Copy(VektorArray, arrValue, VektorArray.Length)
' End If ' End If
' End If ' End If
' If arrValue Is Nothing = False Then ' If arrValue Is Nothing = False Then
' clsWindream_Index.RunIndexing(WMdok, arrIndex, arrValue, _profObjekttyp) ' clsWindream_Index.RunIndexing(WMdok, arrIndex, arrValue, _profObjekttyp)
' Else ' Else
' clsLogger.Add(">> arrValue is nothing - keine Indexierung", False, "clsProfil.Profil_Durchlauf") ' clsLogger.Add(">> arrValue is nothing - keine Indexierung", False, "clsProfil.Profil_Durchlauf")
' End If ' End If
' Catch ex As Exception ' Catch ex As Exception
' clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(SetIndex)") ' clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(SetIndex)")
' End Try ' End Try
' Case "Rename File with windream Index".ToLower ' Case "Rename File with windream Index".ToLower
' clsLogger.AddDetailLog("Exportierte Datei soll nach Indexvorgaben umbenannt werden...") ' clsLogger.AddDetailLog("Exportierte Datei soll nach Indexvorgaben umbenannt werden...")
' clsDateiverarbeitung.Rename_File(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString) ' clsDateiverarbeitung.Rename_File(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString)
' Case "Rename File with WMVector (only one)".ToLower ' Case "Rename File with WMVector (only one)".ToLower
' clsLogger.AddDetailLog("Exportierte Datei soll nach VektorIndexvorgaben umbenannt werden...") ' clsLogger.AddDetailLog("Exportierte Datei soll nach VektorIndexvorgaben umbenannt werden...")
' clsDateiverarbeitung.Rename_File_Vektor(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString) ' clsDateiverarbeitung.Rename_File_Vektor(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString)
' Case "Execute Oracle Command".ToLower ' Case "Execute Oracle Command".ToLower
' Try ' Try
' clsLogger.AddDetailLog("Execute Oracle Comman.......") ' clsLogger.AddDetailLog("Execute Oracle Comman.......")
' Dim oracleconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString ' Dim oracleconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString
' Dim oracleCommandRAW = DR_PR_FILE_JOB.Item("STRING2").ToString ' Dim oracleCommandRAW = DR_PR_FILE_JOB.Item("STRING2").ToString
' FileJobSuccessful = clsDateiverarbeitung.RUN_ORACLE_COMMAND(WMdok, oracleconnectionstring, oracleCommandRAW) ' FileJobSuccessful = clsDateiverarbeitung.RUN_ORACLE_COMMAND(WMdok, oracleconnectionstring, oracleCommandRAW)
' Catch ex As Exception ' Catch ex As Exception
' clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteOracleCommand)") ' clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteOracleCommand)")
' End Try ' End Try
' Case "Execute MSSQL Command".ToLower ' Case "Execute MSSQL Command".ToLower
' Try ' Try
' Dim MSSQLconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString ' Dim MSSQLconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString
' Dim MSSQLCommandRAW = DR_PR_FILE_JOB.Item("STRING2").ToString ' Dim MSSQLCommandRAW = DR_PR_FILE_JOB.Item("STRING2").ToString
' clsLogger.AddDetailLog("Execute MSSQL Command.......") ' clsLogger.AddDetailLog("Execute MSSQL Command.......")
' FileJobSuccessful = clsDateiverarbeitung.RUN_MSSQL_COMMAND(WMdok, MSSQLconnectionstring, MSSQLCommandRAW) ' FileJobSuccessful = clsDateiverarbeitung.RUN_MSSQL_COMMAND(WMdok, MSSQLconnectionstring, MSSQLCommandRAW)
' Catch ex As Exception ' Catch ex As Exception
' clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteMSSQLCommand)") ' clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteMSSQLCommand)")
' End Try ' End Try
' End Select ' End Select
' 'Abschluss Bearbeitung File Job ' 'Abschluss Bearbeitung File Job
' clsLogger.WriteLog() ' clsLogger.WriteLog()
' Next ' Next
'Else 'Else
' clsLogger.Add(">> KEINE File-JOBS für Profil '" & _Profilname & "' angelegt!", False, "clsProfil.Profil_Durchlauf") ' clsLogger.Add(">> KEINE File-JOBS für Profil '" & _Profilname & "' angelegt!", False, "clsProfil.Profil_Durchlauf")
' clsLogger.WriteLog() ' clsLogger.WriteLog()
'End If 'End If
Else Else
clsDatatabase.Execute_non_Query("UPDATE TBWMRH_PROFIL SET Running = 0, LETZTER_DURCHLAUF = Getdate() WHERE GUID = " & _profGUID) clsDatatabase.Execute_non_Query("UPDATE TBWMRH_PROFIL SET Running = 0, LETZTER_DURCHLAUF = Getdate() WHERE GUID = " & _profGUID)
End If End If
'Next 'Next
Case "BNS json Download".ToUpper Case "BNS json Download".ToUpper
FileJobSuccessful = clsDateiverarbeitung.BNSjsonDownload(WMdok, DR_PR_JB.Item("STRING1"), DR_PR_JB.Item("STRING2")) FileJobSuccessful = clsDateiverarbeitung.BNSjsonDownload(WMdok, DR_PR_JB.Item("STRING1"), DR_PR_JB.Item("STRING2"))
End Select End Select
'Abschluss Bearbeitung Job 'Abschluss Bearbeitung Job
clsLogger.WriteLog() clsLogger.WriteLog()
Next Next
'################################## '##################################
'JETZT DER DURCHLAUF DER DATEI-JOBS 'JETZT DER DURCHLAUF DER DATEI-JOBS
'################################## '##################################
If DT_PROFIL_FILE_JOB.Rows.Count > 0 Then If DT_PROFIL_FILE_JOB.Rows.Count > 0 Then
Dim filecount As Integer = 0 Dim filecount As Integer = 0
'Für jeden File-Job 'Für jeden File-Job
For Each DR_PR_FILE_JOB As DataRow In DT_PROFIL_FILE_JOB.Rows For Each DR_PR_FILE_JOB As DataRow In DT_PROFIL_FILE_JOB.Rows
If FileJobSuccessful = False Then If FileJobSuccessful = False Then
clsLogger.Add("AUSSTIEG FOR SCHLEIFE...", True) clsLogger.Add("AUSSTIEG FOR SCHLEIFE...", True)
clsLogger.WriteLog() clsLogger.WriteLog()
Exit For Exit For
End If End If
Select Case DR_PR_FILE_JOB.Item("TYP").ToString.ToLower Select Case DR_PR_FILE_JOB.Item("TYP").ToString.ToLower
Case "Set Index".ToLower Case "Set Index".ToLower
Try Try
'Überprüfen ob Value bereits gesetzt wurde? 'Überprüfen ob Value bereits gesetzt wurde?
Dim idxName As String = DR_PR_FILE_JOB.Item("STRING1").ToString Dim idxName As String = DR_PR_FILE_JOB.Item("STRING1").ToString
Dim idxvalue As String = DR_PR_FILE_JOB.Item("STRING2").ToString Dim idxvalue As String = DR_PR_FILE_JOB.Item("STRING2").ToString
If idxvalue.Contains("[%DATETIME]") Then If idxvalue.Contains("[%DATETIME]") Then
idxvalue = idxvalue.Replace("[%DATETIME]", Now.ToString) idxvalue = idxvalue.Replace("[%DATETIME]", Now.ToString)
End If End If
clsLogger.AddDetailLog("Datei soll mit Index '" & idxName & "'indexiert werden...") clsLogger.AddDetailLog("Datei soll mit Index '" & idxName & "'indexiert werden...")
Dim arrIndex() As String Dim arrIndex() As String
ReDim Preserve arrIndex(0) ReDim Preserve arrIndex(0)
arrIndex(0) = idxName arrIndex(0) = idxName
clsLogger.AddDetailLog("...nach arrIndex") clsLogger.AddDetailLog("...nach arrIndex")
Dim arrValue() As String Dim arrValue() As String
Dim aktvalue As Object Dim aktvalue As Object
aktvalue = WMdok.GetVariableValue(idxName) aktvalue = WMdok.GetVariableValue(idxName)
clsLogger.AddDetailLog("...nach aktValue zuweisen..") clsLogger.AddDetailLog("...nach aktValue zuweisen..")
If aktvalue Is Nothing Then If aktvalue Is Nothing Then
clsLogger.AddDetailLog("Index '" & idxName & "' ist noch leer.") clsLogger.AddDetailLog("Index '" & idxName & "' ist noch leer.")
ReDim Preserve arrValue(0) ReDim Preserve arrValue(0)
arrValue(0) = idxvalue arrValue(0) = idxvalue
Else Else
clsLogger.AddDetailLog("Index '" & idxName & "' ist bereits gefüllt.") clsLogger.AddDetailLog("Index '" & idxName & "' ist bereits gefüllt.")
Dim myArray() Dim myArray()
ReDim myArray(0) ReDim myArray(0)
myArray(0) = idxvalue myArray(0) = idxvalue
Dim VektorArray() Dim VektorArray()
VektorArray = Return_VektorArray(WMdok, idxName, myArray, True) 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 Catch ex As Exception
clsWindream_Index.RunIndexing(WMdok, arrIndex, arrValue, _profObjekttyp) clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(SetIndex)")
Else End Try
clsLogger.Add(">> arrValue is nothing - keine Indexierung", False, "clsProfil.Profil_Durchlauf") Case "Rename File with windream Index".ToLower
End If 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 Next
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(SetIndex)") Else
End Try clsLogger.Add(">> KEINE File-JOBS für Profil '" & _Profilname & "' angelegt!", False, "clsProfil.Profil_Durchlauf")
Case "Rename File with windream Index".ToLower clsLogger.WriteLog()
clsLogger.AddDetailLog("Exportierte Datei soll nach Indexvorgaben umbenannt werden...") End If
clsDateiverarbeitung.Rename_File(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString) Next
Case "Rename File with WMVector (only one)".ToLower clsLogger.WriteLog()
clsLogger.AddDetailLog("Exportierte Datei soll nach VektorIndexvorgaben umbenannt werden...") Else
clsDateiverarbeitung.Rename_File_Vektor(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString) clsLogger.Add(">> Initialisierung Profil nicht erfolgreich", True)
Case "Execute Oracle Command".ToLower clsLogger.WriteLog()
Try End If
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()
Else Else
clsLogger.Add(">> Initialisierung Profil nicht erfolgreich", True) clsLogger.Add(">> KEINE JOBS für Profil '" & _Profilname & "' angelegt!", False, "clsProfil.Profil_Durchlauf")
clsLogger.WriteLog() clsLogger.WriteLog()
End If End If
Else 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() clsLogger.WriteLog()
End If 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
End If End If
Else
clsLogger.AddDetailLog("Verarbeitung für heute NICHT konfiguriert")
clsLogger.WriteLog()
End If End If
Else If Run_Profile = True Then
clsLogger.AddDetailLog("Verarbeitung für heute NICHT konfiguriert") '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() clsLogger.WriteLog()
End If Return True
'Abschluss des Profiles Catch ex As Exception
clsDatatabase.Execute_non_Query("UPDATE TBWMRH_PROFIL SET Running = 0, LETZTER_DURCHLAUF = GETDATE() WHERE GUID = " & _profGUID) clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf")
clsLogger.AddDetailLog("'UPDATE TBWMRH_PROFIL SET Running = 0' ausgeführt") If Run_Profile = True Then
clsLogger.WriteLog() clsDatatabase.Execute_non_Query("Update TBWMRH_PROFIL SET Running = 0 WHERE GUID = " & _profGUID)
Return True End If
'Catch ex As Exception '
' clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf") CriticalError = False
' clsDatatabase.Execute_non_Query("Update TBWMRH_PROFIL SET Running = 0 WHERE GUID = " & _profGUID) Return False
' CriticalError = False End Try
' Return False
'End Try
End Function End Function
Private Shared Function Return_VektorArray(ByVal oDocument As WMObject, vktIndexName As String, NIIndexe As Object, CheckDuplikat As Boolean) Private Shared Function Return_VektorArray(ByVal oDocument As WMObject, vktIndexName As String, NIIndexe As Object, CheckDuplikat As Boolean)