Importund Bugfixing

This commit is contained in:
Digital Data - Marlon Schreiber 2019-05-22 11:44:12 +02:00
parent 5a7731d7bd
commit 0228272fa6
5 changed files with 155 additions and 129 deletions

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.3.0.1")> <Assembly: AssemblyVersion("2.3.0.3")>
<Assembly: AssemblyFileVersion("1.5.1.0")> <Assembly: AssemblyFileVersion("1.5.1.0")>

View File

@ -9,8 +9,8 @@ Public Class clsNI_WorkFile
Public Shared aktivesProfil As ClassNIProfil Public Shared aktivesProfil As ClassNIProfil
Public Shared _windream As ClassNIWindream Public Shared _windream As ClassNIWindream
Private Shared _XML As New ClassxmlZugriff Private Shared _XML As New ClassxmlZugriff
Public Shared _filevalidation As Boolean = False Public Shared _SetFileValidation As Boolean = False
Public Shared _fileerror As Boolean = False 'Public Shared _fileerror As Boolean = False
Private Shared _WDFileINWORK As WMObject Private Shared _WDFileINWORK As WMObject
Private Shared _WDOrdnerpfad As String Private Shared _WDOrdnerpfad As String
Private Shared _pathxmlfile As String Private Shared _pathxmlfile As String
@ -32,7 +32,7 @@ Public Class clsNI_WorkFile
Try Try
errormsg = "" errormsg = ""
_file_Folderpath = "" _file_Folderpath = ""
Dim error_WorkFile As Boolean = False Dim oErrorInWorkFile As Boolean = False
_WDFileINWORK = dokument _WDFileINWORK = dokument
_WDOrdnerpfad = Path.GetDirectoryName(My.Settings.vWLaufwerk & ":" & dokument.aPath) _WDOrdnerpfad = Path.GetDirectoryName(My.Settings.vWLaufwerk & ":" & dokument.aPath)
@ -44,20 +44,18 @@ Public Class clsNI_WorkFile
'============================================================================ '============================================================================
'Als erstes überprüfen ob eine Überprüfung des Indexes per SQL hinterlegt ist 'Als erstes überprüfen ob eine Überprüfung des Indexes per SQL hinterlegt ist
'============================================================================ '============================================================================
error_WorkFile = Check_Deskriptiven_Index() oErrorInWorkFile = Check_Deskriptiven_Index()
'Wenn alles ok ist - gibt es False zurück 'Wenn alles ok ist - gibt es False zurück
If error_WorkFile = False Then If oErrorInWorkFile = False Then
NI_Indexe = Nothing ' zum Speichern der Indexe NI_Indexe = Nothing ' zum Speichern der Indexe
NI_Values = Nothing ' zum Speichern der Werte NI_Values = Nothing ' zum Speichern der Werte
'Die Indexierungsschritte abarbeiten 'Die Indexierungsschritte abarbeiten
error_WorkFile = Work_Verknuepfungen() oErrorInWorkFile = Work_Verknuepfungen()
If error_WorkFile = False Then If oErrorInWorkFile = False Then
End If End If
End If Else
'Wenn Fehler dann die Datei markieren
If error_WorkFile = True Then
'Validation-Flags setzen 'Validation-Flags setzen
SetValidation() SetValidation()
End If End If
@ -118,14 +116,17 @@ Public Class clsNI_WorkFile
'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(" >> Der deskriptive Indexwert verweist auf KEINEN Eintrag in der Datenbank! - Markierung des Doks") _Logger.Warn(" >> Der deskriptive Indexwert verweist auf KEINEN Eintrag in der Datenbank! - Markierung des Doks")
errormsg &= " >> Der deskriptive Indexwert verweist auf KEINEN Eintrag in der Datenbank!" errormsg &= " >> Der deskriptive Indexwert verweist auf KEINEN Eintrag in der Datenbank!"
_SetFileValidation = True
Return True Return True
Case 1 Case 1
_Logger.Warn(" - Der deskriptive Indexwert verweist genau auf EINEN Eintrag in der Datenbank - Alles OK") _Logger.Warn(" - Der deskriptive Indexwert verweist genau auf EINEN Eintrag in der Datenbank - Alles OK")
_SetFileValidation = False
Return False Return 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(" >> Der deskriptive Indexwert verweist auf MEHR ALS EINEN Eintrag in der Datenbank oder es trat ein genereller Fehler auf!") _Logger.Warn(" >> Der deskriptive Indexwert verweist auf MEHR ALS EINEN Eintrag in der Datenbank oder es trat ein genereller Fehler auf!")
errormsg &= " >> Der deskriptive Indexwert verweist auf MEHR ALS EINEN Eintrag in der Datenbank oder es trat ein genereller Fehler auf!" errormsg &= " >> Der deskriptive Indexwert verweist auf MEHR ALS EINEN Eintrag in der Datenbank oder es trat ein genereller Fehler auf!"
_SetFileValidation = True
Return True Return True
End Select End Select
@ -191,8 +192,11 @@ Public Class clsNI_WorkFile
End Sub End Sub
Private Shared Sub SetValidation() Private Shared Sub SetValidation()
If _filevalidation = True Then File_SetBooleanIndex(True, _WDFileINWORK, aktivesProfil.IndexValidation) If _SetFileValidation = True Then
If _fileerror = True Then File_SetBooleanIndex(True, _WDFileINWORK, aktivesProfil.IndexFehler) File_SetBooleanIndex(True, _WDFileINWORK, aktivesProfil.IndexValidation)
File_SetBooleanIndex(True, _WDFileINWORK, aktivesProfil.IndexFehler)
End If
End Sub End Sub
Private Shared Function Fulltext_init(_dokument As WMObject, fulltext As String) Private Shared Function Fulltext_init(_dokument As WMObject, fulltext As String)
Try Try
@ -575,7 +579,7 @@ Public Class clsNI_WorkFile
'1. aktives Dok '1. aktives Dok
SetValidation() SetValidation()
'2. Indexierungs-Datei '2. Indexierungs-Datei
If _filevalidation = True Then File_SetBooleanIndex(True, _dokxml, aktivesProfil.IndexValidation) If _SetFileValidation = True Then File_SetBooleanIndex(True, _dokxml, aktivesProfil.IndexValidation)
Return True Return True
Case 1 Case 1
_Logger.Debug("- Der deskriptive Indexwert " & _NidxWert & " verweist genau auf EINEN Eintrag in der Datenbank - Alles OK") _Logger.Debug("- Der deskriptive Indexwert " & _NidxWert & " verweist genau auf EINEN Eintrag in der Datenbank - Alles OK")
@ -585,7 +589,7 @@ Public Class clsNI_WorkFile
'1. aktives Dok '1. aktives Dok
SetValidation() SetValidation()
'2. Indexierungs-Datei '2. Indexierungs-Datei
If _filevalidation = True Then File_SetBooleanIndex(True, _dokxml, aktivesProfil.IndexValidation) If _SetFileValidation = True Then File_SetBooleanIndex(True, _dokxml, aktivesProfil.IndexValidation)
Return True Return True
Case 99 Case 99
'Fehler in Überprüfung 'Fehler in Überprüfung
@ -594,7 +598,7 @@ Public Class clsNI_WorkFile
'1. aktives Dok '1. aktives Dok
SetValidation() SetValidation()
'2. Indexierungs-Datei '2. Indexierungs-Datei
If _filevalidation = True Then File_SetBooleanIndex(True, _dokxml, aktivesProfil.IndexValidation) If _SetFileValidation = True Then File_SetBooleanIndex(True, _dokxml, aktivesProfil.IndexValidation)
Return True Return True
End Select End Select
End If End If
@ -634,25 +638,28 @@ Public Class clsNI_WorkFile
End Function End Function
Private Shared Sub File_SetBooleanIndex(ByVal _value As Boolean, ByVal _dok As WINDREAMLib.WMObject, ByVal _Indexname As String) Private Shared Sub File_SetBooleanIndex(ByVal _value As Boolean, ByVal _dok As WINDREAMLib.WMObject, ByVal _Indexname As String)
'Überprüfen ob Validierung bereits gesetzt wurde? If _Indexname <> String.Empty Then
Dim akt_Status As Boolean = CBool(_dok.GetVariableValue(_Indexname)) 'Überprüfen ob Validierung bereits gesetzt wurde?
If akt_Status <> _value Then Dim akt_Status As Boolean = CBool(_dok.GetVariableValue(_Indexname))
'Validation muß angepasst werden If akt_Status <> _value Then
_Logger.Debug("- Validation/Error Index NOCH NICHT auf '" & _value.ToString & "' gesetzt") 'Validation muß angepasst werden
Dim arrIndex() As String = Nothing _Logger.Debug("- Validation/Error Index NOCH NICHT auf '" & _value.ToString & "' gesetzt")
Dim arrValue() As String = Nothing Dim arrIndex() As String = Nothing
'Nun die Datei indexieren Dim arrValue() As String = Nothing
arrIndex = Nothing 'Nun die Datei indexieren
arrValue = Nothing arrIndex = Nothing
ReDim Preserve arrIndex(0) arrValue = Nothing
ReDim Preserve arrValue(0) ReDim Preserve arrIndex(0)
arrIndex(0) = _Indexname ReDim Preserve arrValue(0)
arrValue(0) = _value.ToString arrIndex(0) = _Indexname
_windream.RunIndexing(_dok, arrIndex, arrValue, MyDataset, aktivesProfil.Profilname, aktivesProfil.DokumenttypString) arrValue(0) = _value.ToString
Else _windream.RunIndexing(_dok, arrIndex, arrValue, MyDataset, aktivesProfil.Profilname, aktivesProfil.DokumenttypString)
'Index muß nicht angepasst werden Else
_Logger.Debug("- Validation Index bereits auf '" & _value & "' gesetzt") 'Index muß nicht angepasst werden
_Logger.Debug("- Validation Index bereits auf '" & _value & "' gesetzt")
End If
End If End If
End Sub End Sub
Private Shared Sub Indexiere_ErrorIndex(ByVal _error As String, ByVal _dok As WINDREAMLib.WMObject, ByVal _Indexname As String) Private Shared Sub Indexiere_ErrorIndex(ByVal _error As String, ByVal _dok As WINDREAMLib.WMObject, ByVal _Indexname As String)
Try Try

