Importund Bugfixing
This commit is contained in:
parent
5a7731d7bd
commit
0228272fa6
@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
||||
' übernehmen, indem Sie "*" eingeben:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.3.0.1")>
|
||||
<Assembly: AssemblyVersion("2.3.0.3")>
|
||||
<Assembly: AssemblyFileVersion("1.5.1.0")>
|
||||
|
||||
@ -9,8 +9,8 @@ Public Class clsNI_WorkFile
|
||||
Public Shared aktivesProfil As ClassNIProfil
|
||||
Public Shared _windream As ClassNIWindream
|
||||
Private Shared _XML As New ClassxmlZugriff
|
||||
Public Shared _filevalidation As Boolean = False
|
||||
Public Shared _fileerror As Boolean = False
|
||||
Public Shared _SetFileValidation As Boolean = False
|
||||
'Public Shared _fileerror As Boolean = False
|
||||
Private Shared _WDFileINWORK As WMObject
|
||||
Private Shared _WDOrdnerpfad As String
|
||||
Private Shared _pathxmlfile As String
|
||||
@ -32,7 +32,7 @@ Public Class clsNI_WorkFile
|
||||
Try
|
||||
errormsg = ""
|
||||
_file_Folderpath = ""
|
||||
Dim error_WorkFile As Boolean = False
|
||||
Dim oErrorInWorkFile As Boolean = False
|
||||
_WDFileINWORK = dokument
|
||||
_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
|
||||
'============================================================================
|
||||
error_WorkFile = Check_Deskriptiven_Index()
|
||||
oErrorInWorkFile = Check_Deskriptiven_Index()
|
||||
'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_Values = Nothing ' zum Speichern der Werte
|
||||
'Die Indexierungsschritte abarbeiten
|
||||
error_WorkFile = Work_Verknuepfungen()
|
||||
oErrorInWorkFile = Work_Verknuepfungen()
|
||||
|
||||
If error_WorkFile = False Then
|
||||
If oErrorInWorkFile = False Then
|
||||
|
||||
End If
|
||||
End If
|
||||
'Wenn Fehler dann die Datei markieren
|
||||
If error_WorkFile = True Then
|
||||
Else
|
||||
'Validation-Flags setzen
|
||||
SetValidation()
|
||||
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
|
||||
_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!"
|
||||
_SetFileValidation = True
|
||||
Return True
|
||||
Case 1
|
||||
_Logger.Warn(" - Der deskriptive Indexwert verweist genau auf EINEN Eintrag in der Datenbank - Alles OK")
|
||||
_SetFileValidation = False
|
||||
Return False
|
||||
Case 2
|
||||
'Mehr als ein Ergebnis für den Deskriptiven Index also Kennzeichnen des Dokumentes über den Index der das Dokument für die Validierung kennzeichnet
|
||||
_Logger.Warn(" >> 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
|
||||
End Select
|
||||
|
||||
@ -191,8 +192,11 @@ Public Class clsNI_WorkFile
|
||||
End Sub
|
||||
|
||||
Private Shared Sub SetValidation()
|
||||
If _filevalidation = True Then File_SetBooleanIndex(True, _WDFileINWORK, aktivesProfil.IndexValidation)
|
||||
If _fileerror = True Then File_SetBooleanIndex(True, _WDFileINWORK, aktivesProfil.IndexFehler)
|
||||
If _SetFileValidation = True Then
|
||||
File_SetBooleanIndex(True, _WDFileINWORK, aktivesProfil.IndexValidation)
|
||||
File_SetBooleanIndex(True, _WDFileINWORK, aktivesProfil.IndexFehler)
|
||||
End If
|
||||
|
||||
End Sub
|
||||
Private Shared Function Fulltext_init(_dokument As WMObject, fulltext As String)
|
||||
Try
|
||||
@ -575,7 +579,7 @@ Public Class clsNI_WorkFile
|
||||
'1. aktives Dok
|
||||
SetValidation()
|
||||
'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
|
||||
Case 1
|
||||
_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
|
||||
SetValidation()
|
||||
'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
|
||||
Case 99
|
||||
'Fehler in Überprüfung
|
||||
@ -594,7 +598,7 @@ Public Class clsNI_WorkFile
|
||||
'1. aktives Dok
|
||||
SetValidation()
|
||||
'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
|
||||
End Select
|
||||
End If
|
||||
@ -634,6 +638,7 @@ Public Class clsNI_WorkFile
|
||||
|
||||
End Function
|
||||
Private Shared Sub File_SetBooleanIndex(ByVal _value As Boolean, ByVal _dok As WINDREAMLib.WMObject, ByVal _Indexname As String)
|
||||
If _Indexname <> String.Empty Then
|
||||
'Überprüfen ob Validierung bereits gesetzt wurde?
|
||||
Dim akt_Status As Boolean = CBool(_dok.GetVariableValue(_Indexname))
|
||||
If akt_Status <> _value Then
|
||||
@ -653,6 +658,8 @@ Public Class clsNI_WorkFile
|
||||
'Index muß nicht angepasst werden
|
||||
_Logger.Debug("- Validation Index bereits auf '" & _value & "' gesetzt")
|
||||
End If
|
||||
End If
|
||||
|
||||
End Sub
|
||||
Private Shared Sub Indexiere_ErrorIndex(ByVal _error As String, ByVal _dok As WINDREAMLib.WMObject, ByVal _Indexname As String)
|
||||
Try
|
||||
|
||||
@ -74,7 +74,7 @@ Public Class frmDIHauptseite
|
||||
Private bgwQuelldatei = ""
|
||||
Private bgwZielordner = ""
|
||||
|
||||
Private oWMStream_Result As Boolean = False
|
||||
Private oWMStream_Result As Integer
|
||||
|
||||
Private ErgebnisNochNichtLöschen As Boolean = False
|
||||
|
||||
@ -358,7 +358,7 @@ Public Class frmDIHauptseite
|
||||
|
||||
End Sub
|
||||
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 inuse As Boolean = False
|
||||
If File.Exists(filename) Then
|
||||
@ -531,16 +531,16 @@ Public Class frmDIHauptseite
|
||||
'File in Array speichern
|
||||
fileAusschluss_List.Add(filenameQuelle)
|
||||
|
||||
Me.oWMStream_Result = False
|
||||
Me.oWMStream_Result = 0
|
||||
Me.threadDateiimport.ReportProgress(Me.dateienImportiert / Me.dateienGesamt * 100)
|
||||
Me.dateienImportiert += 1
|
||||
Else
|
||||
'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
|
||||
|
||||
'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
|
||||
If My.Settings.vLogErrorsonly = False Then
|
||||
ClassLoggerDI.Add(" ### Datei vor weniger als " & selectedProfile.Verzoegerung & " sec. erstellt ###", False)
|
||||
@ -548,7 +548,7 @@ Public Class frmDIHauptseite
|
||||
End If
|
||||
'File in Array speichern
|
||||
fileAusschluss_List.Add(filenameQuelle)
|
||||
Me.oWMStream_Result = False
|
||||
Me.oWMStream_Result = 0
|
||||
Me.threadDateiimport.ReportProgress(Me.dateienImportiert / Me.dateienGesamt * 100)
|
||||
Me.dateienImportiert += 1
|
||||
Else
|
||||
@ -632,8 +632,9 @@ Public Class frmDIHauptseite
|
||||
DI_STREAMRESULTFILE = ""
|
||||
Me.oWMStream_Result = Stream_File(Me.bgwQuelldatei, oZielOrdner) 'Me.selectedProfile.OriginalZielordner
|
||||
'DateiÜbertragen_Schleife(Me.bgwQuelldatei, Me.selectedProfile.OriginalZielordner) ' '
|
||||
' dann windream-Festplatte voll
|
||||
If Me.oWMStream_Result = False Then
|
||||
CriticalErrorInBackgroundWorker = False
|
||||
'
|
||||
If Me.oWMStream_Result = -2 Then
|
||||
Me.CriticalErrorInBackgroundWorker = True
|
||||
Else
|
||||
'Schwerwiegender Fehler in der Dateiübertragung
|
||||
@ -641,7 +642,7 @@ Public Class frmDIHauptseite
|
||||
End If
|
||||
' hier nochmal prüfen, da der Fehler gerade erst aufgetreten sein kann
|
||||
If Not CriticalErrorInBackgroundWorker Then
|
||||
If Me.oWMStream_Result = True Then
|
||||
If Me.oWMStream_Result = 0 Then
|
||||
Try
|
||||
Dim extension As String = Replace(Path.GetExtension(DI_STREAMRESULTFILE), ".", "").ToUpper
|
||||
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))
|
||||
'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
|
||||
'Me.tvLog.Nodes(Me.dateienImportiert - 1).Nodes.Add(Me.TreeNodeInfos(Me.dateienImportiert - 1)(0))
|
||||
@ -1085,7 +1086,7 @@ Public Class frmDIHauptseite
|
||||
Directory.CreateDirectory(Zielverzeichnis)
|
||||
Catch ex As Exception
|
||||
ClassLoggerDI.Add(" - Unexpected Error in Creating Target Folder: " & vbNewLine & ex.Message)
|
||||
Return False
|
||||
Return -2
|
||||
End Try
|
||||
End If
|
||||
_Step = "2.1"
|
||||
@ -1100,7 +1101,7 @@ Public Class frmDIHauptseite
|
||||
Dim length As Long = info.Length
|
||||
If freeSpace < length Then
|
||||
MsgBox(" Auf dem Zielverzeichnis ist nicht genug Speicherplatz zum Übertragen frei.", MsgBoxStyle.Exclamation, "Nicht genug Speicherplatz")
|
||||
Return False - 10
|
||||
Return -2
|
||||
End If
|
||||
If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - Datei kopieren von " & filenameQuelle & " nach " & zielpfad.Substring(2) & "\" & Quelldatei_Name & ".", False)
|
||||
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(" 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()
|
||||
System.IO.File.Delete(My.Settings.vWLaufwerk & ":\" & endgültigerDateiname)
|
||||
Return False
|
||||
System.IO.File.Delete(My.Settings.vWLaufwerk & ":" & endgültigerDateiname)
|
||||
Return -1
|
||||
' MsgBox(Err.Description)
|
||||
End If
|
||||
_Step = "3.3"
|
||||
@ -1197,8 +1198,8 @@ Public Class frmDIHauptseite
|
||||
If Err.Number > 0 Then
|
||||
ClassLoggerDI.Add(" FEHLER bei OpenStream - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
|
||||
oNewWMObject.Unlock()
|
||||
System.IO.File.Delete(My.Settings.vWLaufwerk & ":\" & endgültigerDateiname)
|
||||
Return False
|
||||
System.IO.File.Delete(My.Settings.vWLaufwerk & ":" & endgültigerDateiname)
|
||||
Return -1
|
||||
'MsgBox(Err.Description)
|
||||
End If
|
||||
If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - oWMStream erzeugt", False)
|
||||
@ -1209,8 +1210,8 @@ Public Class frmDIHauptseite
|
||||
If Err.Number > 0 Then
|
||||
ClassLoggerDI.Add(" FEHLER bei Zuweisen aWMStream zu aFileIO - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
|
||||
oNewWMObject.Unlock()
|
||||
System.IO.File.Delete(My.Settings.vWLaufwerk & ":\" & endgültigerDateiname)
|
||||
Return False
|
||||
System.IO.File.Delete(My.Settings.vWLaufwerk & ":" & endgültigerDateiname)
|
||||
Return -1
|
||||
'MsgBox(Err.Description)
|
||||
End If
|
||||
' let fileIO object import the original file into windream
|
||||
@ -1218,8 +1219,8 @@ Public Class frmDIHauptseite
|
||||
If Err.Number > 0 Then
|
||||
ClassLoggerDI.Add(" FEHLER bei FileIO.ImportOriginal(True) - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
|
||||
oNewWMObject.Unlock()
|
||||
System.IO.File.Delete(My.Settings.vWLaufwerk & ":\" & endgültigerDateiname)
|
||||
Return False
|
||||
System.IO.File.Delete(My.Settings.vWLaufwerk & ":" & endgültigerDateiname)
|
||||
Return -1
|
||||
' MsgBox(Err.Description)
|
||||
End If
|
||||
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
|
||||
ClassLoggerDI.Add(" FEHLER bei aWMStream.Close() - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
|
||||
oNewWMObject.Unlock()
|
||||
System.IO.File.Delete(My.Settings.vWLaufwerk & ":\" & endgültigerDateiname)
|
||||
Return False
|
||||
System.IO.File.Delete(My.Settings.vWLaufwerk & ":" & endgültigerDateiname)
|
||||
Return -1
|
||||
'MsgBox(Err.Description)
|
||||
End If
|
||||
' save new windream object
|
||||
@ -1239,8 +1240,8 @@ Public Class frmDIHauptseite
|
||||
If Err.Number > 0 Then
|
||||
ClassLoggerDI.Add(" FEHLER bei WMObject.save - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
|
||||
oNewWMObject.Unlock()
|
||||
System.IO.File.Delete(My.Settings.vWLaufwerk & ":\" & endgültigerDateiname)
|
||||
Return False
|
||||
System.IO.File.Delete(My.Settings.vWLaufwerk & ":" & endgültigerDateiname)
|
||||
Return -1
|
||||
'MsgBox(Err.Description)
|
||||
End If
|
||||
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
|
||||
ClassLoggerDI.Add(" FEHLER bei WMObject.unlock - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
|
||||
oNewWMObject.Unlock()
|
||||
System.IO.File.Delete(My.Settings.vWLaufwerk & ":\" & endgültigerDateiname)
|
||||
Return False
|
||||
System.IO.File.Delete(My.Settings.vWLaufwerk & ":" & endgültigerDateiname)
|
||||
Return -1
|
||||
'MsgBox(Err.Description)
|
||||
End If
|
||||
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)
|
||||
Return False
|
||||
Return -1
|
||||
End If
|
||||
|
||||
|
||||
'DATEI GRÖSSE ERMITTELN - MANCHMAL KOMMT ES VOR DAS DATEIGRÖße 0 ist
|
||||
_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)
|
||||
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
|
||||
If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - Length der Zieldatei: " & length1.ToString, False)
|
||||
If length1 > 0 And Err.Number = 0 Then
|
||||
@ -1279,11 +1279,11 @@ Public Class frmDIHauptseite
|
||||
End Try
|
||||
Try
|
||||
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
|
||||
ClassLoggerDI.Add(" Datei konnte nicht gelöscht werden! " & ex.Message)
|
||||
End Try
|
||||
Return False
|
||||
Return -1
|
||||
End If
|
||||
Dim p As String
|
||||
If endgültigerDateiname.StartsWith("\") Then
|
||||
@ -1298,31 +1298,31 @@ Public Class frmDIHauptseite
|
||||
DI_STREAMRESULTFILE = My.Settings.vWLaufwerk & ":" & p
|
||||
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)
|
||||
Return True
|
||||
Return 0
|
||||
Else
|
||||
ClassLoggerDI.Add(Now.ToShortTimeString & " >> File '" & DI_STREAMRESULTFILE & "' should exist in windream but WMObjectExists returned 'false' ...", True)
|
||||
Return False
|
||||
Return -1
|
||||
End If
|
||||
|
||||
Else
|
||||
_Step = "5"
|
||||
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")
|
||||
Return False
|
||||
Return -1
|
||||
End If
|
||||
|
||||
|
||||
Else
|
||||
Return False
|
||||
Return -1
|
||||
End If
|
||||
Else
|
||||
If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - targetPath exisitiert NICHT", False)
|
||||
Return False
|
||||
Return -2
|
||||
End If
|
||||
Catch ex As Exception
|
||||
ClassLoggerDI.Add("Unexpected Error in Stream_File: " & ex.Message, True)
|
||||
Return True
|
||||
Return -1
|
||||
End Try
|
||||
|
||||
|
||||
|
||||
@ -28,8 +28,9 @@ Public Class frmNIHauptseite
|
||||
Private manuallyRun As Boolean = False
|
||||
|
||||
'#### Variablen für das Profil
|
||||
Private Indexe() As String = Nothing ' zum Speichern der Indexe
|
||||
Private NI_Values() As String = Nothing ' zum Speichern der Werte
|
||||
Private myNIDatatable As DataTable
|
||||
Private oNiArrayIndexe() As String = Nothing ' zum Speichern der Indexe
|
||||
Private oNiArrayValues() As String = Nothing ' zum Speichern der Werte
|
||||
Public _MRDokumentart, _MRKundenKennzeichen, _MRDeskrIndex As String
|
||||
Private _MRlicense As Boolean = False
|
||||
Public Shared _MRKONVERT_FEHLER As Integer = 0
|
||||
@ -404,16 +405,14 @@ Public Class frmNIHauptseite
|
||||
' nun Profilabhängige Parameter laden
|
||||
If aktivesProfil.IndexValidation <> "" Then
|
||||
_Logger.Debug("Dokumente sollen für Validierung markiert werden - Index: " & aktivesProfil.IndexValidation)
|
||||
_clsWorkfile._filevalidation = True
|
||||
_clsWorkfile._SetFileValidation = True
|
||||
Else
|
||||
_clsWorkfile._filevalidation = False
|
||||
_clsWorkfile._SetFileValidation = False
|
||||
End If
|
||||
_Logger.Debug($"clsWorkfile._filevalidation Checked...")
|
||||
If My.Settings.ERROR_INDEX <> "" Then
|
||||
_Logger.Debug("Error-msg shall be logged in index: " & My.Settings.ERROR_INDEX)
|
||||
_clsWorkfile._fileerror = True
|
||||
Else
|
||||
_clsWorkfile._fileerror = False
|
||||
|
||||
End If
|
||||
_Logger.Debug($"clsWorkfile._fileerror Checked...")
|
||||
_Logger.Debug("Ni-Art: " & aktivesProfil.Ni_Art.ToLower)
|
||||
@ -810,10 +809,14 @@ Public Class frmNIHauptseite
|
||||
Case "activedirectory"
|
||||
|
||||
End Select
|
||||
myNIDatatable = Nothing
|
||||
Dim oDt As New DataTable
|
||||
oDt.Columns.Add("Indexname")
|
||||
oDt.Columns.Add("Value")
|
||||
myNIDatatable = oDt
|
||||
|
||||
|
||||
Indexe = Nothing ' zum Speichern der Indexe
|
||||
NI_Values = Nothing ' zum Speichern der Werte
|
||||
oNiArrayIndexe = Nothing ' zum Speichern der Indexe
|
||||
oNiArrayValues = Nothing ' zum Speichern der Werte
|
||||
|
||||
Dim verknüpfungZähler As Integer = 0
|
||||
|
||||
@ -827,37 +830,37 @@ Public Class frmNIHauptseite
|
||||
'Regulären Ausdruck zum Auslesen der windream-Indexe definieren
|
||||
Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
|
||||
' 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
|
||||
If SqlString.Contains("[DATEINAME]") Then
|
||||
SqlString = SqlString.Replace("[DATEINAME]", dokument.aName)
|
||||
If oSqlCommand.Contains("[DATEINAME]") Then
|
||||
oSqlCommand = oSqlCommand.Replace("[DATEINAME]", dokument.aName)
|
||||
End If
|
||||
If SqlString.Contains("[FULLNAME]") Then
|
||||
SqlString = SqlString.Replace("[FULLNAME]", My.Settings.MRWD_Laufwerk & ":" & dokument.aPath)
|
||||
If oSqlCommand.Contains("[FULLNAME]") Then
|
||||
oSqlCommand = oSqlCommand.Replace("[FULLNAME]", My.Settings.MRWD_Laufwerk & ":" & dokument.aPath)
|
||||
End If
|
||||
|
||||
If SqlString.Contains("[%DOCFilename]") Then
|
||||
SqlString = SqlString.Replace("[%DOCFilename]", dokument.aName)
|
||||
If oSqlCommand.Contains("[%DOCFilename]") Then
|
||||
oSqlCommand = oSqlCommand.Replace("[%DOCFilename]", dokument.aName)
|
||||
End If
|
||||
If SqlString.Contains("[%DOCFilenameoE]") Then
|
||||
If oSqlCommand.Contains("[%DOCFilenameoE]") Then
|
||||
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
|
||||
|
||||
If SqlString.Contains("[%DOCPath]") Then
|
||||
SqlString = SqlString.Replace("[FULLNAME]", Path.GetDirectoryName(My.Settings.vWLaufwerk & ":" & dokument.aPath))
|
||||
If oSqlCommand.Contains("[%DOCPath]") Then
|
||||
oSqlCommand = oSqlCommand.Replace("[FULLNAME]", Path.GetDirectoryName(My.Settings.vWLaufwerk & ":" & dokument.aPath))
|
||||
End If
|
||||
If SqlString.Contains("[%DATENow]") Then
|
||||
SqlString = SqlString.Replace("[%DATENow]", Now.ToShortDateString)
|
||||
If oSqlCommand.Contains("[%DATENow]") Then
|
||||
oSqlCommand = oSqlCommand.Replace("[%DATENow]", Now.ToShortDateString)
|
||||
End If
|
||||
If SqlString.Contains("[%DOCFULLPATH]") Then
|
||||
SqlString = SqlString.Replace("[%DOCFULLPATH]", My.Settings.MRWD_Laufwerk & ":" & dokument.aPath)
|
||||
If oSqlCommand.Contains("[%DOCFULLPATH]") Then
|
||||
oSqlCommand = oSqlCommand.Replace("[%DOCFULLPATH]", My.Settings.MRWD_Laufwerk & ":" & dokument.aPath)
|
||||
End If
|
||||
|
||||
' einen Regulären Ausdruck laden
|
||||
Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg)
|
||||
' 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
|
||||
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
|
||||
' 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("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
|
||||
error_in_Indexierung = True
|
||||
Else
|
||||
' 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)
|
||||
|
||||
End If
|
||||
@ -902,17 +905,17 @@ Public Class frmNIHauptseite
|
||||
' wenn es sich um den Platzhalter für die Spalte handelt
|
||||
If element.Value.ToUpper = "[%SPALTE]" Then
|
||||
' 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
|
||||
' 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
|
||||
|
||||
Next ' zum nächsten Wert in der SQL-Anweisung gehen
|
||||
result &= vbNewLine & " " & SqlString
|
||||
result &= vbNewLine & " " & oSqlCommand
|
||||
|
||||
' wenn kein error_in_Indexierung aufgetreten ist
|
||||
If error_in_Indexierung = False Then
|
||||
@ -943,29 +946,29 @@ Public Class frmNIHauptseite
|
||||
_Logger.Debug("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
|
||||
For Each obj As Object In Arr
|
||||
'Im Select den Objektverweis mit Werta aus Vektorfeld ersetzen
|
||||
SqlString = selectstring
|
||||
oSqlCommand = selectstring
|
||||
' MsgBox(obj.ToString)
|
||||
SqlString = SqlString.Replace("System.Object[]", obj.ToString)
|
||||
oSqlCommand = oSqlCommand.Replace("System.Object[]", obj.ToString)
|
||||
'Select-Befehl an Array übergeben
|
||||
selectArray(i) = SqlString
|
||||
selectArray(i) = oSqlCommand
|
||||
'_Logger.Info("SELECT-BEFEHL: " & selectArray(i))
|
||||
i += 1
|
||||
Next
|
||||
Else
|
||||
ReDim Preserve selectArray(0)
|
||||
'MsgBox("Nur ein Einfachindex :(" & vbNewLine & IndexwertAusWindream.ToString)
|
||||
selectArray(0) = SqlString
|
||||
selectArray(0) = oSqlCommand
|
||||
_Logger.Debug("Indexierung gegen einen Einfachindex")
|
||||
End If
|
||||
Else
|
||||
ReDim Preserve selectArray(0)
|
||||
'MsgBox("Nur ein Einfachindex :(" & vbNewLine & IndexwertAusWindream.ToString)
|
||||
selectArray(0) = SqlString
|
||||
_Logger.Warn("IndexwertAusWindream Is Nothing: Select: '" & selectArray(0) & "'")
|
||||
selectArray(0) = oSqlCommand
|
||||
_Logger.Warn("IndexwertAusWindream Is Nothing: Select: '" & oSqlCommand & "'")
|
||||
End If
|
||||
|
||||
|
||||
@ -1141,13 +1144,19 @@ Public Class frmNIHauptseite
|
||||
Try
|
||||
_Logger.Debug("Arraygößen werden angepasst:")
|
||||
' die Arraygrößen anpassen
|
||||
ReDim Preserve Indexe(verknüpfungZähler)
|
||||
ReDim Preserve NI_Values(verknüpfungZähler)
|
||||
ReDim Preserve oNiArrayIndexe(verknüpfungZähler)
|
||||
ReDim Preserve oNiArrayValues(verknüpfungZähler)
|
||||
' 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
|
||||
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) & "'")
|
||||
verknüpfungZähler += 1
|
||||
Catch ex As Exception
|
||||
@ -1160,15 +1169,20 @@ Public Class frmNIHauptseite
|
||||
End If
|
||||
If IndexwertAusWindream.GetType.ToString.Contains("System.Object") Then
|
||||
' die Arraygrößen anpassen
|
||||
ReDim Preserve Indexe(verknüpfungZähler)
|
||||
ReDim Preserve NI_Values(verknüpfungZähler)
|
||||
ReDim Preserve oNiArrayIndexe(verknüpfungZähler)
|
||||
ReDim Preserve oNiArrayValues(verknüpfungZähler)
|
||||
' 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
|
||||
NI_Values(verknüpfungZähler) = Convert.ToString("")
|
||||
oNiArrayValues(verknüpfungZähler) = Convert.ToString("")
|
||||
_Logger.Debug("Nachindexwert ist Object")
|
||||
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
|
||||
'_Logger.Warn("SQL-Abfrage ergab kein Ergebnis")
|
||||
If aktivesProfil.Ni_Art.ToLower = "xml" Then
|
||||
@ -1208,7 +1222,9 @@ Public Class frmNIHauptseite
|
||||
'###############################################################################################
|
||||
'#### Nachindexierung ##########################################################################
|
||||
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
|
||||
If msg <> "" Then _Logger.Info($"SWResult: {msg}")
|
||||
'#### Nachindexierung Ende #####################################################################
|
||||
@ -1217,12 +1233,12 @@ Public Class frmNIHauptseite
|
||||
_Logger.Debug("error_in_Indexierung is True - none of following steps will be run!")
|
||||
End If
|
||||
'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 Me.aktivesProfil.finalerIndex <> "" And Not error_in_Indexierung And NI_Values.Length >= 1 And NI_Values(0) <> "" Then
|
||||
If oNiArrayValues Is Nothing = False And Not error_in_Indexierung 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)
|
||||
End If
|
||||
'###### 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
|
||||
_Logger.Debug("Execute VB-Script after indexing......")
|
||||
Dim anweisung As String = Me.aktivesProfil.SQL_Anweisung.Replace("EXECUTEVB ", "")
|
||||
@ -1384,11 +1400,11 @@ Public Class frmNIHauptseite
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
If IsNothing(NI_Values) Then
|
||||
If IsNothing(oNiArrayValues) Then
|
||||
_Logger.Debug("NI_Values is nothing!")
|
||||
Else
|
||||
_Logger.Debug("NI_Values.Length: " & NI_Values.Length)
|
||||
_Logger.Debug("NI_Values(0): " & NI_Values(0))
|
||||
_Logger.Debug("NI_Values.Length: " & oNiArrayValues.Length)
|
||||
_Logger.Debug("NI_Values(0): " & oNiArrayValues(0))
|
||||
End If
|
||||
|
||||
End If
|
||||
@ -1405,7 +1421,7 @@ Public Class frmNIHauptseite
|
||||
End Try
|
||||
If valid = True Then
|
||||
'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!")
|
||||
'Den Flag Validation wieder auf False setzen
|
||||
File_SetBooleanIndex(False, aktivesDokument, aktivesProfil.IndexValidation)
|
||||
@ -1417,7 +1433,7 @@ Public Class frmNIHauptseite
|
||||
'###### Nachindexierung über XML - Löschen des Dokumentes ######
|
||||
If unvollstaendig = False Then
|
||||
'##### 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")
|
||||
'Den Flag Validation auf True setzen
|
||||
File_SetBooleanIndex(True, aktivesDokument, aktivesProfil.IndexValidation)
|
||||
|
||||
@ -3355,8 +3355,11 @@ Public Class frmNIVerknuepfungen
|
||||
End Sub
|
||||
Sub Check_Save_VktInsState()
|
||||
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,
|
||||
Me.lvwVerknuepfungen.SelectedItems(0).SubItems(2).Text).getvktInsState
|
||||
Dim par1 = Me.lvwVerknuepfungen.SelectedItems(0).SubItems(0).Text
|
||||
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()
|
||||
If vktState <> origstate Then
|
||||
Changeinaction = True
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user