This commit is contained in:
Digital Data - Marlon Schreiber
2018-11-07 15:11:52 +01:00
parent 844a423f7d
commit 24f052f5b5
88 changed files with 2833 additions and 159059 deletions

View File

@@ -43,6 +43,9 @@
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<ItemGroup>
<Reference Include="DigitalData.Modules.Logging">
<HintPath>..\..\..\DDMonorepo\Modules.Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
</Reference>
<Reference Include="Independentsoft.Email">
<HintPath>P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Email .NET\Bin\Independentsoft.Email.dll</HintPath>
</Reference>
@@ -102,6 +105,8 @@
<Compile Include="clsDateiverarbeitung.vb" />
<Compile Include="clsEmail.vb" />
<Compile Include="clsEncryption.vb" />
<Compile Include="clsFileWork.vb" />
<Compile Include="clsJob_Work.vb" />
<Compile Include="clsProfil.vb" />
<Compile Include="clsWindream_Allgemein.vb" />
<Compile Include="clsWindream_Index.vb" />

View File

@@ -1,9 +1,14 @@
Imports System.Data.SqlClient
Imports Oracle.ManagedDataAccess.Client
Public Class clsDatatabase
Imports DigitalData.Modules.Logging
Public Class clsDatabase
Private Shared MSSQL_inited As Boolean = False
Private Shared Logger As NLog.Logger = NLog.LogManager.GetCurrentClassLogger
Public Shared Function Init(CONSTRING As String)
Dim Logger As Logger
Sub New(MyLogger As LogConfig, ConStr As String)
Logger = MyLogger.GetLogger()
Init(ConStr)
End Sub
Public Function Init(CONSTRING As String)
Try
Dim SQLconnect As New SqlClient.SqlConnection
SQLconnect.ConnectionString = CONSTRING
@@ -11,11 +16,6 @@ Public Class clsDatatabase
SQLconnect.Close()
clsCURRENT.SQLSERVER_CS = CONSTRING
MSSQL_inited = True
clsCURRENT.DT_TBWMRH_KONFIGURATION = clsDatatabase.Return_Datatable("SELECT * FROM TBWMRH_KONFIGURATION WHERE GUID = 1")
If clsCURRENT.DT_TBWMRH_KONFIGURATION.Rows.Count = 1 Then
clsCURRENT.LOG_ERRORS_ONLY = CBool(clsCURRENT.DT_TBWMRH_KONFIGURATION.Rows(0).Item("LOG_ERRORS_ONLY"))
clsCURRENT.WDLAUFWERK = clsCURRENT.DT_TBWMRH_KONFIGURATION.Rows(0).Item("WD_LAUFWERK")
End If
Return True
Catch ex As Exception
@@ -26,7 +26,7 @@ Public Class clsDatatabase
End Function
Public Shared Function ExecuteonOracleDb(CONSTRING As String, ByVal plsqlcommand As String)
Public Function ExecuteonOracleDb(CONSTRING As String, ByVal plsqlcommand As String)
Try
Logger.Debug("plsqlcommand: " & plsqlcommand)
' die nötigen Variablen definieren
@@ -94,7 +94,7 @@ Public Class clsDatatabase
End Try
End Function
Public Shared Function Oracle_CS_Test(CONSTRING As String)
Public Function Oracle_CS_Test(CONSTRING As String)
Try
Dim conn As New OracleConnectionStringBuilder
@@ -119,7 +119,7 @@ Public Class clsDatatabase
End Try
End Function
Public Shared Function MSSQL_CS_Test(CONSTRING As String)
Public Function MSSQL_CS_Test(CONSTRING As String)
Try
' die nötigen Variablen definieren
@@ -146,7 +146,7 @@ Public Class clsDatatabase
End Try
End Function
Public Shared Function ExecuteonMSSQL(ConString As String, ByVal sqlcommand As String)
Public Function ExecuteonMSSQL(ConString As String, ByVal sqlcommand As String)
Try
Logger.Debug("sqlcommand: " & sqlcommand)
If MSSQL_inited = False Then Return False
@@ -219,7 +219,7 @@ Public Class clsDatatabase
End Function
Public Shared Function Return_Datatable(Select_anweisung As String)
Public Function Return_Datatable(Select_anweisung As String)
Try
Logger.Debug("Select_anweisung: " & Select_anweisung)
If MSSQL_inited = False Then Return Nothing
@@ -247,7 +247,7 @@ Public Class clsDatatabase
Return Nothing
End Try
End Function
Public Shared Function Execute_non_Query(ExecuteCMD As String)
Public Function Execute_non_Query(ExecuteCMD As String)
If MSSQL_inited = False Then Return False
Try
Logger.Debug("ExecuteCMD: " & ExecuteCMD)
@@ -276,7 +276,7 @@ Public Class clsDatatabase
End Try
End Function
Public Shared Function Execute_Scalar(cmdscalar As String)
Public Function Execute_Scalar(cmdscalar As String)
If MSSQL_inited = False Then Return Nothing
Dim result
Try
@@ -306,7 +306,7 @@ Public Class clsDatatabase
Return Nothing
End Try
End Function
Public Shared Function OracleExecute_Scalar(cmdscalar As String, OracleConnection As String)
Public Function OracleExecute_Scalar(cmdscalar As String, OracleConnection As String)
Dim result
Try
Logger.Debug("cmdscalar: " & cmdscalar)
@@ -328,7 +328,7 @@ Public Class clsDatatabase
Return Nothing
End Try
End Function
Public Shared Function OracleExecute_non_Query(ExecuteCMD As String, OracleConnection As String, Optional userInput As Boolean = False)
Public Function OracleExecute_non_Query(ExecuteCMD As String, OracleConnection As String, Optional userInput As Boolean = False)
Try
Logger.Debug("ExecuteCMD: " & ExecuteCMD)
Dim SQLconnect As New OracleConnection
@@ -351,7 +351,7 @@ Public Class clsDatatabase
End Try
End Function
Public Shared Function Oracle_Return_Datatable(Select_anweisung As String, OracleConnection As String, Optional userInput As Boolean = False)
Public Function Oracle_Return_Datatable(Select_anweisung As String, OracleConnection As String, Optional userInput As Boolean = False)
Try
Logger.Debug("Select_anweisung: " & Select_anweisung)
Dim SQLconnect As New OracleConnection

View File

