MS 2.9.4 SQL Timeout auf 120sec

This commit is contained in:
SchreiberM 2023-09-26 15:54:26 +02:00
parent 7bcf839cb3
commit 43e7dcf068
10 changed files with 264 additions and 286 deletions

View File

@ -11,19 +11,7 @@ Public Class ClassMO_REOld
End Sub End Sub
Public Shared Function Return_Datatable(Select_anweisung As String) Public Shared Function Return_Datatable(Select_anweisung As String)
Try Try
Dim sw As New ClassStopwatch("Return_Datatable") Return DB_ECM.GetDatatable(Select_anweisung)
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
Catch ex As Exception Catch ex As Exception
_Logger.Error(ex) _Logger.Error(ex)
@ -32,16 +20,8 @@ Public Class ClassMO_REOld
End Function End Function
Public Shared Function Execute_Command(ExecuteCMD As String) Public Shared Function Execute_Command(ExecuteCMD As String)
Try Try
Dim sw As New ClassStopwatch("Execute_MSSQL_Command")
Dim SQLconnection As New SqlClient.SqlConnection(My.Settings.DDECMConString) Return DB_ECM.ExecuteNonQuery(ExecuteCMD)
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
Catch ex As Exception Catch ex As Exception
_Logger.Error(ex) _Logger.Error(ex)
@ -49,156 +29,156 @@ Public Class ClassMO_REOld
Return False Return False
End Try End Try
End Function 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 '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 ' Try
Dim DT As New DataTable ' Dim DT As New DataTable
Dim _MRDeskrIndex ' Dim _MRDeskrIndex
Dim _path, _praefix, _kunde, _ziel As String ' Dim _path, _praefix, _kunde, _ziel As String
_Logger.Debug(">> Ausgelesener Kundenidentifikator: " & _MRKUNDE) ' _Logger.Debug(">> Ausgelesener Kundenidentifikator: " & _MRKUNDE)
_Logger.Debug(">> Ausgelesene Dokumentart: " & _MRDOKART) ' _Logger.Debug(">> Ausgelesene Dokumentart: " & _MRDOKART)
Dim oSelect As String ' Dim oSelect As String
If _MRKUNDE Is Nothing Or _MRKUNDE = "" Then ' If _MRKUNDE Is Nothing Or _MRKUNDE = "" Then
'Auslesen der MORE-Konfiguration für Kunde und Standard ' 'Auslesen der MORE-Konfiguration für Kunde und Standard
oSelect = "SELECT * FROM VWMO_RE_DOKUMENTARTZUORDNUNG WHERE (DOKUMENTART = '" & _MRDOKART.ToString & "') AND (UPPER(KUNDEN_NAME) = 'STANDARD')" ' oSelect = "SELECT * FROM VWMO_RE_DOKUMENTARTZUORDNUNG WHERE (DOKUMENTART = '" & _MRDOKART.ToString & "') AND (UPPER(KUNDEN_NAME) = 'STANDARD')"
DT = Return_Datatable(oSelect) ' DT = Return_Datatable(oSelect)
_Logger.Debug(oSelect) ' _Logger.Debug(oSelect)
Else ' Else
If _MRKUNDE = "Standard-VZ" Then _MRKUNDE = "Standard" ' If _MRKUNDE = "Standard-VZ" Then _MRKUNDE = "Standard"
oSelect = "SELECT * FROM VWMO_RE_DOKUMENTARTZUORDNUNG WHERE (DOKUMENTART = '" & _MRDOKART.ToString & "') AND (UPPER(KUNDEN_NAME) = UPPER('" & _MRKUNDE.ToString & "'))" ' 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 ' 'Auslesen der MORE-Konfiguration für Kunde und Dokart
DT = Return_Datatable(oSelect) ' DT = Return_Datatable(oSelect)
_Logger.Debug("Select2: " & oSelect) ' _Logger.Debug("Select2: " & oSelect)
End If ' End If
If DT.Rows.Count = 0 Then ' If DT.Rows.Count = 0 Then
_Logger.Debug("Für Kunden keine Daten - also Standard lesen") ' _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')" ' 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 ' 'Für diesen Kunden wurde keine Konfiguration gefunden also den Standard laden
DT = Return_Datatable(oSelect) ' DT = Return_Datatable(oSelect)
_Logger.Debug("Select3: " & oSelect) ' _Logger.Debug("Select3: " & oSelect)
End If ' End If
If DT.Rows.Count = 1 Then ' If DT.Rows.Count = 1 Then
'Es liegt sowohl Kunde als auch Dokumentart vor ' 'Es liegt sowohl Kunde als auch Dokumentart vor
Try ' Try
_Logger.Debug("Versuch für den Index " & DT.Rows(0).Item("INDEXNAME").ToString & " den Indexwert auszulesen") ' _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})") ' Dim sw As New ClassStopwatch($"GetVariableValue _MRDeskrIndex({DT.Rows(0).Item("INDEXNAME").ToString})")
_MRDeskrIndex = dokument.GetVariableValue(DT.Rows(0).Item("INDEXNAME").ToString) ' _MRDeskrIndex = dokument.GetVariableValue(DT.Rows(0).Item("INDEXNAME").ToString)
Dim msg = sw.Done ' Dim msg = sw.Done
If msg <> String.Empty Then _Logger.Info(msg) ' If msg <> String.Empty Then _Logger.Info(msg)
Catch ex As Exception ' Catch ex As Exception
_Logger.Warn("Achtung: ein eindeutiger/deskriptiver Indexwert existiert noch nicht! Dokument kann nicht verschoben und umbenannt werden!") ' _Logger.Warn("Achtung: ein eindeutiger/deskriptiver Indexwert existiert noch nicht! Dokument kann nicht verschoben und umbenannt werden!")
Return False ' Return False
End Try ' End Try
_Logger.Debug("Ausgelesener Deskriptiver Index: " & _MRDeskrIndex) ' _Logger.Debug("Ausgelesener Deskriptiver Index: " & _MRDeskrIndex)
'Datei-Paramter auslesen ' 'Datei-Paramter auslesen
Dim extension As String = Path.GetExtension(vDatei) ' Dim extension As String = Path.GetExtension(vDatei)
Dim myFolderPath As String ' Dim myFolderPath As String
myFolderPath = Path.GetDirectoryName(vDatei) ' myFolderPath = Path.GetDirectoryName(vDatei)
Dim _WDLaufwerk, _newfilename As String ' Dim _WDLaufwerk, _newfilename As String
_WDLaufwerk = My.Settings.MRWD_Laufwerk ' _WDLaufwerk = My.Settings.MRWD_Laufwerk
_path = DT.Rows(0).Item("DOKUMENTARTORDNER") ' _path = DT.Rows(0).Item("DOKUMENTARTORDNER")
'####### _path anpassen evtl Unterordner ' '####### _path anpassen evtl Unterordner
'Unterordner Index 1 ' 'Unterordner Index 1
Dim _UOindex As String = DT.Rows(0).Item("UO_IDX1") ' Dim _UOindex As String = DT.Rows(0).Item("UO_IDX1")
Dim _UOindex_Value As String = "" ' Dim _UOindex_Value As String = ""
If _UOindex <> "" Then ' If _UOindex <> "" Then
Dim sw As New ClassStopwatch($"GetVariableValue _UOindex({_UOindex})") ' Dim sw As New ClassStopwatch($"GetVariableValue _UOindex({_UOindex})")
_UOindex_Value = dokument.GetVariableValue(_UOindex) ' _UOindex_Value = dokument.GetVariableValue(_UOindex)
Dim msg = sw.Done ' Dim msg = sw.Done
If msg <> String.Empty Then _Logger.Info(msg) ' If msg <> String.Empty Then _Logger.Info(msg)
If Not _UOindex_Value Is Nothing Then ' If Not _UOindex_Value Is Nothing Then
_path &= "\" & _UOindex_Value ' _path &= "\" & _UOindex_Value
If _path.Contains(" 00:00:00") Then _path = _path.Replace(" 00:00:00", "") ' If _path.Contains(" 00:00:00") Then _path = _path.Replace(" 00:00:00", "")
_Logger.Debug("Unterordner 1 soll erzeugt werden - Path '" & _path & "'") ' _Logger.Debug("Unterordner 1 soll erzeugt werden - Path '" & _path & "'")
End If ' End If
End If ' End If
'Unterordner Index 2 ' 'Unterordner Index 2
_UOindex = DT.Rows(0).Item("UO_IDX2") ' _UOindex = DT.Rows(0).Item("UO_IDX2")
If _UOindex <> "" Then ' If _UOindex <> "" Then
Dim sw As New ClassStopwatch($"GetVariableValue _UOindex({_UOindex})") ' Dim sw As New ClassStopwatch($"GetVariableValue _UOindex({_UOindex})")
_UOindex_Value = dokument.GetVariableValue(_UOindex) ' _UOindex_Value = dokument.GetVariableValue(_UOindex)
Dim msg = sw.Done ' Dim msg = sw.Done
If msg <> String.Empty Then _Logger.Info(msg) ' If msg <> String.Empty Then _Logger.Info(msg)
If Not _UOindex_Value Is Nothing Then ' If Not _UOindex_Value Is Nothing Then
_path &= "\" & _UOindex_Value ' _path &= "\" & _UOindex_Value
If _path.Contains(" 00:00:00") Then _path = _path.Replace(" 00:00:00", "") ' If _path.Contains(" 00:00:00") Then _path = _path.Replace(" 00:00:00", "")
_Logger.Debug("Unterordner 2 soll erzeugt werden - Path '" & _path & "'") ' _Logger.Debug("Unterordner 2 soll erzeugt werden - Path '" & _path & "'")
End If ' End If
End If ' End If
_UOindex = DT.Rows(0).Item("UO_IDX3") ' _UOindex = DT.Rows(0).Item("UO_IDX3")
If _UOindex <> "" Then ' If _UOindex <> "" Then
Dim sw As New ClassStopwatch($"GetVariableValue _UOindex({_UOindex})") ' Dim sw As New ClassStopwatch($"GetVariableValue _UOindex({_UOindex})")
_UOindex_Value = dokument.GetVariableValue(_UOindex) ' _UOindex_Value = dokument.GetVariableValue(_UOindex)
Dim msg = sw.Done ' Dim msg = sw.Done
If msg <> String.Empty Then _Logger.Info(msg) ' If msg <> String.Empty Then _Logger.Info(msg)
If Not _UOindex_Value Is Nothing Then ' If Not _UOindex_Value Is Nothing Then
_path &= "\" & _UOindex_Value ' _path &= "\" & _UOindex_Value
If _path.Contains(" 00:00:00") Then _path = _path.Replace(" 00:00:00", "") ' If _path.Contains(" 00:00:00") Then _path = _path.Replace(" 00:00:00", "")
_Logger.Debug("Unterordner 3 soll erzeugt werden - Path '" & _path & "'") ' _Logger.Debug("Unterordner 3 soll erzeugt werden - Path '" & _path & "'")
End If ' End If
End If ' End If
'##### ' '#####
_kunde = DT.Rows(0).Item("KUNDEN_NAME") ' _kunde = DT.Rows(0).Item("KUNDEN_NAME")
_praefix = DT.Rows(0).Item("PRAEFIX") ' _praefix = DT.Rows(0).Item("PRAEFIX")
'Dem Neuen Dateinamen schon mal das Präfix mitgeben ' 'Dem Neuen Dateinamen schon mal das Präfix mitgeben
_newfilename = _praefix ' _newfilename = _praefix
_newfilename = _newfilename & _MRDeskrIndex & extension ' _newfilename = _newfilename & _MRDeskrIndex & extension
_Logger.Debug("Ausgelesener Pfad: " & _path) ' _Logger.Debug("Ausgelesener Pfad: " & _path)
_Logger.Debug("Neuer Dateiname: " & _newfilename) ' _Logger.Debug("Neuer Dateiname: " & _newfilename)
'### VERSIONIERUNG ### ' '### VERSIONIERUNG ###
Dim version As Integer = 2 ' Dim version As Integer = 2
Dim Stammname As String = _newfilename.Substring(0, _newfilename.LastIndexOf(".")) ' Dim Stammname As String = _newfilename.Substring(0, _newfilename.LastIndexOf("."))
Dim neuername As String = _newfilename.Substring(0, _newfilename.LastIndexOf(".")) ' Dim neuername As String = _newfilename.Substring(0, _newfilename.LastIndexOf("."))
'Überprüfen ob File existiert ' 'Überprüfen ob File existiert
Do While file_exists(_path & "\" & neuername & extension, False) = True ' Do While file_exists(_path & "\" & neuername & extension, False) = True
neuername = Stammname & "~" & version ' neuername = Stammname & "~" & version
_newfilename = neuername & extension ' _newfilename = neuername & extension
version = version + 1 ' version = version + 1
Loop ' Loop
_ziel = _path & "\" & _newfilename ' _ziel = _path & "\" & _newfilename
If My.Settings.vLogErrorsonly = False Then ' If My.Settings.vLogErrorsonly = False Then
If neuername.Contains("~") Then _Logger.Info("Neuer Dateiname: " & _newfilename) ' If neuername.Contains("~") Then _Logger.Info("Neuer Dateiname: " & _newfilename)
_Logger.Debug("Neuer Dateiname: " & _newfilename) ' _Logger.Debug("Neuer Dateiname: " & _newfilename)
_Logger.Debug("Quelle: " & vDatei) ' _Logger.Debug("Quelle: " & vDatei)
_Logger.Debug("Ziel: " & _ziel) ' _Logger.Debug("Ziel: " & _ziel)
End If ' End If
If myFolderPath <> _path Then ' If myFolderPath <> _path Then
_windreamNI.NEW_MOVE_FILE(_ziel, vDatei, "MO_RE") ' _windreamNI.NEW_MOVE_FILE(_ziel, vDatei, "MO_RE")
'ClassLoggerNI.Add(" ######### Erfolgsmeldung - Datei wurde erfolgreich umbenannt und verschoben ###########") ' 'ClassLoggerNI.Add(" ######### Erfolgsmeldung - Datei wurde erfolgreich umbenannt und verschoben ###########")
Else ' Else
_Logger.Info("Verschieben nicht notwendig: Ordnerpfad identisch!") ' _Logger.Info("Verschieben nicht notwendig: Ordnerpfad identisch!")
Dim sw As New ClassStopwatch("RenameFile") ' Dim sw As New ClassStopwatch("RenameFile")
My.Computer.FileSystem.RenameFile(vDatei, _newfilename) ' My.Computer.FileSystem.RenameFile(vDatei, _newfilename)
_Logger.Debug("Erfolgsmeldung - Datei wurde erfolgreich umbenannt") ' _Logger.Debug("Erfolgsmeldung - Datei wurde erfolgreich umbenannt")
Dim msg = sw.Done ' Dim msg = sw.Done
If msg <> "" Then _Logger.Debug($"SWResult: {msg}") ' If msg <> "" Then _Logger.Debug($"SWResult: {msg}")
End If ' End If
Execute_Command("INSERT INTO TBMO_RE_HISTORY (FILE_ORIGINAL, FILE_NEW, KUNDE, INDEX1, INDEX2, ERSTELLTWER) VALUES " & ' Execute_Command("INSERT INTO TBMO_RE_HISTORY (FILE_ORIGINAL, FILE_NEW, KUNDE, INDEX1, INDEX2, ERSTELLTWER) VALUES " &
"('" & vDatei & "','" & _ziel & "','" & _kunde & "','" & _MRDeskrIndex & "','" & _MRDOKART & "','ToolCollection MORE')") ' "('" & vDatei & "','" & _ziel & "','" & _kunde & "','" & _MRDeskrIndex & "','" & _MRDOKART & "','ToolCollection MORE')")
Return _ziel ' Return _ziel
Else ' Else
_Logger.Info("MO_RE Result was not 1 row: check select..." & oSelect) ' _Logger.Info("MO_RE Result was not 1 row: check select..." & oSelect)
Return False ' Return False
End If ' End If
Catch ex As Exception ' Catch ex As Exception
_Logger.Error(ex) ' _Logger.Error(ex)
MsgBox(ex.Message, MsgBoxStyle.Critical) ' MsgBox(ex.Message, MsgBoxStyle.Critical)
Return False ' Return False
End Try ' End Try
End Function 'End Function
Private Shared Function file_exists(ByVal _file As String, ByVal suche As Boolean) Private Shared Function file_exists(ByVal _file As String, ByVal suche As Boolean)
Try Try
_file = _file.Replace("W:", "\\windream\objects") _file = _file.Replace("W:", "\\windream\objects")

View File

@ -536,6 +536,7 @@ Public Class ClassNIDatenbankzugriff
Try Try
SQLcommand = SQLconnect.CreateCommand SQLcommand = SQLconnect.CreateCommand
SQLcommand.CommandText = selectAnweisung SQLcommand.CommandText = selectAnweisung
SQLcommand.CommandTimeout = 120
Catch ex As Exception Catch ex As Exception
_Logger.Error(ex) _Logger.Error(ex)
@ -692,7 +693,7 @@ Public Class ClassNIDatenbankzugriff
' die nötigen Variablen definieren ' die nötigen Variablen definieren
Dim Connection As SqlConnection = Nothing Dim Connection As SqlConnection = Nothing
' Dim ConnectionString As SqlConnectionStringBuilder = Nothing ' Dim ConnectionString As SqlConnectionStringBuilder = Nothing
Dim Command As SqlCommand = Nothing Dim oSQLCommand As SqlCommand = Nothing
Dim DataAdapter As SqlDataAdapter = Nothing Dim DataAdapter As SqlDataAdapter = Nothing
'' ConnectionString aufbauen (aus Settings auslesen) '' ConnectionString aufbauen (aus Settings auslesen)
@ -724,7 +725,8 @@ Public Class ClassNIDatenbankzugriff
' SQL-Abfrage definieren ' SQL-Abfrage definieren
Try Try
Command = New SqlCommand(sqlcommand, Connection) oSQLCommand = New SqlCommand(sqlcommand, Connection)
Catch ex As Exception Catch ex As Exception
_Logger.Error(ex) _Logger.Error(ex)
' DB-Connection schliessen ' DB-Connection schliessen
@ -733,10 +735,10 @@ Public Class ClassNIDatenbankzugriff
End Try End Try
' *** Ausführen des Command *** ' *** Ausführen des Command ***
If Command IsNot Nothing Then If oSQLCommand IsNot Nothing Then
Try Try
Command.ExecuteNonQuery() oSQLCommand.ExecuteNonQuery()
' DB-Connection schliessen ' DB-Connection schliessen
Me.CloseMssqlDb(Connection) Me.CloseMssqlDb(Connection)
Return 1 Return 1
@ -760,28 +762,6 @@ Public Class ClassNIDatenbankzugriff
End Try End Try
End Function 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) 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 Try
_Logger.Debug("MSSQL-Command: " & scalar_select) _Logger.Debug("MSSQL-Command: " & scalar_select)

