MS
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user