@@ -3,12 +3,15 @@ Imports System.IO
Imports System.Net
Imports Newtonsoft.Json
Imports System.Text
Imports DigitalData.Modules.Logging
Public Class clsDateiverarbeitung
Private Shared Logger As NLog.Logger = NLog.LogManager.GetCurrentClassLogger
#Region "***** Variablen und Konstanten*****"
Public Shared _windream As New clsWindream_allgemein
Dim Logger As Logger
Private MyLoggerConf As LogConfig
#Region "***** Variablen und Konstanten*****"
Dim _windream As clsWindream_allgemein
Dim _database As clsDatabase
Public Shared pr_DTPROFIL_REGELN As DataTable
Public Shared aktfile_Exportresult
@@ -26,11 +29,17 @@ Public Class clsDateiverarbeitung
Const WMObjectStreamOpenModeReadWrite = 2
Const WMObjectEditModeFileSystem = &H15
#End Region
Public Shared Function InitProfilData()
Public Sub New(MyLogger As LogConfig)
MyLoggerConf = MyLogger
Logger = MyLogger.GetLogger()
_windream = New clsWindream_allgemein(MyLogger)
_database = New clsDatabase(MyLogger, clsCURRENT.SQLSERVER_CS)
End Sub
Public Function InitProfilData()
Try
pr_DTPROFIL_REGELN = Nothing
' Profildaten der Klasse mitteilen
Logger.Info("InitProfilData Profildaten zugewiesen....")
Logger.Debug("InitProfilData Profildaten zugewiesen....")
Return True
Catch ex As Exception
Logger.Error(ex)
@@ -38,8 +47,83 @@ Public Class clsDateiverarbeitung
Return False
End Try
End Function
Public Function Check_File_job(WMdok As WMObject, FileJobType As String, String1 As String, String2 As String, WMObjekttyp As String, windream_index As clsWindream_Index)
Try
Select Case FileJobType.ToLower
Case "Set Index".ToLower
Try
'Überprüfen ob Value bereits gesetzt wurde?
Dim oidxName As String = String1
Dim oidxvalue As String = String2
If oidxvalue.Contains("[%DATETIME]") Then
oidxvalue = oidxvalue.Replace("[%DATETIME]", Now.ToString)
End If
oidxvalue = REGEX_REPLACE(WMdok, oidxvalue)
Logger.Debug($"Index '{oidxName}' shall be set with value '{oidxvalue}'")
Dim oarrIndex() As String
ReDim Preserve oarrIndex(0)
oarrIndex(0) = oidxName
Logger.Debug("...nach arrIndex")
Dim oArrValue() As String
Dim oAktvalue As Object
oAktvalue = WMdok.GetVariableValue(oidxName)
Logger.Debug("...nach aktValue zuweisen..")
Dim oWmtype = clsWindream_allgemein.GetTypeOfIndexAsIntByName(oidxName)
Dim oIsVektor As Boolean = False
Select Case oWmtype
Case 4097
oIsVektor = True
Case 4098
oIsVektor = True
Case 4099
oIsVektor = True
Case 4101
oIsVektor = True
Case 4103
oIsVektor = True
Case 4107
oIsVektor = True
Case 36865
oIsVektor = True
End Select
If oIsVektor = False Then
ReDim Preserve oArrValue(0)
oArrValue(0) = oidxvalue
Else
Dim oMyArray()
ReDim oMyArray(0)
oMyArray(0) = oidxvalue
Dim oVektorArray()
oVektorArray = Return_VektorArray(WMdok, oidxName, oMyArray, True)
If oVektorArray Is Nothing = False Then
ReDim oArrValue(oVektorArray.Length - 1)
Array.Copy(oVektorArray, oArrValue, oVektorArray.Length)
End If
End If
If oArrValue Is Nothing = False Then
' MsgBox("now indexing with: " & idxvalue)
windream_index.RunIndexing(WMdok, oarrIndex, oArrValue, WMObjekttyp)
Else
Logger.Warn("arrValue is nothing - keine Indexierung")
End If
Catch ex As Exception
Logger.Error(ex)
'clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(SetIndex)")
End Try
End Select
Catch ex As Exception
Logger.Error(ex)
Return False
End Try
End Function
'Kopiert die übergebene Datei in den Zielpfad
Public Shared Function Export_File(WDDatei As WMObject, Zielpfad As String)
Public Function Export_File(WDDatei As WMObject, Zielpfad As String)
Try
If Not Zielpfad.EndsWith("\") Then
Zielpfad = Zielpfad & "\"
@@ -47,11 +131,11 @@ Public Class clsDateiverarbeitung
Logger.Info("Verarbeitung von Datei: " & WDDatei.aName)
'Die Quelle zusammensetzen
Logger.Info("PFAD: " & clsCURRENT.WDLAUFWERK & ":" & WDDatei.aPath & "\" & WDDatei.aName)
Logger.Debug("PFAD: " & clsCURRENT.WDLAUFWERK & ":" & WDDatei.aPath & "\" & WDDatei.aName)
'Dim Quelle As String = IO.Path.GetDirectoryName(WDLaufwerk & ":" & WDDatei.aPath & "\" & WDDatei.aName)
Dim ExportFileIO = New WMOTOOLLib.WMFileIO ' CreateObject("WMOTOOLLib.WMFileIO") ' New WMOTOOLLib.WMFileIO
Logger.Info("ExportFileIO erzeugt.....")
Logger.Debug("ExportFileIO erzeugt.....")
' Stream Interface bereitstellen
WDDatei.LockFor(WMObjectEditModeFileSystem)
Try
@@ -75,7 +159,7 @@ Public Class clsDateiverarbeitung
tempFilename = Zielpfad & Filename & "_" & version & Extension
version = version + 1
Loop
Logger.Info("Zieldateiname: " & tempFilename)
Logger.Debug("Zieldateiname: " & tempFilename)
' den Dateiinhalt der neuen Datei zuweisen
ExportFileIO.aWMStream = oWMStream
ExportFileIO.bstrOriginalFileName = tempFilename
@@ -96,9 +180,9 @@ Public Class clsDateiverarbeitung
Return False
End Try
End Function
Public Shared Function Rename_File(WMFile As WMObject, konvention As String)
Public Function Rename_File(WMFile As WMObject, konvention As String)
Try
Logger.Info("Konvention: '" & konvention & "'")
Logger.Debug("Konvention: '" & konvention & "'")
'Regulären Ausdruck zum Auslesen der windream-Indexe definieren
Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
@@ -112,16 +196,16 @@ Public Class clsDateiverarbeitung
'die Zeichen [% und ] entfernen (liefert den wirklichen windream-Index)
Dim reg_element_Ohne_SZ As String = reg_element.Value.Replace("[%", "")
reg_element_Ohne_SZ = reg_element_Ohne_SZ.Replace("]", "")
Logger.Info("Indexwert aus Index '" & reg_element_Ohne_SZ & "' auslesen....")
Logger.Debug("Indexwert aus Index '" & reg_element_Ohne_SZ & "' auslesen....")
Dim wdIndexwert
'den Wert des Indexes für das aktuelle Dokument auslesen
wdIndexwert = WMFile.GetVariableValue(reg_element_Ohne_SZ)
If wdIndexwert Is Nothing = False Then
If Not wdIndexwert.GetType.ToString.Contains("System.Object") Then
Logger.Info("Namenkonvention (" & i & ") " & konvention)
Logger.Debug("Namenkonvention (" & i & ") " & konvention)
wdIndexwert = wdIndexwert.ToString.TrimEnd
wdIndexwert = wdIndexwert.ToString.TrimStart
Logger.Info("Ausgelesener Indexwert = '" & wdIndexwert & "'")
Logger.Debug("Ausgelesener Indexwert = '" & wdIndexwert & "'")
konvention = konvention.Replace(reg_element.Value, wdIndexwert.ToString)
i += 1
Else
@@ -131,18 +215,18 @@ Public Class clsDateiverarbeitung
Next
Dim version As Integer = 2
Dim ZielPfad As String = Path.GetDirectoryName(aktfile_Exportresult)
Logger.Info("ZielPfad: " & ZielPfad)
Logger.Debug("ZielPfad: " & ZielPfad)
Dim Filename = konvention
Dim Extension = Path.GetExtension(aktfile_Exportresult)
Logger.Info("Extension: " & Extension)
Logger.Debug("Extension: " & Extension)
Dim tempFilename As String = ZielPfad & "\" & Filename & Extension
Logger.Info("tempFilename: " & tempFilename)
Logger.Debug("tempFilename: " & tempFilename)
'Überprüfen ob File existiert
Do While IO.File.Exists(tempFilename) = True
tempFilename = ZielPfad & "\" & Filename & "~" & version & Extension
version += 1
Loop
Logger.Info("RenameFile - OLDFilename: " & aktfile_Exportresult & " - NEWFilename: " & Path.GetFileName(tempFilename))
Logger.Debug("RenameFile - OLDFilename: " & aktfile_Exportresult & " - NEWFilename: " & Path.GetFileName(tempFilename))
My.Computer.FileSystem.RenameFile(aktfile_Exportresult, Path.GetFileName(tempFilename))
Logger.Info("Datei wurde erfolgreich umbenannt.")
Return True
@@ -152,13 +236,13 @@ Public Class clsDateiverarbeitung
Return False
End Try
End Function
Public Shared Function Rename_File_Vektor(WMFile As WMObject, WMINDEX_NAME As String)
Public Function Rename_File_Vektor(WMFile As WMObject, WMINDEX_NAME As String)
Try
Dim WMIndexwert
Dim ZielPfad As String = Path.GetDirectoryName(aktfile_Exportresult)
Logger.Info("ZielPfad: " & ZielPfad)
Logger.Debug("ZielPfad: " & ZielPfad)
Dim Extension = Path.GetExtension(aktfile_Exportresult)
Logger.Info("Extension: " & Extension)
Logger.Debug("Extension: " & Extension)
If WMINDEX_NAME.StartsWith("[%") Then
WMINDEX_NAME = WMINDEX_NAME.Replace("[%", "")
@@ -167,7 +251,7 @@ Public Class clsDateiverarbeitung
'den Wert des Indexes für das aktuelle Dokument auslesen
WMIndexwert = WMFile.GetVariableValue(WMINDEX_NAME)
If WMIndexwert.GetType.ToString.Contains("System.Object") Then
Logger.Info("Rename_File_Vektor in Progress for index " & WMINDEX_NAME)
Logger.Debug("Rename_File_Vektor in Progress for index " & WMINDEX_NAME)
Dim anz As Integer = 1
Dim copybasefile As String
For Each WMvalue As Object In WMIndexwert
@@ -175,9 +259,9 @@ Public Class clsDateiverarbeitung
Try
If WMvalue.ToString <> String.Empty Then
Dim tempFilename As String = ZielPfad & "\" & WMvalue & Extension
Logger.Info("tempFilename: " & tempFilename)
Logger.Debug("tempFilename: " & tempFilename)
If anz = 1 Then
Logger.Info("RenameFile - OLDFilename: " & aktfile_Exportresult & " - NEWFilename: " & Path.GetFileName(tempFilename))
Logger.Debug("RenameFile - OLDFilename: " & aktfile_Exportresult & " - NEWFilename: " & Path.GetFileName(tempFilename))
My.Computer.FileSystem.RenameFile(aktfile_Exportresult, Path.GetFileName(tempFilename))
copybasefile = tempFilename
Else
@@ -210,14 +294,14 @@ Public Class clsDateiverarbeitung
End Try
End Function
Private Shared Function GetWMAPILink(docId As String, userId As String)
Private Function GetWMAPILink(docId As String, userId As String)
Dim hostname = "http://documents.mylogitservices.syncreon.com:8100"
Dim link As String = $"{hostname}/WMWebApi/windream.web.api/DigitalData/BNSDownload?docId={docId}&userId={userId}"
Return link
End Function
Private Shared Function GetDocTypeCategory(docType As String)
Private Function GetDocTypeCategory(docType As String)
Select Case docType
Case "Abliefernachweis"
Return 5
@@ -234,8 +318,9 @@ Public Class clsDateiverarbeitung
''' </summary>
''' <param name="WMFile">Das WMObject, dass das aktuelle Dokument repräsentiert</param>
''' <param name="userId">Die eindeutige Benutzer Kennung für die Authentifizierung in Windream</param>
Public Shared Function BNSjsonDownload(WMFile As WMObject, userId As String, apiAddress As String)
Public Function BNSjsonDownload(WMFile As WMObject, userId As String, apiAddress As String)
Try
Logger.Info("handling BNSjsonDownload.....")
' Indizes für das aktuelle Dokument auslesen
Dim SENDUNGNR = WMFile.GetVariableValue("Sendungnr")
Dim DOKID = WMFile.GetVariableValue("Dokument-ID")
@@ -246,7 +331,7 @@ Public Class clsDateiverarbeitung
Dim link As String = GetWMAPILink(DOKID, userId)
' JSON Payload erstellen und serialisieren
Dim doc As New BNSDocument()
Dim doc As New BNSDocument(MyLoggerConf)
doc.Bemerkung = DOKART
'Dokumente sollen unbegrenzt gültig sein
'doc.Ivalidfrom = now
@@ -269,8 +354,8 @@ Public Class clsDateiverarbeitung
Dim geschaeftsId = SENDUNGNR
Dim url As String = $"http://{apiAddress}/onwebui/api/Customer/{mandatenId}/{geschaeftsObjekt}/{geschaeftsId}/dokument"
Logger.Info($">> Generiertes JSON: {json}")
Logger.Info($">> Creating WebRequest for {url}")
' Logger.Debug($">> Generiertes JSON: {json}")
Logger.Debug($">> Creating WebRequest for {url}")
Dim req As HttpWebRequest = WebRequest.CreateHttp(url)
@@ -284,8 +369,8 @@ Public Class clsDateiverarbeitung
reqStream.Write(bytes, 0, bytes.Length)
reqStream.Close()
Logger.Info($">> Datei wird hochgeladen... docId: {DOKID}, dokart: {DOKART}, userId: {userId}")
Logger.Info($">> Upload URL: {url}")
'Logger.Debug($">> Datei wird hochgeladen... docId: {DOKID}, dokart: {DOKART}, userId: {userId}")
'Logger.Debug($">> Upload URL: {url}")
Using res As HttpWebResponse = req.GetResponse()
Dim code As HttpStatusCode = res.StatusCode
@@ -293,19 +378,19 @@ Public Class clsDateiverarbeitung
' Status 201 Created bedeutet: Alles okay!
If code = HttpStatusCode.Created Then
Logger.Info($">> Datei geschrieben! docId: {DOKID}, dokart: {DOKART}, userId: {userId}")
Logger.Info($"File has been uploaded: docId: {DOKID}, dokart: {DOKART}, userId: {userId}")
Else
Throw New Exception($"Server Error (HTTP {code}: {text})")
Logger.Warn($"Server Error (HTTP {code}: {text})")
End If
End Using
Return True
Catch ex As Exception
Logger.Warn($"Unhandled Exception in BNSjsonDownload - Profile ({clsCURRENT._Profilname}) {ex.Message}")
Logger.Error(ex)
Return True
End Try
End Function
Public Shared Function RUN_ORACLE_COMMAND(WMFile As WMObject, OracleCS As String, OracleCommandRAW As String)
Public Function RUN_ORACLE_COMMAND(WMFile As WMObject, OracleCS As String, OracleCommandRAW As String)
Try
Dim result = REGEX_REPLACE(WMFile, OracleCommandRAW)
If result = Nothing Then
@@ -313,7 +398,7 @@ Public Class clsDateiverarbeitung
End If
If clsDatatabase.ExecuteonOracleDb(OracleCS, result) = True Then
If _database.ExecuteonOracleDb(OracleCS, result) = True Then
Return True
Else
Return False
@@ -325,7 +410,7 @@ Public Class clsDateiverarbeitung
Return False
End Try
End Function
Public Shared Function RUN_MSSQL_COMMAND(WMFile As WMObject, MSSQLCS As String, SQLCommandRAW As String)
Public Function RUN_MSSQL_COMMAND(WMFile As WMObject, MSSQLCS As String, SQLCommandRAW As String)
Try
Dim result = REGEX_REPLACE(WMFile, SQLCommandRAW)
If result = Nothing Then
@@ -333,7 +418,7 @@ Public Class clsDateiverarbeitung
End If
If clsDatatabase.ExecuteonMSSQL(MSSQLCS, result) = True Then
If _database.ExecuteonMSSQL(MSSQLCS, result) = True Then
Return True
Else
Return False
@@ -345,10 +430,112 @@ Public Class clsDateiverarbeitung
Return False
End Try
End Function
Public Shared Function REGEX_REPLACE(WMFile As WMObject, _STRING As String)
Private Function Return_VektorArray(ByVal oDocument As WMObject, vktIndexName As String, NIIndexe As Object, CheckDuplikat As Boolean)
Try
Logger.Info("REGEX_String before replacing: '" & _STRING & "'")
Dim missing As Boolean = False
Dim Anzahl As Integer = 0
Dim ValueArray()
'Jeden Wert des Vektorfeldes durchlaufen
Dim wertWD = oDocument.GetVariableValue(vktIndexName)
If wertWD Is Nothing = False Then
'Nochmals prüfen ob wirklich Array
If wertWD.GetType.ToString.Contains("System.Object") Then
'Keine Duplikatprüfung also einfach neues Array füllen
If CheckDuplikat = False Then
For Each value As Object In wertWD
'Das Array anpassen
ReDim Preserve ValueArray(Anzahl)
'Den Wert im Array speichern
ValueArray(Anzahl) = value.ToString
Anzahl += 1
Next
'Und jetzt den/die Neuen Wert(e) anfügen
For Each NewValue As Object In NIIndexe
If NewValue Is Nothing = False Then
'Das Array anpassen
ReDim Preserve ValueArray(Anzahl)
'Den Wert im Array speichern
ValueArray(Anzahl) = NewValue.ToString
Anzahl += 1
End If
Next
Else
Logger.Debug("Duplikatprüfung soll durchgeführt werden.")
'Duplikat Prüfung an, also nur anhängen wenn Wert <>
For Each WDValue As Object In wertWD
If WDValue Is Nothing = False Then
'Erst einmal die ALten Werte schreiben
ReDim Preserve ValueArray(Anzahl)
'Den Wert im Array speichern
ValueArray(Anzahl) = WDValue.ToString
Logger.Debug("Value (" & Anzahl & ") " & WDValue.ToString)
Anzahl += 1
End If
Next
'Jetzt die Neuen Werte auf Duplikate überprüfen
For Each NewValue As Object In NIIndexe
If NewValue Is Nothing = False Then
If ValueArray.Contains(NewValue) = False Then
Logger.Debug("New Value (" & Anzahl & ") " & NewValue.ToString)
'Das Array anpassen
ReDim Preserve ValueArray(Anzahl)
'Den Wert im Array speichern
ValueArray(Anzahl) = NewValue.ToString
Anzahl += 1
Else
Logger.Debug("Value '" & NewValue.ToString & "' bereits in Vektorfeld enthalten")
End If
End If
Next
End If
End If
Else
Logger.Debug("Vektorfeld ist noch leer....")
'Den/die Neuen Wert(e) anfügen
For Each NewValue As Object In NIIndexe
If NewValue Is Nothing = False Then
If CheckDuplikat = True Then
If ValueArray Is Nothing = False Then
If ValueArray.Contains(NewValue) = False Then
'Das Array anpassen
ReDim Preserve ValueArray(Anzahl)
'Den Wert im Array speichern
ValueArray(Anzahl) = NewValue.ToString
Anzahl += 1
Else
Logger.Debug("Value '" & NewValue.ToString & "' bereits in Array enthalten")
End If
Else 'Dererste Wert, also hinzufügen
'Das Array anpassen
ReDim Preserve ValueArray(Anzahl)
'Den Wert im Array speichern
ValueArray(Anzahl) = NewValue.ToString
Anzahl += 1
End If
Else
'Das Array anpassen
ReDim Preserve ValueArray(Anzahl)
'Den Wert im Array speichern
ValueArray(Anzahl) = NewValue.ToString
Anzahl += 1
End If
End If
Next
End If
Logger.Debug("Return ValueArray: length " & ValueArray.Length)
Return ValueArray
Catch ex As Exception
Logger.Error(ex)
Return Nothing
End Try
End Function
Public Function REGEX_REPLACE(WMFile As WMObject, _STRING As String)
Try
Logger.Debug("REGEX_String before replacing: '" & _STRING & "'")
' Regulären Ausdruck zum Auslesen der windream-Indexe definieren
Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
' einen Regulären Ausdruck laden
@@ -361,7 +548,7 @@ Public Class clsDateiverarbeitung
' die Zeichen [% und ] entfernen (liefert den wirklichen windream-Index)
Dim reg_element_Ohne_SZ As String = reg_element.Value.Replace("[%", "")
reg_element_Ohne_SZ = reg_element_Ohne_SZ.Replace("]", "")
Logger.Info("read indexvalue from index '" & reg_element_Ohne_SZ & "'....")
Logger.Debug("read indexvalue from index '" & reg_element_Ohne_SZ & "'....")
If reg_element_Ohne_SZ = "EXPORTED_FILENAME" Then
If clsCURRENT.EXPORTED_FILENAME <> "" Then
_STRING = _STRING.Replace(reg_element.Value, clsCURRENT.EXPORTED_FILENAME)
@@ -377,14 +564,14 @@ Public Class clsDateiverarbeitung
If Not wdIndexwert.GetType.ToString.Contains("System.Object") Then
wdIndexwert = wdIndexwert.ToString.TrimEnd
wdIndexwert = wdIndexwert.ToString.TrimStart
Logger.Info("indexvalue read is: '" & wdIndexwert & "'")
Logger.Debug("indexvalue read is: '" & wdIndexwert & "'")
_STRING = _STRING.Replace(reg_element.Value, wdIndexwert.ToString)
Logger.Info("REGEX_String (" & i & ") " & _STRING)
Logger.Debug("REGEX_String (" & i & ") " & _STRING)
i += 1
Else
Logger.Warn("Attention: WMIndex is an vectorfield - seperation of values via ;")
Logger.Info("wdIndexValue is System.Object....")
Logger.Info("trying to seperate via ,....")
Logger.Debug("wdIndexValue is System.Object....")
Logger.Debug("trying to seperate via ,....")
Dim vector_result As String = ""
For Each WMvalue As Object In wdIndexwert
Dim x As Integer = 0
@@ -400,7 +587,7 @@ Public Class clsDateiverarbeitung
End If
Next
_STRING = _STRING.Replace(reg_element.Value, vector_result.ToString)
Logger.Info("REGEX_String after vector-for-each (" & i & ") " & _STRING)
Logger.Debug("REGEX_String after vector-for-each (" & i & ") " & _STRING)
End If
Else
Logger.Warn("Attention: Indexvalue is NOTHING, standardvalue '0' will be used", False, "clsDateiverarbeitung.REGEX_REPLACE")
@@ -419,6 +606,7 @@ Public Class clsDateiverarbeitung
End Function
Public Class BNSDocument
Dim Logger As Logger
Public Doksourcetype As Integer = 3
Public Pfad As String
'Dokumente sollen unbegrenzt gültig sein
@@ -429,8 +617,10 @@ Public Class clsDateiverarbeitung
Public Fremsysid As Integer = 1
Public Kategorien As List(Of BNSDocumentCategory)
Public Dateiname As String
Public Sub New(MyLogger As LogConfig)
Logger = MyLogger.GetLogger()
End Sub
End Class
Public Class BNSDocumentCategory
Public Id As Integer
End Class

View File

@@ -3,180 +3,149 @@ Imports System
Imports Independentsoft.Email
Imports Independentsoft.Email.Smtp
Imports Independentsoft.Email.Mime
Imports DigitalData.Modules.Logging
Public Class clsEmail
Private Shared Logger As NLog.Logger = NLog.LogManager.GetCurrentClassLogger
Dim Logger As DigitalData.Modules.Logging.Logger
Private Shared MailAktiv As Boolean = False
'Public Shared Function Init()
' Try
' Dim DT As DataTable = clsDatatabase.Return_Datatable("select * from TBDD_EMAIL_ACCOUNT where ACTIVE = 1")
' If DT.Rows.Count = 1 Then
' For Each row As DataRow In DT.Rows
' MailFrom = row.Item("EMAIL_ABS")
' MAilSMTP = row.Item("EMAIL_SMTP")
' MailSSL = row.Item("EMAIL_SSL")
' MailUser = row.Item("EMAIL_USER")
' MailUser_PW = row.Item("EMAIL_USER_PW")
' MailAktiv = True
' Exit For
' Next
' Else
' MailAktiv = False
' End If
' Return True
' Catch ex As Exception
' clsLogger.Add(ex.Message, True, "clsEmail.Init")
' Return False
' End Try
' End Function
'Public Shared Function Send_EMail(ByVal MailBetreff As String, ByVal vBody As String, MailEmpfaenger As String, MailFrom As String, MAilSMTP As String, MailUser As String, MailUser_PW As String, SSL As Boolean,
' Optional attment As String = "", Optional test As Boolean = False)
' '#### E-MAIL NACHRICHT VERSENDEN
' Try
' Dim empfaenger As String()
' If MailEmpfaenger.Contains(";") Then
' empfaenger = MailEmpfaenger.Split(";")
' Else
' ReDim Preserve empfaenger(0)
' empfaenger(0) = MailEmpfaenger
' End If
' 'Für jeden Empfänger eine Neue Mail erzeugen
' For Each _mailempfaenger As String In empfaenger
' 'Neue Nachricht erzeugen:
' Dim message As New MailMessage(MailFrom, _mailempfaenger, MailBetreff,
' "<font face=""Arial"">" & vBody & "</font>") '& "<br>" &
' '"<br>Domain: " & Environment.UserDomainName &
' '"<br>Gesendet am: " & My.Computer.Clock.LocalTime.ToShortDateString & "-" &
' 'My.Computer.Clock.LocalTime.ToLongTimeString &
' ' create and add the attachment(s) */
' If attment <> String.Empty Then
' If System.IO.File.Exists(attment) Then
' Dim Attachment As Attachment = New Attachment(attment)
' message.Attachments.Add(Attachment)
' End If
' End If
' With message
' .IsBodyHtml = True
' End With
' 'Einen SMTP Client erzeugen und Anmeldungsinformationen hinterlegen
' Dim emailClient As New SmtpClient(MAilSMTP)
' emailClient.EnableSsl = SSL
' 'Email mit Authentifizierung
' Dim SMTPUserInfo As New System.Net.NetworkCredential(MailUser, MailUser_PW) ', My.Settings.vDomain)
' emailClient.UseDefaultCredentials = False
' emailClient.Credentials = SMTPUserInfo
' emailClient.Port = 25
' clsLogger.Add("==> Email erfolgreich an " & _mailempfaenger & " versendet!", False)
' clsLogger.Add("==> Text: " & vBody, False)
' clsLogger.Add("", False)
' '*Send the message */
' emailClient.Send(message)
' If test = True Then
' MsgBox("The testmail was send successfully", MsgBoxStyle.Information)
' End If
' Next
' Return True
' Catch ex As Exception
' clsLogger.Add(ex.Message, True, "cls.SendEmail")
' If test = True Then
' MsgBox("Unexpected error in Send Testmail: " & ex.Message, MsgBoxStyle.Critical)
' End If
' Return False
' End Try
'End Function
Public Shared Function Email_Send_Independentsoft(ByVal mailSubject As String, ByVal mailBody As String, mailto As String,
Sub New(MyLogger As LogConfig)
Logger = MyLogger.GetLogger()
End Sub
Public Function Email_Send_Independentsoft(ByVal mailSubject As String, ByVal mailBody As String, mailto As String,
mailfrom As String, mailsmtp As String, mailport As Integer, mailUser As String, mailPW As String,
SSL As Boolean, Optional attment As String = "")
Dim empfaenger As String()
If mailto.Contains(";") Then
empfaenger = mailto.Split(";")
Else
ReDim Preserve empfaenger(0)
empfaenger(0) = mailto
End If
Dim _error As Boolean = False
'Für jeden Empfänger eine Neue Mail erzeugen
For Each _mailempfaenger As String In empfaenger
AUTH_TYPE As String, Optional attment As String = "")
Try
Dim message As New Message()
message.From = New Mailbox(mailfrom, mailfrom)
message.[To].Add(New Mailbox(_mailempfaenger))
message.Subject = mailSubject
Dim textBodyPart As New BodyPart()
textBodyPart.ContentType = New ContentType("text", "plain", "utf-8")
textBodyPart.ContentTransferEncoding = ContentTransferEncoding.QuotedPrintable
textBodyPart.Body = mailBody
message.BodyParts.Add(textBodyPart)
If attment <> String.Empty Then
If System.IO.File.Exists(attment) Then
Dim attachment1 As New Attachment(attment)
If attment.ToLower.EndsWith("pdf") Then
attachment1.ContentType = New ContentType("application", "pdf")
ElseIf attment.ToLower.EndsWith("jpg") Then
attachment1.ContentType = New ContentType("application", "jpg")
ElseIf attment.ToLower.EndsWith("docx") Then
attachment1.ContentType = New ContentType("application", "MS-word")
Try
Logger.Debug($"in Email_Send_Independentsoft..")
Dim empfaenger As String()
If mailto.Contains(";") Then
empfaenger = mailto.Split(";")
Else
ReDim Preserve empfaenger(0)
empfaenger(0) = mailto
End If
Dim _error As Boolean = False
'Für jeden Empfänger eine Neue Mail erzeugen
For Each _mailempfaenger As String In empfaenger
Logger.Debug($"Working on email for {_mailempfaenger}..")
Try
Dim message As New Message()
message.From = New Mailbox(mailfrom, mailfrom)
message.[To].Add(New Mailbox(_mailempfaenger))
message.Subject = mailSubject
Logger.Debug($"Message created..")
Dim textBodyPart As New BodyPart()
textBodyPart.ContentType = New ContentType("text", "html", "utf-8")
textBodyPart.ContentTransferEncoding = ContentTransferEncoding.QuotedPrintable
textBodyPart.Body = mailBody
message.BodyParts.Add(textBodyPart)
If attment <> String.Empty Then
If System.IO.File.Exists(attment) Then
Dim attachment1 As New Attachment(attment)
If attment.ToLower.EndsWith("pdf") Then
attachment1.ContentType = New ContentType("application", "pdf")
ElseIf attment.ToLower.EndsWith("jpg") Then
attachment1.ContentType = New ContentType("application", "jpg")
ElseIf attment.ToLower.EndsWith("docx") Then
attachment1.ContentType = New ContentType("application", "MS-word")
End If
message.BodyParts.Add(attachment1)
Else
Logger.Warn($"Attachment {attment.ToString} is not existing!")
End If
message.BodyParts.Add(attachment1)
End If
End If
Dim client As SmtpClient
Try
client = New SmtpClient(mailsmtp, mailport)
Catch ex As Exception
Logger.Warn("clsEmail.SendMail(Create Client): " & ex.Message)
Dim client As SmtpClient
Try
client = New SmtpClient(mailsmtp, mailport)
Catch ex As Exception
Logger.Warn("clsEmail.Create Client: " & ex.Message)
_error = True
Continue For
End Try
Try
client.Connect()
Catch ex As Exception
Logger.Warn("clsEmail.Client.Connect: " & ex.Message)
_error = True
' Continue For
End Try
Logger.Info("Connected to Client!")
If AUTH_TYPE = "SSL" Then
client.EnableSsl = True
'client.ValidateRemoteCertificate = True
Logger.Info("Authentification via SSL.")
ElseIf AUTH_TYPE = "TLS" Then
' client.ValidateRemoteCertificate = False
client.StartTls()
client.EnableSsl = False
Logger.Info("Authentification via TLS. SSL disabled")
Else
client.EnableSsl = False
Logger.Info("Authentification NONE. SSL disabled")
End If
Try
_error = True
Continue For
End Try
client.Connect()
Catch ex As Exception
Logger.Warn("clsEmail.Client.Connect: " & ex.Message)
_error = True
' Continue For
End Try
Try
If mailsmtp.Contains("office365.com") Then
client.Login(mailUser, mailPW, AuthenticationType.None)
Else
client.Login(mailUser, mailPW)
End If
Try
client.Connect()
Catch ex As Exception
Logger.Warn("clsEmail.SendMail(Client.Connect): " & ex.Message)
_error = True
Continue For
Logger.Info("Logged in!")
Catch ex As Exception
Try
If mailsmtp.Contains("office365.com") Then
client.Login(mailUser, mailPW, AuthenticationType.Login)
Else
client.Login(mailUser, mailPW, AuthenticationType.Anonymous)
End If
End Try
client.StartTls()
Try
client.Login(mailUser, mailPW)
Catch ex As Exception
Logger.Warn("clsEmail.SendMail(Client.Login): " & ex.Message)
_error = True
Catch ex1 As Exception
Try
client.Login(mailUser, mailPW, AuthenticationType.Login)
Catch ex2 As Exception
Logger.Warn("clsEmail.Client.Login: " & ex.Message)
_error = True
client.Disconnect()
Continue For
End Try
End Try
End Try
Try
client.Send(message)
Logger.Info("Message to " & _mailempfaenger & " has been send.")
_error = False
Catch ex As Exception
Logger.Warn("clsEmail.Client.Send: " & ex.Message)
_error = True
client.Disconnect()
Continue For
End Try
client.Disconnect()
Continue For
End Try
Try
client.Send(message)
Catch ex As Exception
Logger.Warn("clsEmail.SendMail(Client.Send): " & ex.Message)
Logger.Error(ex)
_error = True
client.Disconnect()
Continue For
End Try
client.Disconnect()
Next
Catch ex As Exception
Logger.Error(ex)
_error = True
End Try
Next
If _error = True Then
If _error = True Then
Return False
Else
Return True
End If
Catch ex As Exception
Logger.Error(ex)
Return False
Else
Return True
End If
End Try
End Function
End Class

View File

@@ -0,0 +1,3 @@
Public Class clsFileWork
End Class

View File

@@ -0,0 +1,63 @@
Imports DigitalData.Modules.Logging
Public Class clsJob_Work
Dim Logger As Logger
Private MyLogger As LogConfig
Private _mail As clsEmail
Public Sub New(MyLoggerConf As LogConfig, _email As clsEmail)
Logger = MyLoggerConf.GetLogger()
MyLogger = MyLoggerConf
_mail = _email
End Sub
Public Function New_Mail_with_attachment(Email_receipiants As String, Email_subject As String, Email_Body As String, EmailProfil As Integer, DTTBDD_EMAIL As DataTable, Attachment_Filename As String)
Try
Logger.Debug("Email_Empfänger: " & Email_receipiants)
Logger.Debug("Email_Betreff: " & Email_subject)
Logger.Debug("Email_Body: " & Email_Body)
Logger.Debug("EMAIL_PROFIL: " & EmailProfil)
Dim oMAILFROM As String = ""
Dim oMAILSMTP As String = ""
Dim oMAIL_USER As String = ""
Dim oMAIL_USER_PW As String = ""
Dim oMAIL_AUTH_TYPE As String = "SSL"
Dim oMAIL_PORT As String = "25"
If IsNothing(DTTBDD_EMAIL) And DTTBDD_EMAIL.Rows.Count >= 1 Then
Logger.Warn("DT_TBDD_EMAIL is nothing or contains no rows")
Return False
End If
For Each emailrow As DataRow In clsCURRENT.DT_TBDD_EMAIL.Rows
If emailrow.Item("GUID") = CInt(EmailProfil) Then
oMAILFROM = emailrow.Item("EMAIL_FROM")
oMAILSMTP = emailrow.Item("EMAIL_SMTP")
oMAIL_USER = emailrow.Item("EMAIL_USER")
oMAIL_USER_PW = emailrow.Item("EMAIL_PW")
oMAIL_AUTH_TYPE = emailrow.Item("AUTH_TYPE")
oMAIL_PORT = emailrow.Item("PORT")
End If
Next
Dim owrapper As New clsEncryption("!35452didalog=")
Dim oPWPlain = owrapper.DecryptData(oMAIL_USER_PW)
If Not IsNothing(oPWPlain) Then
If oPWPlain <> "" Then
oMAIL_USER_PW = oPWPlain
Else
Logger.Warn("PWPlain is string.empty - Could not decrypt passwort 42")
Return False
End If
Else
Logger.Warn("PWPlain is string.empty - Could not decrypt passwort 46")
Return False
End If
If _mail.Email_Send_Independentsoft(Email_subject, Email_Body, Email_receipiants, oMAILFROM, oMAILSMTP, oMAIL_PORT, oMAIL_USER, oMAIL_USER_PW, oMAIL_AUTH_TYPE, Attachment_Filename) = True Then
Return True
Else
Logger.Warn("Email_Send_Independentsoft was not successfull!")
Return False
End If
Catch ex As Exception
Logger.Error(ex)
Return False
End Try
End Function
End Class

File diff suppressed because it is too large Load Diff

View File

@@ -8,9 +8,10 @@ Imports WINDREAMLib.WMSearchRelation
Imports WMOBRWSLib
Imports WMOSRCHLib
Imports System.IO
Imports DigitalData.Modules.Logging
Public Class clsWindream_allgemein
Private Shared Logger As NLog.Logger = NLog.LogManager.GetCurrentClassLogger
Dim Logger As Logger
#Region "+++++ Konstanten +++++"
Const DEBUG = AUS
Const AUS = 0
@@ -32,7 +33,8 @@ Public Class clsWindream_allgemein
''' Konstruktor für die windream-Klasse
''' </summary>
''' <remarks></remarks>
Sub New()
Sub New(MyLogger As LogConfig)
Logger = MyLogger.GetLogger()
' wenn ein Fehler bei der Initialisierung auftrat
If Not Init() Then
' Nachricht ausgeben
@@ -71,7 +73,7 @@ Public Class clsWindream_allgemein
' setzt die minimal erwartete windream-Version
oConnect.MinReqVersion = "3"
' Logger.Info("Personifizierung'")
' Logger.Debug("Personifizierung'")
' -- Impersonifizierung nur möglich mit registry-eintrag --
'oConnect.UserName = "\digitaldata\SchreiberM"
@@ -79,8 +81,8 @@ Public Class clsWindream_allgemein
' Verbindung mit Session-Objekt (und dem ausgewählten Server) aufbauen
oConnect.LoginSession(oSession)
Logger.Info("windream-Server: '" & GetCurrentServer() & "'")
Logger.Info("windream-UserName: '" & oConnect.UserName & "'")
Logger.Debug("windream-Server: '" & GetCurrentServer() & "'")
Logger.Debug("windream-UserName: '" & oConnect.UserName & "'")
If oSession.aLoggedin = False Then
Logger.Warn("Es konnte keine Verbindung mit dem windream-Server hergestellt werden")
@@ -114,7 +116,7 @@ Public Class clsWindream_allgemein
End Try
End If
Logger.Info("Alles OK - Erfolgreich angemeldet und Session aufgebaut")
Logger.Debug("Alles OK - Erfolgreich angemeldet und Session aufgebaut")
Return True
Catch ex As Exception
@@ -299,9 +301,9 @@ Public Class clsWindream_allgemein
''' </summary>
''' <returns>Servername als String</returns>
''' <remarks></remarks>
Public Shared Function GetCurrentServer() As String
Public Function GetCurrentServer() As String
Try
Logger.Info(oBrowser.GetCurrentServer.ToString)
Logger.Debug(oBrowser.GetCurrentServer.ToString)
Return oBrowser.GetCurrentServer 'ClassWindream.oBrowser.GetCurrentServer
Catch ex As Exception
Logger.Error(ex)
@@ -349,7 +351,7 @@ Public Class clsWindream_allgemein
''' <param name="indexname">Name des zu überprüfenden Indexfeldes</param>
''' <returns>Liefert eine Zahl, die einen Typen beschreibt</returns>
''' <remarks></remarks>
Public Function GetTypeOfIndexAsIntByName(ByVal indexname As String) As Integer
Public Shared Function GetTypeOfIndexAsIntByName(ByVal indexname As String) As Integer
Try
Dim oAttribute = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname)
Dim vType = oAttribute.getVariableValue("dwAttrType")
@@ -393,14 +395,14 @@ Public Class clsWindream_allgemein
Return Nothing
End Try
End Function
Public Shared Function WDObject_exists(wdobj_location As String)
Public Function WDObject_exists(wdobj_location As String)
Dim WDObject As WMObject
Try
WDObject = oSession.GetWMObjectByPath(WINDREAMLib.WMEntity.WMEntityDocument, wdobj_location.Substring(2))
If WDObject Is Nothing Then
Return False
Else
Logger.Info("WDObject exists")
Logger.Debug("WDObject exists")
Return True
End If
@@ -410,17 +412,17 @@ Public Class clsWindream_allgemein
Return False
End Try
End Function
Public Shared Function GetSearchDocuments(ByVal wdfLocation As String)
Public Function GetSearchDocuments(ByVal wdfLocation As String)
'wdfLocation = 'W:\System\Suchen\WDRH\TestPDF.wdf'
Try
Dim SearchName = wdfLocation.Substring(wdfLocation.LastIndexOf("\") + 1)
Dim SearchPath = wdfLocation.Substring(0, wdfLocation.Length - SearchName.Length)
Logger.Warn("WMSearch: " & wdfLocation.ToLower)
Logger.Debug("WMSearch: " & wdfLocation.ToLower)
If System.IO.File.Exists(wdfLocation.ToLower) Then
Logger.Info("Search exists")
Logger.Debug("Search exists")
End If
oController.CheckSearchProfile(wdfLocation.ToLower) 'wdfLocation.ToLower)
Logger.Info("oController erzeugt")
Logger.Debug("oController erzeugt")
Dim suchTyp = oController.SearchProfileTargetProgID
Dim ExSettings As Object
Dim oSearch As Object
@@ -430,8 +432,8 @@ Public Class clsWindream_allgemein
Dim srchQuick As WMOSRCHLib.WMQuickSearch = CreateObject("WMOSrch.WMQuickSearch")
Dim srchIndex As WMOSRCHLib.WMIndexSearch = CreateObject("WMOSrch.WMIndexSearch")
Dim srchObjectType As WMOSRCHLib.WMObjectTypeSearch = CreateObject("WMOSrch.WMObjectTypeSearch")
Logger.Info("WD Objekte in GetSearchDocuments erzeugt")
Logger.Info(suchTyp.ToString.ToUpper)
Logger.Debug("WD Objekte in GetSearchDocuments erzeugt")
Logger.Debug(suchTyp.ToString.ToUpper)
'' Der öffentliche Member CheckSearchProfile für den Typ IWMQuickSearch7 wurde nicht gefunden. [Microsoft.VisualBasic] => GetSearchDocuments()
Select Case suchTyp.ToString.ToUpper
Case "WMOSRCH.WMQUICKSEARCH"
@@ -444,15 +446,15 @@ Public Class clsWindream_allgemein
Case "WMOSRCH.WMINDEXSEARCH"
srchIndex.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
Logger.Info("Session created...")
Logger.Debug("Session created...")
oConnect.LoginSession(srchIndex.WMSession)
Logger.Info("LoginSession...")
Logger.Debug("LoginSession...")
srchIndex.SearchProfilePath = SearchPath
Logger.Info("SearchPath...")
Logger.Debug("SearchPath...")
srchIndex.LoadSearchProfile(SearchName)
Logger.Info("LoadSearchProfile...")
Logger.Debug("LoadSearchProfile...")
oSearch = srchIndex.GetSearch()
Logger.Info("GetSearch...")
Logger.Debug("GetSearch...")
Case "WMOSRCH.WMOBJECTTYPESEARCH"
srchObjectType.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
oConnect.LoginSession(srchObjectType.WMSession)
@@ -468,15 +470,110 @@ Public Class clsWindream_allgemein
End Select
Dim WMObjects As Object
WMObjects = oSearch.Execute
Logger.Info("WD Objekte werden zurückgegeben")
Logger.Debug("WD Objekte werden zurückgegeben")
Return oSearch.execute
Catch ex As Exception
Logger.Error(ex)
Return Nothing
End Try
End Function
Public Function GetSearchDocumentsDT(ByVal wdfLocation As String, NameIndexDocID As String, NameIndexCreated As String) As DataTable
Dim dtresult As New DataTable
dtresult.Columns.Add("DOC_ID", GetType(Integer))
dtresult.Columns.Add("PATH", GetType(String))
dtresult.Columns.Add("CREATED", GetType(DateAndTime))
Logger.Debug($"Executing WMSearch: {wdfLocation}...")
Try
Dim SearchName = wdfLocation.Substring(wdfLocation.LastIndexOf("\") + 1)
Dim SearchPath = wdfLocation.Substring(0, wdfLocation.Length - SearchName.Length)
Dim oWMSZPath = wdfLocation.Substring(2).ToLower
Logger.Debug("oWMSZPath: " & oWMSZPath)
Try
oController.CheckSearchProfile(oWMSZPath) 'wdfLocation.ToLower)
Catch ex As Exception
Dim msg As String = ex.Message
Try
Logger.Debug("Unexpected Error in Creating oController: " & msg)
Logger.Debug("...NOW trying to implement \\windream\Objects ...")
Dim WmSearch_wmobject = "\\windream\Objects" & oWMSZPath
WmSearch_wmobject = WmSearch_wmobject.ToLower
oController.CheckSearchProfile(WmSearch_wmobject) 'wdfLocation.ToLower)
Catch ex1 As Exception
Logger.Warn("UnexpectedError im CreateController: " & msg)
Logger.Error(ex1)
Return dtresult
End Try
End Try
Logger.Debug("oController erzeugt")
Dim suchTyp = oController.SearchProfileTargetProgID
Dim ExSettings As Object
Dim oSearch As Object
ExSettings = oController.SearchProfileExSettings
If ExSettings = 0 Then ExSettings = 7
Dim srchQuick As WMOSRCHLib.WMQuickSearch = CreateObject("WMOSrch.WMQuickSearch")
Dim srchIndex As WMOSRCHLib.WMIndexSearch = CreateObject("WMOSrch.WMIndexSearch")
Dim srchObjectType As WMOSRCHLib.WMObjectTypeSearch = CreateObject("WMOSrch.WMObjectTypeSearch")
Logger.Debug("WMObjekte in GetSearchDocumentsDT erzeugt")
Logger.Debug(suchTyp.ToString.ToUpper)
Select Case suchTyp.ToString.ToUpper
Case "WMOSRCH.WMQUICKSEARCH"
srchQuick.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
oConnect.LoginSession(srchQuick.WMSession)
srchQuick.ClearSearch()
srchQuick.SearchProfilePath = SearchPath
srchQuick.LoadSearchProfile(SearchName)
oSearch = srchQuick.GetSearch()
Case "WMOSRCH.WMINDEXSEARCH"
srchIndex.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
Logger.Debug("Session created...")
oConnect.LoginSession(srchIndex.WMSession)
Logger.Debug("LoginSession...")
srchIndex.SearchProfilePath = SearchPath
Logger.Debug("SearchPath...")
srchIndex.LoadSearchProfile(SearchName)
Logger.Debug("LoadSearchProfile...")
oSearch = srchIndex.GetSearch()
Logger.Debug("GetSearch...")
Case "WMOSRCH.WMOBJECTTYPESEARCH"
srchObjectType.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
oConnect.LoginSession(srchObjectType.WMSession)
srchObjectType.ClearSearch()
srchObjectType.SearchProfilePath = SearchPath
srchObjectType.LoadSearchProfile(SearchName)
oSearch = srchObjectType.GetSearch()
Case Else
Logger.Warn("KEIN GÜLTIGER WINDREAM-SUCHTYP")
Return Nothing
End Select
Dim WMObjects As Object
WMObjects = oSearch.Execute
'If returnDT = True Then
If WMObjects.Count > 0 Then
For Each dok As WMObject In WMObjects
Dim path As String = dok.aPath
Dim DOC_ID = dok.GetVariableValue(NameIndexDocID)
Logger.Debug("Adding DocInfo for DocID: " & DOC_ID.ToString)
dtresult.Rows.Add(DOC_ID, path, dok.GetVariableValue(NameIndexCreated))
Next
dtresult.AcceptChanges()
Else
Logger.Info($"No results for WMSearch: {wdfLocation}!!")
End If
Return dtresult
Catch ex As Exception
Logger.Error(ex)
Return dtresult
End Try
End Function
#End Region

View File

@@ -1,8 +1,9 @@
Imports WINDREAMLib
Imports WMOSRCHLib
Imports DigitalData.Modules.Logging
Public Class clsWindream_Index
Inherits clsWindream_allgemein
Private Shared Logger As NLog.Logger = NLog.LogManager.GetCurrentClassLogger
Dim Logger As Logger
#Region "+++++ Konstanten +++++"
Protected Const WMObjectEditModeObject = &H1F
Protected Const WMObjectStreamOpenModeReadWrite = 2
@@ -35,8 +36,9 @@ Public Class clsWindream_Index
#End Region
#Region "+++++ Allgemeine Methoden und Funktionen +++++"
Sub New()
MyBase.New()
Sub New(MyLogger As LogConfig)
MyBase.New(MyLogger)
Logger = MyLogger.GetLogger()
End Sub
Private Shared Function IsNotEmpty(ByVal aValue As Object)
@@ -112,7 +114,7 @@ Public Class clsWindream_Index
End Try
End Function
Public Shared Function RunIndexing_Vektor(ByVal oDocument As WMObject, ByVal Indizes As String(), ByVal aValues As String())
Public Function RunIndexing_Vektor(ByVal oDocument As WMObject, ByVal Indizes As String(), ByVal aValues As String())
Try
If Indizes IsNot Nothing And aValues IsNot Nothing Then
If Not oDocument.aLocked Then
@@ -124,34 +126,34 @@ Public Class clsWindream_Index
'Jetzt jeden Indexwert durchlaufen
Dim indexname As String
indexname = Indizes(0)
Logger.Info("RunIndexing_Vektor: Indexname: " & indexname)
Logger.Debug("RunIndexing_Vektor: Indexname: " & indexname)
'VEKTORFELDER, ALSO ÜBERPRÜFEN OB ERGEBNIS-ARRAY GEFÜLLT IST
Logger.Info("RunIndexing_Vektor: VEKTORFELD-Indexierung: Vorbereiten des Arrays")
Logger.Debug("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
Logger.Info("Typ des windream-Indexes: 4097 Vektor alphanumerisch")
Logger.Debug("Typ des windream-Indexes: 4097 Vektor alphanumerisch")
Case 4098
Logger.Info("Typ des windream-Indexes: 4098 Vektor Numerisch")
Logger.Debug("Typ des windream-Indexes: 4098 Vektor Numerisch")
Case 4099
Logger.Info("Typ des windream-Indexes: 4099 Vektor Kommazahl")
Logger.Debug("Typ des windream-Indexes: 4099 Vektor Kommazahl")
Case 4101
Logger.Info("Typ des windream-Indexes: 4101 Vektor Date")
Logger.Debug("Typ des windream-Indexes: 4101 Vektor Date")
Case 4103
Logger.Info("Typ des windream-Indexes: 4103 Vektor DateTime")
Logger.Debug("Typ des windream-Indexes: 4103 Vektor DateTime")
Case 4107
Logger.Info("Typ des windream-Indexes: 4107 Vektor Integer(64bit)")
Logger.Debug("Typ des windream-Indexes: 4107 Vektor Integer(64bit)")
Case 36865
Logger.Info("Typ des windream-Indexes: 36865 Vektor alphanumerisch")
Logger.Debug("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
Logger.Info("RunIndexing_Vektor: Vektorfeld wird mit EINEM Wert gefüllt ")
Logger.Debug("RunIndexing_Vektor: Vektorfeld wird mit EINEM Wert gefüllt ")
ReDim myArray(0)
Select Case (vType)
Case 4097
@@ -172,9 +174,9 @@ Public Class clsWindream_Index
Case 36865
myArray(0) = CStr(aValues(0))
End Select
Logger.Info("RunIndexing_Vektor: Konvertierter Wert: " & myArray(0).ToString)
Logger.Debug("RunIndexing_Vektor: Konvertierter Wert: " & myArray(0).ToString)
Else
Logger.Info("RunIndexing_Vektor: Vektorfeld wird mit MEHREREN Werten gefüllt ")
Logger.Debug("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 +195,7 @@ Public Class clsWindream_Index
Try
convertValue = CInt(wert)
Catch ex As Exception
Logger.Info("Wert muss in Int64 konvertiert werden")
Logger.Debug("Wert muss in Int64 konvertiert werden")
convertValue = Convert.ToInt64(wert) 'ToInt64
End Try
Else
@@ -218,11 +220,11 @@ Public Class clsWindream_Index
End If
'Jetzt die Nachindexierung für Vektor-Felder
oDocument.SetVariableValue(indexname, myArray)
Logger.Info("RunIndexing_Vektor: 'SetVariableValue' für VEKTOR erfolgreich")
Logger.Debug("RunIndexing_Vektor: 'SetVariableValue' für VEKTOR erfolgreich")
oDocument.Save()
oDocument.unlock()
Logger.Info("RunIndexing_Vektor: Indexierung erfolgreich beendet (Save und Unlock durchgeführt)")
Logger.Debug("RunIndexing_Vektor: Indexierung erfolgreich beendet (Save und Unlock durchgeführt)")
Return True
End If
Else
@@ -240,7 +242,7 @@ Public Class clsWindream_Index
End Function
Public Shared Function RunIndexing(ByVal oDocument As WMObject, ByVal Indizes() As String, ByVal aValues() As Object, Objekttyp As String)
Public Function RunIndexing(ByVal oDocument As WMObject, ByVal Indizes() As String, ByVal aValues() As Object, Objekttyp As String)
Try
If Indizes IsNot Nothing And aValues IsNot Nothing Then
If Not oDocument.aLocked Then
@@ -248,16 +250,16 @@ Public Class clsWindream_Index
Dim i As Integer = 0
Dim indexname As String
If aValues.Length = 1 And aValues(0) = "" Then
Logger.Info("Indexwert ist leer/Nothing - Keine Indexierung")
Logger.Debug("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
Logger.Info("Objekttyp war Standard und wurde in '" & Objekttyp & "' geändert.")
Logger.Debug("Objekttyp war Standard und wurde in '" & Objekttyp & "' geändert.")
Else
Logger.Info("Objekttyp war bereits gesetzt")
Logger.Debug("Objekttyp war bereits gesetzt")
End If
Try
@@ -282,58 +284,58 @@ Public Class clsWindream_Index
Dim _dbl As Boolean = False
Dim _bool As Boolean = False
'If indexname = "Tournr" Then
' MsgBox("Index: " & indexname & vbNewLine & "wert: " & aValues(i), MsgBoxStyle.Information, "Index: " & aName.ToString)
'End If
Logger.Info("Indexierung von Index '" & indexname & "'")
'MsgBox(oDocument.aName & vbNewLine & aValues(i) & vbNewLine & vType, MsgBoxStyle.Exclamation, "Zeile 87")
Dim value = aValues(i)
Dim convertValue
Dim vektor As Boolean = False
'Den Typ des Index-Feldes auslesen
'MsgBox(value.GetType.ToString)
Select Case (vType)
'Case WMObjectVariableValueTypeUndefined
Case WMObjectVariableValueTypeString
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeString")
Logger.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeString")
convertValue = CStr(value)
Case WMObjectVariableValueTypeInteger
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeInteger")
Logger.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeInteger")
value = value.ToString.Replace(" ", "")
If IsNumeric(value) = False Then
Logger.Info("Achtung: Value '" & value & "' kann nicht in Zahl konvertiert werden!")
Logger.Debug("Achtung: Value '" & value & "' kann nicht in Zahl konvertiert werden!")
End If
value = value.ToString.Replace(" ", "")
convertValue = CInt(value)
_int = True
Case WMObjectVariableValueTypeFloat
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeFloat")
Logger.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeFloat")
value = value.ToString.Replace(" ", "")
convertValue = CDbl(value)
Case WMObjectVariableValueTypeFixedPoint
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeFixedPoint")
Logger.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeFixedPoint")
value = value.ToString.Replace(" ", "")
convertValue = CDbl(value)
_dbl = True
Case WMObjectVariableValueTypeBoolean
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeBoolean")
Logger.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeBoolean")
convertValue = CBool(value)
_bool = True
Case WMObjectVariableValueTypeDate
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeDate")
Logger.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeDate")
_date = True
'Dim _date As Date = value
convertValue = value
Case WMObjectVariableValueTypeTimeStamp
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeTimeStamp")
Logger.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeTimeStamp")
convertValue = CDbl(value)
Case WMObjectVariableValueTypeCurrency
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeCurrency")
Logger.Debug("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
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeTime")
Logger.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeTime")
'If ((value)) Then
' convertValue = CDate(value)
'Else
@@ -342,50 +344,50 @@ Public Class clsWindream_Index
'Dim _date As Date = value
convertValue = convertValue '*_date.ToShortTimeString
Case WMObjectVariableValueTypeFloat
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeFloat")
Logger.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeFloat")
convertValue = CStr(value)
Case WMObjectVariableValueTypeVariant
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeVariant")
Logger.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeVariant")
convertValue = CStr(value)
Case WMObjectVariableValueTypeFulltext
Logger.Info("Typ des windream-Indexes: WMObjectVariableValueTypeFulltext")
Logger.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeFulltext")
convertValue = CStr(value)
Case 4097
Logger.Info("Typ des windream-Indexes: 4097 Vektor alphanumerisch")
Logger.Debug("Typ des windream-Indexes: 4097 Vektor alphanumerisch")
'Vektor alphanumerisch
vektor = True
Case 4098
Logger.Info("Typ des windream-Indexes: 4098 Vektor Numerisch")
Logger.Debug("Typ des windream-Indexes: 4098 Vektor Numerisch")
'Vektor Numerisch
vektor = True
Case 4099
Logger.Info("Typ des windream-Indexes: 4099 Vektor Kommazahl")
Logger.Debug("Typ des windream-Indexes: 4099 Vektor Kommazahl")
'Vektor Kommazahl
vektor = True
Case 4101
Logger.Info("Typ des windream-Indexes: 4101 Vektor Date")
Logger.Debug("Typ des windream-Indexes: 4101 Vektor Date")
'Vektor Kommazahl
vektor = True
Case 4103
Logger.Info("Typ des windream-Indexes: 4103 Vektor DateTime")
Logger.Debug("Typ des windream-Indexes: 4103 Vektor DateTime")
'Vektor DateTime
vektor = True
Case 4107
Logger.Info("Typ des windream-Indexes: 4107 Integer 64bit")
Logger.Debug("Typ des windream-Indexes: 4107 Integer 64bit")
vektor = True
Case 36865
Logger.Info("Typ des windream-Indexes: 36865 Vektor alphanumerisch")
Logger.Debug("Typ des windream-Indexes: 36865 Vektor alphanumerisch")
'Vektor Kommazahl
vektor = True
Case Else
Logger.Info("Typ des windream-Indexes konnte nicht bestimmt werden!")
Logger.Info("Versuch des Auslesens (vType): " & vType)
Logger.Debug("Typ des windream-Indexes konnte nicht bestimmt werden!")
Logger.Debug("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
Logger.Info("Konvertierter Wert: '" & convertValue.ToString & "'")
Logger.Debug("Konvertierter Wert: '" & convertValue.ToString & "'")
End If
End If
'############################################################################################
@@ -393,7 +395,7 @@ Public Class clsWindream_Index
'############################################################################################
If vektor = False Then
If convertValue.ToString Is Nothing = False Then
Logger.Info("Versuch dem Dok einen Index zuzuweisen: oDocument.SetVariableValue(" & aName & ", " & convertValue & ")")
Logger.Debug("Versuch dem Dok einen Index zuzuweisen: oDocument.SetVariableValue(" & aName & ", " & convertValue & ")")
If _int = True Then
convertValue = convertValue.ToString.Replace(" ", "")
oDocument.SetVariableValue(aName, CInt(convertValue))
@@ -413,7 +415,7 @@ Public Class clsWindream_Index
End If
Else
'VEKTORFELDER, ALSO ÜBERPRÜFEN OB ERGEBNIS-ARRAY GEFÜLLT IST
Logger.Info("VEKTORFELD: Vorbereiten des Arrays")
Logger.Debug("VEKTORFELD: Vorbereiten des Arrays")
Dim myArray()
'Dim DS As DataSet
@@ -433,13 +435,12 @@ Public Class clsWindream_Index
'Dim foundRows() As DataRow
' Use the Select method to find all rows matching the filter.
'foundRows = DT.Select(expression)
'For Each row As DataRow In DT.Rows
'MsgBox(aName & vbNewLine & row.Item("Indexname") & vbNewLine & CStr(row.Item("Wert")))
'Next
Dim Anzahl As Integer = aValues.Length
'Vektorfeld wird mit EINEM Wert gefüllt
If Anzahl = 1 Then
Logger.Info("Vektorfeld wird mit EINEM Wert gefüllt ")
Logger.Debug("Vektorfeld wird mit EINEM Wert gefüllt ")
ReDim myArray(0)
Select Case vType
Case 36865
@@ -469,9 +470,9 @@ Public Class clsWindream_Index
'Umwandeln in String
myArray(0) = CStr(value)
End Select
Logger.Info("Konvertierter Wert: " & myArray(0).ToString)
Logger.Debug("Konvertierter Wert: " & myArray(0).ToString)
Else
Logger.Info("Vektorfeld wird mit MEHREREN Werten gefüllt ")
Logger.Debug("Vektorfeld wird mit MEHREREN Werten gefüllt ")
Select Case vType
Case 36865
'Vektortyp ALPHANUMERISCH
@@ -481,12 +482,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)
Logger.Info("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
Logger.Debug("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
i1 = i1 + 1
Next
For Each NewValue As Object In aValues
myArray(i1) = CStr(NewValue)
Logger.Info("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
Logger.Debug("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
i1 = i1 + 1
Next
Case 4097
@@ -497,7 +498,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)
Logger.Info("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
Logger.Debug("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
i1 = i1 + 1
Next
Case 4107
@@ -517,7 +518,7 @@ Public Class clsWindream_Index
For Each NewValue As Object In aValues
Dim v As String = NewValue.ToString.Replace(" ", "")
myArray(i1) = CInt(v)
Logger.Info("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
Logger.Debug("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
i1 = i1 + 1
Next
Case 4099
@@ -530,7 +531,7 @@ Public Class clsWindream_Index
Dim Str As String = NewValue
Str = Str.ToString.Replace(" ", "")
myArray(i1) = CDbl(Str.Replace(".", ","))
Logger.Info("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
Logger.Debug("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
i1 = i1 + 1
Next
Case 4101
@@ -542,7 +543,7 @@ Public Class clsWindream_Index
For Each NewValue As Object In aValues
Dim Str As String = NewValue.ToString
myArray(i1) = CDate(Str.Replace(".", ","))
Logger.Info("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
Logger.Debug("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
i1 = i1 + 1
Next
@@ -554,7 +555,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)
Logger.Info("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
Logger.Debug("Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
i1 = i1 + 1
Next
End Select
@@ -564,7 +565,7 @@ Public Class clsWindream_Index
Logger.Info("'SetVariableValue' für VEKTOR erfolgreich")
End If
Else
Logger.Info("Array der Indexwerte ist leer/Nothing - Keine Nachindexierung")
Logger.Debug("Array der Indexwerte ist leer/Nothing - Keine Nachindexierung")
End If
i += 1
@@ -576,18 +577,20 @@ Public Class clsWindream_Index
oDocument.Save()
oDocument.unlock()
Logger.Info("Indexierung erfolgreich beendet (Save und Unlock durchgeführt)")
Logger.Info("")
Logger.Debug("Indexierung erfolgreich beendet (Save und Unlock durchgeführt)")
Return False
Else
' MsgBox("Dokument ist gesperrt, Indexierung erst im nächsten Durchlau", MsgBoxStyle.Critical)
Logger.Warn("Dokument ist gesperrt, Indexierung erst im nächsten Durchlauf!")
'oDocument.unlock()
Return True
End If
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical)
Logger.Error(ex)
'clsLogger.AddError(ex.Message, "ClassSearchResult.RunIndexing")
oDocument.Save()