This commit is contained in:
Digital Data - Marlon Schreiber 2018-01-04 10:25:05 +01:00
parent 3c02303007
commit ea2554aa10
5 changed files with 195 additions and 178 deletions

Binary file not shown.

View File

@ -227,7 +227,7 @@ Public Class clsDateiverarbeitung
''' </summary> ''' </summary>
''' <param name="WMFile">Das WMObject, dass das aktuelle Dokument repräsentiert</param> ''' <param name="WMFile">Das WMObject, dass das aktuelle Dokument repräsentiert</param>
''' <param name="userId">Die eindeutige Benutzer Kennung für die Authentifizierung in Windream</param> ''' <param name="userId">Die eindeutige Benutzer Kennung für die Authentifizierung in Windream</param>
Public Shared Sub BNSjsonDownload(WMFile As WMObject, userId As String, apiAddress As String) Public Shared Function BNSjsonDownload(WMFile As WMObject, userId As String, apiAddress As String)
Try Try
' Indizes für das aktuelle Dokument auslesen ' Indizes für das aktuelle Dokument auslesen
Dim SENDUNGNR = WMFile.GetVariableValue("Sendungnr") Dim SENDUNGNR = WMFile.GetVariableValue("Sendungnr")
@ -289,11 +289,12 @@ Public Class clsDateiverarbeitung
Throw New Exception($"Server Error (HTTP {code}: {text})") Throw New Exception($"Server Error (HTTP {code}: {text})")
End If End If
End Using End Using
Return True
Catch ex As Exception Catch ex As Exception
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message & " - " & ex.Source, "BNSjsonDownload") clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message & " - " & ex.Source, "BNSjsonDownload")
Return True
End Try End Try
End Sub End Function
Public Shared Function RUN_ORACLE_COMMAND(WMFile As WMObject, OracleCS As String, OracleCommandRAW As String) Public Shared Function RUN_ORACLE_COMMAND(WMFile As WMObject, OracleCS As String, OracleCommandRAW As String)
Try Try
Dim result = REGEX_REPLACE(WMFile, OracleCommandRAW) Dim result = REGEX_REPLACE(WMFile, OracleCommandRAW)

View File

@ -19,7 +19,7 @@ Public Class clsProfil
Try Try
clsLogger.AddDetailLog("Start Initialisierung Profil für GUID: " & guid.ToString) clsLogger.AddDetailLog("Start Initialisierung Profil für GUID: " & guid.ToString)
Dim DT As DataTable = clsDatatabase.Return_Datatable("Select * from TBWMRH_PROFIL where GUID = " & guid & " AND Running = 0") Dim DT As DataTable = clsDatatabase.Return_Datatable("Select * from TBWMRH_PROFIL where GUID = " & guid)
If DT.Rows.Count > 0 Then If DT.Rows.Count > 0 Then
For Each DR As DataRow In DT.Rows For Each DR As DataRow In DT.Rows
_profGUID = guid _profGUID = guid
@ -124,8 +124,10 @@ Public Class clsProfil
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_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") 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 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 DT_PROFIL_JOB.Rows.Count > 0 Then
clsLogger.AddDetailLog("DT_PROFIL_JOB.Rows.Count > 0")
If clsDateiverarbeitung.InitProfilData = True Then If clsDateiverarbeitung.InitProfilData = True Then
clsLogger.AddDetailLog("clsDateiverarbeitung.InitProfilData = True") clsLogger.AddDetailLog("clsDateiverarbeitung.InitProfilData = True")
@ -158,7 +160,7 @@ Public Class clsProfil
' Console.WriteLine(sb.ToString()) ' Console.WriteLine(sb.ToString())
' End Select ' End Select
'Next 'Next
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
@ -170,10 +172,116 @@ Public Class clsProfil
' 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
'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")
' Dim arrValue() As String
' 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
' 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
' 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
'Next
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 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 'Für jeden File-Job
Dim FileJobSuccessful As Boolean = True
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)
@ -262,28 +370,8 @@ Public Class clsProfil
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 Next
clsDatatabase.Execute_non_Query("UPDATE TBWMRH_PROFIL SET Running = 0, LETZTER_DURCHLAUF = Getdate() WHERE GUID = " & _profGUID)
End If
'Next
Case "BNS json Download".ToUpper
clsDateiverarbeitung.BNSjsonDownload(WMdok, DR_PR_JB.Item("STRING1"), DR_PR_JB.Item("STRING2"))
End Select
'Abschluss Bearbeitung Job
clsLogger.WriteLog() clsLogger.WriteLog()
Next
Next
For Each DR_PR_JB As DataRow In DT_PROFIL_JOB.Rows
Select Case DR_PR_JB.Item("JOB_TYP").ToString.ToUpper
Case "BNS json Download".ToUpper
'ARRAY Exportieren
Dim Export_Path = DR_PR_JB.Item("STRING1")
End Select
Next
Else Else
clsLogger.Add(">> Initialisierung Profil nicht erfolgreich", True) clsLogger.Add(">> Initialisierung Profil nicht erfolgreich", True)
clsLogger.WriteLog() clsLogger.WriteLog()

View File

