MS
This commit is contained in:
@@ -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" />
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
3
app/ClassWMResulthandler/clsFileWork.vb
Normal file
3
app/ClassWMResulthandler/clsFileWork.vb
Normal file
@@ -0,0 +1,3 @@
|
||||
Public Class clsFileWork
|
||||
|
||||
End Class
|
||||
63
app/ClassWMResulthandler/clsJob_Work.vb
Normal file
63
app/ClassWMResulthandler/clsJob_Work.vb
Normal 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
@@ -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
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user