View File

@ -1015,13 +1015,11 @@ Public Class ClassNIWindream
Return Nothing Return Nothing
End Try End Try
End Function 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 Dim oWMFile As WINDREAMLib.WMObject
Try Try
If My.Settings.vLogErrorsonly = False Then _Logger.Debug($"targetpath ({targetpath})")
_Logger.Info($"targetpath ({targetpath})") _Logger.Debug($"sourcepath ({sourcepath})")
_Logger.Info($"sourcepath ({sourcepath})")
End If
Dim sw As New ClassStopwatch("NEW_MOVE_FILE") Dim sw As New ClassStopwatch("NEW_MOVE_FILE")
@ -1035,11 +1033,18 @@ Public Class ClassNIWindream
sourcepath = sourcepath.Replace("\\windream\objects", "") sourcepath = sourcepath.Replace("\\windream\objects", "")
sourcepath = sourcepath.Replace("W:\", "\") sourcepath = sourcepath.Replace("W:\", "\")
targetpath = targetpath.Replace("\\", "\")
Const WMEntityDocument = 1 Const WMEntityDocument = 1
Dim IndexwertAusWindream As Object = Nothing Dim IndexwertAusWindream As Object = Nothing
_Logger.Debug($"NEW_MOVE_FILE getting WMObject for: {sourcepath}") _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 If oWMFile.lock Then
oWMFile.aPath = targetpath oWMFile.aPath = targetpath
oWMFile.Save() oWMFile.Save()
@ -1055,6 +1060,7 @@ Public Class ClassNIWindream
End If End If
Catch ex As Exception Catch ex As Exception
_Logger.Error(ex) _Logger.Error(ex)
_Logger.Warn($"Error in NEW_MOVE_FILE pFileName [{pFileName}] - [{targetpath}]")
If Not IsNothing(oWMFile) Then If Not IsNothing(oWMFile) Then
oWMFile.unlock() oWMFile.unlock()
End If End If

View File

@ -358,7 +358,7 @@ Public Class ClassWD_Rechte
End If End If
ElseIf _GruppenUserRecht.ToString.ToLower.StartsWith("select") Then ElseIf _GruppenUserRecht.ToString.ToLower.StartsWith("select") Then
_GruppenUserRecht = _GruppenUserRecht.ToString.Replace("[%Dokument-ID]", CURRENT_DOCID) _GruppenUserRecht = _GruppenUserRecht.ToString.Replace("[%Dokument-ID]", CURRENT_DOCID)
_GruppenUserRecht = database.Return_Datatable(_GruppenUserRecht) _GruppenUserRecht = DB_ECM.GetDatatable(_GruppenUserRecht)
End If End If
Dim oType = _GruppenUserRecht.GetType.ToString Dim oType = _GruppenUserRecht.GetType.ToString
If oType = "System.Data.DataTable" Then If oType = "System.Data.DataTable" Then

View File

@ -74,6 +74,7 @@ Public Class ClassWindream_allgemein
'MsgBox("windrem init 'ed") 'MsgBox("windrem init 'ed")
Catch ex As Exception Catch ex As Exception
clsHelper.Add_Application_log("Unexpected error in Windream.Init(CreateObjects): " & ex.Message) 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 Return False
End Try End Try
@ -99,7 +100,7 @@ Public Class ClassWindream_allgemein
If Me.oWMSession.aLoggedin = False Then If Me.oWMSession.aLoggedin = False Then
clsHelper.Add_Application_log("Unexpected error in Windream.Init(oSession.aloggedIn): Could not check session-state") 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 Return False
End If End If
@ -144,7 +145,7 @@ Public Class ClassWindream_allgemein
Else Else
If Not ex.Message.Contains("Already logged in") Then If Not ex.Message.Contains("Already logged in") Then
clsHelper.Add_Application_log("Unexpected error in Windream.Init(Already logged in): " & ex.Message) 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 Else
Return True Return True
End If End If
@ -497,6 +498,7 @@ Public Class ClassWindream_allgemein
Return server 'ClassWindream.oBrowser.GetCurrentServer Return server 'ClassWindream.oBrowser.GetCurrentServer
Catch ex As Exception Catch ex As Exception
clsHelper.Add_Application_log("Unexpected error in Windream.GetCurrentServer: " & ex.Message) 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") '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 End Try

View File

@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben: ' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.9.2.0")> <Assembly: AssemblyVersion("2.9.4.0")>
<Assembly: AssemblyFileVersion("2.9.2.0")> <Assembly: AssemblyFileVersion("2.9.4.0")>

View File

@ -428,12 +428,12 @@ Public Class frmDIHauptseite
Me.ImportFileList = My.Computer.FileSystem.GetFiles(Me.selectedProfile.OriginalQuellordner, FileIO.SearchOption.SearchTopLevelOnly, "*.*") Me.ImportFileList = My.Computer.FileSystem.GetFiles(Me.selectedProfile.OriginalQuellordner, FileIO.SearchOption.SearchTopLevelOnly, "*.*")
End If End If
Dim oError As Boolean = False Dim oError As Boolean = False
Dim DT_TBTC_DI_REGEX_MATCH As DataTable
Try Try
Me.TBTC_DI_REGEX_MATCHTableAdapter.Connection.ConnectionString = My.Settings.DDECMConString Dim oSQl = $"SELECT * FROM TBTC_DI_REGEX_MATCH WHERE PROFILE_NAME = '{Me.selectedProfile.OriginalProfilname}'"
Me.TBTC_DI_REGEX_MATCHTableAdapter.Fill(Me.MyDataset.TBTC_DI_REGEX_MATCH, Me.selectedProfile.OriginalProfilname) DT_TBTC_DI_REGEX_MATCH = DB_ECM.GetDatatable(oSQl)
Catch ex As Exception Catch ex As Exception
ClassLoggerDI.Add($"Error while connecting via My.Settings.DDECMConString [{My.Settings.DDECMConString}]" + ex.Message) ClassLoggerDI.Add($"ErrorMessageProfil_Durchlauf: {ex.Message}")
ClassLoggerDI.Add($"ErrorMessage: {ex.Message}")
oError = True oError = True
End Try End Try
@ -511,8 +511,8 @@ Public Class frmDIHauptseite
For Each oFilenameQuelle As String In Me.ImportFileList For Each oFilenameQuelle As String In Me.ImportFileList
fileAusschliessen = False fileAusschliessen = False
Dim oFilenameOnly = Path.GetFileName(oFilenameQuelle) Dim oFilenameOnly = Path.GetFileName(oFilenameQuelle)
If Me.MyDataset.TBTC_DI_REGEX_MATCH.Rows.Count = 1 Then If DT_TBTC_DI_REGEX_MATCH.Rows.Count = 1 Then
If Regex.IsMatch(oFilenameOnly, MyDataset.TBTC_DI_REGEX_MATCH.Rows(0).Item("REGEX")) = False 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) ClassLoggerDI.Add($" >> Regex not Matching for file {oFilenameOnly}!", False)
fileAusschliessen = True fileAusschliessen = True
End If End If
@ -1059,7 +1059,11 @@ Public Class frmDIHauptseite
'######## '########
Dim Zielverzeichnis As String = zielpfad Dim Zielverzeichnis As String = zielpfad
endgültigerDateiname = Zielverzeichnis.Substring(2) & "\" & Quelldatei_Name 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") DetailLog("Zielverzeichnis erzeugt")
If Directory.Exists(Zielverzeichnis) = False Then If Directory.Exists(Zielverzeichnis) = False Then
'Try to create the directory. 'Try to create the directory.

