MS Klassen überarbeitet NLOG integriert

This commit is contained in:
Digital Data - Marlon Schreiber
2018-08-16 10:58:57 +02:00
parent be9fca94b3
commit 844a423f7d
76 changed files with 365601 additions and 1752 deletions

View File

@@ -2,7 +2,7 @@
Imports WMOSRCHLib
Public Class clsWindream_Index
Inherits clsWindream_allgemein
Private Shared Logger As NLog.Logger = NLog.LogManager.GetCurrentClassLogger
#Region "+++++ Konstanten +++++"
Protected Const WMObjectEditModeObject = &H1F
Protected Const WMObjectStreamOpenModeReadWrite = 2
@@ -119,39 +119,39 @@ Public Class clsWindream_Index
oDocument.lock()
If aValues.Length = 1 And aValues(0) = "" Then
clsLogger.Add(" >> RunIndexing_Vektor: Indexwert ist leer/Nothing - Keine Nachindexierung", False)
Logger.Warn("RunIndexing_Vektor: Indexwert ist leer/Nothing - Keine Nachindexierung")
Else
'Jetzt jeden Indexwert durchlaufen
Dim indexname As String
indexname = Indizes(0)
clsLogger.AddDetailLog("RunIndexing_Vektor: Indexname: " & indexname)
Logger.Info("RunIndexing_Vektor: Indexname: " & indexname)
'VEKTORFELDER, ALSO ÜBERPRÜFEN OB ERGEBNIS-ARRAY GEFÜLLT IST
clsLogger.AddDetailLog("RunIndexing_Vektor: VEKTORFELD-Indexierung: Vorbereiten des Arrays")
Logger.Info("RunIndexing_Vektor: VEKTORFELD-Indexierung: Vorbereiten des Arrays")
' das entsprechende Attribut aus windream auslesen
Dim oAttribute = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname)
' den Variablentyp (String, Integer, ...) auslesen
Dim vType = oAttribute.getVariableValue("dwAttrType")
Select Case (vType)
Case 4097
clsLogger.AddDetailLog("Typ des windream-Indexes: 4097 Vektor alphanumerisch")
Logger.Info("Typ des windream-Indexes: 4097 Vektor alphanumerisch")
Case 4098
clsLogger.AddDetailLog("Typ des windream-Indexes: 4098 Vektor Numerisch")
Logger.Info("Typ des windream-Indexes: 4098 Vektor Numerisch")
Case 4099
clsLogger.AddDetailLog("Typ des windream-Indexes: 4099 Vektor Kommazahl")
Logger.Info("Typ des windream-Indexes: 4099 Vektor Kommazahl")
Case 4101
clsLogger.AddDetailLog("Typ des windream-Indexes: 4101 Vektor Date")
Logger.Info("Typ des windream-Indexes: 4101 Vektor Date")
Case 4103
clsLogger.AddDetailLog("Typ des windream-Indexes: 4103 Vektor DateTime")
Logger.Info("Typ des windream-Indexes: 4103 Vektor DateTime")
Case 4107
clsLogger.AddDetailLog("Typ des windream-Indexes: 4107 Vektor Integer(64bit)")
Logger.Info("Typ des windream-Indexes: 4107 Vektor Integer(64bit)")
Case 36865
clsLogger.AddDetailLog("Typ des windream-Indexes: 36865 Vektor alphanumerisch")
Logger.Info("Typ des windream-Indexes: 36865 Vektor alphanumerisch")
End Select
Dim myArray
Dim Anzahl As Integer = aValues.Length - 1
'Vektorfeld wird mit EINEM Wert gefüllt
If Anzahl = 0 Then
clsLogger.AddDetailLog("RunIndexing_Vektor: Vektorfeld wird mit EINEM Wert gefüllt ")
Logger.Info("RunIndexing_Vektor: Vektorfeld wird mit EINEM Wert gefüllt ")
ReDim myArray(0)
Select Case (vType)
Case 4097
@@ -172,9 +172,9 @@ Public Class clsWindream_Index
Case 36865
myArray(0) = CStr(aValues(0))
End Select
clsLogger.AddDetailLog("RunIndexing_Vektor: Konvertierter Wert: " & myArray(0).ToString)
Logger.Info("RunIndexing_Vektor: Konvertierter Wert: " & myArray(0).ToString)
Else
clsLogger.AddDetailLog("RunIndexing_Vektor: Vektorfeld wird mit MEHREREN Werten gefüllt ")
Logger.Info("RunIndexing_Vektor: Vektorfeld wird mit MEHREREN Werten gefüllt ")
'Die Größe des Arrays festlegen
ReDim myArray(Anzahl)
Dim i1 As Integer = 0
@@ -193,7 +193,7 @@ Public Class clsWindream_Index
Try
convertValue = CInt(wert)
Catch ex As Exception
clsLogger.AddDetailLog("Wert muss in Int64 konvertiert werden")
Logger.Info("Wert muss in Int64 konvertiert werden")
convertValue = Convert.ToInt64(wert) 'ToInt64
End Try
Else
@@ -218,20 +218,21 @@ Public Class clsWindream_Index
End If
'Jetzt die Nachindexierung für Vektor-Felder
oDocument.SetVariableValue(indexname, myArray)
clsLogger.AddDetailLog("RunIndexing_Vektor: 'SetVariableValue' für VEKTOR erfolgreich")
Logger.Info("RunIndexing_Vektor: 'SetVariableValue' für VEKTOR erfolgreich")
oDocument.Save()
oDocument.unlock()
clsLogger.AddDetailLog("RunIndexing_Vektor: Indexierung erfolgreich beendet (Save und Unlock durchgeführt)")
Logger.Info("RunIndexing_Vektor: Indexierung erfolgreich beendet (Save und Unlock durchgeführt)")
Return True
End If
Else
clsLogger.Add(" >> RunIndexing_Vektor: Dokument ist gesperrt, Indexierung erst im nächsten Durchlauf!", True)
Logger.Warn("RunIndexing_Vektor: Dokument ist gesperrt, Indexierung erst im nächsten Durchlauf!")
Return False
End If
End If
Catch ex As Exception
clsLogger.AddError("## Fehler in RunIndexing_Vektor - Fehler: " & ex.Message, "RunIndexingVektor")
Logger.Error(ex)
'clsLogger.AddError("## Fehler in RunIndexing_Vektor - Fehler: " & ex.Message, "RunIndexingVektor")
oDocument.Save()
oDocument.unlock()
Return False
@@ -247,16 +248,16 @@ Public Class clsWindream_Index
Dim i As Integer = 0
Dim indexname As String
If aValues.Length = 1 And aValues(0) = "" Then
clsLogger.AddDetailLog("Indexwert ist leer/Nothing - Keine Indexierung")
Logger.Info("Indexwert ist leer/Nothing - Keine Indexierung")
End If
' wenn der Datei noch kein Dokumenttyp zugewiesen wurde
If oDocument.aObjectType.aName <> Objekttyp Then
' ihr den entsprechenden Dokumenttyp zuweisen
oDocument.aObjectType = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityObjectType, Objekttyp)
' WMObject.aObjectType = selectedProfile.Dokumenttyp
clsLogger.AddDetailLog("Objekttyp war Standard und wurde in '" & Objekttyp & "' geändert.")
Logger.Info("Objekttyp war Standard und wurde in '" & Objekttyp & "' geändert.")
Else
clsLogger.AddDetailLog("Objekttyp war bereits gesetzt")
Logger.Info("Objekttyp war bereits gesetzt")
End If
Try
@@ -283,7 +284,7 @@ Public Class clsWindream_Index
'If indexname = "Tournr" Then
' MsgBox("Index: " & indexname & vbNewLine & "wert: " & aValues(i), MsgBoxStyle.Information, "Index: " & aName.ToString)
'End If
clsLogger.AddDetailLog("Indexierung von Index '" & indexname & "'")
Logger.Info("Indexierung von Index '" & indexname & "'")
'MsgBox(oDocument.aName & vbNewLine & aValues(i) & vbNewLine & vType, MsgBoxStyle.Exclamation, "Zeile 87")
Dim value = aValues(i)
Dim convertValue
@@ -293,46 +294,46 @@ Public Class clsWindream_Index
Select Case (vType)
'Case WMObjectVariableValueTypeUndefined
Case WMObjectVariableValueTypeString
clsLogger.AddDetailLog("Typ des windream-Indexes: WMObjectVariableValueTypeString")
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeString")
convertValue = CStr(value)
Case WMObjectVariableValueTypeInteger
clsLogger.AddDetailLog("Typ des windream-Indexes: WMObjectVariableValueTypeInteger")
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeInteger")
value = value.ToString.Replace(" ", "")
If IsNumeric(value) = False Then
clsLogger.AddDetailLog("Achtung: Value '" & value & "' kann nicht in Zahl konvertiert werden!")
Logger.Info("Achtung: Value '" & value & "' kann nicht in Zahl konvertiert werden!")
End If
value = value.ToString.Replace(" ", "")
convertValue = CInt(value)
_int = True
Case WMObjectVariableValueTypeFloat
clsLogger.AddDetailLog("Typ des windream-Indexes: WMObjectVariableValueTypeFloat")
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeFloat")
value = value.ToString.Replace(" ", "")
convertValue = CDbl(value)
Case WMObjectVariableValueTypeFixedPoint
clsLogger.AddDetailLog("Typ des windream-Indexes: WMObjectVariableValueTypeFixedPoint")
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeFixedPoint")
value = value.ToString.Replace(" ", "")
convertValue = CDbl(value)
_dbl = True
Case WMObjectVariableValueTypeBoolean
clsLogger.AddDetailLog("Typ des windream-Indexes: WMObjectVariableValueTypeBoolean")
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeBoolean")
convertValue = CBool(value)
_bool = True
Case WMObjectVariableValueTypeDate
clsLogger.AddDetailLog("Typ des windream-Indexes: WMObjectVariableValueTypeDate")
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeDate")
_date = True
'Dim _date As Date = value
convertValue = value
Case WMObjectVariableValueTypeTimeStamp
clsLogger.AddDetailLog("Typ des windream-Indexes: WMObjectVariableValueTypeTimeStamp")
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeTimeStamp")
convertValue = CDbl(value)
Case WMObjectVariableValueTypeCurrency
clsLogger.AddDetailLog("Typ des windream-Indexes: WMObjectVariableValueTypeCurrency")
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeCurrency")
'Wegen currency muß ein eigenes Objekt vom typ Variant erzeugt werden
Dim aValueWrapper As System.Runtime.InteropServices.CurrencyWrapper = New System.Runtime.InteropServices.CurrencyWrapper(CDec(value))
convertValue = aValueWrapper
Case WMObjectVariableValueTypeTime
clsLogger.AddDetailLog("Typ des windream-Indexes: WMObjectVariableValueTypeTime")
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeTime")
'If ((value)) Then
' convertValue = CDate(value)
'Else
@@ -341,50 +342,50 @@ Public Class clsWindream_Index
'Dim _date As Date = value
convertValue = convertValue '*_date.ToShortTimeString
Case WMObjectVariableValueTypeFloat
clsLogger.AddDetailLog("Typ des windream-Indexes: WMObjectVariableValueTypeFloat")
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeFloat")
convertValue = CStr(value)
Case WMObjectVariableValueTypeVariant
clsLogger.AddDetailLog("Typ des windream-Indexes: WMObjectVariableValueTypeVariant")
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeVariant")
convertValue = CStr(value)
Case WMObjectVariableValueTypeFulltext
clsLogger.AddDetailLog("Typ des windream-Indexes: WMObjectVariableValueTypeFulltext")
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeFulltext")
convertValue = CStr(value)
Case 4097
clsLogger.AddDetailLog("Typ des windream-Indexes: 4097 Vektor alphanumerisch")
Logger.Info("Typ des windream-Indexes: 4097 Vektor alphanumerisch")
'Vektor alphanumerisch
vektor = True
Case 4098
clsLogger.AddDetailLog("Typ des windream-Indexes: 4098 Vektor Numerisch")
Logger.Info("Typ des windream-Indexes: 4098 Vektor Numerisch")
'Vektor Numerisch
vektor = True
Case 4099
clsLogger.AddDetailLog("Typ des windream-Indexes: 4099 Vektor Kommazahl")
Logger.Info("Typ des windream-Indexes: 4099 Vektor Kommazahl")
'Vektor Kommazahl
vektor = True
Case 4101
clsLogger.AddDetailLog("Typ des windream-Indexes: 4101 Vektor Date")
Logger.Info("Typ des windream-Indexes: 4101 Vektor Date")
'Vektor Kommazahl
vektor = True
Case 4103
clsLogger.AddDetailLog("Typ des windream-Indexes: 4103 Vektor DateTime")
Logger.Info("Typ des windream-Indexes: 4103 Vektor DateTime")
'Vektor DateTime
vektor = True
Case 4107
clsLogger.AddDetailLog("Typ des windream-Indexes: 4107 Integer 64bit")
Logger.Info("Typ des windream-Indexes: 4107 Integer 64bit")
vektor = True
Case 36865
clsLogger.AddDetailLog("Typ des windream-Indexes: 36865 Vektor alphanumerisch")
Logger.Info("Typ des windream-Indexes: 36865 Vektor alphanumerisch")
'Vektor Kommazahl
vektor = True
Case Else
clsLogger.AddDetailLog("Typ des windream-Indexes konnte nicht bestimmt werden!")
clsLogger.AddDetailLog("Versuch des Auslesens (vType): " & vType)
Logger.Info("Typ des windream-Indexes konnte nicht bestimmt werden!")
Logger.Info("Versuch des Auslesens (vType): " & vType)
'MsgBox(vType & vbNewLine & CStr(value), MsgBoxStyle.Exclamation, "Marlon-Case Else")
convertValue = ""
End Select
If vektor = False Then
If convertValue.ToString Is Nothing = False Then
clsLogger.AddDetailLog("Konvertierter Wert: '" & convertValue.ToString & "'")
Logger.Info("Konvertierter Wert: '" & convertValue.ToString & "'")
End If
End If
'############################################################################################
@@ -392,7 +393,7 @@ Public Class clsWindream_Index
'############################################################################################
If vektor = False Then
If convertValue.ToString Is Nothing = False Then
clsLogger.AddDetailLog("Versuch dem Dok einen Index zuzuweisen: oDocument.SetVariableValue(" & aName & ", " & convertValue & ")")
Logger.Info("Versuch dem Dok einen Index zuzuweisen: oDocument.SetVariableValue(" & aName & ", " & convertValue & ")")
If _int = True Then
convertValue = convertValue.ToString.Replace(" ", "")
oDocument.SetVariableValue(aName, CInt(convertValue))
@@ -406,15 +407,13 @@ Public Class clsWindream_Index
Else
oDocument.SetVariableValue(aName, convertValue)
End If
clsLogger.Add(" >> Index '" & aName & "' wurde geschrieben", False)
clsLogger.Add("", False)
Logger.Info("Index '" & aName & "' wurde geschrieben")
Else
clsLogger.Add(" >> Kein Indexwert vorhanden", False)
Logger.Warn("Kein Indexwert vorhanden")
End If
Else
'VEKTORFELDER, ALSO ÜBERPRÜFEN OB ERGEBNIS-ARRAY GEFÜLLT IST
clsLogger.AddDetailLog("VEKTORFELD: Vorbereiten des Arrays")
Logger.Info("VEKTORFELD: Vorbereiten des Arrays")
Dim myArray()
'Dim DS As DataSet
@@ -440,7 +439,7 @@ Public Class clsWindream_Index
Dim Anzahl As Integer = aValues.Length
'Vektorfeld wird mit EINEM Wert gefüllt
If Anzahl = 1 Then
clsLogger.AddDetailLog("Vektorfeld wird mit EINEM Wert gefüllt ")
Logger.Info("Vektorfeld wird mit EINEM Wert gefüllt ")
ReDim myArray(0)
Select Case vType
Case 36865
@@ -470,9 +469,9 @@ Public Class clsWindream_Index
'Umwandeln in String
myArray(0) = CStr(value)
End Select
clsLogger.AddDetailLog("Konvertierter Wert: " & myArray(0).ToString)
Logger.Info("Konvertierter Wert: " & myArray(0).ToString)
Else
clsLogger.AddDetailLog("Vektorfeld wird mit MEHREREN Werten gefüllt ")
Logger.Info("Vektorfeld wird mit MEHREREN Werten gefüllt ")
Select Case vType
Case 36865
'Vektortyp ALPHANUMERISCH
@@ -482,12 +481,12 @@ Public Class clsWindream_Index
'Die Datatable durchlaufen und Werte für den Index in Array schreiben
For Each NewValue As Object In aValues
myArray(i1) = CStr(NewValue)
clsLogger.AddDetailLog("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
Logger.Info("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
i1 = i1 + 1
Next
For Each NewValue As Object In aValues
myArray(i1) = CStr(NewValue)
clsLogger.AddDetailLog("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
Logger.Info("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
i1 = i1 + 1
Next
Case 4097
@@ -498,7 +497,7 @@ Public Class clsWindream_Index
'Die Datatable durchlaufen und Werte für den Index in Array schreiben
For Each NewValue As Object In aValues
myArray(i1) = CStr(NewValue)
clsLogger.AddDetailLog("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
Logger.Info("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
i1 = i1 + 1
Next
Case 4107
@@ -518,7 +517,7 @@ Public Class clsWindream_Index
For Each NewValue As Object In aValues
Dim v As String = NewValue.ToString.Replace(" ", "")
myArray(i1) = CInt(v)
clsLogger.AddDetailLog("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
Logger.Info("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
i1 = i1 + 1
Next
Case 4099
@@ -531,7 +530,7 @@ Public Class clsWindream_Index
Dim Str As String = NewValue
Str = Str.ToString.Replace(" ", "")
myArray(i1) = CDbl(Str.Replace(".", ","))
clsLogger.AddDetailLog("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
Logger.Info("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
i1 = i1 + 1
Next
Case 4101
@@ -543,7 +542,7 @@ Public Class clsWindream_Index
For Each NewValue As Object In aValues
Dim Str As String = NewValue.ToString
myArray(i1) = CDate(Str.Replace(".", ","))
clsLogger.AddDetailLog("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
Logger.Info("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
i1 = i1 + 1
Next
@@ -555,17 +554,17 @@ Public Class clsWindream_Index
'Die Datatable durchlaufen und Werte für den Index in Array schreiben
For Each NewValue As Object In aValues
myArray(i1) = CStr(NewValue)
clsLogger.AddDetailLog("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
Logger.Info("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
i1 = i1 + 1
Next
End Select
End If
'Jetzt die Nachindexierung für Vektor-Felder
oDocument.SetVariableValue(aName, myArray)
clsLogger.AddDetailLog("'SetVariableValue' für VEKTOR erfolgreich")
Logger.Info("'SetVariableValue' für VEKTOR erfolgreich")
End If
Else
clsLogger.AddDetailLog("Array der Indexwerte ist leer/Nothing - Keine Nachindexierung")
Logger.Info("Array der Indexwerte ist leer/Nothing - Keine Nachindexierung")
End If
i += 1
@@ -577,19 +576,20 @@ Public Class clsWindream_Index
oDocument.Save()
oDocument.unlock()
clsLogger.AddDetailLog("Indexierung erfolgreich beendet (Save und Unlock durchgeführt)")
clsLogger.AddDetailLog("")
Logger.Info("Indexierung erfolgreich beendet (Save und Unlock durchgeführt)")
Logger.Info("")
Return False
Else
clsLogger.Add(" >> Dokument ist gesperrt, Indexierung erst im nächsten Durchlauf!", False)
Logger.Warn("Dokument ist gesperrt, Indexierung erst im nächsten Durchlauf!")
'oDocument.unlock()
Return True
End If
End If
Catch ex As Exception
clsLogger.AddError(ex.Message, "ClassSearchResult.RunIndexing")
Logger.Error(ex)
'clsLogger.AddError(ex.Message, "ClassSearchResult.RunIndexing")
oDocument.Save()
oDocument.unlock()
Return True