View File

@ -74,7 +74,7 @@ Public Class frmDIHauptseite
Private bgwQuelldatei = "" Private bgwQuelldatei = ""
Private bgwZielordner = "" Private bgwZielordner = ""
Private oWMStream_Result As Boolean = False Private oWMStream_Result As Integer
Private ErgebnisNochNichtLöschen As Boolean = False Private ErgebnisNochNichtLöschen As Boolean = False
@ -358,7 +358,7 @@ Public Class frmDIHauptseite
End Sub End Sub
Public Function func_check_file_use(ByVal filename) As Boolean Public Function func_check_file_use(ByVal filename) As Boolean
filename = filename.Replace("W:", "\\windream\objects") filename = filename.Replace(My.Settings.vWLaufwerk, "\\windream\objects")
Dim fs As Integer = FreeFile() Dim fs As Integer = FreeFile()
Dim inuse As Boolean = False Dim inuse As Boolean = False
If File.Exists(filename) Then If File.Exists(filename) Then
@ -531,16 +531,16 @@ Public Class frmDIHauptseite
'File in Array speichern 'File in Array speichern
fileAusschluss_List.Add(filenameQuelle) fileAusschluss_List.Add(filenameQuelle)
Me.oWMStream_Result = False Me.oWMStream_Result = 0
Me.threadDateiimport.ReportProgress(Me.dateienImportiert / Me.dateienGesamt * 100) Me.threadDateiimport.ReportProgress(Me.dateienImportiert / Me.dateienGesamt * 100)
Me.dateienImportiert += 1 Me.dateienImportiert += 1
Else Else
'Datei nicht in Benutzung 'Datei nicht in Benutzung
Dim fi As IO.FileInfo = New IO.FileInfo(filenameQuelle) Dim oFileInfo As IO.FileInfo = New IO.FileInfo(filenameQuelle)
'zeitdiff nur Zur sicherheit ob file gerade erst erstellt 'zeitdiff nur Zur sicherheit ob file gerade erst erstellt
'If My.Settings.vDItime_durationExists <> 0 Then 'If My.Settings.vDItime_durationExists <> 0 Then
If selectedProfile.Verzoegerung <> 0 And DateDiff("s", fi.CreationTime, Now) < selectedProfile.Verzoegerung Then If selectedProfile.Verzoegerung <> 0 And DateDiff("s", oFileInfo.CreationTime, Now) < selectedProfile.Verzoegerung Then
'Datei wurde erst "vor kurzem erstellt" - nicht berücksichtigen 'Datei wurde erst "vor kurzem erstellt" - nicht berücksichtigen
If My.Settings.vLogErrorsonly = False Then If My.Settings.vLogErrorsonly = False Then
ClassLoggerDI.Add(" ### Datei vor weniger als " & selectedProfile.Verzoegerung & " sec. erstellt ###", False) ClassLoggerDI.Add(" ### Datei vor weniger als " & selectedProfile.Verzoegerung & " sec. erstellt ###", False)
@ -548,7 +548,7 @@ Public Class frmDIHauptseite
End If End If
'File in Array speichern 'File in Array speichern
fileAusschluss_List.Add(filenameQuelle) fileAusschluss_List.Add(filenameQuelle)
Me.oWMStream_Result = False Me.oWMStream_Result = 0
Me.threadDateiimport.ReportProgress(Me.dateienImportiert / Me.dateienGesamt * 100) Me.threadDateiimport.ReportProgress(Me.dateienImportiert / Me.dateienGesamt * 100)
Me.dateienImportiert += 1 Me.dateienImportiert += 1
Else Else
@ -632,8 +632,9 @@ Public Class frmDIHauptseite
DI_STREAMRESULTFILE = "" DI_STREAMRESULTFILE = ""
Me.oWMStream_Result = Stream_File(Me.bgwQuelldatei, oZielOrdner) 'Me.selectedProfile.OriginalZielordner Me.oWMStream_Result = Stream_File(Me.bgwQuelldatei, oZielOrdner) 'Me.selectedProfile.OriginalZielordner
'DateiÜbertragen_Schleife(Me.bgwQuelldatei, Me.selectedProfile.OriginalZielordner) ' ' 'DateiÜbertragen_Schleife(Me.bgwQuelldatei, Me.selectedProfile.OriginalZielordner) ' '
' dann windream-Festplatte voll CriticalErrorInBackgroundWorker = False
If Me.oWMStream_Result = False Then '
If Me.oWMStream_Result = -2 Then
Me.CriticalErrorInBackgroundWorker = True Me.CriticalErrorInBackgroundWorker = True
Else Else
'Schwerwiegender Fehler in der Dateiübertragung 'Schwerwiegender Fehler in der Dateiübertragung
@ -641,7 +642,7 @@ Public Class frmDIHauptseite
End If End If
' hier nochmal prüfen, da der Fehler gerade erst aufgetreten sein kann ' hier nochmal prüfen, da der Fehler gerade erst aufgetreten sein kann
If Not CriticalErrorInBackgroundWorker Then If Not CriticalErrorInBackgroundWorker Then
If Me.oWMStream_Result = True Then If Me.oWMStream_Result = 0 Then
Try Try
Dim extension As String = Replace(Path.GetExtension(DI_STREAMRESULTFILE), ".", "").ToUpper Dim extension As String = Replace(Path.GetExtension(DI_STREAMRESULTFILE), ".", "").ToUpper
TBDD_REPORTING_IMPORTTableAdapter.Insert(DI_STREAMRESULTFILE, manProfile, DI_FILESIZE, DI_PAGECOUNT, extension) TBDD_REPORTING_IMPORTTableAdapter.Insert(DI_STREAMRESULTFILE, manProfile, DI_FILESIZE, DI_PAGECOUNT, extension)
@ -781,7 +782,7 @@ Public Class frmDIHauptseite
Me.tvLog.Nodes.Add(dateiname.Substring(Me.txtQuellordner.Text.Length)) Me.tvLog.Nodes.Add(dateiname.Substring(Me.txtQuellordner.Text.Length))
'Console.WriteLine("######## TreeNode (" & dateiname.Substring(Me.txtQuellordner.Text.Length) & "): " & Me.übertragen_erfolgreich) 'Console.WriteLine("######## TreeNode (" & dateiname.Substring(Me.txtQuellordner.Text.Length) & "): " & Me.übertragen_erfolgreich)
If Me.oWMStream_Result = True Then If Me.oWMStream_Result = 0 Then
If Me.TreeNodeInfos.Count > 0 Then If Me.TreeNodeInfos.Count > 0 Then
'Me.tvLog.Nodes(Me.dateienImportiert - 1).Nodes.Add(Me.TreeNodeInfos(Me.dateienImportiert - 1)(0)) 'Me.tvLog.Nodes(Me.dateienImportiert - 1).Nodes.Add(Me.TreeNodeInfos(Me.dateienImportiert - 1)(0))
@ -1085,7 +1086,7 @@ Public Class frmDIHauptseite
Directory.CreateDirectory(Zielverzeichnis) Directory.CreateDirectory(Zielverzeichnis)
Catch ex As Exception Catch ex As Exception
ClassLoggerDI.Add(" - Unexpected Error in Creating Target Folder: " & vbNewLine & ex.Message) ClassLoggerDI.Add(" - Unexpected Error in Creating Target Folder: " & vbNewLine & ex.Message)
Return False Return -2
End Try End Try
End If End If
_Step = "2.1" _Step = "2.1"
@ -1100,7 +1101,7 @@ Public Class frmDIHauptseite
Dim length As Long = info.Length Dim length As Long = info.Length
If freeSpace < length Then If freeSpace < length Then
MsgBox(" Auf dem Zielverzeichnis ist nicht genug Speicherplatz zum Übertragen frei.", MsgBoxStyle.Exclamation, "Nicht genug Speicherplatz") MsgBox(" Auf dem Zielverzeichnis ist nicht genug Speicherplatz zum Übertragen frei.", MsgBoxStyle.Exclamation, "Nicht genug Speicherplatz")
Return False - 10 Return -2
End If End If
If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - Datei kopieren von " & filenameQuelle & " nach " & zielpfad.Substring(2) & "\" & Quelldatei_Name & ".", False) If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - Datei kopieren von " & filenameQuelle & " nach " & zielpfad.Substring(2) & "\" & Quelldatei_Name & ".", False)
Dim oNewWMObject Dim oNewWMObject
@ -1186,8 +1187,8 @@ Public Class frmDIHauptseite
ClassLoggerDI.Add(" FEHLER: fileIO konnte nicht gesetzt werden - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") ClassLoggerDI.Add(" FEHLER: fileIO konnte nicht gesetzt werden - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
ClassLoggerDI.Add(" HINWEIS: Überprüfen Sie den Verweis auf die Bibliotheken 'WMOTool.WMFileIO' UND 'WMOTOOLLib.WMFileIO' und ändern diese in den Anwendungseinstellungen (DLL_WMOTOOL)'", False) ClassLoggerDI.Add(" HINWEIS: Überprüfen Sie den Verweis auf die Bibliotheken 'WMOTool.WMFileIO' UND 'WMOTOOLLib.WMFileIO' und ändern diese in den Anwendungseinstellungen (DLL_WMOTOOL)'", False)
oNewWMObject.Unlock() oNewWMObject.Unlock()
System.IO.File.Delete(My.Settings.vWLaufwerk & ":\" & endgültigerDateiname) System.IO.File.Delete(My.Settings.vWLaufwerk & ":" & endgültigerDateiname)
Return False Return -1
' MsgBox(Err.Description) ' MsgBox(Err.Description)
End If End If
_Step = "3.3" _Step = "3.3"
@ -1197,8 +1198,8 @@ Public Class frmDIHauptseite
If Err.Number > 0 Then If Err.Number > 0 Then
ClassLoggerDI.Add(" FEHLER bei OpenStream - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") ClassLoggerDI.Add(" FEHLER bei OpenStream - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
oNewWMObject.Unlock() oNewWMObject.Unlock()
System.IO.File.Delete(My.Settings.vWLaufwerk & ":\" & endgültigerDateiname) System.IO.File.Delete(My.Settings.vWLaufwerk & ":" & endgültigerDateiname)
Return False Return -1
'MsgBox(Err.Description) 'MsgBox(Err.Description)
End If End If
If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - oWMStream erzeugt", False) If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - oWMStream erzeugt", False)
@ -1209,8 +1210,8 @@ Public Class frmDIHauptseite
If Err.Number > 0 Then If Err.Number > 0 Then
ClassLoggerDI.Add(" FEHLER bei Zuweisen aWMStream zu aFileIO - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") ClassLoggerDI.Add(" FEHLER bei Zuweisen aWMStream zu aFileIO - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
oNewWMObject.Unlock() oNewWMObject.Unlock()
System.IO.File.Delete(My.Settings.vWLaufwerk & ":\" & endgültigerDateiname) System.IO.File.Delete(My.Settings.vWLaufwerk & ":" & endgültigerDateiname)
Return False Return -1
'MsgBox(Err.Description) 'MsgBox(Err.Description)
End If End If
' let fileIO object import the original file into windream ' let fileIO object import the original file into windream
@ -1218,8 +1219,8 @@ Public Class frmDIHauptseite
If Err.Number > 0 Then If Err.Number > 0 Then
ClassLoggerDI.Add(" FEHLER bei FileIO.ImportOriginal(True) - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") ClassLoggerDI.Add(" FEHLER bei FileIO.ImportOriginal(True) - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
oNewWMObject.Unlock() oNewWMObject.Unlock()
System.IO.File.Delete(My.Settings.vWLaufwerk & ":\" & endgültigerDateiname) System.IO.File.Delete(My.Settings.vWLaufwerk & ":" & endgültigerDateiname)
Return False Return -1
' MsgBox(Err.Description) ' MsgBox(Err.Description)
End If End If
If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - Inhalt der Datei konnte übertragen werden", False) If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - Inhalt der Datei konnte übertragen werden", False)
@ -1230,8 +1231,8 @@ Public Class frmDIHauptseite
If Err.Number > 0 Then If Err.Number > 0 Then
ClassLoggerDI.Add(" FEHLER bei aWMStream.Close() - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") ClassLoggerDI.Add(" FEHLER bei aWMStream.Close() - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
oNewWMObject.Unlock() oNewWMObject.Unlock()
System.IO.File.Delete(My.Settings.vWLaufwerk & ":\" & endgültigerDateiname) System.IO.File.Delete(My.Settings.vWLaufwerk & ":" & endgültigerDateiname)
Return False Return -1
'MsgBox(Err.Description) 'MsgBox(Err.Description)
End If End If
' save new windream object ' save new windream object
@ -1239,8 +1240,8 @@ Public Class frmDIHauptseite
If Err.Number > 0 Then If Err.Number > 0 Then
ClassLoggerDI.Add(" FEHLER bei WMObject.save - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") ClassLoggerDI.Add(" FEHLER bei WMObject.save - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
oNewWMObject.Unlock() oNewWMObject.Unlock()
System.IO.File.Delete(My.Settings.vWLaufwerk & ":\" & endgültigerDateiname) System.IO.File.Delete(My.Settings.vWLaufwerk & ":" & endgültigerDateiname)
Return False Return -1
'MsgBox(Err.Description) 'MsgBox(Err.Description)
End If End If
If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - Datei konnte gespeichert werden", False) If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - Datei konnte gespeichert werden", False)
@ -1251,21 +1252,20 @@ Public Class frmDIHauptseite
If Err.Number > 0 Then If Err.Number > 0 Then
ClassLoggerDI.Add(" FEHLER bei WMObject.unlock - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") ClassLoggerDI.Add(" FEHLER bei WMObject.unlock - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
oNewWMObject.Unlock() oNewWMObject.Unlock()
System.IO.File.Delete(My.Settings.vWLaufwerk & ":\" & endgültigerDateiname) System.IO.File.Delete(My.Settings.vWLaufwerk & ":" & endgültigerDateiname)
Return False Return -1
'MsgBox(Err.Description) 'MsgBox(Err.Description)
End If End If
If _windream.oWMSession.WMObjectExists(WMEntityDocument, endgültigerDateiname.Replace(My.Settings.vWLaufwerk & ":", ""), 0, 0) = False Then If _windream.oWMSession.WMObjectExists(WMEntityDocument, endgültigerDateiname.Replace(My.Settings.vWLaufwerk & ":", ""), 0, 0) = False Then
ClassLoggerDI.Add(Now.ToShortTimeString & " >> File '" & DI_STREAMRESULTFILE & "' should exist in windream but WMObjectExists returned 'false' ...", True) ClassLoggerDI.Add(Now.ToShortTimeString & " >> File '" & DI_STREAMRESULTFILE & "' should exist in windream but WMObjectExists returned 'false' ...", True)
Return False Return -1
End If End If
'DATEI GRÖSSE ERMITTELN - MANCHMAL KOMMT ES VOR DAS DATEIGRÖße 0 ist 'DATEI GRÖSSE ERMITTELN - MANCHMAL KOMMT ES VOR DAS DATEIGRÖße 0 ist
_Step = "3.7" _Step = "3.7"
If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - _Step: " & _Step, False) If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - _Step: " & _Step, False)
If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - _Step: " & _Step, False) Dim info2 As New FileInfo(My.Settings.vWLaufwerk & ":" & endgültigerDateiname)
Dim info2 As New FileInfo(My.Settings.vWLaufwerk & ":\" & endgültigerDateiname)
Dim length1 As Long = info2.Length Dim length1 As Long = info2.Length
If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - Length der Zieldatei: " & length1.ToString, False) If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - Length der Zieldatei: " & length1.ToString, False)
If length1 > 0 And Err.Number = 0 Then If length1 > 0 And Err.Number = 0 Then
@ -1279,11 +1279,11 @@ Public Class frmDIHauptseite
End Try End Try
Try Try
ClassLoggerDI.Add(" FEHLER bei Dateiindexieren - Datei" & endgültigerDateiname & " wird wieder gelöscht!") ClassLoggerDI.Add(" FEHLER bei Dateiindexieren - Datei" & endgültigerDateiname & " wird wieder gelöscht!")
System.IO.File.Delete(My.Settings.vWLaufwerk & ":\" & endgültigerDateiname) System.IO.File.Delete(My.Settings.vWLaufwerk & ":" & endgültigerDateiname)
Catch ex As Exception Catch ex As Exception
ClassLoggerDI.Add(" Datei konnte nicht gelöscht werden! " & ex.Message) ClassLoggerDI.Add(" Datei konnte nicht gelöscht werden! " & ex.Message)
End Try End Try
Return False Return -1
End If End If
Dim p As String Dim p As String
If endgültigerDateiname.StartsWith("\") Then If endgültigerDateiname.StartsWith("\") Then
@ -1298,31 +1298,31 @@ Public Class frmDIHauptseite
DI_STREAMRESULTFILE = My.Settings.vWLaufwerk & ":" & p DI_STREAMRESULTFILE = My.Settings.vWLaufwerk & ":" & p
If _windream.oWMSession.WMObjectExists(WMEntityDocument, DI_STREAMRESULTFILE.Replace(My.Settings.vWLaufwerk & ":", ""), 0, 0) = True Then If _windream.oWMSession.WMObjectExists(WMEntityDocument, DI_STREAMRESULTFILE.Replace(My.Settings.vWLaufwerk & ":", ""), 0, 0) = True Then
ClassLoggerDI.Add(Now.ToShortTimeString & " >> Datei '" & DI_STREAMRESULTFILE & "' wurde erfolgreich nach windream importiert!", False) ClassLoggerDI.Add(Now.ToShortTimeString & " >> Datei '" & DI_STREAMRESULTFILE & "' wurde erfolgreich nach windream importiert!", False)
Return True Return 0
Else Else
ClassLoggerDI.Add(Now.ToShortTimeString & " >> File '" & DI_STREAMRESULTFILE & "' should exist in windream but WMObjectExists returned 'false' ...", True) ClassLoggerDI.Add(Now.ToShortTimeString & " >> File '" & DI_STREAMRESULTFILE & "' should exist in windream but WMObjectExists returned 'false' ...", True)
Return False Return -1
End If End If
Else Else
_Step = "5" _Step = "5"
If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - _Step: " & _Step, False) If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - _Step: " & _Step, False)
System.IO.File.Delete(My.Settings.vWLaufwerk & ":\" & endgültigerDateiname) System.IO.File.Delete(My.Settings.vWLaufwerk & ":" & endgültigerDateiname)
ClassLoggerDI.Add(" FEHLER bei Datei-Übertragen - FileLength ist 0, Übertragene Datei wurde gelöscht- Überprüfen Sie Log-File") ClassLoggerDI.Add(" FEHLER bei Datei-Übertragen - FileLength ist 0, Übertragene Datei wurde gelöscht- Überprüfen Sie Log-File")
Return False Return -1
End If End If
Else Else
Return False Return -1
End If End If
Else Else
If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - targetPath exisitiert NICHT", False) If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - targetPath exisitiert NICHT", False)
Return False Return -2
End If End If
Catch ex As Exception Catch ex As Exception
ClassLoggerDI.Add("Unexpected Error in Stream_File: " & ex.Message, True) ClassLoggerDI.Add("Unexpected Error in Stream_File: " & ex.Message, True)
Return True Return -1
End Try End Try

View File

@ -28,8 +28,9 @@ Public Class frmNIHauptseite
Private manuallyRun As Boolean = False Private manuallyRun As Boolean = False
'#### Variablen für das Profil '#### Variablen für das Profil
Private Indexe() As String = Nothing ' zum Speichern der Indexe Private myNIDatatable As DataTable
Private NI_Values() As String = Nothing ' zum Speichern der Werte Private oNiArrayIndexe() As String = Nothing ' zum Speichern der Indexe
Private oNiArrayValues() As String = Nothing ' zum Speichern der Werte
Public _MRDokumentart, _MRKundenKennzeichen, _MRDeskrIndex As String Public _MRDokumentart, _MRKundenKennzeichen, _MRDeskrIndex As String
Private _MRlicense As Boolean = False Private _MRlicense As Boolean = False
Public Shared _MRKONVERT_FEHLER As Integer = 0 Public Shared _MRKONVERT_FEHLER As Integer = 0
@ -404,16 +405,14 @@ Public Class frmNIHauptseite
' nun Profilabhängige Parameter laden ' nun Profilabhängige Parameter laden
If aktivesProfil.IndexValidation <> "" Then If aktivesProfil.IndexValidation <> "" Then
_Logger.Debug("Dokumente sollen für Validierung markiert werden - Index: " & aktivesProfil.IndexValidation) _Logger.Debug("Dokumente sollen für Validierung markiert werden - Index: " & aktivesProfil.IndexValidation)
_clsWorkfile._filevalidation = True _clsWorkfile._SetFileValidation = True
Else Else
_clsWorkfile._filevalidation = False _clsWorkfile._SetFileValidation = False
End If End If
_Logger.Debug($"clsWorkfile._filevalidation Checked...") _Logger.Debug($"clsWorkfile._filevalidation Checked...")
If My.Settings.ERROR_INDEX <> "" Then If My.Settings.ERROR_INDEX <> "" Then
_Logger.Debug("Error-msg shall be logged in index: " & My.Settings.ERROR_INDEX) _Logger.Debug("Error-msg shall be logged in index: " & My.Settings.ERROR_INDEX)
_clsWorkfile._fileerror = True
Else
_clsWorkfile._fileerror = False
End If End If
_Logger.Debug($"clsWorkfile._fileerror Checked...") _Logger.Debug($"clsWorkfile._fileerror Checked...")
_Logger.Debug("Ni-Art: " & aktivesProfil.Ni_Art.ToLower) _Logger.Debug("Ni-Art: " & aktivesProfil.Ni_Art.ToLower)
@ -810,10 +809,14 @@ Public Class frmNIHauptseite
Case "activedirectory" Case "activedirectory"
End Select End Select
myNIDatatable = Nothing
Dim oDt As New DataTable
oDt.Columns.Add("Indexname")
oDt.Columns.Add("Value")
myNIDatatable = oDt
oNiArrayIndexe = Nothing ' zum Speichern der Indexe
Indexe = Nothing ' zum Speichern der Indexe oNiArrayValues = Nothing ' zum Speichern der Werte
NI_Values = Nothing ' zum Speichern der Werte
Dim verknüpfungZähler As Integer = 0 Dim verknüpfungZähler As Integer = 0
@ -827,37 +830,37 @@ Public Class frmNIHauptseite
'Regulären Ausdruck zum Auslesen der windream-Indexe definieren 'Regulären Ausdruck zum Auslesen der windream-Indexe definieren
Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}" Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
' SQL-String für aktuelle Verknüpfung laden ' SQL-String für aktuelle Verknüpfung laden
Dim SqlString As String = INDEX_SQL_BEFEHL.SelectAnweisung Dim oSqlCommand As String = INDEX_SQL_BEFEHL.SelectAnweisung
'Ersetzen des Dateinamens - für CURSOR NachindexierungPr 'Ersetzen des Dateinamens - für CURSOR NachindexierungPr
If SqlString.Contains("[DATEINAME]") Then If oSqlCommand.Contains("[DATEINAME]") Then
SqlString = SqlString.Replace("[DATEINAME]", dokument.aName) oSqlCommand = oSqlCommand.Replace("[DATEINAME]", dokument.aName)
End If End If
If SqlString.Contains("[FULLNAME]") Then If oSqlCommand.Contains("[FULLNAME]") Then
SqlString = SqlString.Replace("[FULLNAME]", My.Settings.MRWD_Laufwerk & ":" & dokument.aPath) oSqlCommand = oSqlCommand.Replace("[FULLNAME]", My.Settings.MRWD_Laufwerk & ":" & dokument.aPath)
End If End If
If SqlString.Contains("[%DOCFilename]") Then If oSqlCommand.Contains("[%DOCFilename]") Then
SqlString = SqlString.Replace("[%DOCFilename]", dokument.aName) oSqlCommand = oSqlCommand.Replace("[%DOCFilename]", dokument.aName)
End If End If
If SqlString.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("."))
SqlString = SqlString.Replace("[%DOCFilenameoE]", Path.GetFileNameWithoutExtension(Filename)) oSqlCommand = oSqlCommand.Replace("[%DOCFilenameoE]", Path.GetFileNameWithoutExtension(Filename))
End If End If
If SqlString.Contains("[%DOCPath]") Then If oSqlCommand.Contains("[%DOCPath]") Then
SqlString = SqlString.Replace("[FULLNAME]", Path.GetDirectoryName(My.Settings.vWLaufwerk & ":" & dokument.aPath)) oSqlCommand = oSqlCommand.Replace("[FULLNAME]", Path.GetDirectoryName(My.Settings.vWLaufwerk & ":" & dokument.aPath))
End If End If
If SqlString.Contains("[%DATENow]") Then If oSqlCommand.Contains("[%DATENow]") Then
SqlString = SqlString.Replace("[%DATENow]", Now.ToShortDateString) oSqlCommand = oSqlCommand.Replace("[%DATENow]", Now.ToShortDateString)
End If End If
If SqlString.Contains("[%DOCFULLPATH]") Then If oSqlCommand.Contains("[%DOCFULLPATH]") Then
SqlString = SqlString.Replace("[%DOCFULLPATH]", My.Settings.MRWD_Laufwerk & ":" & dokument.aPath) oSqlCommand = oSqlCommand.Replace("[%DOCFULLPATH]", My.Settings.MRWD_Laufwerk & ":" & dokument.aPath)
End If End If
' einen Regulären Ausdruck laden ' einen Regulären Ausdruck laden
Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg) Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg)
' die Vorkommen im SQL-String auslesen ' die Vorkommen im SQL-String auslesen
Dim elemente As System.Text.RegularExpressions.MatchCollection = regulärerAusdruck.Matches(SqlString) Dim elemente As System.Text.RegularExpressions.MatchCollection = regulärerAusdruck.Matches(oSqlCommand)
' alle Vorkommen der windream-Indexe im SQL-String durchlaufen ' alle Vorkommen der windream-Indexe im SQL-String durchlaufen
For Each element As System.Text.RegularExpressions.Match In elemente For Each element As System.Text.RegularExpressions.Match In elemente
@ -888,12 +891,12 @@ Public Class frmNIHauptseite
If IndexwertAusWindream Is Nothing And Not error_in_Indexierung Then If IndexwertAusWindream Is Nothing And Not error_in_Indexierung Then
' IndexwertAusWindream ist Nothing (idxName_ohneSonderzeichen) ' IndexwertAusWindream ist Nothing (idxName_ohneSonderzeichen)
_Logger.Warn("ACHTUNG: der einschränkende Wert aus Windream für Index '" & idxName_ohneSonderzeichen & "' ist EMPTY oder NOTHING") _Logger.Warn("ACHTUNG: der einschränkende Wert aus Windream für Index '" & idxName_ohneSonderzeichen & "' ist EMPTY oder NOTHING")
_Logger.Warn("SQL-String bisher: " & SqlString) _Logger.Warn("SQL-String bisher: " & oSqlCommand)
' wenn die Abfrage in windream kein Ergebnis gab, muss das error_in_Indexierungflag gesetzt werden ' wenn die Abfrage in windream kein Ergebnis gab, muss das error_in_Indexierungflag gesetzt werden
error_in_Indexierung = True error_in_Indexierung = True
Else Else
' den Platzhalter im SQL-String durch den Wert ersetzen ' den Platzhalter im SQL-String durch den Wert ersetzen
SqlString = SqlString.Replace(element.Value, IndexwertAusWindream.ToString) oSqlCommand = oSqlCommand.Replace(element.Value, IndexwertAusWindream.ToString)
_Logger.Debug("SqlString.Replace(" & element.Value & ", " & IndexwertAusWindream.ToString) _Logger.Debug("SqlString.Replace(" & element.Value & ", " & IndexwertAusWindream.ToString)
End If End If
@ -902,17 +905,17 @@ Public Class frmNIHauptseite
' wenn es sich um den Platzhalter für die Spalte handelt ' wenn es sich um den Platzhalter für die Spalte handelt
If element.Value.ToUpper = "[%SPALTE]" Then If element.Value.ToUpper = "[%SPALTE]" Then
' den Platzhalter für die auszulesende Spalte durch den Spaltennamen ersetzen ' den Platzhalter für die auszulesende Spalte durch den Spaltennamen ersetzen
SqlString = SqlString.Replace(element.Value, INDEX_SQL_BEFEHL.Spalte) oSqlCommand = oSqlCommand.Replace(element.Value, INDEX_SQL_BEFEHL.Spalte)
ElseIf element.Value.ToUpper = "[%VIEW]" Then ElseIf element.Value.ToUpper = "[%VIEW]" Then
' den Platzhalter für den auszulesenden View durch den Viewnamen ersetzen ' den Platzhalter für den auszulesenden View durch den Viewnamen ersetzen
SqlString = SqlString.Replace(element.Value, INDEX_SQL_BEFEHL.From) oSqlCommand = oSqlCommand.Replace(element.Value, INDEX_SQL_BEFEHL.From)
End If End If
End If End If
Next ' zum nächsten Wert in der SQL-Anweisung gehen Next ' zum nächsten Wert in der SQL-Anweisung gehen
result &= vbNewLine & " " & SqlString result &= vbNewLine & " " & oSqlCommand
' wenn kein error_in_Indexierung aufgetreten ist ' wenn kein error_in_Indexierung aufgetreten ist
If error_in_Indexierung = False Then If error_in_Indexierung = False Then
@ -943,29 +946,29 @@ Public Class frmNIHauptseite
_Logger.Debug("Anzahl Elemente: " & Anzahl_NI_Werte) _Logger.Debug("Anzahl Elemente: " & Anzahl_NI_Werte)
'MsgBox("Aha ein Vektorindex" & vbNewLine & "Anzahl Elemente: " & Anzahl_NI_Werte) 'MsgBox("Aha ein Vektorindex" & vbNewLine & "Anzahl Elemente: " & Anzahl_NI_Werte)
Dim selectstring = SqlString Dim selectstring = oSqlCommand
Dim i As Integer = 0 Dim i As Integer = 0
For Each obj As Object In Arr For Each obj As Object In Arr
'Im Select den Objektverweis mit Werta aus Vektorfeld ersetzen 'Im Select den Objektverweis mit Werta aus Vektorfeld ersetzen
SqlString = selectstring oSqlCommand = selectstring
' MsgBox(obj.ToString) ' MsgBox(obj.ToString)
SqlString = SqlString.Replace("System.Object[]", obj.ToString) oSqlCommand = oSqlCommand.Replace("System.Object[]", obj.ToString)
'Select-Befehl an Array übergeben 'Select-Befehl an Array übergeben
selectArray(i) = SqlString selectArray(i) = oSqlCommand
'_Logger.Info("SELECT-BEFEHL: " & selectArray(i)) '_Logger.Info("SELECT-BEFEHL: " & selectArray(i))
i += 1 i += 1
Next Next
Else Else
ReDim Preserve selectArray(0) ReDim Preserve selectArray(0)
'MsgBox("Nur ein Einfachindex :(" & vbNewLine & IndexwertAusWindream.ToString) 'MsgBox("Nur ein Einfachindex :(" & vbNewLine & IndexwertAusWindream.ToString)
selectArray(0) = SqlString selectArray(0) = oSqlCommand
_Logger.Debug("Indexierung gegen einen Einfachindex") _Logger.Debug("Indexierung gegen einen Einfachindex")
End If End If
Else Else
ReDim Preserve selectArray(0) ReDim Preserve selectArray(0)
'MsgBox("Nur ein Einfachindex :(" & vbNewLine & IndexwertAusWindream.ToString) 'MsgBox("Nur ein Einfachindex :(" & vbNewLine & IndexwertAusWindream.ToString)
selectArray(0) = SqlString selectArray(0) = oSqlCommand
_Logger.Warn("IndexwertAusWindream Is Nothing: Select: '" & selectArray(0) & "'") _Logger.Warn("IndexwertAusWindream Is Nothing: Select: '" & oSqlCommand & "'")
End If End If
@ -1141,13 +1144,19 @@ Public Class frmNIHauptseite
Try Try
_Logger.Debug("Arraygößen werden angepasst:") _Logger.Debug("Arraygößen werden angepasst:")
' die Arraygrößen anpassen ' die Arraygrößen anpassen
ReDim Preserve Indexe(verknüpfungZähler) ReDim Preserve oNiArrayIndexe(verknüpfungZähler)
ReDim Preserve NI_Values(verknüpfungZähler) ReDim Preserve oNiArrayValues(verknüpfungZähler)
' den angegebenen Index eintragen ' den angegebenen Index eintragen
Indexe(verknüpfungZähler) = INDEX_SQL_BEFEHL.Index oNiArrayIndexe(verknüpfungZähler) = INDEX_SQL_BEFEHL.Index
' den, übergebenen/gefundenen IndexWert, eintragen ' den, übergebenen/gefundenen IndexWert, eintragen
NI_Values(verknüpfungZähler) = Convert.ToString(_NidxWert) oNiArrayValues(verknüpfungZähler) = Convert.ToString(_NidxWert)
Dim oRow As DataRow = myNIDatatable.NewRow
oRow(0) = INDEX_SQL_BEFEHL.Index
oRow(1) = Convert.ToString(_NidxWert)
myNIDatatable.Rows.Add(oRow)
_Logger.Debug("INDEXWERT: '" & Convert.ToString(_NidxWert) & "'") _Logger.Debug("INDEXWERT: '" & Convert.ToString(_NidxWert) & "'")
verknüpfungZähler += 1 verknüpfungZähler += 1
Catch ex As Exception Catch ex As Exception
@ -1160,15 +1169,20 @@ Public Class frmNIHauptseite
End If End If
If IndexwertAusWindream.GetType.ToString.Contains("System.Object") Then If IndexwertAusWindream.GetType.ToString.Contains("System.Object") Then
' die Arraygrößen anpassen ' die Arraygrößen anpassen
ReDim Preserve Indexe(verknüpfungZähler) ReDim Preserve oNiArrayIndexe(verknüpfungZähler)
ReDim Preserve NI_Values(verknüpfungZähler) ReDim Preserve oNiArrayValues(verknüpfungZähler)
' den angegebenen Index eintragen ' den angegebenen Index eintragen
Indexe(verknüpfungZähler) = INDEX_SQL_BEFEHL.Index oNiArrayIndexe(verknüpfungZähler) = INDEX_SQL_BEFEHL.Index
' den, übergebenen/gefundenen IndexWert, eintragen ' den, übergebenen/gefundenen IndexWert, eintragen
NI_Values(verknüpfungZähler) = Convert.ToString("") oNiArrayValues(verknüpfungZähler) = Convert.ToString("")
_Logger.Debug("Nachindexwert ist Object") _Logger.Debug("Nachindexwert ist Object")
verknüpfungZähler += 1 verknüpfungZähler += 1
Dim oRow As DataRow = myNIDatatable.NewRow
oRow(0) = INDEX_SQL_BEFEHL.Index
oRow(1) = Convert.ToString("")
myNIDatatable.Rows.Add(oRow)
Else Else
'_Logger.Warn("SQL-Abfrage ergab kein Ergebnis") '_Logger.Warn("SQL-Abfrage ergab kein Ergebnis")
If aktivesProfil.Ni_Art.ToLower = "xml" Then If aktivesProfil.Ni_Art.ToLower = "xml" Then
@ -1208,7 +1222,9 @@ Public Class frmNIHauptseite
'############################################################################################### '###############################################################################################
'#### Nachindexierung ########################################################################## '#### Nachindexierung ##########################################################################
Dim sw As New ClassStopwatch("RunIndexing_Case1") Dim sw As New ClassStopwatch("RunIndexing_Case1")
error_in_Indexierung = Me._windreamNI.RunIndexing(dokument, Indexe, NI_Values, MyDataset, aktivesProfil.Profilname, aktivesProfil.DokumenttypString) Dim mmdf = myNIDatatable.Rows.Count
error_in_Indexierung = Me._windreamNI.RunIndexing(dokument, oNiArrayIndexe, oNiArrayValues, MyDataset, aktivesProfil.Profilname, aktivesProfil.DokumenttypString)
Dim msg = sw.Done Dim msg = sw.Done
If msg <> "" Then _Logger.Info($"SWResult: {msg}") If msg <> "" Then _Logger.Info($"SWResult: {msg}")
'#### Nachindexierung Ende ##################################################################### '#### Nachindexierung Ende #####################################################################
@ -1217,12 +1233,12 @@ Public Class frmNIHauptseite
_Logger.Debug("error_in_Indexierung is True - none of following steps will be run!") _Logger.Debug("error_in_Indexierung is True - none of following steps will be run!")
End If End If
'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 NI_Values Is Nothing = False And Not error_in_Indexierung Then If oNiArrayValues Is Nothing = False And Not error_in_Indexierung Then
If Me.aktivesProfil.finalerIndex <> "" And Not error_in_Indexierung And NI_Values.Length >= 1 And NI_Values(0) <> "" Then If Me.aktivesProfil.finalerIndex <> "" And Not error_in_Indexierung And oNiArrayValues.Length >= 1 And oNiArrayValues(0) <> "" Then
Me._windreamNI.SetfinalIndex(dokument, Me.aktivesProfil.finalerIndex, True) Me._windreamNI.SetfinalIndex(dokument, 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 error_in_Indexierung And NI_Values.Length >= 1 And NI_Values(0) <> "" Then If Me.aktivesProfil.SQL_Anweisung IsNot Nothing And Not error_in_Indexierung And oNiArrayValues.Length >= 1 And oNiArrayValues(0) <> "" Then
If Me.aktivesProfil.SQL_Anweisung.StartsWith("EXECUTEVB") Then If Me.aktivesProfil.SQL_Anweisung.StartsWith("EXECUTEVB") Then
_Logger.Debug("Execute VB-Script after indexing......") _Logger.Debug("Execute VB-Script after indexing......")
Dim anweisung As String = Me.aktivesProfil.SQL_Anweisung.Replace("EXECUTEVB ", "") Dim anweisung As String = Me.aktivesProfil.SQL_Anweisung.Replace("EXECUTEVB ", "")
@ -1384,11 +1400,11 @@ Public Class frmNIHauptseite
End If End If
End If End If
Else Else
If IsNothing(NI_Values) Then If IsNothing(oNiArrayValues) Then
_Logger.Debug("NI_Values is nothing!") _Logger.Debug("NI_Values is nothing!")
Else Else
_Logger.Debug("NI_Values.Length: " & NI_Values.Length) _Logger.Debug("NI_Values.Length: " & oNiArrayValues.Length)
_Logger.Debug("NI_Values(0): " & NI_Values(0)) _Logger.Debug("NI_Values(0): " & oNiArrayValues(0))
End If End If
End If End If
@ -1405,7 +1421,7 @@ Public Class frmNIHauptseite
End Try End Try
If valid = True Then If valid = True Then
'nur Zurücksetzten wenn Wert zuweisbar 'nur Zurücksetzten wenn Wert zuweisbar
If (NI_Values.Length = 1 And NI_Values(0) = "") = False Then If (oNiArrayValues.Length = 1 And oNiArrayValues(0) = "") = False Then
_Logger.Debug("Dokument sollte validiert werden - Nun erfolgreich indexiert - also Index '" & aktivesProfil.IndexValidation & "' zurücksetzen!") _Logger.Debug("Dokument sollte validiert werden - Nun erfolgreich indexiert - also Index '" & aktivesProfil.IndexValidation & "' zurücksetzen!")
'Den Flag Validation wieder auf False setzen 'Den Flag Validation wieder auf False setzen
File_SetBooleanIndex(False, aktivesDokument, aktivesProfil.IndexValidation) File_SetBooleanIndex(False, aktivesDokument, aktivesProfil.IndexValidation)
@ -1417,7 +1433,7 @@ Public Class frmNIHauptseite
'###### Nachindexierung über XML - Löschen des Dokumentes ###### '###### Nachindexierung über XML - Löschen des Dokumentes ######
If unvollstaendig = False Then If unvollstaendig = False Then
'##### Löschen der xml-Indexdatei '##### Löschen der xml-Indexdatei
If NI_Values.Length = 1 And NI_Values(0) = "" Then If oNiArrayValues.Length = 1 And oNiArrayValues(0) = "" Then
_Logger.Debug("XML-Wert ist Leer und somit nicht auswertbar - Dok für Validierung markieren") _Logger.Debug("XML-Wert ist Leer und somit nicht auswertbar - Dok für Validierung markieren")
'Den Flag Validation auf True setzen 'Den Flag Validation auf True setzen
File_SetBooleanIndex(True, aktivesDokument, aktivesProfil.IndexValidation) File_SetBooleanIndex(True, aktivesDokument, aktivesProfil.IndexValidation)

View File

@ -3355,8 +3355,11 @@ Public Class frmNIVerknuepfungen
End Sub End Sub
Sub Check_Save_VktInsState() Sub Check_Save_VktInsState()
If Me.lvwVerknuepfungen.SelectedItems.Count > 0 Then If Me.lvwVerknuepfungen.SelectedItems.Count > 0 Then
Dim origstate = Me._selectedProfil._links.getLinkByValues(Me.lvwVerknuepfungen.SelectedItems(0).SubItems(0).Text, Me.lvwVerknuepfungen.SelectedItems(0).SubItems(1).Text, Dim par1 = Me.lvwVerknuepfungen.SelectedItems(0).SubItems(0).Text
Me.lvwVerknuepfungen.SelectedItems(0).SubItems(2).Text).getvktInsState Dim par2 = Me.lvwVerknuepfungen.SelectedItems(0).SubItems(1).Text
Dim par3 = Me.lvwVerknuepfungen.SelectedItems(0).SubItems(2).Text
Dim origstate = Me._selectedProfil._links.getLinkByValues(par1, par2, par3).getvktInsState
Dim vktState = Getvktinsert_State() Dim vktState = Getvktinsert_State()
If vktState <> origstate Then If vktState <> origstate Then
Changeinaction = True Changeinaction = True