View File

@ -120,13 +120,13 @@ Public Class frmNIHauptseite
End If End If
End Sub End Sub
Private Sub frmNIHauptseite_Load(sender As Object, e As System.EventArgs) Handles Me.Load Private Sub frmNIHauptseite_Load(sender As Object, e As System.EventArgs) Handles Me.Load
Try 'Try
'LoadAllModules() ' 'LoadAllModules()
TBTC_MOVE_RENAMETableAdapter.Connection.ConnectionString = My.Settings.DDECMConString ' TBTC_MOVE_RENAMETableAdapter.Connection.ConnectionString = My.Settings.DDECMConString
Catch ex As Exception 'Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei frmNIHauptseite_Load") ' MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei frmNIHauptseite_Load")
_Logger.Warn("Fehler bei frmNIHauptseite_Load: " & ex.Message) ' _Logger.Warn("Fehler bei frmNIHauptseite_Load: " & ex.Message)
End Try 'End Try
End Sub End Sub
'Private Function return_conn(ByVal dbart As String) 'Private Function return_conn(ByVal dbart As String)
' Select Case dbart ' 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 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!") _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 ' 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: <br> >> Profil: " & Me.aktivesProfil.Profilname & "<br> >> Die windream-Suche : " & Me.aktivesProfil.WindreamSuche & " konnte nicht gefunden werden!" & EMAIL_DD.Send_EMail("Fehler bei Nachindexierung: <br> >> Profil: " & Me.aktivesProfil.Profilname & "<br> >> Die windream-Suche : " & Me.aktivesProfil.WindreamSuche & " konnte nicht gefunden werden!" &
"<br> >> Mögliche Fehlerursache: Das W-Laufwerk ist nicht verfügbar!", "WMissing") "<br> >> Mögliche Fehlerursache: Das W-Laufwerk ist nicht verfügbar!", "WMissing")
End If
Abbruch_NI("Windream-Suche konnte nicht gefunden werden!", True, False) 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") 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 Catch ex As Exception
errormsg = " FEHLER bei Check_Desk_Index (GetVariableValue für Index '" & aktivesProfil.Desk_windreamIndex & "'): " & ex.Message errormsg = " FEHLER bei Check_Desk_Index (GetVariableValue für Index '" & aktivesProfil.Desk_windreamIndex & "'): " & ex.Message
_Logger.Warn(errormsg) _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")
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
' wenn ein Fehler aufgetreten ist, muss das Flag gesetzt werden ' wenn ein Fehler aufgetreten ist, muss das Flag gesetzt werden
Return True Return True
@ -815,7 +813,7 @@ Public Class frmNIHauptseite
End If End If
End Function End Function
' Indexiert die windream-Suchergebnisse ' Indexiert die windream-Suchergebnisse
Public Sub IndexiereVerarbeiteDokument(ByVal dokument As WMObject) Public Sub IndexiereVerarbeiteDokument(ByVal pMyWMDoc As WMObject)
Dim oResultNachindexierung = Nothing Dim oResultNachindexierung = Nothing
Try Try
@ -837,10 +835,10 @@ Public Class frmNIHauptseite
Dim eindeutigerWertausWindream As String Dim eindeutigerWertausWindream As String
Dim _pathxmlfile As String Dim _pathxmlfile As String
'Liefert nur den PFad des aktiven Dokumens '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) _Logger.Debug("OrdnerPfad der Datei: " & ordnerpfad)
Try Try
CURRENT_DOCID = CInt(dokument.GetVariableValue("Dokument-ID")) CURRENT_DOCID = CInt(pMyWMDoc.GetVariableValue("Dokument-ID"))
Catch ex As Exception Catch ex As Exception
CURRENT_DOCID = 0 CURRENT_DOCID = 0
End Try End Try
@ -856,15 +854,15 @@ Public Class frmNIHauptseite
Try Try
_fulltext = New clsNIFulltext(_MyLogger) _fulltext = New clsNIFulltext(_MyLogger)
_Logger.Debug(">> _fulltext initialized.") _Logger.Debug(">> _fulltext initialized.")
fulltext = dokument.GetVariableValue(aktivesProfil.Desk_windreamIndex) fulltext = pMyWMDoc.GetVariableValue(aktivesProfil.Desk_windreamIndex)
If Len(fulltext) > 0 Then If Len(fulltext) > 0 Then
_Logger.Info($"{aktivesProfil.Desk_windreamIndex} is empty...") _Logger.Info($"{aktivesProfil.Desk_windreamIndex} is empty...")
Else Else
_Logger.Info($"## No fulltext from [{aktivesProfil.Desk_windreamIndex}] extracted!") _Logger.Info($"## No fulltext from [{aktivesProfil.Desk_windreamIndex}] extracted!")
fulltext = dokument.GetVariableValue("Manueller Volltext") fulltext = pMyWMDoc.GetVariableValue("Manueller Volltext")
End If End If
If Len(fulltext) > 0 Then If Len(fulltext) > 0 Then
Volltext_indexer(dokument, fulltext) Volltext_indexer(pMyWMDoc, fulltext)
Else Else
_Logger.Info($"## Even no fulltext from Manueller Volltext extracted!") _Logger.Info($"## Even no fulltext from Manueller Volltext extracted!")
End If End If
@ -899,13 +897,13 @@ Public Class frmNIHauptseite
Else Else
' den Wert des deskriptiven Indexes für das aktuelle Dokument auslesen ' den Wert des deskriptiven Indexes für das aktuelle Dokument auslesen
odescIndexValue = dokument.GetVariableValue(aktivesProfil.Desk_windreamIndex) odescIndexValue = pMyWMDoc.GetVariableValue(aktivesProfil.Desk_windreamIndex)
oResultCheck = Check_DeskIndexValue(odescIndexValue, aktivesProfil.checkIndexsql, dokument) oResultCheck = Check_DeskIndexValue(odescIndexValue, aktivesProfil.checkIndexsql, pMyWMDoc)
End If End If
Catch ex As Exception 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 End Try
@ -914,18 +912,18 @@ Public Class frmNIHauptseite
Select Case oResultCheck Select Case oResultCheck
Case 0 Case 0
'Kein Ergebnis für den Deskriptiven Index also Kennzeichnen des Dokumentes über den Index der das Dokument für die Validierung kennzeichnet '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!" fehlermsg &= " >> Der deskriptive Indexwert " & odescIndexValue & " verweist auf KEINEN Eintrag in der Datenbank!"
'Fehler = True 'Fehler = True
unvollstaendig = True unvollstaendig = True
File_SetBooleanIndex(True, aktivesDokument, aktivesProfil.IndexValidation) File_SetBooleanIndex(True, aktivesDokument, aktivesProfil.IndexValidation)
SetErrorMeldung("Value '" & odescIndexValue & "' not found in Database", aktivesDokument, My.Settings.ERROR_INDEX) SetErrorMeldung("Value '" & odescIndexValue & "' not found in Database", aktivesDokument, My.Settings.ERROR_INDEX)
Case 1 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 unvollstaendig = False
Case 2 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 '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!" fehlermsg &= " >> Der deskriptive Indexwert " & odescIndexValue & " verweist auf MEHR ALS EINEN Eintrag in der Datenbank oder es trat ein genereller Fehler auf!"
oUnexpectedError = True oUnexpectedError = True
unvollstaendig = True unvollstaendig = True
@ -942,7 +940,7 @@ Public Class frmNIHauptseite
End Try End Try
End If End If
Case "xml" '#### Indexierung über xml-Dokument 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 If aktivesProfil.xmlEnd = "xml (ZugFerd)" Then
_pathxmlfile &= "xml" _pathxmlfile &= "xml"
Else Else
@ -950,7 +948,7 @@ Public Class frmNIHauptseite
End If End If
If clsHelper.file_exists(_pathxmlfile, "NI") = False Then 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 If clsHelper.file_exists(_pathxmlfile, "NI") = False Then
_Logger.Warn("ACHTUNG 1: Nachindexdatei '" & _pathxmlfile & "' existiert nicht!") _Logger.Warn("ACHTUNG 1: Nachindexdatei '" & _pathxmlfile & "' existiert nicht!")
' Markierung des Dokumentes ' Markierung des Dokumentes
@ -991,14 +989,14 @@ Public Class frmNIHauptseite
If Len(oSqlCommand) > 0 Then If Len(oSqlCommand) > 0 Then
'Ersetzen des Dateinamens - für CURSOR NachindexierungPr 'Ersetzen des Dateinamens - für CURSOR NachindexierungPr
If oSqlCommand.Contains("[DATEINAME]") Then If oSqlCommand.Contains("[DATEINAME]") Then
oSqlCommand = oSqlCommand.Replace("[DATEINAME]", dokument.aName) oSqlCommand = oSqlCommand.Replace("[DATEINAME]", pMyWMDoc.aName)
End If End If
If oSqlCommand.Contains("[FULLNAME]") Then 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 End If
If oSqlCommand.Contains("[DOCFilename]") Then If oSqlCommand.Contains("[DOCFilename]") Then
oSqlCommand = oSqlCommand.Replace("[DOCFilename]", dokument.aName) oSqlCommand = oSqlCommand.Replace("[DOCFilename]", pMyWMDoc.aName)
End If End If
If oSqlCommand.Contains("[DOCFilenameoE]") Then If oSqlCommand.Contains("[DOCFilenameoE]") Then
Dim Filename As String = aktivesDokument.aName.ToString.Substring(0, aktivesDokument.aName.LastIndexOf(".")) Dim Filename As String = aktivesDokument.aName.ToString.Substring(0, aktivesDokument.aName.LastIndexOf("."))
@ -1006,13 +1004,13 @@ Public Class frmNIHauptseite
End If End If
If oSqlCommand.Contains("[DOCPath]") Then 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 End If
If oSqlCommand.Contains("[%DATENow]") Then If oSqlCommand.Contains("[%DATENow]") Then
oSqlCommand = oSqlCommand.Replace("[%DATENow]", Now.ToShortDateString) oSqlCommand = oSqlCommand.Replace("[%DATENow]", Now.ToShortDateString)
End If End If
If oSqlCommand.Contains("[DOCFULLPATH]") Then 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 End If
_Logger.Debug($"oSqlCommand after Replace 1([{oSqlCommand}])") _Logger.Debug($"oSqlCommand after Replace 1([{oSqlCommand}])")
' einen Regulären Ausdruck laden ' einen Regulären Ausdruck laden
@ -1030,7 +1028,7 @@ Public Class frmNIHauptseite
_Logger.Debug("### Working on Index(" & idxName_ohneSonderzeichen & ")...###") _Logger.Debug("### Working on Index(" & idxName_ohneSonderzeichen & ")...###")
Try Try
' den Wert des deskriptiven Indexes für das aktuelle Dokument auslesen ' 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 If element.ToString = aktivesProfil.Desk_windreamIndex Then
eindeutigerWertausWindream = IndexwertAusWindream eindeutigerWertausWindream = IndexwertAusWindream
End If End If
@ -1041,9 +1039,8 @@ Public Class frmNIHauptseite
result &= vbNewLine & " - Schwerwiegender Fehler bei Auslesen des einschränkenden Wertes aus Index':" & idxName_ohneSonderzeichen & "'" result &= vbNewLine & " - Schwerwiegender Fehler bei Auslesen des einschränkenden Wertes aus Index':" & idxName_ohneSonderzeichen & "'"
oUnexpectedError = True oUnexpectedError = True
fehlermsg &= vbNewLine & "Schwerwiegender Fehler bei Auslesen des einschränkenden Wertes aus Index':" & idxName_ohneSonderzeichen & "' - Fehler: " & ex.Message 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")
EMAIL_DD.Send_EMail(fehlermsg, "GettingWMIndexInfo")
End If
End Try End Try
' wenn beim Auslesen des Wertes für den aktuellen windream-Index kein Fehler auftrat ' 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) 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 ElseIf Me.aktivesProfil.DbArt = "MS-SQL" Then
_Logger.Debug($"Executing MSSQL ...") _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 ElseIf Me.aktivesProfil.DbArt = "ODBC" Then
oResultNachindexierung = database.GetValueFromOdbcDb(aktivesProfil.Profilname, selectArray(i), Me.aktivesProfil.DataSource, aktivesProfil.UserId, aktivesProfil.Password, INDEX_SQL_BEFEHL.Index) oResultNachindexierung = database.GetValueFromOdbcDb(aktivesProfil.Profilname, selectArray(i), Me.aktivesProfil.DataSource, aktivesProfil.UserId, aktivesProfil.Password, INDEX_SQL_BEFEHL.Index)
' MsgBox(oResultNachindexierung) ' MsgBox(oResultNachindexierung)
@ -1169,14 +1166,14 @@ Public Class frmNIHauptseite
Next Next
Case "xml" Case "xml"
'#### Indexierung über xml-Dokument '#### 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 'Indexierung über luratech-Ergebnis Files
If aktivesProfil.xmlEnd = "xffres" Then If aktivesProfil.xmlEnd = "xffres" Then
_Logger.Debug("Indexierung über XML-Dokument Abby/Luratech") _Logger.Debug("Indexierung über XML-Dokument Abby/Luratech")
'Dateipfad für xffres/xml-Datei zusammenbauen 'Dateipfad für xffres/xml-Datei zusammenbauen
If File.Exists(_pathxmlfile) Then If File.Exists(_pathxmlfile) Then
'Übergabe der Dateiparameter und des xml-Knotens 'Ü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 'wert aus Luratech darf nicht leer sein
If oResultNachindexierung Is Nothing Then If oResultNachindexierung Is Nothing Then
File_SetBooleanIndex(True, aktivesDokument, aktivesProfil.IndexValidation) File_SetBooleanIndex(True, aktivesDokument, aktivesProfil.IndexValidation)
@ -1224,7 +1221,7 @@ Public Class frmNIHauptseite
_dokxml = _windreamNI.oWMSession.GetWMObjectByPath(ConstWMEntityDocument, _pathxmlfile.Substring(2)) _dokxml = _windreamNI.oWMSession.GetWMObjectByPath(ConstWMEntityDocument, _pathxmlfile.Substring(2))
'Überprüfen ob deskriptiver Wert eindeutig? 'Überprüfen ob deskriptiver Wert eindeutig?
_Logger.Debug("Überprüfung 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 Select Case Check
Case 0 Case 0
'Kein Ergebnis für den Deskriptiven Index also Kennzeichnen des Dokumentes über den Index der das Dokument für die Validierung kennzeichnet '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) ReDim Preserve arrValue(0)
arrIndex(0) = INDEX_SQL_BEFEHL.Index arrIndex(0) = INDEX_SQL_BEFEHL.Index
arrValue(0) = oResultNachindexierung.ToString 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") _Logger.Debug("Der falsche OCR-Wert: '" & oResultNachindexierung.ToString & "' wurde eingetragen")
Else Else
fehlermsg &= vbNewLine & " - Der deskriptive Indexwert " & oResultNachindexierung & " verweist auf keinen Eintrag in der Datenbank!" fehlermsg &= vbNewLine & " - Der deskriptive Indexwert " & oResultNachindexierung & " verweist auf keinen Eintrag in der Datenbank!"
@ -1404,7 +1401,7 @@ Public Class frmNIHauptseite
'############################################################################################### '###############################################################################################
'#### Nachindexierung ########################################################################## '#### Nachindexierung ##########################################################################
Dim sw As New ClassStopwatch("RunIndexing_Case1") 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 Dim msg = sw.Done
If msg <> "" Then If msg <> "" Then
Stopwatch1 = $"{msg}" 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 '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 myNIArrayValues Is Nothing = False And Not oUnexpectedError Then
If Me.aktivesProfil.finalerIndex <> "" And Not oUnexpectedError And myNIArrayValues.Length >= 1 And myNIArrayValues(0) <> "" 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 End If
'###### Spezifisches SQL nach jeder Datei! '###### Spezifisches SQL nach jeder Datei!
If Me.aktivesProfil.SQL_Anweisung IsNot Nothing And Not oUnexpectedError And myNIArrayValues.Length >= 1 And myNIArrayValues(0) <> "" Then 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 If elementOhneSonderzeichen.StartsWith("ddv") Then
Dim ddvariable As String = "" Dim ddvariable As String = ""
elementOhneSonderzeichen = elementOhneSonderzeichen.Replace("ddv", "") elementOhneSonderzeichen = elementOhneSonderzeichen.Replace("ddv", "")
Dim filepath = My.Settings.vWLaufwerk & ":" & dokument.aPath Dim filepath = My.Settings.vWLaufwerk & ":" & pMyWMDoc.aPath
Select Case elementOhneSonderzeichen Select Case elementOhneSonderzeichen
Case "FULLFILENAME" Case "FULLFILENAME"
ddvariable = filepath ddvariable = filepath
@ -1459,7 +1456,7 @@ Public Class frmNIHauptseite
Else Else
Try Try
' den Wert des deskriptiven Indexes für das aktuelle Dokument auslesen ' den Wert des deskriptiven Indexes für das aktuelle Dokument auslesen
IndexwertAusWindream = dokument.GetVariableValue(elementOhneSonderzeichen) IndexwertAusWindream = pMyWMDoc.GetVariableValue(elementOhneSonderzeichen)
Catch ex As Exception Catch ex As Exception
' wenn ein Fehler aufgetreten ist, muss das Flag gesetzt werden ' wenn ein Fehler aufgetreten ist, muss das Flag gesetzt werden
oUnexpectedError = True oUnexpectedError = True
@ -1627,7 +1624,7 @@ Public Class frmNIHauptseite
elementOhneSonderzeichen = elementOhneSonderzeichen.Replace("]", "") elementOhneSonderzeichen = elementOhneSonderzeichen.Replace("]", "")
Try Try
' den Wert des deskriptiven Indexes für das aktuelle Dokument auslesen ' den Wert des deskriptiven Indexes für das aktuelle Dokument auslesen
IndexwertAusWindream = dokument.GetVariableValue(elementOhneSonderzeichen) IndexwertAusWindream = pMyWMDoc.GetVariableValue(elementOhneSonderzeichen)
Catch ex As Exception Catch ex As Exception
' wenn ein Fehler aufgetreten ist, muss das Flag gesetzt werden ' wenn ein Fehler aufgetreten ist, muss das Flag gesetzt werden
oUnexpectedError = True oUnexpectedError = True
@ -1677,7 +1674,7 @@ Public Class frmNIHauptseite
Dim valid As Boolean Dim valid As Boolean
Try Try
'Überprüfen ob Validierung auf False steht? 'Ü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 Catch ex As Exception
_Logger.Warn("Schwerwiegender Fehler bei Auslesen des Validierungswertes:" & ex.Message) _Logger.Warn("Schwerwiegender Fehler bei Auslesen des Validierungswertes:" & ex.Message)
End Try End Try
@ -1701,7 +1698,7 @@ Public Class frmNIHauptseite
File_SetBooleanIndex(True, aktivesDokument, aktivesProfil.IndexValidation) File_SetBooleanIndex(True, aktivesDokument, aktivesProfil.IndexValidation)
'Fehlermarkierung setzen '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 'Nun die xffres Datei indexieren
Dim _dokxml As WINDREAMLib.WMObject Dim _dokxml As WINDREAMLib.WMObject
_dokxml = Nothing _dokxml = Nothing
@ -1726,7 +1723,7 @@ Public Class frmNIHauptseite
'MsgBox("Fehler" & vbNewLine & _MRKONVERT_FEHLER & vbNewLine & aktivesProfil.vSQL_Anweisung) 'MsgBox("Fehler" & vbNewLine & _MRKONVERT_FEHLER & vbNewLine & aktivesProfil.vSQL_Anweisung)
Select Case _MRKONVERT_FEHLER Select Case _MRKONVERT_FEHLER
Case 1 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 If valid = True Then
_Logger.Info("Konvertierungsfehler bei Nachindexierung xml - Index '" & aktivesProfil.IndexValidation & "' für Validierung bereits auf True gesetzt") _Logger.Info("Konvertierungsfehler bei Nachindexierung xml - Index '" & aktivesProfil.IndexValidation & "' für Validierung bereits auf True gesetzt")
Else Else
@ -1753,11 +1750,10 @@ Public Class frmNIHauptseite
End If End If
Else Else
If unvollstaendig = False And Me.aktivesProfil.Ni_Art.ToLower <> "fulltext" Then 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) _Logger.Warn("Fehlermeldung: " & fehlermsg)
If My.Settings.vMailsenden = True Then EMAIL_DD.Send_EMail("Fehler in IndexiereVerarbeiteDokument für die Datei: " & pMyWMDoc.aName.ToString & "<br> Profilname: " & aktivesProfil.Profilname & " <br> Fehlermeldung: " & fehlermsg, "IndexiereVerarbeiteDokument1760")
EMAIL_DD.Send_EMail("Fehler in IndexiereVerarbeiteDokument für die Datei: " & dokument.aName.ToString & "<br> Profilname: " & aktivesProfil.Profilname & " <br> Fehlermeldung: " & fehlermsg, "IndexiereVerarbeiteDokument1760")
End If
End If End If
End If End If
'#### Ende Nachindexierung '#### Ende Nachindexierung
@ -1771,7 +1767,7 @@ Public Class frmNIHauptseite
'Move and Rename ausführen 'Move and Rename ausführen
If LICENSE_MoveRename = True And Not oUnexpectedError And unvollstaendig = False Then If LICENSE_MoveRename = True And Not oUnexpectedError And unvollstaendig = False Then
Dim swMoveandrename As New ClassStopwatch("MoveandRename") Dim swMoveandrename As New ClassStopwatch("MoveandRename")
oUnexpectedError = FNMoveRename(dokument) oUnexpectedError = FNMoveRename(pMyWMDoc)
Dim msg1 = swMoveandrename.Done Dim msg1 = swMoveandrename.Done
If msg1 <> "" Then If msg1 <> "" Then
@ -1795,7 +1791,7 @@ Public Class frmNIHauptseite
'Die Objekttypindizes laden 'Die Objekttypindizes laden
Dim Dindexe = _windream.GetIndicesByObjecttype(Me.aktivesProfil.DokumenttypString, False, "NI") Dim Dindexe = _windream.GetIndicesByObjecttype(Me.aktivesProfil.DokumenttypString, False, "NI")
If IsArray(Oindexe) And IsArray(Dindexe) Then If IsArray(Oindexe) And IsArray(Dindexe) Then
OrdnerIndizes_zuweisen(dokument) OrdnerIndizes_zuweisen(pMyWMDoc)
Else Else
_Logger.Debug("IsArray(Oindexe) = False") _Logger.Debug("IsArray(Oindexe) = False")
End If End If
@ -1809,7 +1805,8 @@ Public Class frmNIHauptseite
If oUnexpectedError = False And unvollstaendig = False Then If oUnexpectedError = False And unvollstaendig = False Then
Dim sw As New ClassStopwatch("Move2Folder") Dim sw As New ClassStopwatch("Move2Folder")
_Logger.Debug("Move 2 Folder ist aktiviert") _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 Dim msg = sw.Done
If msg <> "" Then If msg <> "" Then
Stopwatch1 += vbNewLine & $"{msg}" Stopwatch1 += vbNewLine & $"{msg}"
@ -1826,13 +1823,14 @@ Public Class frmNIHauptseite
If oUnexpectedError = False And aktivesProfil.CrFolderIndex <> "" And unvollstaendig = False Then If oUnexpectedError = False And aktivesProfil.CrFolderIndex <> "" And unvollstaendig = False Then
Dim docpath As String Dim docpath As String
If moved_Folder = "" Then If moved_Folder = "" Then
docpath = My.Settings.MRWD_Laufwerk & ":" & dokument.aPath docpath = My.Settings.MRWD_Laufwerk & ":" & pMyWMDoc.aPath
Else Else
docpath = moved_Folder docpath = moved_Folder
End If End If
Dim err As Boolean = CrFolderForIndex(docpath) Dim oMyDocumentName = pMyWMDoc.aName
Dim err As Boolean = CrFolderForIndex(docpath, oMyDocumentName)
If err = True Then If err = True Then
EMAIL_DD.Send_EMail("Fehler bei Create Folder for Index bei der Datei: '" & dokument.aName.ToString & "'<br> 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 & "'<br> Fehler: Die Datei wurde indexiert aber der Ordner konnte nicht erstellt werden!", "CrFolderForIndex")
End If End If
Else Else
@ -1843,7 +1841,7 @@ Public Class frmNIHauptseite
If oUnexpectedError = False And aktivesProfil.NachbearbeitungAD = True And unvollstaendig = False Then If oUnexpectedError = False And aktivesProfil.NachbearbeitungAD = True And unvollstaendig = False Then
_Logger.Debug("Nachbearbeitung AD ist aktiviert") _Logger.Debug("Nachbearbeitung AD ist aktiviert")
Dim sw As New ClassStopwatch("AD-Rework") Dim sw As New ClassStopwatch("AD-Rework")
Nachbearbeitung_AD(dokument) Nachbearbeitung_AD(pMyWMDoc)
Dim msg = sw.Done Dim msg = sw.Done
If msg <> "" Then If msg <> "" Then
Stopwatch1 += vbNewLine & $"{msg}" Stopwatch1 += vbNewLine & $"{msg}"
@ -1860,7 +1858,7 @@ Public Class frmNIHauptseite
aktivesDokument.unlock() aktivesDokument.unlock()
End If End If
Catch ex As Exception Catch ex As Exception
_Logger.Warn("Unexpected error in final Unlocking: " & ex.Message) _Logger.Info("### Unexpected error in final Unlocking: " & ex.Message)
End Try End Try
swMessage = swWorkDocument_All.Done swMessage = swWorkDocument_All.Done
If swMessage <> "" Then If swMessage <> "" Then
@ -1870,7 +1868,7 @@ Public Class frmNIHauptseite
Catch ex As Exception Catch ex As Exception
_Logger.Error(ex) _Logger.Error(ex)
_Logger.Warn($"oResultNachindexierung so far: {oResultNachindexierung.ToString}") _Logger.Warn($"oResultNachindexierung so far: {oResultNachindexierung.ToString}")
EMAIL_DD.Send_EMail("Schwerwiegender Fehler bei IndexiereVerarbeiteDokument - <br> Profil: " & aktivesProfil.Profilname & "<br> Datei: " & dokument.aName.ToString & "<br> Fehler: " & ex.Message, "IndexiereVerarbeiteDokument1874") EMAIL_DD.Send_EMail("Schwerwiegender Fehler bei IndexiereVerarbeiteDokument - <br> Profil: " & aktivesProfil.Profilname & "<br> Datei: " & pMyWMDoc.aName.ToString & "<br> Fehler: " & ex.Message, "IndexiereVerarbeiteDokument1874")
End Try End Try
End Sub End Sub
Private Function FolderForIndex(oDynamicFolder As String, myWMDocument As WMObject) As String Private Function FolderForIndex(oDynamicFolder As String, myWMDocument As WMObject) As String
@ -1977,18 +1975,20 @@ Public Class frmNIHauptseite
Try Try
Dim oReturnString As String Dim oReturnString As String
Dim oActWMPath As String = "\\windream\objects" & myWMDocument.aPath Dim oActWMPath As String = "\\windream\objects" & myWMDocument.aPath
Dim oExtension As String = System.IO.Path.GetExtension(oActWMPath) Dim oExtension As String = System.IO.Path.GetExtension(oActWMPath)
TBTC_MOVE_RENAMETableAdapter.Connection.ConnectionString = My.Settings.DDECMConString Dim oSQL = $"SELECT * FROM TBTC_MOVE_RENAME WHERE PROFILE_NAME = '{aktivesProfil.Profilname}'"
Me.TBTC_MOVE_RENAMETableAdapter.Fill(Me.MyDataset.TBTC_MOVE_RENAME, aktivesProfil.Profilname) Dim oDT_TBTC_MOVE_RENAME As DataTable = DB_ECM.GetDatatable(oSQL)
Dim oVERSIONOFF As Boolean Dim oVERSIONOFF As Boolean
If MyDataset.TBTC_MOVE_RENAME.Rows.Count = 1 Then If oDT_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")}]") _Logger.Debug($"Found a Move and Rename Definition: [{oDT_TBTC_MOVE_RENAME.Rows(0).Item("FOLDER_FOR_INDEX")}]")
oVERSIONOFF = MyDataset.TBTC_MOVE_RENAME.Rows(0).Item("VERSION_OFF") oVERSIONOFF = oDT_TBTC_MOVE_RENAME.Rows(0).Item("VERSION_OFF")
Dim oTargetpath As String Dim oTargetpath As String
'Regulären Ausdruck zum Auslesen der Indexe definieren 'Regulären Ausdruck zum Auslesen der Indexe definieren
Dim oPRegex As String = "\[%{1}[a-zA-Z0-9ß\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}" Dim oPRegex As String = "\[%{1}[a-zA-Z0-9ß\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
If MyDataset.TBTC_MOVE_RENAME.Rows(0).Item("FOLDER_FOR_INDEX") <> "" Then If oDT_TBTC_MOVE_RENAME.Rows(0).Item("FOLDER_FOR_INDEX") <> "" Then
oTargetpath = MyDataset.TBTC_MOVE_RENAME.Rows(0).Item("FOLDER_FOR_INDEX") oTargetpath = oDT_TBTC_MOVE_RENAME.Rows(0).Item("FOLDER_FOR_INDEX")
oTargetpath = FolderForIndex(oTargetpath, myWMDocument) oTargetpath = FolderForIndex(oTargetpath, myWMDocument)
Else Else
oTargetpath = Path.GetDirectoryName(oActWMPath) oTargetpath = Path.GetDirectoryName(oActWMPath)
@ -1998,28 +1998,30 @@ Public Class frmNIHauptseite
End If End If
'schonmal den gesamten Pfad laden '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 ' einen Regulären Ausdruck laden
Dim oRegularExpression As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(oPRegex) Dim oRegularExpression As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(oPRegex)
' die Vorkommen im SQL-String auslesen ' die Vorkommen im SQL-String auslesen
Dim oMatchelements As System.Text.RegularExpressions.MatchCollection = oRegularExpression.Matches(oNamenkonvention) Dim oMatchelements As System.Text.RegularExpressions.MatchCollection = oRegularExpression.Matches(oNamenkonvention)
'#### '####
If oMatchelements.Count = 0 Then If oMatchelements.Count = 0 Then
_Logger.Info("No RegularExpression Fileds in Nameconvention!", False) _Logger.Info("No RegularExpression fields in nameconvention!", False)
End If End If
' alle Vorkommen innerhalbd er Namenkonvention durchlaufen ' alle Vorkommen innerhalbd er Namenkonvention durchlaufen
For Each oElement As System.Text.RegularExpressions.Match In oMatchelements For Each oElement As System.Text.RegularExpressions.Match In oMatchelements
Select Case oElement.Value.Substring(2, 1) Select Case oElement.Value.Substring(2, 1)
'Manueller Indexwert 'Manueller Indexwert
Case "m" Case "m"
_Logger.Debug("Index will be checked...")
Dim oWMIndexname = oElement.Value.Substring(3, oElement.Value.Length - 4) 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) Dim oWMIndexValue As String = myWMDocument.GetVariableValue(oWMIndexname)
If oWMIndexValue <> String.Empty Then If oWMIndexValue <> String.Empty Then
Dim oClearedContent As String = String.Join("", oWMIndexValue.Split(Path.GetInvalidFileNameChars())) Dim oClearedContent As String = String.Join("", oWMIndexValue.Split(Path.GetInvalidFileNameChars()))
If oClearedContent <> oWMIndexValue Then 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 oWMIndexValue = oClearedContent
End If End If
Dim firstVectorValue = oWMIndexValue.Split("~").First() Dim firstVectorValue = oWMIndexValue.Split("~").First()
@ -2112,7 +2114,7 @@ Public Class frmNIHauptseite
Next Next
oReturnString = oNamenkonvention oReturnString = oNamenkonvention
Else Else
If MyDataset.TBTC_MOVE_RENAME.Rows.Count = 0 Then If oDT_TBTC_MOVE_RENAME.Rows.Count = 0 Then
Return False Return False
Else Else
oReturnString = oActWMPath oReturnString = oActWMPath
@ -2144,7 +2146,7 @@ Public Class frmNIHauptseite
If File.Exists(oNewPathFilename) Then If File.Exists(oNewPathFilename) Then
Try Try
_Logger.Info("MOVERENAME-VERSIONING is OFF - Deleting existing file...") _Logger.Debug("MOVERENAME-VERSIONING is OFF - Deleting existing file...")
File.Delete(oNewPathFilename) File.Delete(oNewPathFilename)
Catch ex As Exception Catch ex As Exception
_Logger.Warn($"Could Not delete file As VERSIONOFF Is True [{ex.Message}]") _Logger.Warn($"Could Not delete file As VERSIONOFF Is True [{ex.Message}]")
@ -2163,9 +2165,7 @@ Public Class frmNIHauptseite
oReturnString = oNewPathFilename oReturnString = oNewPathFilename
End If End If
End If End If
If _windreamNI.NEW_MOVE_FILE(oReturnString, oActWMPath, "MO_RE", myWMDocument.aName) = True Then
If _windreamNI.NEW_MOVE_FILE(oReturnString, oActWMPath, "MO_RE") = True Then
Return False Return False
Else Else
Return True Return True
@ -2970,7 +2970,7 @@ Public Class frmNIHauptseite
' Return False ' Return False
' End Try ' End Try
'End Function '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 Try
_Logger.Debug("Move2Folder gestartet") _Logger.Debug("Move2Folder gestartet")
Dim extension As String = Path.GetExtension(vDateiName) Dim extension As String = Path.GetExtension(vDateiName)
@ -2985,7 +2985,8 @@ Public Class frmNIHauptseite
_Ziel = neuername _Ziel = neuername
version = version + 1 version = version + 1
Loop 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 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) _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 If clsHelper.file_exists(_Ziel, "NI") = True Then
@ -3003,7 +3004,7 @@ Public Class frmNIHauptseite
End Function End Function
Private Function CrFolderForIndex(ByVal fullfilename As String) Private Function CrFolderForIndex(fullfilename As String, pFileName As String)
Try Try
fullfilename = fullfilename.Replace("W:\", "\\windream\objects\") fullfilename = fullfilename.Replace("W:\", "\\windream\objects\")
@ -3134,7 +3135,7 @@ Public Class frmNIHauptseite
oWM_Target = neuername oWM_Target = neuername
Loop Loop
_windreamNI.NEW_MOVE_FILE(oWM_Target, fullfilename, "FolderForIndex") _windreamNI.NEW_MOVE_FILE(oWM_Target, fullfilename, "FolderForIndex", pFileName)
Else Else
_Logger.Info("(CrFolderForIndex) Quell- und Zielordner identisch") _Logger.Info("(CrFolderForIndex) Quell- und Zielordner identisch")
If Path.GetFileName(fullfilename) <> Path.GetFileName(oWM_Target) And File.Exists(oWM_Target) Then If Path.GetFileName(fullfilename) <> Path.GetFileName(oWM_Target) And File.Exists(oWM_Target) Then

View File

@ -94,6 +94,11 @@ Public Class frmStart
End If End If
Next Next
DB_ECM = New MSSQLServer(_MyLogger, oServer, oDB, oUSer, oPW) 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 End If
Catch ex As Exception Catch ex As Exception