@ -599,79 +599,7 @@ Public Class clsWindream_Index
#Region "+++++ Allgemeine Funktionen die Informationen zurückliefern +++++" #Region "+++++ Allgemeine Funktionen die Informationen zurückliefern +++++"
Public Function GetSearchDocuments(ByVal wdfLocation As String)
If System.IO.File.Exists(wdfLocation) Then
Try
Dim ProfileName = wdfLocation.Substring(wdfLocation.LastIndexOf("\") + 1)
Dim ProfilePath = wdfLocation.Substring(0, wdfLocation.Length - ProfileName.Length)
oController.CheckSearchProfile(wdfLocation.ToLower)
Dim suchTyp = oController.SearchProfileTargetProgID
Dim ExSettings As Object
Dim oSearch As Object
ExSettings = oController.SearchProfileExSettings
If ExSettings = 0 Then ExSettings = 7
Dim srchQuick As WMOSRCHLib.WMQuickSearch = CreateObject("WMOSrch.WMQuickSearch")
Dim srchIndex As WMOSRCHLib.WMIndexSearch = CreateObject("WMOSrch.WMIndexSearch")
Dim srchObjectType As WMOSRCHLib.WMObjectTypeSearch = CreateObject("WMOSrch.WMObjectTypeSearch")
'' Der öffentliche Member CheckSearchProfile für den Typ IWMQuickSearch7 wurde nicht gefunden. [Microsoft.VisualBasic] => GetSearchDocuments()
Select Case suchTyp.ToString.ToUpper
Case "WMOSRCH.WMQUICKSEARCH"
srchQuick.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
oConnect.LoginSession(srchQuick.WMSession)
srchQuick.ClearSearch()
srchQuick.SearchProfilePath = ProfilePath
srchQuick.LoadSearchProfile(ProfileName)
oSearch = srchQuick.GetSearch()
Case "WMOSRCH.WMINDEXSEARCH"
srchIndex.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
oConnect.LoginSession(srchIndex.WMSession)
srchIndex.ClearSearch()
srchIndex.SearchProfilePath = ProfilePath
srchIndex.LoadSearchProfile(ProfileName)
oSearch = srchIndex.GetSearch()
Case "WMOSRCH.WMOBJECTTYPESEARCH"
srchObjectType.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
oConnect.LoginSession(srchObjectType.WMSession)
srchObjectType.ClearSearch()
srchObjectType.SearchProfilePath = ProfilePath
srchObjectType.LoadSearchProfile(ProfileName)
oSearch = srchObjectType.GetSearch()
Case Else
clsLogger.Add("KEIN GÜLTIGER WINDREAM-SUCHTYP", True, "GetSearchDocuments")
Return Nothing
End Select
Dim WMObjects As Object
WMObjects = oSearch.Execute
Return oSearch.execute
Catch ex As Exception
' bei einem Fehler einen Eintrag in der Logdatei machen
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "GetSearchDocuments")
Return Nothing
End Try
End If
Return Nothing
End Function
''' Liefert den Wert eines Indexes als String ''' Liefert den Wert eines Indexes als String
''' _indexname = Name des zu überprüfenden Indexfeldes ''' _indexname = Name des zu überprüfenden Indexfeldes
Public Function GetValueforIndex(ByVal _fullfilepath As String, _indexname As String) Public Function GetValueforIndex(ByVal _fullfilepath As String, _indexname As String)

View File

@ -406,10 +406,10 @@ Public Class clsWindream_allgemein
End Function End Function
Public Shared Function GetSearchDocuments(ByVal wdfLocation As String) Public Shared Function GetSearchDocuments(ByVal wdfLocation As String)
'wdfLocation = 'W:\System\Suchen\WDRH\TestPDF.wdf' 'wdfLocation = 'W:\System\Suchen\WDRH\TestPDF.wdf'
'Try Try
Dim SearchName = wdfLocation.Substring(wdfLocation.LastIndexOf("\") + 1) Dim SearchName = wdfLocation.Substring(wdfLocation.LastIndexOf("\") + 1)
Dim SearchPath = wdfLocation.Substring(0, wdfLocation.Length - SearchName.Length) Dim SearchPath = wdfLocation.Substring(0, wdfLocation.Length - SearchName.Length)
clsLogger.Add("WMSearch: " & wdfLocation.ToLower, False)
If System.IO.File.Exists(wdfLocation.ToLower) Then If System.IO.File.Exists(wdfLocation.ToLower) Then
clsLogger.AddDetailLog("Search exists") clsLogger.AddDetailLog("Search exists")
End If End If
@ -465,11 +465,11 @@ Public Class clsWindream_allgemein
clsLogger.AddDetailLog("WD Objekte werden zurückgegeben") clsLogger.AddDetailLog("WD Objekte werden zurückgegeben")
Return oSearch.execute Return oSearch.execute
'Catch ex As Exception Catch ex As Exception
' ' bei einem Fehler einen Eintrag in der Logdatei machen ' bei einem Fehler einen Eintrag in der Logdatei machen
' clsLogger.AddError(ex.Message, "clswindream.GetSearchDocuments") clsLogger.AddError(ex.Message, "clswindream.GetSearchDocuments")
' Return Nothing Return Nothing
'End Try End Try
End Function End Function