diff --git a/.vs/ToolCollection/FileContentIndex/dd87eaad-9479-4158-a2c2-7f9ef2c764e6.vsidx b/.vs/ToolCollection/FileContentIndex/dd87eaad-9479-4158-a2c2-7f9ef2c764e6.vsidx new file mode 100644 index 0000000..9974a5a Binary files /dev/null and b/.vs/ToolCollection/FileContentIndex/dd87eaad-9479-4158-a2c2-7f9ef2c764e6.vsidx differ diff --git a/ToolCollection/ClassMO_RE.vb b/ToolCollection/ClassMO_RE.vb index 21c8754..d51d6d3 100644 --- a/ToolCollection/ClassMO_RE.vb +++ b/ToolCollection/ClassMO_RE.vb @@ -11,19 +11,7 @@ Public Class ClassMO_REOld End Sub Public Shared Function Return_Datatable(Select_anweisung As String) Try - Dim sw As New ClassStopwatch("Return_Datatable") - Dim SQLconnection As New SqlClient.SqlConnection(My.Settings.DDECMConString) - Dim SQLcommand As New SqlCommand(Select_anweisung, SQLconnection) - SQLconnection.Open() - - - Dim adapter1 As SqlDataAdapter = New SqlDataAdapter(SQLcommand) - Dim dt As DataTable = New DataTable() - adapter1.Fill(dt) - SQLconnection.Close() - Dim msg = sw.Done - If msg <> "" Then _Logger.Debug($"SWResult: {msg}") - Return dt + Return DB_ECM.GetDatatable(Select_anweisung) Catch ex As Exception _Logger.Error(ex) @@ -32,16 +20,8 @@ Public Class ClassMO_REOld End Function Public Shared Function Execute_Command(ExecuteCMD As String) Try - Dim sw As New ClassStopwatch("Execute_MSSQL_Command") - Dim SQLconnection As New SqlClient.SqlConnection(My.Settings.DDECMConString) - Dim SQLcommand As New SqlCommand(ExecuteCMD, SQLconnection) - SQLconnection.Open() - SQLcommand.ExecuteNonQuery() - SQLcommand.Dispose() - SQLconnection.Close() - Dim msg = sw.Done - If msg <> "" Then _Logger.Debug($"SWResult: {msg}") - Return True + + Return DB_ECM.ExecuteNonQuery(ExecuteCMD) Catch ex As Exception _Logger.Error(ex) @@ -49,156 +29,156 @@ Public Class ClassMO_REOld Return False End Try End Function - Public Shared Function RUN_MO_RE(ByVal dokument As WMObject, ByVal vDatei As String, ByVal _MRDOKART As Object, ByVal _MRKUNDE As Object) As String - Try - Dim DT As New DataTable - Dim _MRDeskrIndex - Dim _path, _praefix, _kunde, _ziel As String + 'Public Shared Function RUN_MO_RE(ByVal dokument As WMObject, ByVal vDatei As String, ByVal _MRDOKART As Object, ByVal _MRKUNDE As Object) As String + ' Try + ' Dim DT As New DataTable + ' Dim _MRDeskrIndex + ' Dim _path, _praefix, _kunde, _ziel As String - _Logger.Debug(">> Ausgelesener Kundenidentifikator: " & _MRKUNDE) - _Logger.Debug(">> Ausgelesene Dokumentart: " & _MRDOKART) - Dim oSelect As String - If _MRKUNDE Is Nothing Or _MRKUNDE = "" Then - 'Auslesen der MORE-Konfiguration für Kunde und Standard - oSelect = "SELECT * FROM VWMO_RE_DOKUMENTARTZUORDNUNG WHERE (DOKUMENTART = '" & _MRDOKART.ToString & "') AND (UPPER(KUNDEN_NAME) = 'STANDARD')" - DT = Return_Datatable(oSelect) - _Logger.Debug(oSelect) - Else - If _MRKUNDE = "Standard-VZ" Then _MRKUNDE = "Standard" - oSelect = "SELECT * FROM VWMO_RE_DOKUMENTARTZUORDNUNG WHERE (DOKUMENTART = '" & _MRDOKART.ToString & "') AND (UPPER(KUNDEN_NAME) = UPPER('" & _MRKUNDE.ToString & "'))" - 'Auslesen der MORE-Konfiguration für Kunde und Dokart - DT = Return_Datatable(oSelect) - _Logger.Debug("Select2: " & oSelect) - End If - If DT.Rows.Count = 0 Then - _Logger.Debug("Für Kunden keine Daten - also Standard lesen") - oSelect = "SELECT * FROM VWMO_RE_DOKUMENTARTZUORDNUNG WHERE (DOKUMENTART = '" & _MRDOKART.ToString & "') AND (UPPER(KUNDEN_NAME) = 'STANDARD')" - 'Für diesen Kunden wurde keine Konfiguration gefunden also den Standard laden - DT = Return_Datatable(oSelect) - _Logger.Debug("Select3: " & oSelect) - End If + ' _Logger.Debug(">> Ausgelesener Kundenidentifikator: " & _MRKUNDE) + ' _Logger.Debug(">> Ausgelesene Dokumentart: " & _MRDOKART) + ' Dim oSelect As String + ' If _MRKUNDE Is Nothing Or _MRKUNDE = "" Then + ' 'Auslesen der MORE-Konfiguration für Kunde und Standard + ' oSelect = "SELECT * FROM VWMO_RE_DOKUMENTARTZUORDNUNG WHERE (DOKUMENTART = '" & _MRDOKART.ToString & "') AND (UPPER(KUNDEN_NAME) = 'STANDARD')" + ' DT = Return_Datatable(oSelect) + ' _Logger.Debug(oSelect) + ' Else + ' If _MRKUNDE = "Standard-VZ" Then _MRKUNDE = "Standard" + ' oSelect = "SELECT * FROM VWMO_RE_DOKUMENTARTZUORDNUNG WHERE (DOKUMENTART = '" & _MRDOKART.ToString & "') AND (UPPER(KUNDEN_NAME) = UPPER('" & _MRKUNDE.ToString & "'))" + ' 'Auslesen der MORE-Konfiguration für Kunde und Dokart + ' DT = Return_Datatable(oSelect) + ' _Logger.Debug("Select2: " & oSelect) + ' End If + ' If DT.Rows.Count = 0 Then + ' _Logger.Debug("Für Kunden keine Daten - also Standard lesen") + ' oSelect = "SELECT * FROM VWMO_RE_DOKUMENTARTZUORDNUNG WHERE (DOKUMENTART = '" & _MRDOKART.ToString & "') AND (UPPER(KUNDEN_NAME) = 'STANDARD')" + ' 'Für diesen Kunden wurde keine Konfiguration gefunden also den Standard laden + ' DT = Return_Datatable(oSelect) + ' _Logger.Debug("Select3: " & oSelect) + ' End If - If DT.Rows.Count = 1 Then - 'Es liegt sowohl Kunde als auch Dokumentart vor - Try - _Logger.Debug("Versuch für den Index " & DT.Rows(0).Item("INDEXNAME").ToString & " den Indexwert auszulesen") - Dim sw As New ClassStopwatch($"GetVariableValue _MRDeskrIndex({DT.Rows(0).Item("INDEXNAME").ToString})") - _MRDeskrIndex = dokument.GetVariableValue(DT.Rows(0).Item("INDEXNAME").ToString) - Dim msg = sw.Done - If msg <> String.Empty Then _Logger.Info(msg) - Catch ex As Exception - _Logger.Warn("Achtung: ein eindeutiger/deskriptiver Indexwert existiert noch nicht! Dokument kann nicht verschoben und umbenannt werden!") - Return False - End Try - _Logger.Debug("Ausgelesener Deskriptiver Index: " & _MRDeskrIndex) + ' If DT.Rows.Count = 1 Then + ' 'Es liegt sowohl Kunde als auch Dokumentart vor + ' Try + ' _Logger.Debug("Versuch für den Index " & DT.Rows(0).Item("INDEXNAME").ToString & " den Indexwert auszulesen") + ' Dim sw As New ClassStopwatch($"GetVariableValue _MRDeskrIndex({DT.Rows(0).Item("INDEXNAME").ToString})") + ' _MRDeskrIndex = dokument.GetVariableValue(DT.Rows(0).Item("INDEXNAME").ToString) + ' Dim msg = sw.Done + ' If msg <> String.Empty Then _Logger.Info(msg) + ' Catch ex As Exception + ' _Logger.Warn("Achtung: ein eindeutiger/deskriptiver Indexwert existiert noch nicht! Dokument kann nicht verschoben und umbenannt werden!") + ' Return False + ' End Try + ' _Logger.Debug("Ausgelesener Deskriptiver Index: " & _MRDeskrIndex) - 'Datei-Paramter auslesen - Dim extension As String = Path.GetExtension(vDatei) - Dim myFolderPath As String - myFolderPath = Path.GetDirectoryName(vDatei) + ' 'Datei-Paramter auslesen + ' Dim extension As String = Path.GetExtension(vDatei) + ' Dim myFolderPath As String + ' myFolderPath = Path.GetDirectoryName(vDatei) - Dim _WDLaufwerk, _newfilename As String - _WDLaufwerk = My.Settings.MRWD_Laufwerk - _path = DT.Rows(0).Item("DOKUMENTARTORDNER") + ' Dim _WDLaufwerk, _newfilename As String + ' _WDLaufwerk = My.Settings.MRWD_Laufwerk + ' _path = DT.Rows(0).Item("DOKUMENTARTORDNER") - '####### _path anpassen evtl Unterordner - 'Unterordner Index 1 - Dim _UOindex As String = DT.Rows(0).Item("UO_IDX1") - Dim _UOindex_Value As String = "" - If _UOindex <> "" Then - Dim sw As New ClassStopwatch($"GetVariableValue _UOindex({_UOindex})") - _UOindex_Value = dokument.GetVariableValue(_UOindex) - Dim msg = sw.Done - If msg <> String.Empty Then _Logger.Info(msg) - If Not _UOindex_Value Is Nothing Then - _path &= "\" & _UOindex_Value - If _path.Contains(" 00:00:00") Then _path = _path.Replace(" 00:00:00", "") - _Logger.Debug("Unterordner 1 soll erzeugt werden - Path '" & _path & "'") - End If - End If - 'Unterordner Index 2 - _UOindex = DT.Rows(0).Item("UO_IDX2") - If _UOindex <> "" Then - Dim sw As New ClassStopwatch($"GetVariableValue _UOindex({_UOindex})") - _UOindex_Value = dokument.GetVariableValue(_UOindex) - Dim msg = sw.Done - If msg <> String.Empty Then _Logger.Info(msg) - If Not _UOindex_Value Is Nothing Then - _path &= "\" & _UOindex_Value - If _path.Contains(" 00:00:00") Then _path = _path.Replace(" 00:00:00", "") - _Logger.Debug("Unterordner 2 soll erzeugt werden - Path '" & _path & "'") - End If - End If + ' '####### _path anpassen evtl Unterordner + ' 'Unterordner Index 1 + ' Dim _UOindex As String = DT.Rows(0).Item("UO_IDX1") + ' Dim _UOindex_Value As String = "" + ' If _UOindex <> "" Then + ' Dim sw As New ClassStopwatch($"GetVariableValue _UOindex({_UOindex})") + ' _UOindex_Value = dokument.GetVariableValue(_UOindex) + ' Dim msg = sw.Done + ' If msg <> String.Empty Then _Logger.Info(msg) + ' If Not _UOindex_Value Is Nothing Then + ' _path &= "\" & _UOindex_Value + ' If _path.Contains(" 00:00:00") Then _path = _path.Replace(" 00:00:00", "") + ' _Logger.Debug("Unterordner 1 soll erzeugt werden - Path '" & _path & "'") + ' End If + ' End If + ' 'Unterordner Index 2 + ' _UOindex = DT.Rows(0).Item("UO_IDX2") + ' If _UOindex <> "" Then + ' Dim sw As New ClassStopwatch($"GetVariableValue _UOindex({_UOindex})") + ' _UOindex_Value = dokument.GetVariableValue(_UOindex) + ' Dim msg = sw.Done + ' If msg <> String.Empty Then _Logger.Info(msg) + ' If Not _UOindex_Value Is Nothing Then + ' _path &= "\" & _UOindex_Value + ' If _path.Contains(" 00:00:00") Then _path = _path.Replace(" 00:00:00", "") + ' _Logger.Debug("Unterordner 2 soll erzeugt werden - Path '" & _path & "'") + ' End If + ' End If - _UOindex = DT.Rows(0).Item("UO_IDX3") - If _UOindex <> "" Then - Dim sw As New ClassStopwatch($"GetVariableValue _UOindex({_UOindex})") - _UOindex_Value = dokument.GetVariableValue(_UOindex) - Dim msg = sw.Done - If msg <> String.Empty Then _Logger.Info(msg) - If Not _UOindex_Value Is Nothing Then - _path &= "\" & _UOindex_Value - If _path.Contains(" 00:00:00") Then _path = _path.Replace(" 00:00:00", "") - _Logger.Debug("Unterordner 3 soll erzeugt werden - Path '" & _path & "'") - End If - End If + ' _UOindex = DT.Rows(0).Item("UO_IDX3") + ' If _UOindex <> "" Then + ' Dim sw As New ClassStopwatch($"GetVariableValue _UOindex({_UOindex})") + ' _UOindex_Value = dokument.GetVariableValue(_UOindex) + ' Dim msg = sw.Done + ' If msg <> String.Empty Then _Logger.Info(msg) + ' If Not _UOindex_Value Is Nothing Then + ' _path &= "\" & _UOindex_Value + ' If _path.Contains(" 00:00:00") Then _path = _path.Replace(" 00:00:00", "") + ' _Logger.Debug("Unterordner 3 soll erzeugt werden - Path '" & _path & "'") + ' End If + ' End If - '##### + ' '##### - _kunde = DT.Rows(0).Item("KUNDEN_NAME") - _praefix = DT.Rows(0).Item("PRAEFIX") - 'Dem Neuen Dateinamen schon mal das Präfix mitgeben - _newfilename = _praefix - _newfilename = _newfilename & _MRDeskrIndex & extension + ' _kunde = DT.Rows(0).Item("KUNDEN_NAME") + ' _praefix = DT.Rows(0).Item("PRAEFIX") + ' 'Dem Neuen Dateinamen schon mal das Präfix mitgeben + ' _newfilename = _praefix + ' _newfilename = _newfilename & _MRDeskrIndex & extension - _Logger.Debug("Ausgelesener Pfad: " & _path) - _Logger.Debug("Neuer Dateiname: " & _newfilename) + ' _Logger.Debug("Ausgelesener Pfad: " & _path) + ' _Logger.Debug("Neuer Dateiname: " & _newfilename) - '### VERSIONIERUNG ### - Dim version As Integer = 2 - Dim Stammname As String = _newfilename.Substring(0, _newfilename.LastIndexOf(".")) - Dim neuername As String = _newfilename.Substring(0, _newfilename.LastIndexOf(".")) - 'Überprüfen ob File existiert - Do While file_exists(_path & "\" & neuername & extension, False) = True - neuername = Stammname & "~" & version - _newfilename = neuername & extension - version = version + 1 - Loop - _ziel = _path & "\" & _newfilename + ' '### VERSIONIERUNG ### + ' Dim version As Integer = 2 + ' Dim Stammname As String = _newfilename.Substring(0, _newfilename.LastIndexOf(".")) + ' Dim neuername As String = _newfilename.Substring(0, _newfilename.LastIndexOf(".")) + ' 'Überprüfen ob File existiert + ' Do While file_exists(_path & "\" & neuername & extension, False) = True + ' neuername = Stammname & "~" & version + ' _newfilename = neuername & extension + ' version = version + 1 + ' Loop + ' _ziel = _path & "\" & _newfilename - If My.Settings.vLogErrorsonly = False Then - If neuername.Contains("~") Then _Logger.Info("Neuer Dateiname: " & _newfilename) + ' If My.Settings.vLogErrorsonly = False Then + ' If neuername.Contains("~") Then _Logger.Info("Neuer Dateiname: " & _newfilename) - _Logger.Debug("Neuer Dateiname: " & _newfilename) - _Logger.Debug("Quelle: " & vDatei) - _Logger.Debug("Ziel: " & _ziel) - End If + ' _Logger.Debug("Neuer Dateiname: " & _newfilename) + ' _Logger.Debug("Quelle: " & vDatei) + ' _Logger.Debug("Ziel: " & _ziel) + ' End If - If myFolderPath <> _path Then - _windreamNI.NEW_MOVE_FILE(_ziel, vDatei, "MO_RE") - 'ClassLoggerNI.Add(" ######### Erfolgsmeldung - Datei wurde erfolgreich umbenannt und verschoben ###########") - Else - _Logger.Info("Verschieben nicht notwendig: Ordnerpfad identisch!") - Dim sw As New ClassStopwatch("RenameFile") - My.Computer.FileSystem.RenameFile(vDatei, _newfilename) - _Logger.Debug("Erfolgsmeldung - Datei wurde erfolgreich umbenannt") - Dim msg = sw.Done - If msg <> "" Then _Logger.Debug($"SWResult: {msg}") - End If - Execute_Command("INSERT INTO TBMO_RE_HISTORY (FILE_ORIGINAL, FILE_NEW, KUNDE, INDEX1, INDEX2, ERSTELLTWER) VALUES " & - "('" & vDatei & "','" & _ziel & "','" & _kunde & "','" & _MRDeskrIndex & "','" & _MRDOKART & "','ToolCollection MORE')") - Return _ziel - Else - _Logger.Info("MO_RE Result was not 1 row: check select..." & oSelect) - Return False - End If - Catch ex As Exception - _Logger.Error(ex) - MsgBox(ex.Message, MsgBoxStyle.Critical) - Return False - End Try - End Function + ' If myFolderPath <> _path Then + ' _windreamNI.NEW_MOVE_FILE(_ziel, vDatei, "MO_RE") + ' 'ClassLoggerNI.Add(" ######### Erfolgsmeldung - Datei wurde erfolgreich umbenannt und verschoben ###########") + ' Else + ' _Logger.Info("Verschieben nicht notwendig: Ordnerpfad identisch!") + ' Dim sw As New ClassStopwatch("RenameFile") + ' My.Computer.FileSystem.RenameFile(vDatei, _newfilename) + ' _Logger.Debug("Erfolgsmeldung - Datei wurde erfolgreich umbenannt") + ' Dim msg = sw.Done + ' If msg <> "" Then _Logger.Debug($"SWResult: {msg}") + ' End If + ' Execute_Command("INSERT INTO TBMO_RE_HISTORY (FILE_ORIGINAL, FILE_NEW, KUNDE, INDEX1, INDEX2, ERSTELLTWER) VALUES " & + ' "('" & vDatei & "','" & _ziel & "','" & _kunde & "','" & _MRDeskrIndex & "','" & _MRDOKART & "','ToolCollection MORE')") + ' Return _ziel + ' Else + ' _Logger.Info("MO_RE Result was not 1 row: check select..." & oSelect) + ' Return False + ' End If + ' Catch ex As Exception + ' _Logger.Error(ex) + ' MsgBox(ex.Message, MsgBoxStyle.Critical) + ' Return False + ' End Try + 'End Function Private Shared Function file_exists(ByVal _file As String, ByVal suche As Boolean) Try _file = _file.Replace("W:", "\\windream\objects") diff --git a/ToolCollection/ClassNIDatenbankzugriff.vb b/ToolCollection/ClassNIDatenbankzugriff.vb index cf59429..bad0367 100644 --- a/ToolCollection/ClassNIDatenbankzugriff.vb +++ b/ToolCollection/ClassNIDatenbankzugriff.vb @@ -536,6 +536,7 @@ Public Class ClassNIDatenbankzugriff Try SQLcommand = SQLconnect.CreateCommand SQLcommand.CommandText = selectAnweisung + SQLcommand.CommandTimeout = 120 Catch ex As Exception _Logger.Error(ex) @@ -692,7 +693,7 @@ Public Class ClassNIDatenbankzugriff ' die nötigen Variablen definieren Dim Connection As SqlConnection = Nothing ' Dim ConnectionString As SqlConnectionStringBuilder = Nothing - Dim Command As SqlCommand = Nothing + Dim oSQLCommand As SqlCommand = Nothing Dim DataAdapter As SqlDataAdapter = Nothing '' ConnectionString aufbauen (aus Settings auslesen) @@ -724,7 +725,8 @@ Public Class ClassNIDatenbankzugriff ' SQL-Abfrage definieren Try - Command = New SqlCommand(sqlcommand, Connection) + oSQLCommand = New SqlCommand(sqlcommand, Connection) + Catch ex As Exception _Logger.Error(ex) ' DB-Connection schliessen @@ -733,10 +735,10 @@ Public Class ClassNIDatenbankzugriff End Try ' *** Ausführen des Command *** - If Command IsNot Nothing Then + If oSQLCommand IsNot Nothing Then Try - Command.ExecuteNonQuery() + oSQLCommand.ExecuteNonQuery() ' DB-Connection schliessen Me.CloseMssqlDb(Connection) Return 1 @@ -760,28 +762,6 @@ Public Class ClassNIDatenbankzugriff End Try End Function - Public Shared Function Return_Datatable(pSQLCommand As String) As DataTable - Try - Dim sw As New ClassStopwatch("Return_Datatable") - Dim SQLconnection As New SqlClient.SqlConnection(My.Settings.DDECMConString) - Dim SQLcommand As New SqlCommand(pSQLCommand, SQLconnection) - SQLcommand.CommandTimeout = 600 - SQLconnection.Open() - - - Dim adapter1 As SqlDataAdapter = New SqlDataAdapter(SQLcommand) - Dim dt As DataTable = New DataTable() - adapter1.Fill(dt) - SQLconnection.Close() - Dim msg = sw.Done - If msg <> "" Then _Logger.Debug($"SWResult: {msg}") - Return dt - Catch ex As Exception - _Logger.Error(ex) - _Logger.Error($"SQL Return Datatable [{pSQLCommand}]") - Return Nothing - End Try - End Function Public Function CheckIndex_MSSSQL(Profilname As String, ByVal scalar_select As String, ByVal datasource As String, ByVal User As String, ByVal pw As String, ByVal init_Cata As String) Try _Logger.Debug("MSSQL-Command: " & scalar_select) diff --git a/ToolCollection/ClassNIWindream.vb b/ToolCollection/ClassNIWindream.vb index 801ae62..143fa4a 100644 --- a/ToolCollection/ClassNIWindream.vb +++ b/ToolCollection/ClassNIWindream.vb @@ -1015,13 +1015,11 @@ Public Class ClassNIWindream Return Nothing End Try End Function - Public Function NEW_MOVE_FILE(targetpath As String, sourcepath As String, oMethod As String) As Boolean + Public Function NEW_MOVE_FILE(targetpath As String, sourcepath As String, oMethod As String, pFileName As String) As Boolean Dim oWMFile As WINDREAMLib.WMObject Try - If My.Settings.vLogErrorsonly = False Then - _Logger.Info($"targetpath ({targetpath})") - _Logger.Info($"sourcepath ({sourcepath})") - End If + _Logger.Debug($"targetpath ({targetpath})") + _Logger.Debug($"sourcepath ({sourcepath})") Dim sw As New ClassStopwatch("NEW_MOVE_FILE") @@ -1035,11 +1033,18 @@ Public Class ClassNIWindream sourcepath = sourcepath.Replace("\\windream\objects", "") sourcepath = sourcepath.Replace("W:\", "\") + targetpath = targetpath.Replace("\\", "\") Const WMEntityDocument = 1 Dim IndexwertAusWindream As Object = Nothing _Logger.Debug($"NEW_MOVE_FILE getting WMObject for: {sourcepath}") - oWMFile = oWMSession.GetWMObjectByPath(WMEntityDocument, sourcepath) + Try + oWMFile = oWMSession.GetWMObjectByPath(WMEntityDocument, sourcepath) + Catch ex As Exception + _Logger.Warn($"Error in NEW_MOVE_FILE - GetWMObjectByPath [{pFileName}] - Source[{sourcepath}]") + Return False + End Try + If oWMFile.lock Then oWMFile.aPath = targetpath oWMFile.Save() @@ -1055,6 +1060,7 @@ Public Class ClassNIWindream End If Catch ex As Exception _Logger.Error(ex) + _Logger.Warn($"Error in NEW_MOVE_FILE pFileName [{pFileName}] - [{targetpath}]") If Not IsNothing(oWMFile) Then oWMFile.unlock() End If diff --git a/ToolCollection/ClassWD_Rechte.vb b/ToolCollection/ClassWD_Rechte.vb index 278af94..a8621da 100644 --- a/ToolCollection/ClassWD_Rechte.vb +++ b/ToolCollection/ClassWD_Rechte.vb @@ -358,7 +358,7 @@ Public Class ClassWD_Rechte End If ElseIf _GruppenUserRecht.ToString.ToLower.StartsWith("select") Then _GruppenUserRecht = _GruppenUserRecht.ToString.Replace("[%Dokument-ID]", CURRENT_DOCID) - _GruppenUserRecht = database.Return_Datatable(_GruppenUserRecht) + _GruppenUserRecht = DB_ECM.GetDatatable(_GruppenUserRecht) End If Dim oType = _GruppenUserRecht.GetType.ToString If oType = "System.Data.DataTable" Then diff --git a/ToolCollection/ClassWindream_allgemein.vb b/ToolCollection/ClassWindream_allgemein.vb index 9b7fbca..12a035b 100644 --- a/ToolCollection/ClassWindream_allgemein.vb +++ b/ToolCollection/ClassWindream_allgemein.vb @@ -74,6 +74,7 @@ Public Class ClassWindream_allgemein 'MsgBox("windrem init 'ed") Catch ex As Exception clsHelper.Add_Application_log("Unexpected error in Windream.Init(CreateObjects): " & ex.Message) + EMAIL_DD.Send_EMail("Unexpected error in Windream.Init(CreateObjects): " & ex.Message, "WMInit77") Return False End Try @@ -99,7 +100,7 @@ Public Class ClassWindream_allgemein If Me.oWMSession.aLoggedin = False Then clsHelper.Add_Application_log("Unexpected error in Windream.Init(oSession.aloggedIn): Could not check session-state") - + EMAIL_DD.Send_EMail("Unexpected error in Windream.Init(oSession.aloggedIn): Could not check session-state", "clswmallgInit") Return False End If @@ -144,7 +145,7 @@ Public Class ClassWindream_allgemein Else If Not ex.Message.Contains("Already logged in") Then clsHelper.Add_Application_log("Unexpected error in Windream.Init(Already logged in): " & ex.Message) - + EMAIL_DD.Send_EMail("Unexpected error in Windream.Init(Already logged in): " & ex.Message, "clswmallgInit2") Else Return True End If @@ -497,6 +498,7 @@ Public Class ClassWindream_allgemein Return server 'ClassWindream.oBrowser.GetCurrentServer Catch ex As Exception clsHelper.Add_Application_log("Unexpected error in Windream.GetCurrentServer: " & ex.Message) + EMAIL_DD.Send_EMail("Unexpected error in Windream.GetCurrentServer: " & ex.Message, "GetCurrentServer") 'MsgBox("Der aktuell gewählte windream-Server konnte nicht ausgelesen werden." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler beim Auslesen des windream-Servers") End Try diff --git a/ToolCollection/My Project/AssemblyInfo.vb b/ToolCollection/My Project/AssemblyInfo.vb index 1fa18a0..9992bf2 100644 --- a/ToolCollection/My Project/AssemblyInfo.vb +++ b/ToolCollection/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - - + + diff --git a/ToolCollection/frmDIHauptseite.vb b/ToolCollection/frmDIHauptseite.vb index 77c4077..5e86763 100644 --- a/ToolCollection/frmDIHauptseite.vb +++ b/ToolCollection/frmDIHauptseite.vb @@ -428,12 +428,12 @@ Public Class frmDIHauptseite Me.ImportFileList = My.Computer.FileSystem.GetFiles(Me.selectedProfile.OriginalQuellordner, FileIO.SearchOption.SearchTopLevelOnly, "*.*") End If Dim oError As Boolean = False + Dim DT_TBTC_DI_REGEX_MATCH As DataTable Try - Me.TBTC_DI_REGEX_MATCHTableAdapter.Connection.ConnectionString = My.Settings.DDECMConString - Me.TBTC_DI_REGEX_MATCHTableAdapter.Fill(Me.MyDataset.TBTC_DI_REGEX_MATCH, Me.selectedProfile.OriginalProfilname) + Dim oSQl = $"SELECT * FROM TBTC_DI_REGEX_MATCH WHERE PROFILE_NAME = '{Me.selectedProfile.OriginalProfilname}'" + DT_TBTC_DI_REGEX_MATCH = DB_ECM.GetDatatable(oSQl) Catch ex As Exception - ClassLoggerDI.Add($"Error while connecting via My.Settings.DDECMConString [{My.Settings.DDECMConString}]" + ex.Message) - ClassLoggerDI.Add($"ErrorMessage: {ex.Message}") + ClassLoggerDI.Add($"ErrorMessageProfil_Durchlauf: {ex.Message}") oError = True End Try @@ -511,8 +511,8 @@ Public Class frmDIHauptseite For Each oFilenameQuelle As String In Me.ImportFileList fileAusschliessen = False Dim oFilenameOnly = Path.GetFileName(oFilenameQuelle) - If Me.MyDataset.TBTC_DI_REGEX_MATCH.Rows.Count = 1 Then - If Regex.IsMatch(oFilenameOnly, MyDataset.TBTC_DI_REGEX_MATCH.Rows(0).Item("REGEX")) = False Then + If DT_TBTC_DI_REGEX_MATCH.Rows.Count = 1 Then + If Regex.IsMatch(oFilenameOnly, DT_TBTC_DI_REGEX_MATCH.Rows(0).Item("REGEX")) = False Then ClassLoggerDI.Add($" >> Regex not Matching for file {oFilenameOnly}!", False) fileAusschliessen = True End If @@ -1059,7 +1059,11 @@ Public Class frmDIHauptseite '######## Dim Zielverzeichnis As String = zielpfad endgültigerDateiname = Zielverzeichnis.Substring(2) & "\" & Quelldatei_Name - + If endgültigerDateiname.StartsWith("\\") Then + endgültigerDateiname = endgültigerDateiname.Substring(2) + End If + endgültigerDateiname = endgültigerDateiname.Replace("Windream\Objects\", "") + DetailLog("endgültigerDateiname: " + endgültigerDateiname) DetailLog("Zielverzeichnis erzeugt") If Directory.Exists(Zielverzeichnis) = False Then 'Try to create the directory. diff --git a/ToolCollection/frmNIHauptseite.vb b/ToolCollection/frmNIHauptseite.vb index b231fee..ee4f259 100644 --- a/ToolCollection/frmNIHauptseite.vb +++ b/ToolCollection/frmNIHauptseite.vb @@ -120,13 +120,13 @@ Public Class frmNIHauptseite End If End Sub Private Sub frmNIHauptseite_Load(sender As Object, e As System.EventArgs) Handles Me.Load - Try - 'LoadAllModules() - TBTC_MOVE_RENAMETableAdapter.Connection.ConnectionString = My.Settings.DDECMConString - Catch ex As Exception - MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei frmNIHauptseite_Load") - _Logger.Warn("Fehler bei frmNIHauptseite_Load: " & ex.Message) - End Try + 'Try + ' 'LoadAllModules() + ' TBTC_MOVE_RENAMETableAdapter.Connection.ConnectionString = My.Settings.DDECMConString + 'Catch ex As Exception + ' MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei frmNIHauptseite_Load") + ' _Logger.Warn("Fehler bei frmNIHauptseite_Load: " & ex.Message) + 'End Try End Sub 'Private Function return_conn(ByVal dbart As String) ' Select Case dbart @@ -339,10 +339,9 @@ Public Class frmNIHauptseite If clsHelper.file_exists(Me.aktivesProfil.WindreamSuche, "NI") = False AndAlso Me.aktivesProfil.WindreamSuche.ToLower.Contains("select") = False Then _Logger.Warn("Windream Suche für Profil: " & profil.Profilname & " konnte nicht ausgeführt werden! Die Datei " & Me.aktivesProfil.WindreamSuche & " existiert nicht!") ' wenn die gesuchte File eine Suche ist: per MAil informierne und Indexierung abbrechen - If My.Settings.vMailsenden = True Then - EMAIL_DD.Send_EMail("Fehler bei Nachindexierung:
>> Profil: " & Me.aktivesProfil.Profilname & "
>> Die windream-Suche : " & Me.aktivesProfil.WindreamSuche & " konnte nicht gefunden werden!" & - "
>> Mögliche Fehlerursache: Das W-Laufwerk ist nicht verfügbar!", "WMissing") - End If + + EMAIL_DD.Send_EMail("Fehler bei Nachindexierung:
>> Profil: " & Me.aktivesProfil.Profilname & "
>> Die windream-Suche : " & Me.aktivesProfil.WindreamSuche & " konnte nicht gefunden werden!" & + "
>> Mögliche Fehlerursache: Das W-Laufwerk ist nicht verfügbar!", "WMissing") Abbruch_NI("Windream-Suche konnte nicht gefunden werden!", True, False) clsHelper.Add_Application_log("Nachindexierung wurde abgebrochen, da eine Windream-Suche (" & Me.aktivesProfil.WindreamSuche & ") nicht gefunden werden konnte") @@ -798,9 +797,8 @@ Public Class frmNIHauptseite Catch ex As Exception errormsg = " FEHLER bei Check_Desk_Index (GetVariableValue für Index '" & aktivesProfil.Desk_windreamIndex & "'): " & ex.Message _Logger.Warn(errormsg) - If My.Settings.vMailsenden = True Then - EMAIL_DD.Send_EMail("Beim Indexieren der Datei " & dokument.aName.ToString & " ist ein Fehler aufgetreten Check_Desk_Index (GetVariableValue): " & ex.Message, "Check_Desk_Index") - End If + EMAIL_DD.Send_EMail("Beim Indexieren der Datei " & dokument.aName.ToString & " ist ein Fehler aufgetreten Check_Desk_Index (GetVariableValue): " & ex.Message, "Check_Desk_Index") + ' wenn ein Fehler aufgetreten ist, muss das Flag gesetzt werden Return True @@ -815,7 +813,7 @@ Public Class frmNIHauptseite End If End Function ' Indexiert die windream-Suchergebnisse - Public Sub IndexiereVerarbeiteDokument(ByVal dokument As WMObject) + Public Sub IndexiereVerarbeiteDokument(ByVal pMyWMDoc As WMObject) Dim oResultNachindexierung = Nothing Try @@ -837,10 +835,10 @@ Public Class frmNIHauptseite Dim eindeutigerWertausWindream As String Dim _pathxmlfile As String 'Liefert nur den PFad des aktiven Dokumens - Dim ordnerpfad As String = IO.Path.GetDirectoryName(My.Settings.vWLaufwerk & ":" & dokument.aPath) + Dim ordnerpfad As String = IO.Path.GetDirectoryName(My.Settings.vWLaufwerk & ":" & pMyWMDoc.aPath) _Logger.Debug("OrdnerPfad der Datei: " & ordnerpfad) Try - CURRENT_DOCID = CInt(dokument.GetVariableValue("Dokument-ID")) + CURRENT_DOCID = CInt(pMyWMDoc.GetVariableValue("Dokument-ID")) Catch ex As Exception CURRENT_DOCID = 0 End Try @@ -856,15 +854,15 @@ Public Class frmNIHauptseite Try _fulltext = New clsNIFulltext(_MyLogger) _Logger.Debug(">> _fulltext initialized.") - fulltext = dokument.GetVariableValue(aktivesProfil.Desk_windreamIndex) + fulltext = pMyWMDoc.GetVariableValue(aktivesProfil.Desk_windreamIndex) If Len(fulltext) > 0 Then _Logger.Info($"{aktivesProfil.Desk_windreamIndex} is empty...") Else _Logger.Info($"## No fulltext from [{aktivesProfil.Desk_windreamIndex}] extracted!") - fulltext = dokument.GetVariableValue("Manueller Volltext") + fulltext = pMyWMDoc.GetVariableValue("Manueller Volltext") End If If Len(fulltext) > 0 Then - Volltext_indexer(dokument, fulltext) + Volltext_indexer(pMyWMDoc, fulltext) Else _Logger.Info($"## Even no fulltext from Manueller Volltext extracted!") End If @@ -899,13 +897,13 @@ Public Class frmNIHauptseite Else ' den Wert des deskriptiven Indexes für das aktuelle Dokument auslesen - odescIndexValue = dokument.GetVariableValue(aktivesProfil.Desk_windreamIndex) - oResultCheck = Check_DeskIndexValue(odescIndexValue, aktivesProfil.checkIndexsql, dokument) + odescIndexValue = pMyWMDoc.GetVariableValue(aktivesProfil.Desk_windreamIndex) + oResultCheck = Check_DeskIndexValue(odescIndexValue, aktivesProfil.checkIndexsql, pMyWMDoc) End If Catch ex As Exception - _Logger.Warn($" Error getting {dokument.aName} # Der deskriptive Indexwert '{odescIndexValue}' of Index [{aktivesProfil.Desk_windreamIndex}] verweist auf KEINEN Eintrag in der Datenbank!") + _Logger.Warn($" Error getting {pMyWMDoc.aName} # Der deskriptive Indexwert '{odescIndexValue}' of Index [{aktivesProfil.Desk_windreamIndex}] verweist auf KEINEN Eintrag in der Datenbank!") End Try @@ -914,18 +912,18 @@ Public Class frmNIHauptseite Select Case oResultCheck Case 0 'Kein Ergebnis für den Deskriptiven Index also Kennzeichnen des Dokumentes über den Index der das Dokument für die Validierung kennzeichnet - _Logger.Warn($"{dokument.aName} # Der deskriptive Indexwert '{odescIndexValue}' of Index [{aktivesProfil.Desk_windreamIndex}] verweist auf KEINEN Eintrag in der Datenbank!") + _Logger.Warn($"{pMyWMDoc.aName} # Der deskriptive Indexwert '{odescIndexValue}' of Index [{aktivesProfil.Desk_windreamIndex}] verweist auf KEINEN Eintrag in der Datenbank!") fehlermsg &= " >> Der deskriptive Indexwert " & odescIndexValue & " verweist auf KEINEN Eintrag in der Datenbank!" 'Fehler = True unvollstaendig = True File_SetBooleanIndex(True, aktivesDokument, aktivesProfil.IndexValidation) SetErrorMeldung("Value '" & odescIndexValue & "' not found in Database", aktivesDokument, My.Settings.ERROR_INDEX) Case 1 - _Logger.Debug($"{dokument.aName} # Der deskriptive Indexwert '{odescIndexValue}' verweist genau auf EINEN Eintrag in der Datenbank - Alles OK") + _Logger.Debug($"{pMyWMDoc.aName} # Der deskriptive Indexwert '{odescIndexValue}' verweist genau auf EINEN Eintrag in der Datenbank - Alles OK") unvollstaendig = False Case 2 'Mehr als ein Ergebnis für den Deskriptiven Index also Kennzeichnen des Dokumentes über den Index der das Dokument für die Validierung kennzeichnet - _Logger.Warn($"{dokument.aName} # Der deskriptive Indexwert '{odescIndexValue}' of Index [{aktivesProfil.Desk_windreamIndex}] verweist auf MEHR ALS EINEN Eintrag in der Datenbank oder es trat ein genereller Fehler auf!") + _Logger.Warn($"{pMyWMDoc.aName} # Der deskriptive Indexwert '{odescIndexValue}' of Index [{aktivesProfil.Desk_windreamIndex}] verweist auf MEHR ALS EINEN Eintrag in der Datenbank oder es trat ein genereller Fehler auf!") fehlermsg &= " >> Der deskriptive Indexwert " & odescIndexValue & " verweist auf MEHR ALS EINEN Eintrag in der Datenbank oder es trat ein genereller Fehler auf!" oUnexpectedError = True unvollstaendig = True @@ -942,7 +940,7 @@ Public Class frmNIHauptseite End Try End If Case "xml" '#### Indexierung über xml-Dokument - _pathxmlfile = ordnerpfad & "\" & System.IO.Path.GetFileNameWithoutExtension(dokument.aPath) & "." + _pathxmlfile = ordnerpfad & "\" & System.IO.Path.GetFileNameWithoutExtension(pMyWMDoc.aPath) & "." If aktivesProfil.xmlEnd = "xml (ZugFerd)" Then _pathxmlfile &= "xml" Else @@ -950,7 +948,7 @@ Public Class frmNIHauptseite End If If clsHelper.file_exists(_pathxmlfile, "NI") = False Then - _pathxmlfile = ordnerpfad & "\" & System.IO.Path.GetFileNameWithoutExtension(dokument.aPath) & "." & "xfres" + _pathxmlfile = ordnerpfad & "\" & System.IO.Path.GetFileNameWithoutExtension(pMyWMDoc.aPath) & "." & "xfres" If clsHelper.file_exists(_pathxmlfile, "NI") = False Then _Logger.Warn("ACHTUNG 1: Nachindexdatei '" & _pathxmlfile & "' existiert nicht!") ' Markierung des Dokumentes @@ -991,14 +989,14 @@ Public Class frmNIHauptseite If Len(oSqlCommand) > 0 Then 'Ersetzen des Dateinamens - für CURSOR NachindexierungPr If oSqlCommand.Contains("[DATEINAME]") Then - oSqlCommand = oSqlCommand.Replace("[DATEINAME]", dokument.aName) + oSqlCommand = oSqlCommand.Replace("[DATEINAME]", pMyWMDoc.aName) End If If oSqlCommand.Contains("[FULLNAME]") Then - oSqlCommand = oSqlCommand.Replace("[FULLNAME]", My.Settings.MRWD_Laufwerk & ":" & dokument.aPath) + oSqlCommand = oSqlCommand.Replace("[FULLNAME]", My.Settings.MRWD_Laufwerk & ":" & pMyWMDoc.aPath) End If If oSqlCommand.Contains("[DOCFilename]") Then - oSqlCommand = oSqlCommand.Replace("[DOCFilename]", dokument.aName) + oSqlCommand = oSqlCommand.Replace("[DOCFilename]", pMyWMDoc.aName) End If If oSqlCommand.Contains("[DOCFilenameoE]") Then Dim Filename As String = aktivesDokument.aName.ToString.Substring(0, aktivesDokument.aName.LastIndexOf(".")) @@ -1006,13 +1004,13 @@ Public Class frmNIHauptseite End If If oSqlCommand.Contains("[DOCPath]") Then - oSqlCommand = oSqlCommand.Replace("[DOCPath]", Path.GetDirectoryName(My.Settings.vWLaufwerk & ":" & dokument.aPath)) + oSqlCommand = oSqlCommand.Replace("[DOCPath]", Path.GetDirectoryName(My.Settings.vWLaufwerk & ":" & pMyWMDoc.aPath)) End If If oSqlCommand.Contains("[%DATENow]") Then oSqlCommand = oSqlCommand.Replace("[%DATENow]", Now.ToShortDateString) End If If oSqlCommand.Contains("[DOCFULLPATH]") Then - oSqlCommand = oSqlCommand.Replace("[DOCFULLPATH]", My.Settings.MRWD_Laufwerk & ":" & dokument.aPath) + oSqlCommand = oSqlCommand.Replace("[DOCFULLPATH]", My.Settings.MRWD_Laufwerk & ":" & pMyWMDoc.aPath) End If _Logger.Debug($"oSqlCommand after Replace 1([{oSqlCommand}])") ' einen Regulären Ausdruck laden @@ -1030,7 +1028,7 @@ Public Class frmNIHauptseite _Logger.Debug("### Working on Index(" & idxName_ohneSonderzeichen & ")...###") Try ' den Wert des deskriptiven Indexes für das aktuelle Dokument auslesen - IndexwertAusWindream = dokument.GetVariableValue(idxName_ohneSonderzeichen) + IndexwertAusWindream = pMyWMDoc.GetVariableValue(idxName_ohneSonderzeichen) If element.ToString = aktivesProfil.Desk_windreamIndex Then eindeutigerWertausWindream = IndexwertAusWindream End If @@ -1041,9 +1039,8 @@ Public Class frmNIHauptseite result &= vbNewLine & " - Schwerwiegender Fehler bei Auslesen des einschränkenden Wertes aus Index':" & idxName_ohneSonderzeichen & "'" oUnexpectedError = True fehlermsg &= vbNewLine & "Schwerwiegender Fehler bei Auslesen des einschränkenden Wertes aus Index':" & idxName_ohneSonderzeichen & "' - Fehler: " & ex.Message - If My.Settings.vMailsenden = True Then - EMAIL_DD.Send_EMail(fehlermsg, "GettingWMIndexInfo") - End If + EMAIL_DD.Send_EMail(fehlermsg, "GettingWMIndexInfo") + End Try ' wenn beim Auslesen des Wertes für den aktuellen windream-Index kein Fehler auftrat @@ -1157,7 +1154,7 @@ Public Class frmNIHauptseite oResultNachindexierung = database.GetValueFromOracleDb(aktivesProfil.Profilname, selectArray(i), Me.aktivesProfil.DataSource, aktivesProfil.InitialCatalog, aktivesProfil.UserId, aktivesProfil.Password, MyDataset, INDEX_SQL_BEFEHL.Index, Quelle_is_vektor) ElseIf Me.aktivesProfil.DbArt = "MS-SQL" Then _Logger.Debug($"Executing MSSQL ...") - oResultNachindexierung = database.GetValueFromMssqlDb(dokument.aName, aktivesProfil.Profilname, selectArray(i), Me.aktivesProfil.DataSource, aktivesProfil.UserId, aktivesProfil.Password, MyDataset, aktivesProfil.InitialCatalog, INDEX_SQL_BEFEHL.Index, Quelle_is_vektor) + oResultNachindexierung = database.GetValueFromMssqlDb(pMyWMDoc.aName, aktivesProfil.Profilname, selectArray(i), Me.aktivesProfil.DataSource, aktivesProfil.UserId, aktivesProfil.Password, MyDataset, aktivesProfil.InitialCatalog, INDEX_SQL_BEFEHL.Index, Quelle_is_vektor) ElseIf Me.aktivesProfil.DbArt = "ODBC" Then oResultNachindexierung = database.GetValueFromOdbcDb(aktivesProfil.Profilname, selectArray(i), Me.aktivesProfil.DataSource, aktivesProfil.UserId, aktivesProfil.Password, INDEX_SQL_BEFEHL.Index) ' MsgBox(oResultNachindexierung) @@ -1169,14 +1166,14 @@ Public Class frmNIHauptseite Next Case "xml" '#### Indexierung über xml-Dokument - Dim dok As String = System.IO.Path.GetFileNameWithoutExtension(dokument.aPath) + Dim dok As String = System.IO.Path.GetFileNameWithoutExtension(pMyWMDoc.aPath) 'Indexierung über luratech-Ergebnis Files If aktivesProfil.xmlEnd = "xffres" Then _Logger.Debug("Indexierung über XML-Dokument Abby/Luratech") 'Dateipfad für xffres/xml-Datei zusammenbauen If File.Exists(_pathxmlfile) Then 'Übergabe der Dateiparameter und des xml-Knotens - oResultNachindexierung = Trim(xml.GetValueFromLuratechxml(System.IO.Path.GetFileNameWithoutExtension(dokument.aPath) & "." & aktivesProfil.xmlEnd, _pathxmlfile, INDEX_SQL_BEFEHL.Spalte, aktivesProfil.Profilname)) + oResultNachindexierung = Trim(xml.GetValueFromLuratechxml(System.IO.Path.GetFileNameWithoutExtension(pMyWMDoc.aPath) & "." & aktivesProfil.xmlEnd, _pathxmlfile, INDEX_SQL_BEFEHL.Spalte, aktivesProfil.Profilname)) 'wert aus Luratech darf nicht leer sein If oResultNachindexierung Is Nothing Then File_SetBooleanIndex(True, aktivesDokument, aktivesProfil.IndexValidation) @@ -1224,7 +1221,7 @@ Public Class frmNIHauptseite _dokxml = _windreamNI.oWMSession.GetWMObjectByPath(ConstWMEntityDocument, _pathxmlfile.Substring(2)) 'Überprüfen ob deskriptiver Wert eindeutig? _Logger.Debug("Überprüfung ob deskriptiver Wert eindeutig?") - Dim Check As Integer = Check_DeskIndexValue(oResultNachindexierung, aktivesProfil.checkIndexsql, dokument) + Dim Check As Integer = Check_DeskIndexValue(oResultNachindexierung, aktivesProfil.checkIndexsql, pMyWMDoc) Select Case Check Case 0 'Kein Ergebnis für den Deskriptiven Index also Kennzeichnen des Dokumentes über den Index der das Dokument für die Validierung kennzeichnet @@ -1243,7 +1240,7 @@ Public Class frmNIHauptseite ReDim Preserve arrValue(0) arrIndex(0) = INDEX_SQL_BEFEHL.Index arrValue(0) = oResultNachindexierung.ToString - Me._windreamNI.RunIndexing(dokument, arrIndex, arrValue, MyDataset, aktivesProfil.Profilname, aktivesProfil.DokumenttypString) + Me._windreamNI.RunIndexing(pMyWMDoc, arrIndex, arrValue, MyDataset, aktivesProfil.Profilname, aktivesProfil.DokumenttypString) _Logger.Debug("Der falsche OCR-Wert: '" & oResultNachindexierung.ToString & "' wurde eingetragen") Else fehlermsg &= vbNewLine & " - Der deskriptive Indexwert " & oResultNachindexierung & " verweist auf keinen Eintrag in der Datenbank!" @@ -1404,7 +1401,7 @@ Public Class frmNIHauptseite '############################################################################################### '#### Nachindexierung ########################################################################## Dim sw As New ClassStopwatch("RunIndexing_Case1") - oUnexpectedError = Me._windreamNI.RunIndexing(dokument, myNIArrayIndexe, myNIArrayValues, MyDataset, aktivesProfil.Profilname, aktivesProfil.DokumenttypString) + oUnexpectedError = Me._windreamNI.RunIndexing(pMyWMDoc, myNIArrayIndexe, myNIArrayValues, MyDataset, aktivesProfil.Profilname, aktivesProfil.DokumenttypString) Dim msg = sw.Done If msg <> "" Then Stopwatch1 = $"{msg}" @@ -1417,7 +1414,7 @@ Public Class frmNIHauptseite 'Wenn ein SQL-Ergebnis im Durchlauf einen Wert lieferte wird der finale Index auf True gesetzt If myNIArrayValues Is Nothing = False And Not oUnexpectedError Then If Me.aktivesProfil.finalerIndex <> "" And Not oUnexpectedError And myNIArrayValues.Length >= 1 And myNIArrayValues(0) <> "" Then - Me._windreamNI.SetfinalIndex(dokument, Me.aktivesProfil.finalerIndex, True) + Me._windreamNI.SetfinalIndex(pMyWMDoc, Me.aktivesProfil.finalerIndex, True) End If '###### Spezifisches SQL nach jeder Datei! If Me.aktivesProfil.SQL_Anweisung IsNot Nothing And Not oUnexpectedError And myNIArrayValues.Length >= 1 And myNIArrayValues(0) <> "" Then @@ -1447,7 +1444,7 @@ Public Class frmNIHauptseite If elementOhneSonderzeichen.StartsWith("ddv") Then Dim ddvariable As String = "" elementOhneSonderzeichen = elementOhneSonderzeichen.Replace("ddv", "") - Dim filepath = My.Settings.vWLaufwerk & ":" & dokument.aPath + Dim filepath = My.Settings.vWLaufwerk & ":" & pMyWMDoc.aPath Select Case elementOhneSonderzeichen Case "FULLFILENAME" ddvariable = filepath @@ -1459,7 +1456,7 @@ Public Class frmNIHauptseite Else Try ' den Wert des deskriptiven Indexes für das aktuelle Dokument auslesen - IndexwertAusWindream = dokument.GetVariableValue(elementOhneSonderzeichen) + IndexwertAusWindream = pMyWMDoc.GetVariableValue(elementOhneSonderzeichen) Catch ex As Exception ' wenn ein Fehler aufgetreten ist, muss das Flag gesetzt werden oUnexpectedError = True @@ -1627,7 +1624,7 @@ Public Class frmNIHauptseite elementOhneSonderzeichen = elementOhneSonderzeichen.Replace("]", "") Try ' den Wert des deskriptiven Indexes für das aktuelle Dokument auslesen - IndexwertAusWindream = dokument.GetVariableValue(elementOhneSonderzeichen) + IndexwertAusWindream = pMyWMDoc.GetVariableValue(elementOhneSonderzeichen) Catch ex As Exception ' wenn ein Fehler aufgetreten ist, muss das Flag gesetzt werden oUnexpectedError = True @@ -1677,7 +1674,7 @@ Public Class frmNIHauptseite Dim valid As Boolean Try 'Überprüfen ob Validierung auf False steht? - valid = dokument.GetVariableValue(aktivesProfil.IndexValidation) '_windreamNI.GetValueforIndex(dokument.aPath & dokument.aName, aktivesProfil.vSQL_Anweisung) + valid = pMyWMDoc.GetVariableValue(aktivesProfil.IndexValidation) '_windreamNI.GetValueforIndex(dokument.aPath & dokument.aName, aktivesProfil.vSQL_Anweisung) Catch ex As Exception _Logger.Warn("Schwerwiegender Fehler bei Auslesen des Validierungswertes:" & ex.Message) End Try @@ -1701,7 +1698,7 @@ Public Class frmNIHauptseite File_SetBooleanIndex(True, aktivesDokument, aktivesProfil.IndexValidation) 'Fehlermarkierung setzen - _Logger.Debug("Indexierung der xffres-Datei '" & System.IO.Path.GetFileNameWithoutExtension(dokument.aName) & "." & aktivesProfil.xmlEnd & "' - für die Validierung kennzeichnen") + _Logger.Debug("Indexierung der xffres-Datei '" & System.IO.Path.GetFileNameWithoutExtension(pMyWMDoc.aName) & "." & aktivesProfil.xmlEnd & "' - für die Validierung kennzeichnen") 'Nun die xffres Datei indexieren Dim _dokxml As WINDREAMLib.WMObject _dokxml = Nothing @@ -1726,7 +1723,7 @@ Public Class frmNIHauptseite 'MsgBox("Fehler" & vbNewLine & _MRKONVERT_FEHLER & vbNewLine & aktivesProfil.vSQL_Anweisung) Select Case _MRKONVERT_FEHLER Case 1 - Dim valid As Boolean = dokument.GetVariableValue(aktivesProfil.IndexValidation) '_windreamNI.GetValueforIndex(dokument.aPath & dokument.aName, aktivesProfil.vSQL_Anweisung) + Dim valid As Boolean = pMyWMDoc.GetVariableValue(aktivesProfil.IndexValidation) '_windreamNI.GetValueforIndex(dokument.aPath & dokument.aName, aktivesProfil.vSQL_Anweisung) If valid = True Then _Logger.Info("Konvertierungsfehler bei Nachindexierung xml - Index '" & aktivesProfil.IndexValidation & "' für Validierung bereits auf True gesetzt") Else @@ -1753,11 +1750,10 @@ Public Class frmNIHauptseite End If Else If unvollstaendig = False And Me.aktivesProfil.Ni_Art.ToLower <> "fulltext" Then - _Logger.Warn("Fehler bei IndexiereVerarbeiteDokument für die Datei: " & dokument.aName.ToString) + _Logger.Warn("Fehler bei IndexiereVerarbeiteDokument für die Datei: " & pMyWMDoc.aName.ToString) _Logger.Warn("Fehlermeldung: " & fehlermsg) - If My.Settings.vMailsenden = True Then - EMAIL_DD.Send_EMail("Fehler in IndexiereVerarbeiteDokument für die Datei: " & dokument.aName.ToString & "
Profilname: " & aktivesProfil.Profilname & "
Fehlermeldung: " & fehlermsg, "IndexiereVerarbeiteDokument1760") - End If + EMAIL_DD.Send_EMail("Fehler in IndexiereVerarbeiteDokument für die Datei: " & pMyWMDoc.aName.ToString & "
Profilname: " & aktivesProfil.Profilname & "
Fehlermeldung: " & fehlermsg, "IndexiereVerarbeiteDokument1760") + End If End If '#### Ende Nachindexierung @@ -1771,7 +1767,7 @@ Public Class frmNIHauptseite 'Move and Rename ausführen If LICENSE_MoveRename = True And Not oUnexpectedError And unvollstaendig = False Then Dim swMoveandrename As New ClassStopwatch("MoveandRename") - oUnexpectedError = FNMoveRename(dokument) + oUnexpectedError = FNMoveRename(pMyWMDoc) Dim msg1 = swMoveandrename.Done If msg1 <> "" Then @@ -1795,7 +1791,7 @@ Public Class frmNIHauptseite 'Die Objekttypindizes laden Dim Dindexe = _windream.GetIndicesByObjecttype(Me.aktivesProfil.DokumenttypString, False, "NI") If IsArray(Oindexe) And IsArray(Dindexe) Then - OrdnerIndizes_zuweisen(dokument) + OrdnerIndizes_zuweisen(pMyWMDoc) Else _Logger.Debug("IsArray(Oindexe) = False") End If @@ -1809,7 +1805,8 @@ Public Class frmNIHauptseite If oUnexpectedError = False And unvollstaendig = False Then Dim sw As New ClassStopwatch("Move2Folder") _Logger.Debug("Move 2 Folder ist aktiviert") - Dim err As Boolean = Move2Folder(Me.aktivesDokument.aName, My.Settings.MRWD_Laufwerk & ":" & dokument.aPath) + Dim oDescriptiveIndexValue = pMyWMDoc.GetVariableValue(aktivesProfil.Desk_windreamIndex) + Dim err As Boolean = Move2Folder(aktivesDokument.aName, My.Settings.MRWD_Laufwerk & ":" & pMyWMDoc.aPath.ToString, oDescriptiveIndexValue.ToString) Dim msg = sw.Done If msg <> "" Then Stopwatch1 += vbNewLine & $"{msg}" @@ -1826,13 +1823,14 @@ Public Class frmNIHauptseite If oUnexpectedError = False And aktivesProfil.CrFolderIndex <> "" And unvollstaendig = False Then Dim docpath As String If moved_Folder = "" Then - docpath = My.Settings.MRWD_Laufwerk & ":" & dokument.aPath + docpath = My.Settings.MRWD_Laufwerk & ":" & pMyWMDoc.aPath Else docpath = moved_Folder End If - Dim err As Boolean = CrFolderForIndex(docpath) + Dim oMyDocumentName = pMyWMDoc.aName + Dim err As Boolean = CrFolderForIndex(docpath, oMyDocumentName) If err = True Then - EMAIL_DD.Send_EMail("Fehler bei Create Folder for Index bei der Datei: '" & dokument.aName.ToString & "'
Fehler: Die Datei wurde indexiert aber der Ordner konnte nicht erstellt werden!", "CrFolderForIndex") + EMAIL_DD.Send_EMail("Fehler bei Create Folder for Index bei der Datei: '" & pMyWMDoc.aName.ToString & "'
Fehler: Die Datei wurde indexiert aber der Ordner konnte nicht erstellt werden!", "CrFolderForIndex") End If Else @@ -1843,7 +1841,7 @@ Public Class frmNIHauptseite If oUnexpectedError = False And aktivesProfil.NachbearbeitungAD = True And unvollstaendig = False Then _Logger.Debug("Nachbearbeitung AD ist aktiviert") Dim sw As New ClassStopwatch("AD-Rework") - Nachbearbeitung_AD(dokument) + Nachbearbeitung_AD(pMyWMDoc) Dim msg = sw.Done If msg <> "" Then Stopwatch1 += vbNewLine & $"{msg}" @@ -1860,7 +1858,7 @@ Public Class frmNIHauptseite aktivesDokument.unlock() End If Catch ex As Exception - _Logger.Warn("Unexpected error in final Unlocking: " & ex.Message) + _Logger.Info("### Unexpected error in final Unlocking: " & ex.Message) End Try swMessage = swWorkDocument_All.Done If swMessage <> "" Then @@ -1870,7 +1868,7 @@ Public Class frmNIHauptseite Catch ex As Exception _Logger.Error(ex) _Logger.Warn($"oResultNachindexierung so far: {oResultNachindexierung.ToString}") - EMAIL_DD.Send_EMail("Schwerwiegender Fehler bei IndexiereVerarbeiteDokument -
Profil: " & aktivesProfil.Profilname & "
Datei: " & dokument.aName.ToString & "
Fehler: " & ex.Message, "IndexiereVerarbeiteDokument1874") + EMAIL_DD.Send_EMail("Schwerwiegender Fehler bei IndexiereVerarbeiteDokument -
Profil: " & aktivesProfil.Profilname & "
Datei: " & pMyWMDoc.aName.ToString & "
Fehler: " & ex.Message, "IndexiereVerarbeiteDokument1874") End Try End Sub Private Function FolderForIndex(oDynamicFolder As String, myWMDocument As WMObject) As String @@ -1977,18 +1975,20 @@ Public Class frmNIHauptseite Try Dim oReturnString As String Dim oActWMPath As String = "\\windream\objects" & myWMDocument.aPath + Dim oExtension As String = System.IO.Path.GetExtension(oActWMPath) - TBTC_MOVE_RENAMETableAdapter.Connection.ConnectionString = My.Settings.DDECMConString - Me.TBTC_MOVE_RENAMETableAdapter.Fill(Me.MyDataset.TBTC_MOVE_RENAME, aktivesProfil.Profilname) + Dim oSQL = $"SELECT * FROM TBTC_MOVE_RENAME WHERE PROFILE_NAME = '{aktivesProfil.Profilname}'" + Dim oDT_TBTC_MOVE_RENAME As DataTable = DB_ECM.GetDatatable(oSQL) + Dim oVERSIONOFF As Boolean - If MyDataset.TBTC_MOVE_RENAME.Rows.Count = 1 Then - _Logger.Debug($"Found a Move and Rename Definition: [{MyDataset.TBTC_MOVE_RENAME.Rows(0).Item("FOLDER_FOR_INDEX")}]") - oVERSIONOFF = MyDataset.TBTC_MOVE_RENAME.Rows(0).Item("VERSION_OFF") + If oDT_TBTC_MOVE_RENAME.Rows.Count = 1 Then + _Logger.Debug($"Found a Move and Rename Definition: [{oDT_TBTC_MOVE_RENAME.Rows(0).Item("FOLDER_FOR_INDEX")}]") + oVERSIONOFF = oDT_TBTC_MOVE_RENAME.Rows(0).Item("VERSION_OFF") Dim oTargetpath As String 'Regulären Ausdruck zum Auslesen der Indexe definieren Dim oPRegex As String = "\[%{1}[a-zA-Z0-9ß\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}" - If MyDataset.TBTC_MOVE_RENAME.Rows(0).Item("FOLDER_FOR_INDEX") <> "" Then - oTargetpath = MyDataset.TBTC_MOVE_RENAME.Rows(0).Item("FOLDER_FOR_INDEX") + If oDT_TBTC_MOVE_RENAME.Rows(0).Item("FOLDER_FOR_INDEX") <> "" Then + oTargetpath = oDT_TBTC_MOVE_RENAME.Rows(0).Item("FOLDER_FOR_INDEX") oTargetpath = FolderForIndex(oTargetpath, myWMDocument) Else oTargetpath = Path.GetDirectoryName(oActWMPath) @@ -1998,28 +1998,30 @@ Public Class frmNIHauptseite End If 'schonmal den gesamten Pfad laden - Dim oNamenkonvention As String = oTargetpath & "\" & MyDataset.TBTC_MOVE_RENAME.Rows(0).Item("NAMECONVENTION") & oExtension + Dim oNamenkonvention As String = oTargetpath & "\" & oDT_TBTC_MOVE_RENAME.Rows(0).Item("NAMECONVENTION") & oExtension ' einen Regulären Ausdruck laden Dim oRegularExpression As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(oPRegex) ' die Vorkommen im SQL-String auslesen Dim oMatchelements As System.Text.RegularExpressions.MatchCollection = oRegularExpression.Matches(oNamenkonvention) '#### If oMatchelements.Count = 0 Then - _Logger.Info("No RegularExpression Fileds in Nameconvention!", False) + _Logger.Info("No RegularExpression fields in nameconvention!", False) End If ' alle Vorkommen innerhalbd er Namenkonvention durchlaufen For Each oElement As System.Text.RegularExpressions.Match In oMatchelements Select Case oElement.Value.Substring(2, 1) 'Manueller Indexwert Case "m" - _Logger.Debug("Index will be checked...") + Dim oWMIndexname = oElement.Value.Substring(3, oElement.Value.Length - 4) + _Logger.Debug($"FNMoveRename: Index {oWMIndexname} will be checked...") Dim oWMIndexValue As String = myWMDocument.GetVariableValue(oWMIndexname) + If oWMIndexValue <> String.Empty Then Dim oClearedContent As String = String.Join("", oWMIndexValue.Split(Path.GetInvalidFileNameChars())) If oClearedContent <> oWMIndexValue Then - _Logger.Info($"Cleaned the WMContent with GetInvalidFileNameChars from [{oWMIndexValue}] to [{oClearedContent}]") + _Logger.Debug($"Cleaned the WMContent with GetInvalidFileNameChars from [{oWMIndexValue}] to [{oClearedContent}]") oWMIndexValue = oClearedContent End If Dim firstVectorValue = oWMIndexValue.Split("~").First() @@ -2112,7 +2114,7 @@ Public Class frmNIHauptseite Next oReturnString = oNamenkonvention Else - If MyDataset.TBTC_MOVE_RENAME.Rows.Count = 0 Then + If oDT_TBTC_MOVE_RENAME.Rows.Count = 0 Then Return False Else oReturnString = oActWMPath @@ -2144,7 +2146,7 @@ Public Class frmNIHauptseite If File.Exists(oNewPathFilename) Then Try - _Logger.Info("MOVERENAME-VERSIONING is OFF - Deleting existing file...") + _Logger.Debug("MOVERENAME-VERSIONING is OFF - Deleting existing file...") File.Delete(oNewPathFilename) Catch ex As Exception _Logger.Warn($"Could Not delete file As VERSIONOFF Is True [{ex.Message}]") @@ -2163,9 +2165,7 @@ Public Class frmNIHauptseite oReturnString = oNewPathFilename End If End If - - - If _windreamNI.NEW_MOVE_FILE(oReturnString, oActWMPath, "MO_RE") = True Then + If _windreamNI.NEW_MOVE_FILE(oReturnString, oActWMPath, "MO_RE", myWMDocument.aName) = True Then Return False Else Return True @@ -2970,7 +2970,7 @@ Public Class frmNIHauptseite ' Return False ' End Try 'End Function - Private Function Move2Folder(ByVal vDateiName As String, ByVal vFilestring As String) + Private Function Move2Folder(ByVal vDateiName As String, ByVal vFilestring As String, pFileName As String) Try _Logger.Debug("Move2Folder gestartet") Dim extension As String = Path.GetExtension(vDateiName) @@ -2985,7 +2985,8 @@ Public Class frmNIHauptseite _Ziel = neuername version = version + 1 Loop - If _windreamNI.NEW_MOVE_FILE(_Ziel, vFilestring, "Move2Folder") = True Then + + If _windreamNI.NEW_MOVE_FILE(_Ziel, vFilestring, "Move2Folder", pFileName) = True Then If clsHelper.file_exists(vFilestring, "NI") = True Then _Logger.Info("Datei existiert trotz Move noch am ursprünglichen Ort noch....wird gelöscht wenn an Ziel existiert....", False) If clsHelper.file_exists(_Ziel, "NI") = True Then @@ -3003,7 +3004,7 @@ Public Class frmNIHauptseite End Function - Private Function CrFolderForIndex(ByVal fullfilename As String) + Private Function CrFolderForIndex(fullfilename As String, pFileName As String) Try fullfilename = fullfilename.Replace("W:\", "\\windream\objects\") @@ -3134,7 +3135,7 @@ Public Class frmNIHauptseite oWM_Target = neuername Loop - _windreamNI.NEW_MOVE_FILE(oWM_Target, fullfilename, "FolderForIndex") + _windreamNI.NEW_MOVE_FILE(oWM_Target, fullfilename, "FolderForIndex", pFileName) Else _Logger.Info("(CrFolderForIndex) Quell- und Zielordner identisch") If Path.GetFileName(fullfilename) <> Path.GetFileName(oWM_Target) And File.Exists(oWM_Target) Then diff --git a/ToolCollection/frmStart.vb b/ToolCollection/frmStart.vb index 84b1ce9..41b74c2 100644 --- a/ToolCollection/frmStart.vb +++ b/ToolCollection/frmStart.vb @@ -94,6 +94,11 @@ Public Class frmStart End If Next DB_ECM = New MSSQLServer(_MyLogger, oServer, oDB, oUSer, oPW) + If DB_ECM.DBInitialized Then + _Logger.Info("DB ECM SUCCESSFULLY INITIIALIZED") + Else + _Logger.Warn("ATTENTION: DB DD_ECM NOT INITIIALIZED") + End If End If Catch ex As Exception