From 64be5b93635e8236ad786df6dbaa3a7b350b3f63 Mon Sep 17 00:00:00 2001 From: Digital Data - Marlon Schreiber Date: Thu, 5 Mar 2020 11:51:18 +0100 Subject: [PATCH] MS Initial without WM --- .../ClassAllgemeineFunktionen.vb | 76 -- app/DD_PM_WINDREAM/ClassConfig.vb | 9 - app/DD_PM_WINDREAM/ClassFinalizeDoc.vb | 40 +- app/DD_PM_WINDREAM/ClassInit.vb | 2 +- app/DD_PM_WINDREAM/ClassPMWindream.vb | 628 ---------- app/DD_PM_WINDREAM/ClassWindream_allgemein.vb | 488 -------- app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj | 27 +- app/DD_PM_WINDREAM/ModuleRuntimeVariables.vb | 6 +- app/DD_PM_WINDREAM/clsPatterns.vb | 31 +- app/DD_PM_WINDREAM/frmAdministration.vb | 277 +--- app/DD_PM_WINDREAM/frmFormDesigner.vb | 12 +- app/DD_PM_WINDREAM/frmMain.vb | 65 +- app/DD_PM_WINDREAM/frmMassValidator.vb | 163 +-- app/DD_PM_WINDREAM/frmSQL_DESIGNER.vb | 30 +- app/DD_PM_WINDREAM/frmValidator.vb | 1109 +++-------------- app/DD_PM_WINDREAM/frmValidatorSearch.vb | 12 +- 16 files changed, 265 insertions(+), 2710 deletions(-) delete mode 100644 app/DD_PM_WINDREAM/ClassPMWindream.vb delete mode 100644 app/DD_PM_WINDREAM/ClassWindream_allgemein.vb diff --git a/app/DD_PM_WINDREAM/ClassAllgemeineFunktionen.vb b/app/DD_PM_WINDREAM/ClassAllgemeineFunktionen.vb index 720413f..b8e0d59 100644 --- a/app/DD_PM_WINDREAM/ClassAllgemeineFunktionen.vb +++ b/app/DD_PM_WINDREAM/ClassAllgemeineFunktionen.vb @@ -1,8 +1,6 @@ Imports System.Data.SqlClient Imports System.Data.OracleClient Imports System.IO -Imports WINDREAMLib - Public Class ClassAllgemeineFunktionen Public Shared Function GUI_LANGUAGE_INFO(pTITLE As String) Dim oFilteredDatatable As DataTable = BASEDATA_DT_GUI_LANGUAGE_PHRASES.Clone() @@ -149,82 +147,8 @@ Public Class ClassAllgemeineFunktionen End If End Sub - Public Function Delete_xffres(originFile As String, clsWD As ClassWindream_allgemein) - Try - Dim Stammname As String = System.IO.Path.GetFileNameWithoutExtension(originFile) - Dim Path As String = System.IO.Path.GetDirectoryName(originFile) - Dim xffres As String = Path & "\" & Stammname & ".xffres" - If file_exists(xffres, clsWD) = True Then - System.IO.File.Delete(xffres) - LOGGER.Info("Datei " & xffres & " erfolgreich gelöscht") - Return True - Else - Return Nothing - End If - Catch ex As Exception - LOGGER.Error(ex) - LOGGER.Info(" Fehler bei Delete_xffres", True) - LOGGER.Info("Fehlermeldung: " & ex.Message) - End Try - End Function - 'Public Function Delete_File(originFile As String) - ' Try - - ' If file_exists(originFile, False) = True Then - ' System.IO.File.Delete(originFile) - ' LOGGER.Info("Manuelles Löschen: Datei " & originFile & " erfolgreich gelöscht", False) - ' Return True - ' Else - ' MsgBox("Die Datei konnte nicht gelsöcht werden. File NOT EXISTS", MsgBoxStyle.Exclamation) - ' Return False - ' End If - ' Catch ex As Exception - ' LOGGER.Info(" Fehler bei Delete_File", True) - ' LOGGER.Info("Fehlermeldung: " & ex.Message) - ' End Try - 'End Function - Public Function Move2Folder(ByVal vMove_File As String, ByVal vZiel_Pfad As String, Profile_ID As Integer, clsWD As ClassWindream_allgemein) - Try - Dim extension As String = IO.Path.GetExtension(vMove_File) - Dim Filename As String = IO.Path.GetFileName(vMove_File) - Dim path As String = IO.Path.GetDirectoryName(vMove_File) - Dim _Ziel As String - _Ziel = vZiel_Pfad & "\" & Filename - Dim version As Integer = 1 - If vZiel_Pfad <> path Then - Dim Stammname As String = IO.Path.GetFileNameWithoutExtension(vMove_File) - Do While file_exists(_Ziel, clsWD) = True - Dim neuername As String = Stammname & "~" & version & extension - _Ziel = neuername - version = version + 1 - Loop - My.Computer.FileSystem.MoveFile(vMove_File, _Ziel) - LOGGER.Info("Datei erfolgreich verschoben - Ziel: " & _Ziel) - Else - LOGGER.Info("Ziel und Quellpfad sind identisch!") - End If - - Return "" - Catch ex As Exception - LOGGER.Error(ex) - LOGGER.Info("Fehler bei Move2Folder", True) - LOGGER.Info("Fehlermeldung") - LOGGER.Info(ex.Message) - Insert_LogEntry($"ERROR {ex.Message}") - Return ex.Message - End Try - End Function - Public Function file_exists(ByVal _file As String, clsWD As ClassWindream_allgemein) - Try - Return clsWD.CheckFileExists(_file) - Catch ex As Exception - LOGGER.Error(ex) - LOGGER.Info("Fehler in Funktion file_exists - Fehler: ", ex.Message) - Return False - End Try - End Function Public Function checkValue_Exists(sqlbefehl As String, Replace_value As String, Check_value As String, Typ As String, connString As String, profilid As Integer) Try Dim sql As String diff --git a/app/DD_PM_WINDREAM/ClassConfig.vb b/app/DD_PM_WINDREAM/ClassConfig.vb index 997841c..27e2087 100644 --- a/app/DD_PM_WINDREAM/ClassConfig.vb +++ b/app/DD_PM_WINDREAM/ClassConfig.vb @@ -8,15 +8,6 @@ Public Class ClassConfig Public Property ConnectionStringTest As String = "" Public Property TestMode As Boolean = False - ' PDF Viewer Settings - Public Property UniversalViewerPath As String = "" - Public Property XChangeViewerPath As String = "" - Public Property SumatraViewerPath As String = "" - - Public Property PDFViewerZoomLevel As Integer = 3 - Public Property PDFViewer As String = "internal" - Public Property DefaultViewer As String = "docview" - ' Windream Settings Public Property IndexDmsErstellt As String = "DMS erstellt" Public Property IndexDmsErstelltZeit As String = "DMS erstellt (Zeit)" diff --git a/app/DD_PM_WINDREAM/ClassFinalizeDoc.vb b/app/DD_PM_WINDREAM/ClassFinalizeDoc.vb index 041a15a..089b9ef 100644 --- a/app/DD_PM_WINDREAM/ClassFinalizeDoc.vb +++ b/app/DD_PM_WINDREAM/ClassFinalizeDoc.vb @@ -1,5 +1,5 @@ Public Class ClassFinalizeDoc - Public Shared Function Write_Final_Metadata(WMObject As WINDREAMLib.WMObject) + Public Shared Function WMWrite_Final_Metadata(WMObject As Object) 'WINDREAMLib.WMObject) Try Dim _error As Boolean = False If CURRENT_DT_FINAL_INDEXING Is Nothing Then @@ -14,32 +14,10 @@ Dim INDEXNAME = dr.Item("INDEXNAME").ToString If value.ToUpper = "SQL-Command".ToUpper Then '###### Indexierung mit variablen SQL ### LOGGER.Debug("indexing with dynamic sql...") - 'Dim SQL_COMMAND = dr.Item("SQL_COMMAND") - '' Regulären Ausdruck zum Auslesen der Indexe definieren - 'Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}" - '' einen Regulären Ausdruck laden - 'Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg) - '' die Vorkommen im SQL-String auslesen - 'Dim elemente As System.Text.RegularExpressions.MatchCollection = regulärerAusdruck.Matches(SQL_COMMAND) - ''#### - '' alle Vorkommen innerhalbd er Namenkonvention durchlaufen - 'For Each element As System.Text.RegularExpressions.Match In elemente - ' Try - ' If LogErrorsOnly = False Then LOGGER.Info(" element in RegeX: " & element.Value) - ' Dim WDINDEXNAME = element.Value.Substring(2, element.Value.Length - 3) - ' Dim wertWD = WMObject.GetVariableValue(WDINDEXNAME) - ' If Not IsNothing(wertWD) Then - ' SQL_COMMAND = SQL_COMMAND.ToString.Replace(element.Value, wertWD) - ' Else - ' LOGGER.Info(">>Attention: indexvalue is invalid") - ' End If - ' Catch ex As Exception - ' LOGGER.Info("Unexpected Error in Checking control values for Variable SQL Result - ERROR: " & ex.Message) - ' End Try - 'Next + Dim sql_Statement = clsPatterns.ReplaceUserValues(dr.Item("SQL_COMMAND"), USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) sql_Statement = clsPatterns.ReplaceInternalValues(sql_Statement) - sql_Statement = clsPatterns.ReplaceWindreamIndicies(sql_Statement, WMObject) + LOGGER.Debug("sql after ReplaceAllValues: " & sql_Statement) Dim dynamic_value = ClassDatabase.Execute_Scalar(sql_Statement, CONNECTION_STRING, True) @@ -65,7 +43,7 @@ ReDim Preserve result(0) result(0) = value - Dim oIndexType = WINDREAM.GetTypeOfIndex(INDEXNAME) + Dim oIndexType = "" 'WINDREAM.GetTypeOfIndex(INDEXNAME) LOGGER.Debug($"oIndexType {oIndexType.ToString}") If oIndexType > 4000 And oIndexType < 5000 Then 'Hier muss nun separat als Vektorfeld indexiert werden @@ -79,7 +57,7 @@ End If Else LOGGER.Debug("now indexing..") - If Indexiere_File(INDEXNAME, result, WMObject) = True Then + If WMIndexiere_File(INDEXNAME, result, WMObject) = True Then LOGGER.Debug("FINALER INDEX '" & INDEXNAME & "' WURDE ERFOLGREICH GESETZT") LOGGER.Debug("") 'Nun das Logging @@ -112,7 +90,7 @@ End Try End Function - Private Shared Function Indexiere_File(idxxname As String, idxvalue As Object, WMObject As WINDREAMLib.WMObject) + Private Shared Function WMIndexiere_File(idxxname As String, idxvalue As Object, WMObject As Object) 'WINDREAMLib.WMObject) Dim File_indexiert As Boolean = False ' Try @@ -141,7 +119,7 @@ End If 'Dim _windreamPM As New ClassPMWindream 'Jetzt das eigentliche Indexieren der Datei - File_indexiert = WINDREAM.RunIndexing(WMObject, arrIndex, arrValue) + File_indexiert = "ToDo IDB" ' WINDREAM.RunIndexing(WMObject, arrIndex, arrValue) Return File_indexiert End If @@ -151,7 +129,7 @@ ' Return Err() 'End Try End Function - Private Shared Function Indexiere_VektorfeldPM(input As String, NameVectorfield As String, WMObject As WINDREAMLib.WMObject) + Private Shared Function Indexiere_VektorfeldPM(input As String, NameVectorfield As String, WMObject As Object) ' WINDREAMLib.WMObject) Dim _success As Boolean = True Dim Anzahl As Integer = 0 @@ -185,7 +163,7 @@ If myInputArr.Length > 0 Then 'Jetzt die Datei indexieren - If Indexiere_File(NameVectorfield, myInputArr, WMObject) = False Then + If WMIndexiere_File(NameVectorfield, myInputArr, WMObject) = False Then _success = False 'errmessage = "Fehler beim Indexieren Vektorfeld '" & NameVKTIndex & "' - ERROR: " & idxerr_message End If diff --git a/app/DD_PM_WINDREAM/ClassInit.vb b/app/DD_PM_WINDREAM/ClassInit.vb index 4c19896..de049f7 100644 --- a/app/DD_PM_WINDREAM/ClassInit.vb +++ b/app/DD_PM_WINDREAM/ClassInit.vb @@ -17,7 +17,7 @@ Public Class ClassInit LOGCONFIG = New LogConfig(LogConfig.PathType.AppData) LOGGER = LOGCONFIG.GetLogger("ProcessManager") - LOGGER.Info("## ProcessManager für Windream gestartet - {0}", Now) + LOGGER.Info("## ProcessManager started - {0}", Now) End Sub diff --git a/app/DD_PM_WINDREAM/ClassPMWindream.vb b/app/DD_PM_WINDREAM/ClassPMWindream.vb deleted file mode 100644 index 26ebceb..0000000 --- a/app/DD_PM_WINDREAM/ClassPMWindream.vb +++ /dev/null @@ -1,628 +0,0 @@ -Imports WINDREAMLib -Imports WMOSRCHLib - -Public Class ClassPMWindream - - Inherits ClassWindream_allgemein - Dim clsWM As ClassWindream_allgemein - 'Private email As New ClassNIEmail - Private allgFunk As New ClassAllgemeineFunktionen -#Region "+++++ Konstanten +++++" - Protected Const WMObjectEditModeObject = &H1F - Protected Const WMObjectStreamOpenModeReadWrite = 2 - Protected Const WMEntityObjectType = 10 - Protected Const WMEntityDocument = 1 - - Const WMObjectVariableValueTypeUndefined = 0 - Const WMObjectVariableValueTypeString = 1 - Const WMObjectVariableValueTypeInteger = 2 - Const WMObjectVariableValueTypeFloat = 3 - Const WMObjectVariableValueTypeBoolean = 4 - Const WMObjectVariableValueTypeDate = 5 - Const WMObjectVariableValueTypeFixedPoint = 6 - Const WMObjectVariableValueTypeTimeStamp = 7 - Const WMObjectVariableValueTypeCurrency = 8 - Const WMObjectVariableValueTypeTime = 9 - Const WMObjectVariableValueTypeVariant = 10 - Const WMObjectVariableValueTypeMask = &HFFF - Const WMObjectVariableValueFlagMask = &HFFFFF000 - Const WMObjectVariableValueTypeVector = &H1000 - Const WMObjectVariableValueTypeFulltext = &H2000 - Const WMObjectVariableValueTypeDefaultValue = &H4000 - - Const WMObjectEditModeIndexEdit = &H3DA -#End Region - -#Region "+++++ Variablen +++++" - Private oController As New WMOSearchController -#End Region - -#Region "+++++ Allgemeine Methoden und Funktionen +++++" - Sub New() - MyBase.New() - End Sub - Private Function IsNotEmpty(ByVal aValue As Object) - If aValue IsNot Nothing Then - Return True - - 'If TypeOf aValue Is String Then - ' ' Änderung 28.08.2018: Auch ein leerer String gilt als Wert, damit indexfelder auch geleert werden können - ' 'If Not aValue = "" Then - ' ' Return True - ' 'End If - - ' Return False - 'Else - ' Return True - 'End If - Else - Return False - End If - End Function - Private Function return_type(ByVal _wert As Object) - Return _wert.GetType - End Function - Public Function GetValuesfromAuswahlliste(ByVal listname As String) - Try - 'Dim oAttribute = Me.oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, listname) - 'Dim vType = oAttribute.getVariableValue("vItems") - 'Return vType - Dim oChoiceList = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityChoiceList, listname) - If Err.Number = 0 And TypeName(oChoiceList) <> "Nothing" Then - Dim Values = oChoiceList - Values = oChoiceList.GetVariableValue("vItems") - Dim anz As Integer = 0 - - For Each CLItem In Values - If oChoiceList.aName IsNot Nothing Then - anz += 1 - End If - Next - Dim strListe(anz - 1) - Dim zahl As Integer = 0 - For Each CLItem In Values - If oChoiceList.aName IsNot Nothing Then - strListe(zahl) = CLItem - zahl += 1 - End If - Next - Return strListe - Else - MsgBox("Auswahlliste: " & listname & " nicht gefunden!", MsgBoxStyle.Critical, "Fehler:") - Return Nothing - End If - - Catch ex As Exception - LOGGER.Error(ex) - MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler in GetValuesfromAuswahlliste:") - Return Nothing - End Try - End Function - Public Function Return_Type(Indexname As String) - Try - ' das entsprechende Attribut aus windream auslesen - Dim oAttribute = Me.oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, Indexname) - ' den Variablentyp (String, Integer, ...) auslesen - Dim vType = oAttribute.getVariableValue("dwAttrType") - Return vType.ToString - Catch ex As Exception - LOGGER.Error(ex) - MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler in Return_Type:") - Return "" - End Try - End Function - - Public Function RunIndexing(ByVal oDocument As WMObject, ByVal Indizes() As String, ByVal aValues() As Object) - Dim vType - Try - If Indizes IsNot Nothing And aValues IsNot Nothing Then - If Not oDocument.aLocked Then - - ' 02.07. Änderung der Lock Methode, um eine Validierung auch zuzulassen, wenn das Recht "Datei ändern" - ' nicht gesetzt ist - 'oDocument.lock() - - Try - oDocument.LockFor(WMObjectEditModeIndexEdit) - Catch ex As Exception - LOGGER.Error(ex) - frmValidator.idxerr_message = "Could not lock WMFile - Check Your rights and inform the admin!" - Return False - End Try - - Dim i As Integer = 0 - Dim indexname As String - If aValues.Length = 1 And aValues(0) = "" Then - LOGGER.Debug("Indexwert ist leer/Nothing - Keine Indexierung") - End If - 'Jetzt jeden Indexwert durchlaufen - For Each aName As String In Indizes - indexname = aName - ' das entsprechende Attribut aus windream auslesen - Dim oAttribute = Me.oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, Indizes(i)) - ' den Variablentyp (String, Integer, ...) auslesen - vType = oAttribute.getVariableValue("dwAttrType") - ' wenn in aValues an Position i ein Wert steht - - If IsNotEmpty(aValues(i)) Then - Dim _int As Boolean = False - Dim _date As Boolean = False - 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.Debug(" ### 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.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeString") - convertValue = CStr(value) - Case WMObjectVariableValueTypeInteger - LOGGER.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeInteger") - If IsNumeric(value) = False Then - frmValidator.idxerr_message = "Unerlaubte Eingabe in Numerisches Feld: " & value - LOGGER.Debug("Achtung: Value " & value & " kann nicht in Zahl konvertiert werden!") - oDocument.Save() - oDocument.unlock() - Return False - End If - convertValue = CInt(value) - _int = True - Case WMObjectVariableValueTypeFloat - LOGGER.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeFloat") - Try - convertValue = CDbl(value) - Catch ex As Exception - LOGGER.Error(ex) - frmValidator.idxerr_message = "Could't convert value '" & value & "' to double!" - oDocument.Save() - oDocument.unlock() - Return False - End Try - - Case WMObjectVariableValueTypeFixedPoint - LOGGER.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeFixedPoint") - Try - convertValue = CDbl(value) - Catch ex As Exception - LOGGER.Error(ex) - frmValidator.idxerr_message = "Could't convert value '" & value & "' to double!" - oDocument.Save() - oDocument.unlock() - Return False - End Try - - _dbl = True - Case WMObjectVariableValueTypeBoolean - LOGGER.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeBoolean") - convertValue = CBool(value) - _bool = True - Case WMObjectVariableValueTypeDate - LOGGER.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeDate") - _date = True - 'Dim _date As Date = value - convertValue = value - Case WMObjectVariableValueTypeTimeStamp - LOGGER.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeTimeStamp") - convertValue = CInt(value) - Case WMObjectVariableValueTypeCurrency - LOGGER.Info(" >> Typ des windream-Indexes: WMObjectVariableValueTypeCurrency") - 'Wegen currency muß ein eigenes Objekt vom typ Variant erzeugt werden - Dim aValueWrapper As System.Runtime.InteropServices.CurrencyWrapper = New System.Runtime.InteropServices.CurrencyWrapper(CDec(value)) - convertValue = aValueWrapper - Case WMObjectVariableValueTypeTime - LOGGER.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeTime", False) - 'If ((value)) Then - ' convertValue = CDate(value) - 'Else - ' convertValue = "" - 'End If - 'Dim _date As Date = value - convertValue = convertValue '*_date.ToShortTimeString - Case WMObjectVariableValueTypeFloat - LOGGER.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeFloat", False) - convertValue = CStr(value) - Case WMObjectVariableValueTypeVariant - LOGGER.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeVariant", False) - convertValue = CStr(value) - Case WMObjectVariableValueTypeFulltext - LOGGER.Debug("Typ des windream-Indexes: WMObjectVariableValueTypeFulltext", False) - convertValue = CStr(value) - Case 4100 - LOGGER.Debug("Typ des windream-Indexes: 4100 Vektor Boolean", False) - vektor = True - Case 4101 - LOGGER.Debug("Typ des windream-Indexes: 4101 Vektor Date", False) - vektor = True - Case 4104 - LOGGER.Debug("Typ des windream-Indexes: 4104 Vektor Currency", False) - vektor = True - Case 4097 - LOGGER.Debug("Typ des windream-Indexes: 4097 Vektor alphanumerisch", False) - vektor = True - Case 4098 - LOGGER.Debug("Typ des windream-Indexes: 4098 Vektor Numerisch", False) - vektor = True - Case 4099 - LOGGER.Debug("Typ des windream-Indexes: 4099 Vektor Kommazahl", False) - vektor = True - Case 36865 - LOGGER.Debug("Typ des windream-Indexes: 36865 Vektor alphanumerisch", False) - vektor = True - Case Else - LOGGER.Debug("Typ des windream-Indexes konnte nicht bestimmt werden!", False) - 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.Debug("Konvertierter Wert: '" & convertValue.ToString & "'", False) - End If - End If - '############################################################################################ - '####################### Der eigentliche Indexierungsvorgang ################################ - '############################################################################################ - If vektor = False Then - If convertValue.ToString Is Nothing = False Then - Try - LOGGER.Debug("Jetzt indexieren: oDocument.SetVariableValue(" & aName & ", " & convertValue.ToString & ")", False) - Catch ex As Exception - LOGGER.Error(ex) - LOGGER.Info(" >> Unexpected Error in Logging SetVariableValue for " & aName & ": " & ex.Message, False) - End Try - - 'Dim ArrValues() - 'ReDim ArrValues(0) - 'ArrValues(0) = convertValue - 'Dim ArrName() - 'ReDim ArrName(0) - 'ArrName(0) = "Tournr" - 'oDocument.SetValues(ArrName, ArrValues) - If _int = True Then - oDocument.SetVariableValue(aName, CInt(convertValue)) - ElseIf _date = True Then - oDocument.SetVariableValue(aName, CDate(convertValue)) - ElseIf _bool Then - oDocument.SetVariableValue(aName, CBool(convertValue)) - ElseIf _dbl Then - oDocument.SetVariableValue(aName, CDbl(convertValue)) - Else - oDocument.SetVariableValue(aName, convertValue) - End If - LOGGER.Debug("Index '" & aName & "' wurde geschrieben", False) - Else - LOGGER.Info(" >> Kein Indexwert vorhanden", False) - End If - Else - 'VEKTORFELDER, ALSO ÜBERPRÜFEN OB ERGEBNIS-ARRAY GEFÜLLT IST - LOGGER.Debug("VEKTORFELD: Vorbereiten des Arrays", False) - Dim myArray() - 'Dim anz As Integer = 0 - 'For Each obj In aValues - 'ReDim Preserve myArray(anz) - Select Case vType - Case 4100 - 'Vektortyp Boolean - 'Umwandeln in Boolean - 'Die Größe des Arrays festlegen - ReDim myArray(aValues.Length - 1) - Dim i1 As Integer = 0 - 'Das Array durchlaufen und Werte für den Index in Array schreiben - For Each obj In aValues - Select Case obj.ToString.ToLower - Case "falsch" - obj = False - Case "wahr" - obj = True - Case "nein" - obj = False - Case "ja" - obj = True - End Select - myArray(i1) = CBool(obj) - i1 = i1 + 1 - Next - Case 4101 - 'Vektortyp Date - 'Umwandeln in String - 'Die Größe des Arrays festlegen - ReDim myArray(aValues.Length - 1) - Dim i1 As Integer = 0 - 'Das Array durchlaufen und Werte für den Index in Array schreiben - For Each obj In aValues - myArray(i1) = CDate(obj) - i1 = i1 + 1 - Next - Case 4104 - 'Vektortyp Currency - 'Die Größe des Arrays festlegen - ReDim myArray(aValues.Length - 1) - Dim i1 As Integer = 0 - 'Das Array durchlaufen und Werte für den Index in Array schreiben - For Each obj In aValues - Dim aValueWrapper As System.Runtime.InteropServices.CurrencyWrapper = New System.Runtime.InteropServices.CurrencyWrapper(CDec(obj)) - myArray(i1) = aValueWrapper - i1 = i1 + 1 - Next - Case 4097 - 'Vektortyp ALPHANUMERISCH - 'Umwandeln in String - 'Die Größe des Arrays festlegen - ReDim myArray(aValues.Length - 1) - Dim i1 As Integer = 0 - 'Das Array durchlaufen und Werte für den Index in Array schreiben - For Each obj In aValues - myArray(i1) = CStr(obj) - i1 = i1 + 1 - Next - - Case 4098 - 'Umwandeln in Integer - 'Die Größe des Arrays festlegen - ReDim myArray(aValues.Length - 1) - Dim i1 As Integer = 0 - 'Das Array durchlaufen und Werte für den Index in Array schreiben - For Each obj In aValues - myArray(i1) = CInt(obj) - i1 = i1 + 1 - Next - Case 4099 - 'Umwandeln in Double - 'Die Größe des Arrays festlegen - ReDim myArray(aValues.Length - 1) - Dim i1 As Integer = 0 - 'Das Array durchlaufen und Werte für den Index in Array schreiben - For Each obj In aValues - Dim Str As String = obj - myArray(i1) = CDbl(Str.Replace(".", ",")) - i1 = i1 + 1 - Next - - Case 36865 - 'Umwandeln in String - 'Die Größe des Arrays festlegen - ReDim myArray(aValues.Length - 1) - Dim i1 As Integer = 0 - 'Das Array durchlaufen und Werte für den Index in Array schreiben - For Each obj In aValues - myArray(i1) = CStr(obj) - i1 = i1 + 1 - Next - Case Else - 'Umwandeln in String - 'Die Größe des Arrays festlegen - ReDim myArray(aValues.Length - 1) - Dim i1 As Integer = 0 - 'Das Array durchlaufen und Werte für den Index in Array schreiben - For Each obj In aValues - myArray(i1) = CStr(obj) - i1 = i1 + 1 - Next - End Select - - 'Jetzt die Nachindexierung für Vektor-Felder - oDocument.SetVariableValue(aName, myArray) - LOGGER.Debug("'SetVariableValue' für VEKTOR erfolgreich", False) - End If - End If - i += 1 - - Next - - ' oDocument.LockRights() - - 'SetRights(WMObject, User) - oDocument.Save() - oDocument.unlock() - LOGGER.Debug(" ### Indexierung erfolgreich beendet (Save und Unlock durchgeführt) ###", False) - Return True - Else - LOGGER.Info(" ### Dokument ist gesperrt, Indexierung nicht möglich! ###", False) - frmValidator.idxerr_message = "Dokument " & oDocument.aName & " ist gesperrt, Indexierung nicht möglich" - Return False - End If - End If - Catch ex As Exception - LOGGER.Error(ex) - LOGGER.Info("ClassSearchResult.RunIndexing - " & ex.Message, True) - frmValidator.idxerr_message = "Unvorhergesehener Fehler in Indexing: " & ex.Message & vbNewLine & "vType: " & vType.ToString - allgFunk.Insert_LogEntry($"ERROR RunIndexing>> {ex.Message}") - oDocument.Save() - oDocument.unlock() - Return False - End Try - End Function - - Public Sub SetfinalIndex(ByVal oDocument As WMObject, ByVal Indexname As String, ByVal _state As Boolean) - Try - If Indexname IsNot Nothing Then - If Not oDocument.aLocked Then - oDocument.LockFor(WMObjectEditModeIndexEdit) - Dim i As Integer = 0 - - ' das entsprechende Attribut aus windream auslesen - Dim oAttribute = Me.oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, Indexname) - ' den Variablentyp (String, Integer, ...) auslesen - Dim vType = oAttribute.getVariableValue("dwAttrType") - 'MsgBox("Typ: " & vType.ToString, MsgBoxStyle.Critical, "_state: " & _state.ToString) - ' wenn in aValues an Position i ein Wert steht - 'MsgBox(oDocument.aName & vbNewLine & aValues(i) & vbNewLine & vType, MsgBoxStyle.Exclamation, "Zeile 87") - Dim value = _state - Dim convertValue - 'Den Typ des Index-Feldes auslesen - LOGGER.Debug(">> Typ des windream-Indexes: " & vType.ToString) - Select Case (vType) - Case WMObjectVariableValueTypeBoolean - convertValue = CBool(value) - Case Else - LOGGER.Info(">> Typ des windream-Indexes ist nicht BOOLEAN also Abbruch:") - End Select - '############################################################################################ - '####################### Der eigentliche Indexierungsvorgang ################################ - - oDocument.SetVariableValue(Indexname, convertValue) - LOGGER.Debug(">> Index '" & Indexname & "' wurde gesetzt") - oDocument.Save() - oDocument.unlock() - LOGGER.Info(">> DATEI wurde erfolgreich als fertig nachindexiert gekennzeichnet") - Else - LOGGER.Info(">> Dokument ist gesperrt, Indexierung erst im nächsten Durchlauf!") - End If - End If - - - Catch ex As Exception - LOGGER.Error(ex) - LOGGER.Info("ClassSearchResult.SetfinalIndex - " & ex.Message, True) - 'If My.Settings.vNIMailsenden = True Then - ' email.Send_EMail("Fehler bei SetfinalIndex - Datei: " & oDocument.aName.ToString & " - Fehler: " & ex.Message) - 'End If - oDocument.Save() - oDocument.unlock() - End Try - End Sub -#End Region - - -#Region "+++++ Allgemeine Funktionen die Informationen zurückliefern +++++" - - Public Function Get_No_Documents(Profil As String, WD_Search As String) - Try - Dim wmsearch_exists As Boolean - Try - wmsearch_exists = System.IO.File.Exists(WD_Search) - Catch ex As Exception - LOGGER.Error(ex) - wmsearch_exists = clsWM.CheckFileExists(WD_Search) - - End Try - If wmsearch_exists = False Then - - LOGGER.Info(">> Windream Suche für Profil: '" & Profil & "' konnte nicht ausgeführt werden! Die Datei '" & WD_Search & "' existiert nicht!", False) - MsgBox("Windream Suche für Profil: '" & Profil & "' konnte nicht ausgeführt werden!" & vbNewLine & "Die Datei '" & WD_Search & "' existiert nicht!", MsgBoxStyle.Exclamation, "Achtung:") - 'wenn die gesuchte File eine Suche ist: per MAil informierne und Indexierung abbrechen - 'If My.Settings.vNIMailsenden = True Then - ' email.Send_EMail("Fehler bei Nachindexierung:
>> Profil: " & Me.aktivesProfil.Profilname & "
>> die windream-Suche : " & Me.aktivesProfil.WindreamSuche & " konnte nicht gefunden werden!" & _ - ' "
>> Mögliche Fehlerursache: Das W-Laufwerk ist nicht verfügbar!") - 'End If - Return 0 - Else - ' windream-Suche für Profil starten - Dim windreamSucheErgebnisse As WMObjects = Me.GetSearchDocuments(WD_Search) - - If windreamSucheErgebnisse.Count > 0 Then - ' neue Anzahl von Dateien - Return windreamSucheErgebnisse.Count - Else - ' keine Dateien zum Importieren - Return 0 - End If - End If - Catch ex As Exception - LOGGER.Error(ex) - LOGGER.Info(ex.Message) - Return 0 - End Try - - End Function - - Public Function GetSearchDocuments(ByVal wdfLocation As String) - - If clsWM.CheckFileExists(wdfLocation) = True Then - - Try - Dim ProfileName = wdfLocation.Substring(wdfLocation.LastIndexOf("\") + 1) - Dim ProfilePath = wdfLocation.Substring(0, wdfLocation.Length - ProfileName.Length) - - Me.oController.CheckSearchProfile(wdfLocation.ToLower) - Dim suchTyp = Me.oController.SearchProfileTargetProgID - Dim ExSettings As Object - Dim oSearch As Object - ExSettings = Me.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") - - Select Case suchTyp.ToString.ToUpper - Case "WMOSRCH.WMQUICKSEARCH" - srchQuick.WMSession = CreateObject("Windream.WMSession", Me.GetCurrentServer) - - Me.oConnect.LoginSession(srchQuick.WMSession) - - srchQuick.ClearSearch() - srchQuick.SearchProfilePath = ProfilePath - srchQuick.LoadSearchProfile(ProfileName) - - oSearch = srchQuick.GetSearch() - - Case "WMOSRCH.WMINDEXSEARCH" - srchIndex.WMSession = CreateObject("Windream.WMSession", Me.GetCurrentServer) - - Me.oConnect.LoginSession(srchIndex.WMSession) - - srchIndex.ClearSearch() - srchIndex.SearchProfilePath = ProfilePath - srchIndex.LoadSearchProfile(ProfileName) - - oSearch = srchIndex.GetSearch() - - Case "WMOSRCH.WMOBJECTTYPESEARCH" - srchObjectType.WMSession = CreateObject("Windream.WMSession", Me.GetCurrentServer) - - Me.oConnect.LoginSession(srchObjectType.WMSession) - - srchObjectType.ClearSearch() - srchObjectType.SearchProfilePath = ProfilePath - srchObjectType.LoadSearchProfile(ProfileName) - - oSearch = srchObjectType.GetSearch() - - Case Else - LOGGER.Info("KEIN GÜLTIGER WINDREAM-SUCHTYP") - Return Nothing - End Select - Dim WMObjects As Object - WMObjects = oSearch.Execute - Return oSearch.execute - - Catch ex As Exception - LOGGER.Error(ex) - ' bei einem Fehler einen Eintrag in der Logdatei machen - LOGGER.Info("Fehler in GetSearchDocuments - " & ex.Message, True) - Return Nothing - End Try - - End If - - Return Nothing - - End Function - ''' Liefert den Wert eines Indexes als String - ''' _indexname = Name des zu überprüfenden Indexfeldes - Public Function GetValueforIndex(ByVal _fullfilepath As String, _indexname As String) - Try - Const WMEntityDocument = 1 - Dim IndexwertAusWindream As Object = Nothing - Dim _dok As WINDREAMLib.WMObject - _dok = Nothing - _dok = oSession.GetWMObjectByPath(WMEntityDocument, _fullfilepath) 'WINDREAMLib.WMEntity.WMEntityDocument - IndexwertAusWindream = _dok.GetVariableValue(_indexname) - Return IndexwertAusWindream.ToString - Catch ex As Exception - LOGGER.Error(ex) - 'MsgBox(ex.Message) - Return Nothing - End Try - End Function -#End Region -End Class diff --git a/app/DD_PM_WINDREAM/ClassWindream_allgemein.vb b/app/DD_PM_WINDREAM/ClassWindream_allgemein.vb deleted file mode 100644 index 17b0692..0000000 --- a/app/DD_PM_WINDREAM/ClassWindream_allgemein.vb +++ /dev/null @@ -1,488 +0,0 @@ -Imports WINDREAMLib -Imports WINDREAMLib.WMCOMEvent -Imports WINDREAMLib.WMEntity -Imports WINDREAMLib.WMObjectEditMode -Imports WINDREAMLib.WMSearchOperator -Imports WINDREAMLib.WMSearchRelation -Imports WMOBRWSLib - -Public Class ClassWindream_allgemein - -#Region "+++++ Konstanten +++++" - Const DEBUG = AUS - Const AUS = 0 - Const WINDREAM = 1 - Const VARIABLEN = 2 -#End Region - -#Region "+++++ Variablen +++++" - Public oConnect ' der Typ darf nicht festgelegt werden (warum auch immer... geht sonst nicht) - Public oSession 'As WINDREAMLib.WMSession ' der Typ darf nicht festgelegt werden (warum auch immer... geht sonst nicht) - Public oBrowser As New WMOBRWSLib.ServerBrowser - Public oDokumentTypen As WINDREAMLib.WMObjects -#End Region - - -#Region "+++++ Allgemeine Methoden und Funktionen +++++" - - ''' - ''' Konstruktor für die windream-Klasse - ''' - ''' - Sub New() - ' wenn ein Fehler bei der Initialisierung auftrat - 'If Not Me.Init() Then - ' ' Nachricht ausgeben - ' MsgBox("Es trat ein Fehler bei der Initialisierung der Klasse windream auf. Bitte prüfen Sie ob der windream-Server aktiv ist und alle Dienste gestartet sind.", MsgBoxStyle.Exclamation, "Fehler bei Initialisierung") - - ' ' das Programm "abschießen" - ' Process.GetCurrentProcess.Kill() - 'End If - End Sub - - - ''' - ''' Initialisiert die statische Klasse (Login, Session starten, usw.) - ''' - ''' Liefert True wenn das Anmelden erfolgreich war, sonst False - ''' - Public Function Create_Session() As Boolean - Try - Try - ' Session-Objekt instanziieren und mit dem im Client ausgewählten Server belegen - Me.oSession = CreateObject("Windream.WMSession", Me.GetCurrentServer) - LOGGER.Debug("windream-Server: '" & Me.GetCurrentServer & "'") - ' Connection-Objekt instanziieren - Me.oConnect = CreateObject("Windream.WMConnect") - 'MsgBox("windrem init 'ed") - Catch ex As Exception -LOGGER.Error(ex) - LOGGER.Debug($"Error while creating WMConnect Object: {vbCrLf}{ex.Message}") - Return False - End Try - - - ' wenn windream nicht angemeldet ist - If Not Me.IsLoggedIn Then - - ' Art der Anmeldung an windream festlegen - ' 0x0L (also 0) = Standard windream Benutzer - ' WM_MODULE_ID_DOCTYPEEDITOR_LIC = ermöglicht Zugriff auf die windream Management Funktionen (Z.B. zur Verwaltung der windream Dokumententypen, Auswahllisten, etc.) - ' WM_MODULE_ID_INDEXSERVICE = ermöglicht der Session die Indexierungs-Events vom windream DMS-Service zu empfangen - Me.oConnect.ModuleID = 0 - - ' setzt die minimal erwartete windream-Version - Me.oConnect.MinReqVersion = "3" - - ' -- Impersonifizierung nur möglich mit registry-eintrag -- - ' oConnect.UserName "\schulung\windream" - ' oConnect.Password "windream" - - ' Verbindung mit Session-Objekt (und dem ausgewählten Server) aufbauen - Me.oConnect.LoginSession(Me.oSession) - If Me.oSession.aLoggedin = False Then - MsgBox("Es konnte keine Verbindung mit dem windream-Server hergestellt werden", MsgBoxStyle.Exclamation, "Verbindung konnte nicht hergestellt werden") - Return False - End If - - If LOG_ERRORS_ONLY = False Then - LOGGER.Info(" >> windream-Version: '" & oSession.GetSystemInfo("WindreamVersion") & "'") - End If - - ' AUSGABE VON SYSTEMINFORMATIONEN - ' Gibt die Versionsart (Lizenztyp) also Small-Business-Edition (SBE), Small-Business-Extension (SBX) - ' oder Business-Edition (BE) aus - 'MsgBox("WindreamVersion: " & oSession.GetSystemInfo("WindreamVersion") & vbNewLine & "LicenceKey: " & oSession.GetSystemInfo("LicenceKey") & vbNewLine & _ - ' vbNewLine & "LicenceName: " & oSession.GetSystemInfo("LicenceName")) - - 'Dim WMCtrl As AISCONTROLDATACOMLib.AISControlData - 'WMCtrl = New AISCONTROLDATACOMLib.AISControlData - - '' liefert die Versionsnummer des Clients - - 'MsgBox(WMCtrl.WMWorkstationBuildNo) - 'MsgBox(WMCtrl.W - '' liefert den Servernamen des angemeldeten windreams - 'MsgBox(WMCtrl.WMServerName) - - Try - Me.oSession.SwitchEvents(WMCOMEventWMSessionNeedIndex, False) - ' der Parameter WMEntityDocument definiert, dass nur Dokumenttypen und keine - ' Ordnertypen ausgelesen werden - Me.oDokumentTypen = Me.oSession.GetWMObjectTypes(WINDREAMLib.WMEntity.WMEntityDocument) - Catch ex As Exception -LOGGER.Error(ex) - Return False - End Try - - End If - - LOGGER.Debug($"windream login successful") - Return True - - Catch ex As Exception -LOGGER.Error(ex) - If Err.Number = -2147220985 Then - MsgBox("Die installierte windream-Version ist nicht ausreichend für den Betrieb der Tool Collection für windream." & vbNewLine & - "Bitte kontaktieren Sie Digital Data." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & Err.Description, MsgBoxStyle.Exclamation, "Unzureichende windream-Version") - Else - MsgBox("Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler beim Login an windream") - End If - Return False - End Try - - End Function - Public Function Start_WMCC_andCo() - Try - ' 04.10.18: Überprüft, ob der Benutzer Mitglied der SERVER_USER Gruppe ist - Dim sql = "SELECT T.GUID FROM TBDD_GROUPS_USER T INNER JOIN TBDD_GROUPS T1 on T1.GUID = T.GROUP_ID WHERE T1.NAME = 'SERVER_USER' AND T.USER_ID = " & USER_ID - Dim userExistsInServerUserGroup = ClassDatabase.Execute_Scalar(sql, CONNECTION_STRING) - - If WMSESSION_STARTSTOP_STARTUP = True Then - 'And userExistsInServerUserGroup Is Nothing - LOGGER.Info(">> WINDREAM-Start on ApplicationStart is active!") - - Dim owindreamControlCenter = CreateObject("Wmcc.ControlCenter") - Dim owindreamIndexService = CreateObject("WMIndexServer.WMIdxSvControl") - owindreamControlCenter.StartVFSService(1) - System.Threading.Thread.Sleep(1000) - owindreamIndexService.Start() - System.Threading.Thread.Sleep(1500) - End If - Create_Session() - Catch ex As Exception - LOGGER.Error(ex) - LOGGER.Info("Error while starting up WMCC and IndexService: " & ex.Message, True) - End Try - End Function - Public Function Stop_WMCC_andCo() - Try - ' 04.10.18: Überprüft, ob der Benutzer Mitglied der SERVER_USER Gruppe ist - Dim sql = "SELECT T.GUID FROM TBDD_GROUPS_USER T INNER JOIN TBDD_GROUPS T1 on T1.GUID = T.GROUP_ID WHERE T1.NAME = 'SERVER_USER' AND T.USER_ID = " & USER_ID - Dim userExistsInServerUserGroup = ClassDatabase.Execute_Scalar(sql, CONNECTION_STRING) - - If WMSESSION_STARTSTOP_STARTUP = True Then 'And userExistsInServerUserGroup Is Nothing - Dim owindreamControlCenter = CreateObject("Wmcc.ControlCenter") - Dim owindreamIndexService = CreateObject("WMIndexServer.WMIdxSvControl") - owindreamControlCenter.StartVFSService(0) - owindreamIndexService.Shutdown() - owindreamControlCenter.ExitCC(0) - End If - Catch ex As Exception -LOGGER.Error(ex) - LOGGER.Info("Error while Stopping WMCC and IndexService: " & ex.Message, True) - End Try - End Function -#End Region - - - -#Region "+++++ Funktionen die für den Objekttyp relevate Informationen zurückliefern +++++" - - ''' - ''' Liefert alle Objekttypen des aktuellen Servers als windream-Objekte. - ''' - ''' Alle Objekttypen als WMObjects-Objekt - ''' - Public Function GetObjecttypesAsObjects() As WMObjects - Try - - Return Me.oDokumentTypen - - Catch ex As Exception -LOGGER.Error(ex) - MsgBox("Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler beim Auslesen der Objekttypen") - Return Nothing - End Try - End Function - - ''' - ''' Liefert alle Objekttypen des aktuellen Servers als Array aus Strings. - ''' - ''' Array mit allen Objekttypen als Strings - ''' - Public Function GetObjecttypesAsStrings() As String() - - Try - Dim objektTypenStr(Me.oDokumentTypen.Count) As String - - For i As Integer = 0 To Me.oDokumentTypen.Count - objektTypenStr(i) = Me.oDokumentTypen.Item(i).aName - Next - - Return objektTypenStr - - Catch ex As Exception -LOGGER.Error(ex) - MsgBox("Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler beim Auslesen der Objekttypen als String") - Return Nothing - End Try - - End Function - Public Function GetTypeOfIndex(ByVal indexname As String) As Integer - Try - Dim oAttribute = Me.oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname) - Dim vType = oAttribute.getVariableValue("dwAttrType") - Return vType - Catch ex As Exception -LOGGER.Error(ex) - Return Nothing - End Try - - End Function - - Public Function NormalizePath(Path As String) - Dim oNormalizedPath As String - If Path.StartsWith("\\windream") Then - oNormalizedPath = Path.Replace("\\windream\objects\", "") - ElseIf Path.StartsWith("\\") Then - oNormalizedPath = Path.Substring(1) - ElseIf Path.StartsWith("\") Then - Return Path - Else - oNormalizedPath = "\" & Path - End If - - Return oNormalizedPath - End Function - - Public Function CheckFileExists(Path As String) - Dim oNormalizedPath = NormalizePath(Path) - - Try - Dim oObjectId = 0 - Dim oObjectDbId = 0 - Dim WMObject As WINDREAMLib.WMObject '= CreateObject("WINDREAMLib.WMObject") 'New WINDREAMLib.WMObject - If IsNothing(oSession) Then - If Create_Session() = False Then - Return False - End If - End If - WMObject = oSession.GetWMObjectByPath(WINDREAMLib.WMEntity.WMEntityDocument, oNormalizedPath) - Return True - Catch ex As Exception -LOGGER.Error(ex) - Return False - End Try - End Function - ''' - ''' Liefert alle Indexe eines Objekttypen. - ''' - ''' Name des Objekttyps - ''' Array mit allen Objekttyp zugeordneten Indexen als String - ''' - Public Function GetIndicesByObjecttype(ByVal Objecttype_name As String) As String() - Try - Dim oObjectType As WMObject - Dim oIndexAttributes As WMObjectRelation - Dim oIndexAttribute As WMObject - Dim oIndex As WMObject - Dim oRelProperties As WMObjectRelationClass - - ' den Objekttyp laden - oObjectType = Me.oSession.GetWMObjectByName(WMEntityObjectType, Objecttype_name) - - ' Beziehung zu Indizes des Objekttyp auslesen - oIndexAttributes = oObjectType.GetWMObjectRelationByName("TypeAttributes") - - ' Array für Indizes vorbereiten - Dim aIndexNames(oIndexAttributes.Count - 1) As String - - ' alle Indizes durchlaufen - For j As Integer = 0 To oIndexAttributes.Count - 1 - - ' aktuellen Index auslesen - oIndexAttribute = oIndexAttributes.Item(j) - - ' Eigenschaften des Index auslesen - oRelProperties = oIndexAttribute.GetWMObjectRelationByName("Attribute") - - ' Index aus den Eigenschaften auslesen - oIndex = oRelProperties.Item(0) - - ' Indexname speichern - aIndexNames(j) = oIndex.aName - Next - ' Indexarray sortiert zurückgeben - Array.Sort(aIndexNames) - ' Indexarray zurückgeben - Return aIndexNames - - Catch ex As Exception -LOGGER.Error(ex) - MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler beim Auslesen der windream-Indexe") - Return Nothing - End Try - End Function - ''' - ''' Liefert einen Objekttyp als WMObject an Hand dessen Name. - ''' - ''' Name des Objekttyps - ''' Objekttyp als WMObject - ''' - Public Function GetObjecttypeByName(ByVal objekttypName As String) As WMObject - Try - ' alle Objekttypen auslesen - Dim oObjectTypes As WMObjects = Me.oSession.GetWMObjectTypes(WINDREAMLib.WMEntity.WMEntityDocument) - - ' alle Objekttypen durchlaufen und nach dem mit dem angegebenen Namen suchen - For Each oObjectType As WMObject In oObjectTypes - If oObjectType.aName = objekttypName Then - Return oObjectType - End If - Next - - Return Nothing - - Catch ex As Exception -LOGGER.Error(ex) - MsgBox("Es konnte ein Objekttyp nicht erstellt werden." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Exclamation, "Objekttyp konnte nicht erstellt werden") - Return Nothing - End Try - End Function - - ''' - ''' Überprüft ob der angegebene Index im Objekttyp existiert - ''' - ''' Name des zu durchsuchenden Objekttyps - ''' Name des zu suchenden Indexes - ''' Liefert True wenn der Index im Objekttyp existiert, sonst False - ''' - Public Function ExistIndexInObjekttyp(ByVal objekttyp As String, ByVal indexname As String) As Boolean - Try - Dim indexnamen() As String = Me.GetIndicesByObjecttype(objekttyp) - - If indexnamen Is Nothing Then Return False - - For Each index As String In indexnamen - If index = indexname Then Return True - Next - - Catch ex As Exception -LOGGER.Error(ex) - MsgBox("Beim Prüfen ob ein Index für einen Objekttypen existiert, ist ein Fehler aufgetreten." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler beim Prüfen auf Existenz eines Index in einem Objekttyp") - End Try - - Return False - - End Function - -#End Region - - - -#Region "+++++ Allgemeine Funktionen die Informationen zurückliefern +++++" - - ''' - ''' Liefert True wenn die windream-Session angemeldet ist und False für den Fall, dass die Session nicht eingeloggt ist. - ''' - ''' Anmeldestatus als Boolean - ''' - Public Function IsLoggedIn() As Boolean - Try - Return Me.oSession.aLoggedin - Catch ex As Exception -LOGGER.Error(ex) - MsgBox("Es konnte nicht erfolgreich geprüft werden, ob das Programm am windream-Server angemeldted ist." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler bei Loggedin-Prüfung") - End Try - - Return False - End Function - - ''' - ''' Liefert den Servernamen an dem windream aktuell angemeldet ist. - ''' - ''' Servername als String - ''' - Public Function GetCurrentServer() As String - Try - Return Me.oBrowser.GetCurrentServer 'ClassWindream.oBrowser.GetCurrentServer - Catch ex As Exception -LOGGER.Error(ex) - MsgBox("Der aktuell gewählte windream-Server konnte nicht ausgelesen werden." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler beim Auslesen des windream-Servers") - End Try - - Return "" - End Function - - 'Public Function GetSharedCurrentServer() As String - ' Try - ' Return ClassWindream.oBrowser.GetCurrentServer - ' Catch ex As Exception - ' MsgBox("Der aktuell gewählte windream-Server konnte nicht ausgelesen werden." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler beim Auslesen des windream-Servers") - ' End Try - - ' Return "" - 'End Function - - - ''' - ''' Liefert das Windream-Laufwerk des windream-Servers, in Form '[Laufwerksbuchstabe]:'. (z.B. 'W:') - ''' - ''' Laufwerksbuchstabe mit Doppelpunkt als String - ''' - 'Public Function GetWindreamDriveLetter() As String - - ' Try - ' Dim oControl As AISCONTROLDATACOMLib.AISControlData - ' Dim sDrive As String = "" - - ' oControl = New AISCONTROLDATACOMLib.AISControlData - - ' sDrive = oControl.GetStringValue(&H10040003) - - ' Return sDrive & ":" - - ' Catch ex As Exception - ' MsgBox("Fehlernachricht: " & ex.Message, MsgBoxStyle.Critical, "Fehler beim Auslesen des windream-Laufwerks") - ' End Try - - ' Return "" - 'End Function - - ''' - ''' Liefert den Typen eines Indexes als Integer. - ''' - ''' Name des zu überprüfenden Indexfeldes - ''' Liefert eine Zahl, die einen Typen beschreibt - ''' - - Public Function GetValuesfromAuswahlliste(ByVal _auswahlliste As String) As Object - Try - 'Dim oAttribute = Me.oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname) - 'Dim vType = oAttribute.getVariableValue("vItems") - 'Return vType - Dim oChoiceList = oSession.GetWMObjectByName(WMEntityChoiceList, _auswahlliste) - If Err.Number = 0 And TypeName(oChoiceList) <> "Nothing" Then - Dim Values = oChoiceList - Values = oChoiceList.GetVariableValue("vItems") - Dim anz As Integer = 0 - 'If LogErrorsOnly = False Then MsgBox("Try getting values for resullist: " & _auswahlliste) - For Each CLItem In Values - If oChoiceList.aName IsNot Nothing Then - anz += 1 - End If - Next - Dim strListe(anz - 1) - Dim zahl As Integer = 0 - For Each CLItem In Values - 'If LogErrorsOnly = False Then MsgBox("Item: " & CLItem) - If oChoiceList.aName IsNot Nothing Then - strListe(zahl) = CLItem - zahl += 1 - End If - Next - Return strListe - Else - MsgBox("Auswahlliste: " & _auswahlliste & " nicht gefunden!", MsgBoxStyle.Critical, "Fehler:") - Return Nothing - End If - - Catch ex As Exception -LOGGER.Error(ex) - MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler in GetValuesfromAuswahlliste:") - Return Nothing - End Try - End Function -#End Region -End Class diff --git a/app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj b/app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj index 68b5975..673fca5 100644 --- a/app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj +++ b/app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj @@ -139,7 +139,8 @@ False - + + False ..\..\..\DDMonorepo\Controls.DocumentViewer\bin\Debug\DigitalData.Controls.DocumentViewer.dll @@ -158,26 +159,8 @@ P:\Visual Studio Projekte\Bibliotheken\FormsUtils.dll - - False - ..\..\..\DDMonorepo\Controls.DocumentViewer\bin\Debug\Independentsoft.Msg.dll - - - False - True - ..\..\..\..\Interop.WINDREAMLib.dll - - - ..\..\..\..\Interop.WMOBRWSLib.dll - True - - - ..\..\..\..\Interop.WMOSRCHLib.dll - True - - - ..\..\..\..\Interop.WMOTOOLLib.dll - True + + ..\..\..\DDMonorepo\Controls.DocumentViewer\bin\Debug\Independentsoft.Msg.2.0.570.21482.dll @@ -266,8 +249,6 @@ - - True diff --git a/app/DD_PM_WINDREAM/ModuleRuntimeVariables.vb b/app/DD_PM_WINDREAM/ModuleRuntimeVariables.vb index f88afdb..a994254 100644 --- a/app/DD_PM_WINDREAM/ModuleRuntimeVariables.vb +++ b/app/DD_PM_WINDREAM/ModuleRuntimeVariables.vb @@ -1,5 +1,4 @@ -Imports WINDREAMLib -Imports DigitalData.Modules.Config +Imports DigitalData.Modules.Config Imports DigitalData.Modules.Logging Module ModuleRuntimeVariables @@ -30,7 +29,6 @@ Module ModuleRuntimeVariables Public CURRENT_CONN_ID As Integer Public CURRENT_JUMP_DOC_GUID As Integer - Public CURRENT_WMFILE As WMObject Public CURRENT_DOC_PATH As String Public ERROR_STATE = "" @@ -108,8 +106,6 @@ Module ModuleRuntimeVariables Public CURRENT_CONTROL_ID As Integer Public errormessage As String - - Public WINDREAM As ClassPMWindream Public FINALINDICES As ClassFinalIndex Public IDBData As ClassIDBData Public LOGCONFIG As LogConfig diff --git a/app/DD_PM_WINDREAM/clsPatterns.vb b/app/DD_PM_WINDREAM/clsPatterns.vb index d852e1a..4f35cd7 100644 --- a/app/DD_PM_WINDREAM/clsPatterns.vb +++ b/app/DD_PM_WINDREAM/clsPatterns.vb @@ -1,6 +1,4 @@ Imports System.Text.RegularExpressions -Imports WINDREAMLib - ''' ''' Defines common Functions for Checking for and replacing placeholders. ''' This Class also includes a child class `Pattern` for passing around Patterns. @@ -51,13 +49,13 @@ Public Class clsPatterns End Function - Public Shared Function ReplaceAllValues(input As String, panel As Panel, document As WMObject, prename As Object, surname As Object, shortname As Object, language As Object, email As Object, userId As Object, profileId As Object) As String + Public Shared Function ReplaceAllValues(input As String, panel As Panel, WMdocument As Object, prename As Object, surname As Object, shortname As Object, language As Object, email As Object, userId As Object, profileId As Object) As String Try Dim result = input LOGGER.Debug($"inputString BEFORE replacing: [{result}]") result = ReplaceInternalValues(result) result = ReplaceControlValues(result, panel) - If Not IsNothing(document) Then result = ReplaceWindreamIndicies(result, document) + If IDB_ACTIVE = True Then result = ReplaceIDBAttributes(result) End If @@ -171,31 +169,6 @@ Public Class clsPatterns End Try End Function - Public Shared Function ReplaceWindreamIndicies(input As String, document As WMObject) As String - Try - Dim result = input - Dim oTryCounter As Integer = 0 - While ContainsPattern(result, PATTERN_WMI) - - Dim indexName As String = GetNextPattern(result, PATTERN_WMI).Value - Dim oWMValue = document.GetVariableValue(indexName) - If IsNothing(oWMValue) And oTryCounter = MAX_TRY_COUNT Then - LOGGER.Warn("Exit from ReplaceWindreamIndicies as oWMValue is still nothing and oTryCounter is 500!") - Throw New Exception("Max tries in ReplaceWindreamIndicies exceeded.") - - End If - If oWMValue IsNot Nothing Then - result = ReplacePattern(result, PATTERN_WMI, oWMValue) - End If - oTryCounter += 100 - End While - LOGGER.Debug("sql after ReplaceWindreamIndicies: " & input) - Return result - Catch ex As Exception - LOGGER.Error(ex) - LOGGER.Info("Error in ReplaceWindreamIndicies:" & ex.Message) - End Try - End Function Public Shared Function ReplaceIDBAttributes(input As String) As String Try Dim result = input diff --git a/app/DD_PM_WINDREAM/frmAdministration.vb b/app/DD_PM_WINDREAM/frmAdministration.vb index c5c43c8..776198c 100644 --- a/app/DD_PM_WINDREAM/frmAdministration.vb +++ b/app/DD_PM_WINDREAM/frmAdministration.vb @@ -73,58 +73,9 @@ Public Class frmAdministration Me.cmbLOGIndex.Items.Add("") cmbLOGIndex.Enabled = True Label9.Enabled = True - If IDB_ACTIVE = False Then - PM_VEKTOR_INDEXComboBox.Enabled = True - Label4.Enabled = True - If cmbObjekttypen.Text = "DEFAULT" And IDB_ACTIVE = False Then - MsgBox("The Objecttype is invalid!", MsgBoxStyle.Exclamation) - Exit Sub - End If - Try - Dim indexe = WINDREAM.GetIndicesByObjecttype(cmbObjekttypen.Text) - If indexe IsNot Nothing Then - For Each index As String In indexe - Dim _vektorString As Boolean = False - Select Case WINDREAM.GetTypeOfIndex(index) - Case 4097 - _vektorString = True - Case 36865 - _vektorString = True - Case Else - _vektorString = False - End Select - If _vektorString = True Then - Me.PM_VEKTOR_INDEXComboBox.Items.Add(index) - Me.cmbLOGIndex.Items.Add(index) - End If - - Next - End If - MyIndicies_Types = New List(Of Integer) - MyIndicies = WINDREAM.GetIndicesByObjecttype(cmbObjekttypen.Text).ToList() - For Each i In MyIndicies - Dim type = WINDREAM.GetTypeOfIndex(i) - MyIndicies_Types.Add(type) - Next - Catch ex As Exception - LOGGER.Error(ex) - MsgBox("Error in GetIndices windream: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Achtung:") - PM_VEKTOR_INDEXComboBox.SelectedIndex = -1 - cmbLOGIndex.SelectedIndex = -1 - End Try - If Me.PM_VEKTOR_INDEXComboBox.Text <> "" Then - PM_VEKTOR_INDEXComboBox.SelectedIndex = PM_VEKTOR_INDEXComboBox.FindStringExact(Me.PM_VEKTOR_INDEXComboBox.Text) - Else - PM_VEKTOR_INDEXComboBox.SelectedIndex = -1 - End If - If Me.cmbLOGIndex.Text <> "" Then - cmbLOGIndex.SelectedIndex = cmbLOGIndex.FindStringExact(Me.cmbLOGIndex.Text) - Else - cmbLOGIndex.SelectedIndex = -1 - End If - Else '############## IDB ACTIVE ################# + '############## IDB ACTIVE ################# - PM_VEKTOR_INDEXComboBox.Enabled = False + PM_VEKTOR_INDEXComboBox.Enabled = False Label4.Enabled = False Try For Each oRow As DataRow In IDBData.DTVWIDB_BE_ATTRIBUTE.Rows @@ -151,7 +102,6 @@ Public Class frmAdministration - End If End Sub @@ -179,26 +129,11 @@ Public Class frmAdministration End Sub Private Sub ObjekttypenEintragen() Me.cmbObjekttypen.Items.Clear() - If IDB_ACTIVE = False Then - Try - Dim oDokumentTypen As WINDREAMLib.WMObjects = WINDREAM.GetObjecttypesAsObjects() - If oDokumentTypen Is Nothing Then Exit Sub - For Each aType In oDokumentTypen - Me.cmbObjekttypen.Items.Add(aType.aName) - Next - Catch ex As Exception - LOGGER.Error(ex) - MsgBox("Es konnte keine Verbindung zum windream-Server hergestellt werden.", MsgBoxStyle.Critical, "Fehler beim Zugriff auf windream-Server") - End Try - Else - Dim oSQL = "SELECT GUID, TITLE FROM TBIDB_BUSINESS_ENTITY" - Dim oDT As DataTable = ClassDatabase.Return_Datatable_ConStr(oSQL, CONNECTION_STRING_IDB) - For Each oROW As DataRow In oDT.Rows - Me.cmbObjekttypen.Items.Add(oROW.Item(1)) - Next - End If - - + Dim oSQL = "SELECT GUID, TITLE FROM TBIDB_BUSINESS_ENTITY" + Dim oDT As DataTable = ClassDatabase.Return_Datatable_ConStr(oSQL, CONNECTION_STRING_IDB) + For Each oROW As DataRow In oDT.Rows + Me.cmbObjekttypen.Items.Add(oROW.Item(1)) + Next End Sub Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles btnWMSuche.Click @@ -444,180 +379,6 @@ Public Class frmAdministration End Select End Sub - 'Private Sub cmbIndexe_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) - ' If cmbIndexe.SelectedIndex <> -1 Then - ' 'MsgBox(_windreamPM.GetTypeOfIndex(cmbIndexe.Text)) - ' btnInsert_FinalIndex.Enabled = True - ' Me.btnStampDate.Visible = False - ' Me.btnStampDate.Visible = False - ' Dim type = _windreamPM.GetTypeOfIndex(cmbIndexe.Text) - ' Select Case type - ' Case 1 'String - ' Me.lblIndex.Text = "Definieren Sie den festen Wert: (Text)" - ' Me.lblIndex.Visible = True - ' Me.txtindexwert_final.Visible = True - ' Me.grbxSystemStamps.Visible = True - ' Me.btnStampDate.Visible = True - ' Me.btnStampDate.Visible = True - ' Me.txtindexwert_final.Text = "" - ' Me.chkbxfinalIndex.Visible = False - ' Case 2 'Integer - ' Me.lblIndex.Text = "Definieren Sie den festen Wert: (Zahl)" - ' Me.lblIndex.Visible = True - ' Me.txtindexwert_final.Visible = True - ' Me.grbxSystemStamps.Visible = True - ' Me.btnStampDate.Visible = True - ' Me.btnStampDate.Visible = True - ' Me.txtindexwert_final.Text = "" - ' Me.chkbxfinalIndex.Visible = False - ' Case 3 'Float - ' Me.lblIndex.Text = "Definieren Sie den festen Wert: (Decimal)" - ' Me.lblIndex.Visible = True - ' Me.txtindexwert_final.Visible = True - ' Me.grbxSystemStamps.Visible = False - ' Me.txtindexwert_final.Text = "" - ' Me.chkbxfinalIndex.Visible = False - ' Case 4 ' Boolean - ' Me.lblIndex.Text = "Wählen Sie den Boolean-Wert: (Ja/Nein)" - ' Me.lblIndex.Visible = True - ' Me.txtindexwert_final.Visible = False - ' Me.grbxSystemStamps.Visible = False - ' Me.chkbxfinalIndex.CheckState = CheckState.Checked - ' Me.chkbxfinalIndex.Visible = True - ' Case 5 'Date - ' Me.lblIndex.Text = "Definieren Sie den festen Wert: (Date)" - ' Me.lblIndex.Visible = True - ' Me.txtindexwert_final.Visible = True - ' Me.grbxSystemStamps.Visible = True - ' Me.txtindexwert_final.Text = "" - ' Me.chkbxfinalIndex.Visible = False - ' Case 4107 'Vektor Zahl - ' Me.lblIndex.Text = "Definieren Sie den festen Wert - Vektorfeld: (Zahl)" - ' Me.lblIndex.Visible = True - ' Me.txtindexwert_final.Visible = True - ' Me.grbxSystemStamps.Visible = False - ' Me.txtindexwert_final.Text = "" - ' Me.chkbxfinalIndex.Visible = False - ' Case 4097 'Vektor String - ' Me.lblIndex.Text = "Definieren Sie den festen Wert - Vektorfeld: (Text)" - ' Me.lblIndex.Visible = True - ' Me.txtindexwert_final.Visible = True - ' Me.grbxSystemStamps.Visible = True - ' Me.btnStampDate.Visible = True - ' Me.btnStampDate.Visible = True - ' Me.txtindexwert_final.Text = "" - ' Me.chkbxfinalIndex.Visible = False - ' Case 4100 'Vektor Bool - ' Me.lblIndex.Text = "Definieren Sie den festen Wert - Vektorfeld: (Boolean)" - ' Me.lblIndex.Visible = True - ' Me.txtindexwert_final.Visible = True - ' Me.grbxSystemStamps.Visible = False - ' Me.btnStampDate.Visible = False - ' Me.txtindexwert_final.Text = "" - ' Me.chkbxfinalIndex.Visible = False - ' Case 4101 'Vektor Date - ' Me.lblIndex.Text = "Definieren Sie den festen Wert - Vektorfeld: (Date)" - ' Me.lblIndex.Visible = True - ' Me.txtindexwert_final.Visible = True - ' Me.grbxSystemStamps.Visible = True - ' Me.btnStampDate.Visible = True - ' Me.txtindexwert_final.Text = "" - ' Me.chkbxfinalIndex.Visible = False - ' Case 4104 - ' Me.lblIndex.Text = "Definieren Sie den festen Wert - Vektorfeld: (Currency)" - ' Me.lblIndex.Visible = True - ' Me.txtindexwert_final.Visible = True - ' Me.grbxSystemStamps.Visible = False - ' Me.txtindexwert_final.Text = "" - ' Me.chkbxfinalIndex.Visible = False - ' Case Else - ' btnInsert_FinalIndex.Enabled = False - ' End Select - - ' End If - 'End Sub - - 'Private Sub btnInsert_FinalIndex_Click(sender As System.Object, e As System.EventArgs) - ' Me.lblSaveFinalIndex.Visible = False - ' If CheckBoxPMVEKTOR.Checked = False Then - ' If cmbIndexe.SelectedIndex <> -1 Then - ' Dim indexwert As String = "" - ' If txtindexwert_final.Visible = True Then - ' indexwert = txtindexwert_final.Text - ' Else - ' If chkbxfinalIndex.CheckState = CheckState.Checked Then - ' indexwert = 1 - ' Else - ' indexwert = 0 - ' End If - - ' End If - ' Try - ' TBPM_PROFILE_FINAL_INDEXINGTableAdapter.CmdInsert(PROFILGUIDTextBox.Text, cmbIndexe.Text, indexwert, USER_USERNAME, 0, "") - ' Me.lblSaveFinalIndex.Text = "Der Index wurde erfolgreich angelegt - " & Now - ' Me.lblSaveFinalIndex.Visible = True - - ' Catch ex As Exception - ' MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei Anlage Final Index:") - ' End Try - - ' End If - ' Else - ' If txtBezeichner.Text <> "" Then - ' Dim indexwert As String = "" - ' If txtindexwert_final.Visible = True Then - ' indexwert = txtindexwert_final.Text - ' Else - ' If chkbxfinalIndex.CheckState = CheckState.Checked Then - ' indexwert = "True" - ' Else - ' indexwert = "False" - ' End If - - ' End If - ' Try - ' TBPM_PROFILE_FINAL_INDEXINGTableAdapter.CmdInsert(PROFILGUIDTextBox.Text, "[%VKT" & txtBezeichner.Text, indexwert, USER_USERNAME, 0, "") - ' Me.lblSaveFinalIndex.Text = "Der Index wurde erfolgreich angelegt - " & Now - ' Me.lblSaveFinalIndex.Visible = True - ' Catch ex As Exception - ' MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei Anlage Final Index in VEKTORFELD:") - ' End Try - ' End If - ' End If - ' Refresh_Final_indexe() - ' INSERT_ACTIVE = False - ' TabControlFinalIndices.Enabled = False - - 'End Sub - 'Private Sub ToolStripButton1_Click_1(sender As System.Object, e As System.EventArgs) - ' Refresh_Final_indexe() - ' INSERT_ACTIVE = False - ' TabControlFinalIndices.Enabled = False - - ' txtBezeichner.Text = String.Empty - ' txtindexwert_final.Text = String.Empty - 'End Sub - - Private Sub tsbtnProfilkopieren_Click(sender As System.Object, e As System.EventArgs) - - End Sub - Private Function Execute_SQL(SQL As String) - Try - Dim SQLconnection As New SqlClient.SqlConnection(CONNECTION_STRING) - Dim SQLcommand As New SqlCommand(SQL, SQLconnection) - SQLconnection.Open() - SQLcommand.ExecuteNonQuery() - SQLcommand.Dispose() - SQLconnection.Close() - Return True - Catch ex As Exception - LOGGER.Error(ex) - MsgBox("Fehler in Execute_SQL: " & vbNewLine & ex.Message & vbNewLine & vbNewLine & " SQL: " & SQL) - Return False - End Try - End Function - - Private Sub CancelFinalIndexInsert() INSERT_ACTIVE = False @@ -638,12 +399,6 @@ Public Class frmAdministration End If End Sub - Private Sub ToolStripButton4_Click(sender As Object, e As EventArgs) - Cursor = Cursors.WaitCursor - frmUserKonfig_AddUsers.ShowDialog() - Load_User() - Cursor = Cursors.Default - End Sub Private Sub ToolStripButton12_Click(sender As Object, e As EventArgs) Load_User() End Sub @@ -666,24 +421,6 @@ Public Class frmAdministration Indexe_eintragen() End If End Sub - - Private Sub Button3_Click_1(sender As Object, e As EventArgs) - Dim indexe = WINDREAM.GetIndicesByObjecttype(cmbObjekttypen.Text) - If indexe IsNot Nothing Then - For Each index As String In indexe - MsgBox(index & vbNewLine & WINDREAM.GetTypeOfIndex(index)) - Select Case WINDREAM.GetTypeOfIndex(index) - Case 4107 'Vektor Zahl - - Case 4097 - - Case Else - - End Select - Next - End If - End Sub - 'Private Sub TabControlFinalIndices_SelectedIndexChanged(sender As Object, e As EventArgs) ' If TabControlFinalIndices.SelectedIndex = 1 Then ' Me.cmbIndexe2.Enabled = False diff --git a/app/DD_PM_WINDREAM/frmFormDesigner.vb b/app/DD_PM_WINDREAM/frmFormDesigner.vb index 3c3f4ce..fe4eedf 100644 --- a/app/DD_PM_WINDREAM/frmFormDesigner.vb +++ b/app/DD_PM_WINDREAM/frmFormDesigner.vb @@ -36,21 +36,13 @@ Public Class frmFormDesigner ' Setzt den typ des SQL-Befehls für frmSQL_DESIGNER CURRENT_DESIGN_TYPE = "INPUT_INDEX" - ' Profil Name in Fenstertitel setzen Text = $"Validation Designer - Profil: {ProfileName}" ' Try - ' Windream initialisieren - If IDB_ACTIVE = False Then - clsWindream.Create_Session() - btnButton.Visible = False - Else - btnButton.Visible = True - End If - + btnButton.Visible = True - 'Windream Abfragen, sollten einmal beim Start des Formulars geladen werden + 'Abfragen, sollten einmal beim Start des Formulars geladen werden Dim unsortedIndicies Dim sortedIndicies As List(Of String) If IDB_ACTIVE = False Then diff --git a/app/DD_PM_WINDREAM/frmMain.vb b/app/DD_PM_WINDREAM/frmMain.vb index daf873e..fc6a40c 100644 --- a/app/DD_PM_WINDREAM/frmMain.vb +++ b/app/DD_PM_WINDREAM/frmMain.vb @@ -52,16 +52,7 @@ Public Class frmMain LOGGER.Error(ex) LOGGER.Info("Error in Save FormLayout: " & ex.Message) End Try - If IDB_ACTIVE = False Then - Try - If WINDREAM?.oSession?.aLoggedin = True Then - WINDREAM.Stop_WMCC_andCo() - End If - Catch ex As Exception - - End Try - End If Try ClassAllgemeineFunktionen.LoginOut("LOGOUT") @@ -190,32 +181,9 @@ Public Class frmMain Check_Timer_Notification() formShown = True Restore_Form_Position() - - If IDB_ACTIVE = False And ERROR_STATE = "" Then - Try - WINDREAM = New ClassPMWindream - WINDREAM.Start_WMCC_andCo() - If Not IsNothing(WINDREAM.oSession) Then - If WINDREAM.oSession.aLoggedin = False Then - MsgBox("You could not be logged in to windream. Please check the log.", MsgBoxStyle.Critical) - End If - Else - MsgBox("Login on windream was not possible. Please check the log.", MsgBoxStyle.Critical) - End If - '_windreamPM = New ClassPMWindream - '_windreamPM.Start_WMCC_andCo() - - Catch ex As Exception - LOGGER.Error(ex) - MsgBox("Unexpected Error in windream-login - Step 5: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Attention:") - End Try - Else - Dim oSQL = $"SELECT SQL_COMMAND FROM TBDD_SQL_COMMANDS WHERE TITLE = 'PM_IDB_DOC_DATA'" - IDB_DOC_DATA_SQL = ClassDatabase.Execute_Scalar(oSQL, CONNECTION_STRING) - LOGGER.Debug($"Got the IDB_DOC_DATA_SQL..{IDB_DOC_DATA_SQL}") - End If - - + Dim oSQL = $"SELECT SQL_COMMAND FROM TBDD_SQL_COMMANDS WHERE TITLE = 'PM_IDB_DOC_DATA'" + IDB_DOC_DATA_SQL = ClassDatabase.Execute_Scalar(oSQL, CONNECTION_STRING) + LOGGER.Debug($"Got the IDB_DOC_DATA_SQL..{IDB_DOC_DATA_SQL}") LOGGER.Debug("MainForm initialized!") End If formopenClose = False @@ -1265,24 +1233,7 @@ Public Class frmMain Return False End Try End Function - Private Function Init_windream() - Try - '_windream = New ClassWindream_allgemein - '_windream.Create_Session() - '_windreamPM = New ClassPMWindream() - '_windreamPM.Create_Session() - WINDREAM = New ClassPMWindream() - WINDREAM.Create_Session() - - LOGGER.Debug("windream initialized") - Return True - Catch ex As Exception - LOGGER.Error(ex) - MsgBox("Error Init_windream:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Attention:") - LOGGER.Info("Unexpected error in Init_windream: " & ex.Message, True) - Return False - End Try - End Function + Private Sub tsmiMarkedFilesFinish_Click(sender As Object, e As EventArgs) Handles tsmiMarkedFilesFinish.Click Try Dim oSelectedRows As Integer() = GridView_Docs.GetSelectedRows() @@ -1309,13 +1260,7 @@ Public Class frmMain Exit Sub End If - If IDB_ACTIVE = False Then - SOURCE_INIT = Init_windream() - - Else - SOURCE_INIT = Init_IDB() - End If - + SOURCE_INIT = Init_IDB() If SOURCE_INIT = True Then diff --git a/app/DD_PM_WINDREAM/frmMassValidator.vb b/app/DD_PM_WINDREAM/frmMassValidator.vb index 1b226dc..41b389d 100644 --- a/app/DD_PM_WINDREAM/frmMassValidator.vb +++ b/app/DD_PM_WINDREAM/frmMassValidator.vb @@ -1,5 +1,4 @@ -Imports WINDREAMLib -Imports Oracle.ManagedDataAccess.Client +Imports Oracle.ManagedDataAccess.Client Imports System.ComponentModel Imports DD_LIB_Standards Imports DigitalData.Controls.LookupGrid @@ -23,29 +22,24 @@ Public Class frmMassValidator Private _dependingControl_in_action As Boolean = False Private oErrorMessage As String - Private _windream As New ClassWindream_allgemein - 'Private _windreamPM As New ClassPMWindream + + Private _allgFunk As New ClassAllgemeineFunktionen Dim viewer_string As String Dim pdfxchange As Boolean = False Dim sumatra As Boolean = False - Dim WMObject As WMObject + Private Sub frmMassValidator_Load(sender As Object, e As EventArgs) Handles Me.Load FORM_Shown = False Try - ' 05.10.18: Nutzung des Globalen Windream Objekts WINDREAM - '_windream = New ClassWindream_allgemein - '_windream.Create_Session() - '_windreamPM = New ClassPMWindream() - '_windreamPM.Create_Session() - LOGGER.Debug("windream initialized frmMassValidator") + LOGGER.Debug("initialized frmMassValidator") Catch ex As Exception LOGGER.Error(ex) - MsgBox("Error Init_windream:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Attention:") - LOGGER.Info(">> Fehler in Init_windream: " & ex.Message, True) + MsgBox("Error Init:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Attention:") + LOGGER.Info(">> Fehler in Init: " & ex.Message, True) Exit Sub End Try @@ -258,7 +252,7 @@ Public Class frmMassValidator Else If CURR_CHOICE_LIST <> "" Then LOGGER.Debug("In add_ComboBox - AListe: " & CURR_CHOICE_LIST) - Dim liste = WINDREAM.GetValuesfromAuswahlliste(CURR_CHOICE_LIST) + Dim liste = "ToDo IDB LIST" If liste IsNot Nothing Then cmb.Items.Add("") For Each index As String In liste @@ -266,7 +260,7 @@ Public Class frmMassValidator Next cmb.SelectedIndex = -1 Else - MsgBox("Resultliste windream is nothing!", MsgBoxStyle.Exclamation, CURR_CHOICE_LIST) + MsgBox("ChiceList is nothing!", MsgBoxStyle.Exclamation, CURR_CHOICE_LIST) End If End If End If @@ -400,7 +394,7 @@ Public Class frmMassValidator End If If Not IsDBNull(filteredData.Rows(0).Item("CONNECTION_ID")) And Not IsDBNull(filteredData.Rows(0).Item("SQL_UEBERPRUEFUNG")) Then Dim oSqlCommand = IIf(IsDBNull(filteredData.Rows(0).Item("SQL_UEBERPRUEFUNG")), "", filteredData.Rows(0).Item("SQL_UEBERPRUEFUNG")) - oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) LOGGER.Debug(">>> sql after ReplaceAllValues: " & oSqlCommand) _dependingControl_in_action = True Dim oDTDEPENDING_RESULT As DataTable = ClassDatabase.Return_Datatable(oSqlCommand) @@ -486,7 +480,7 @@ Public Class frmMassValidator frmError.ShowDialog() LOGGER.Info(">> Unexpected error in FillIndexValues TextBox(MI): " & ex.Message, True) LOGGER.Info(">> Controltype: " & controltype) - LOGGER.Info(">> Indexname windream: " & indexname) + LOGGER.Info(">> Indexname: " & indexname) Exit Sub End Try @@ -709,7 +703,7 @@ Public Class frmMassValidator frmError.ShowDialog() LOGGER.Info(">> Unexpected Error in FillIndexValues(MIs: " & ex.Message, True) LOGGER.Info(">> Controltype: " & controltype) - LOGGER.Info(">> Indexname windream: " & indexname) + LOGGER.Info(">> Indexname: " & indexname) End Try @@ -722,18 +716,18 @@ Public Class frmMassValidator Dim tempIndexValue Dim idoccount As Integer = 1 For Each docrow As DataRow In CURRENT_DT_MASS_CHANGE_DOCS.Rows - Dim WMDOC As WMObject + Dim WMDOC As Object = Nothing Try - WMDOC = WINDREAM.oSession.GetWMObjectByPath(WMEntity.WMEntityDocument, docrow.Item("FULL_PATH")) + WMDOC = "ToDo Get IDB DOC Info" Catch ex As Exception LOGGER.Error(ex) LOGGER.Info("error while creating WMObject in (textCheckIndex): " & ex.Message) Exit For End Try If Not IsNothing(WMDOC) Then - CURRENT_WMFILE = WMDOC + If idxname.StartsWith("[%VKT") And PROFIL_VEKTORINDEX <> "" Then - tempIndexValue = ReturnVektor_IndexValue(idxname, WMDOC) + tempIndexValue = Nothing 'IDB Else Try tempIndexValue = WMDOC.GetVariableValue(idxname) @@ -774,53 +768,8 @@ Public Class frmMassValidator Return "Unexp. error in GetWM_Value_Multiple_Docs" End Try End Function - Private Function ReturnVektor_IndexValue(VKTBezeichner As String, WMFile As WMObject) - Try - Dim value - Dim name = VKTBezeichner.Replace("[%VKT", "") - Dim Sort_Arr() As String - Dim i As Integer = 0 - 'Jetzt im Vektorfeld des Profils nachsehen ob der WErt bereits vorhanden ist - Dim wertWD = WMFile.GetVariableValue(PROFIL_VEKTORINDEX) - If wertWD Is Nothing = False Then - 'Es wird gegen ein Vektorfeld nachindexiert - If wertWD.GetType.ToString.Contains("System.Object") Then - 'es handelt sich um ein Vektorfeld - Zuweisen der Indexwerte des Vektorfeldes zu Array - For Each obj As Object In wertWD - If obj Is Nothing = False Then - ReDim Preserve Sort_Arr(i) - Sort_Arr(i) = obj.ToString() - i += 1 - End If - Next - 'Das Ergebnis-Array nun Rückwärts sortieren, um die letzte Änderung zu finden - For Each _string As Object In Sort_Arr.Reverse() - Dim DDPM_String As String = _string.ToString() - ' - Dim VektorArray() = Split(DDPM_String, Delimiter) - If VektorArray(1).ToString.ToLower = name.ToLower Then - value = VektorArray(2) - Exit For - End If - - Next - - End If - End If - If value Is Nothing Then value = "" - Return value - Catch ex As Exception - LOGGER.Error(ex) - MsgBox("Unexpected Error in ReturnVektor_IndexValue(MV): " & vbNewLine & ex.Message, MsgBoxStyle.Critical) - LOGGER.Info("Unexpected Error in ReturnVektor_IndexValue(MV): " & ex.Message) - Return "" - End Try - - - End Function - Public Sub OnTextBoxFocus(sender As Object, e As EventArgs) Dim box As TextBox = sender box.BackColor = Color.Lime @@ -851,7 +800,7 @@ Public Class frmMassValidator Dim displayboxname = ROW.Item(Name).ToString If Not IsDBNull(ROW.Item(1)) And Not IsDBNull(ROW.Item(2)) Then Dim sql_Statement = ROW.Item(2) - sql_Statement = clsPatterns.ReplaceAllValues(sql_Statement, pnldesigner, WMObject, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + sql_Statement = clsPatterns.ReplaceAllValues(sql_Statement, pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) _dependingControl_in_action = True Depending_Control_Set_Result(displayboxname, sql_Statement, ROW.Item(1)) @@ -927,7 +876,7 @@ Public Class frmMassValidator If Not IsDBNull(ROW.Item("CONNECTION_ID")) And Not IsDBNull(ROW.Item("SQL_UEBERPRUEFUNG")) Then Dim sql_Statement = ROW.Item("SQL_UEBERPRUEFUNG") - sql_Statement = clsPatterns.ReplaceAllValues(sql_Statement, pnldesigner, WMObject, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + sql_Statement = clsPatterns.ReplaceAllValues(sql_Statement, pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) _dependingControl_in_action = True @@ -1127,7 +1076,7 @@ Public Class frmMassValidator GetWMDocPathWindows(0) If CreateWMObject() = True Then - If ClassFinalizeDoc.Write_Final_Metadata(CURRENT_WMFILE) = True Then + If ClassFinalizeDoc.WMWrite_Final_Metadata(Nothing) = True Then Dim sql = String.Format("UPDATE TBPM_PROFILE_FILES SET IN_WORK = 0, WORK_USER = '{0}', EDIT = 1 WHERE GUID = {1}", USER_USERNAME, CURRENT_DOC_GUID) If ClassDatabase.Execute_non_Query(sql) = True Then workedFiles += 1 @@ -1256,11 +1205,12 @@ Public Class frmMassValidator '####### WENN MOVE2FOLDER KONFIGURIERT IST####### If MOVE2Folder <> "" Then - Dim idxerr_message = _allgFunk.Move2Folder(docrow.Item("FULL_PATH").ToString, MOVE2Folder, CURRENT_ProfilGUID, _windream) - If idxerr_message <> "" Then - MsgBox("Error in Move2Folder - Check the log And inform Your sysadmin", MsgBoxStyle.Critical) + ' "ToDo IDB" + 'Dim idxerr_message = _allgFunk.Move2Folder(docrow.Item("FULL_PATH").ToString, MOVE2Folder, CURRENT_ProfilGUID, _windream) + 'If idxerr_message <> "" Then + ' MsgBox("Error in Move2Folder - Check the log And inform Your sysadmin", MsgBoxStyle.Critical) - End If + 'End If End If End If @@ -1322,7 +1272,7 @@ Public Class frmMassValidator End Function Private Function CreateWMObject() As String - CURRENT_WMFILE = Nothing + LOGGER.Debug($"in GetWMDocFileString...'") Dim oWMRELPATH As String = BASEDATA_DT_CONFIG.Rows.Item(0).Item("WM_REL_PATH") If oWMRELPATH.EndsWith("\") = False Then @@ -1331,9 +1281,9 @@ Public Class frmMassValidator Dim oWMOwnPath = WMDocPathWindows.Replace(oWMRELPATH, "") LOGGER.Debug($"oWMOwnPath: {oWMOwnPath}") Try - Dim oNormalizedPath = WINDREAM.NormalizePath(oWMOwnPath) + Dim oNormalizedPath = "ToDo IDB Normalize" LOGGER.Debug($"oNormalizedPath: {oNormalizedPath}") - CURRENT_WMFILE = WINDREAM.oSession.GetWMObjectByPath(WMEntity.WMEntityDocument, oNormalizedPath) + WMDocFileString = oNormalizedPath LOGGER.Debug("WMDocFileString: " & WMDocFileString) Return True @@ -1700,7 +1650,7 @@ Public Class frmMassValidator If docrow.Item("DOC_ID") = 0 Then Continue For End If - Dim WMDOC As WMObject + Dim oRelPath = docrow.Item("FULL_PATH").ToString Try If oRelPath.StartsWith("W") Then @@ -1713,7 +1663,6 @@ Public Class frmMassValidator End If End If - WMDOC = WINDREAM.oSession.GetWMObjectByPath(WMEntity.WMEntityDocument, oRelPath) Catch ex As Exception LOGGER.Error(ex) LOGGER.Info("error while creating WMObject in (IndexMultipleFiles): " & oRelPath) @@ -1746,10 +1695,11 @@ Public Class frmMassValidator arrValue(0) = idxvalue(0).ToString End If 'Jetzt das eigentliche Indexieren der Datei - If WINDREAM.RunIndexing(WMDOC, arrIndex, arrValue) = False Then - _allfine = False - Exit For - End If + '"ToDo Set Variable" + 'If WINDREAM.RunIndexing(WMDOC, arrIndex, arrValue) = False Then + ' _allfine = False + ' Exit For + 'End If End If Next @@ -1765,9 +1715,9 @@ Public Class frmMassValidator Dim _allfine As Boolean = True Dim missing As Boolean = False For Each docrow As DataRow In CURRENT_DT_MASS_CHANGE_DOCS.Rows - Dim WMDOC As WMObject + Dim WMDOC As Object '"To Do IDB" Try - WMDOC = WINDREAM.oSession.GetWMObjectByPath(WMEntity.WMEntityDocument, docrow.Item("FULL_PATH")) + WMDOC = "ToDo IDB" Catch ex As Exception LOGGER.Error(ex) LOGGER.Info("error while creating WMObject in (IndexVKTMultipleFiles): " & ex.Message) @@ -1807,51 +1757,16 @@ Public Class frmMassValidator If myInputArr.Length > 0 Then 'Jetzt die Datei indexieren - If IndexSinglefile(WMDOC, NameVKTIndex, myInputArr) = False Then - missing = True - End If + 'IDB ToDO + 'If IndexSinglefile(WMDOC, NameVKTIndex, myInputArr) = False Then + ' missing = True + 'End If End If Next Return missing End Function - Private Function IndexSinglefile(_dok As WINDREAMLib.WMObject, idxxname As String, idxvalue As Object) - Dim File_indexiert As Boolean = False - Try - 'Die Arrays vorbereiten - Dim arrIndex() As String = Nothing - Dim arrValue() As String = Nothing - arrIndex = Nothing - arrValue = Nothing - 'Den Indexnamen übergeben - ReDim Preserve arrIndex(0) - arrIndex(0) = idxxname - 'Das Array der Idnexwerte überprüfen - If idxvalue Is Nothing = False Then - If idxvalue.Length() > 1 Then - LOGGER.Debug("Indexing Index '" & idxxname & "' with Arrayvalue") - Dim anzahl As Integer = 0 - For Each indexvalue As String In idxvalue - ReDim Preserve arrValue(anzahl) - arrValue(anzahl) = indexvalue - anzahl += 1 - Next - Else - LOGGER.Debug("Indexing Index '" & idxxname & "' with value '" & idxvalue(0) & "'") - ReDim Preserve arrValue(0) - arrValue(0) = idxvalue(0).ToString - End If - 'Jetzt das eigentliche Indexieren der Datei - File_indexiert = WINDREAM.RunIndexing(_dok, arrIndex, arrValue) - Return File_indexiert - End If - Catch ex As Exception - LOGGER.Error(ex) - LOGGER.Info("Unexpected Error in IndexSinglefile: " & ex.Message.ToString, True) - Return Err() - End Try - End Function Function Return_PM_VEKTOR(input As String, VKTBezeichner As String) Dim PM_String As String Try diff --git a/app/DD_PM_WINDREAM/frmSQL_DESIGNER.vb b/app/DD_PM_WINDREAM/frmSQL_DESIGNER.vb index 7ee6de4..103fd4f 100644 --- a/app/DD_PM_WINDREAM/frmSQL_DESIGNER.vb +++ b/app/DD_PM_WINDREAM/frmSQL_DESIGNER.vb @@ -58,29 +58,12 @@ Public Class frmSQL_DESIGNER btnAddControl.Visible = True cmbIndexe.Items.Clear() - If IDB_ACTIVE = False Then - Dim oIndicies = WINDREAM.GetIndicesByObjecttype(CURRENT_OBJECTTYPE) - If oIndicies IsNot Nothing Then - For Each index As String In oIndicies - cmbIndexe.Items.Add(index) - Next - cmbIndexe.SelectedIndex = -1 - End If - 'cmbIndexe.Enabled = True - 'lbIndexe.Enabled = True - 'btnAddIndex.Enabled = True - Else - Dim oAttributes = IDBData.GetIndicesByBE(CURRENT_OBJECTTYPE) - If oAttributes IsNot Nothing Then - For Each oAttribute As String In oAttributes - cmbIndexe.Items.Add(oAttribute) - Next - cmbIndexe.SelectedIndex = -1 - End If - - 'cmbIndexe.Enabled = False - 'lbIndexe.Enabled = False - 'btnAddIndex.Enabled = False + Dim oAttributes = IDBData.GetIndicesByBE(CURRENT_OBJECTTYPE) + If oAttributes IsNot Nothing Then + For Each oAttribute As String In oAttributes + cmbIndexe.Items.Add(oAttribute) + Next + cmbIndexe.SelectedIndex = -1 End If Else @@ -90,7 +73,6 @@ Public Class frmSQL_DESIGNER cmbIndexe.Visible = False lbIndexe.Visible = False btnAddIndex.Visible = False - End If Catch ex As Exception LOGGER.Error(ex) diff --git a/app/DD_PM_WINDREAM/frmValidator.vb b/app/DD_PM_WINDREAM/frmValidator.vb index 77ce34a..81931cd 100644 --- a/app/DD_PM_WINDREAM/frmValidator.vb +++ b/app/DD_PM_WINDREAM/frmValidator.vb @@ -1,5 +1,4 @@ -Imports WINDREAMLib -Imports System.Threading +Imports System.Threading Imports System.Runtime.InteropServices Imports Oracle.ManagedDataAccess.Client Imports Independentsoft @@ -23,8 +22,6 @@ Public Class frmValidator Dim WD_Search As String Dim finalProfile As Boolean Dim Move2Folder As String - 'Private _windreamPM As New ClassPMWindream - Private _windream As New ClassWindream_allgemein Private allgFunk As New ClassAllgemeineFunktionen 'speichert die DocumentDaten @@ -305,21 +302,6 @@ Public Class frmValidator MsgBox("Error Init_IDB:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Attention:") End Try End Function - Private Function Init_windream() - Try - WINDREAM = New ClassPMWindream() - WINDREAM.Create_Session() - LOGGER.Debug("windream initialized") - Return True - Catch ex As Exception - LOGGER.Error(ex) - MsgBox("Error Init_windream:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Attention:") - allgFunk.Insert_LogEntry($"ERROR Init_windream >> {ex.Message}") - LOGGER.Info(">> Error Init_windream: " & ex.Message, True) - Return False - End Try - End Function - Public Sub Load_Additional_Searches() If BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows.Count > 0 Or BASEDATA_DT_PROFILE_SEARCHES_DOC.Rows.Count > 0 Then Dim oDocResultCommand As String @@ -330,14 +312,14 @@ Public Class frmValidator 'Check whether DocData is there Dim oConID = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(0).Item("CONN_ID") oDataResultCommand = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(0).Item("SQL_COMMAND") - oDataResultCommand = clsPatterns.ReplaceAllValues(oDataResultCommand, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + oDataResultCommand = clsPatterns.ReplaceAllValues(oDataResultCommand, pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) oDatatableDataResult = ClassDatabase.Return_Datatable(oDataResultCommand) End If If BASEDATA_DT_PROFILE_SEARCHES_DOC.Rows.Count > 0 Then 'Check whether DocData is there Dim oConID = BASEDATA_DT_PROFILE_SEARCHES_DOC.Rows(0).Item("CONN_ID") oDocResultCommand = BASEDATA_DT_PROFILE_SEARCHES_DOC.Rows(0).Item("SQL_COMMAND") - oDocResultCommand = clsPatterns.ReplaceAllValues(oDocResultCommand, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + oDocResultCommand = clsPatterns.ReplaceAllValues(oDocResultCommand, pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) oDatatableDocResult = ClassDatabase.Return_Datatable(oDocResultCommand) End If @@ -381,7 +363,7 @@ Public Class frmValidator _frmValidatorSearch._DTSQLSearches = BASEDATA_DT_PROFILE_SEARCHES_SQL Dim oConID = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(0).Item("CONN_ID") Dim oCommand = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(0).Item("SQL_COMMAND") - oCommand = clsPatterns.ReplaceAllValues(oCommand, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + oCommand = clsPatterns.ReplaceAllValues(oCommand, pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) _frmValidatorSearch.Refresh_Load_GridSQL(oConID, oCommand, 0, BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(0).Item("TAB_TITLE")) End If @@ -389,7 +371,7 @@ Public Class frmValidator _frmValidatorSearch._DTDocSearches = BASEDATA_DT_PROFILE_SEARCHES_DOC Dim oConID = BASEDATA_DT_PROFILE_SEARCHES_DOC.Rows(0).Item("CONN_ID") Dim oCommand = BASEDATA_DT_PROFILE_SEARCHES_DOC.Rows(0).Item("SQL_COMMAND") - oCommand = clsPatterns.ReplaceAllValues(oCommand, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + oCommand = clsPatterns.ReplaceAllValues(oCommand, pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) _frmValidatorSearch.RefreshTabDoc(oConID, oCommand, 0, BASEDATA_DT_PROFILE_SEARCHES_DOC.Rows(0).Item("TAB_TITLE")) End If @@ -444,7 +426,7 @@ Public Class frmValidator End If 'oSql = clsPatterns.ReplaceUserValues(sqlStatement, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) 'oSql = clsPatterns.ReplaceInternalValues(oSql) - oSQLStatement = clsPatterns.ReplaceAllValues(oSQLStatement, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + oSQLStatement = clsPatterns.ReplaceAllValues(oSQLStatement, pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) If IsNothing(oSQLStatement) Then Continue For End If @@ -558,7 +540,7 @@ Public Class frmValidator ' Dim oSqlStatement As String = row.Item("SQL_UEBERPRUEFUNG") ' Dim oConnectionId As Integer = row.Item("CONNECTION_ID") - ' oSql = clsPatterns.ReplaceAllValues(oSqlStatement, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + ' oSql = clsPatterns.ReplaceAllValues(oSqlStatement, pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) ' If clsPatterns.HasComplexPatterns(oSqlStatement) Then ' LOGGER.Warn($"Unexpected error LoadSQLData2 - sql Statement still has complex patterns! [{oSql}]") @@ -750,7 +732,7 @@ Public Class frmValidator sql = PreventNulletc(oControlRow.Item("SQL_UEBERPRUEFUNG")) 'TBPM_PROFILE_CONTROLSTableAdapter.cmdGetSQL(ControlID) - 'sql = ClassPatterns.ReplaceAllValues(sql, pnldesigner, CURRENT_WMFILE) + 'sql = ClassPatterns.ReplaceAllValues(sql, pnldesigner, Nothing) 'If ClassPatterns.HasOnlySimplePatterns(sql) Then If clsPatterns.HasOnlySimplePatterns(sql) Then @@ -781,24 +763,9 @@ Public Class frmValidator LOGGER.Debug("Else Row 571") End If Else - LOGGER.Debug("AListe Handling") + LOGGER.Debug("CHOICE_LIST Handling") Dim AListe As String = oControlRow.Item("CHOICE_LIST") - LOGGER.Debug("In add_ComboBox - AListe: " & AListe) - If AListe Is Nothing = False Then - 'Dim liste = _windreamPM.GetValuesfromAuswahlliste(AListe) - Dim liste = WINDREAM.GetValuesfromAuswahlliste(AListe) - If liste IsNot Nothing Then - cmb.Items.Add("") - For Each index As String In liste - cmb.Items.Add(index) - Next - cmb.SelectedIndex = -1 - Else - MsgBox("Resultliste windream is nothing!", MsgBoxStyle.Exclamation, AListe) - End If - Else - MsgBox("AListe from database is nothing!", MsgBoxStyle.Exclamation, AListe) - End If + End If @@ -1058,7 +1025,7 @@ Public Class frmValidator Dim sql_Statement = ROW.Item(2) - sql_Statement = clsPatterns.ReplaceAllValues(sql_Statement, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + sql_Statement = clsPatterns.ReplaceAllValues(sql_Statement, pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) '' Regulären Ausdruck zum Auslesen der Indexe definieren 'Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}" @@ -1126,8 +1093,8 @@ Public Class frmValidator Override_SQLCommand = "" End If ' = $"select SQL_UEBERPRUEFUNG,SQL2 FROM TBPM_PROFILE_CONTROLS WHERE GUID = {oControlID}" - oSQL = clsPatterns.ReplaceAllValues(oSQL, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) - Override_SQLCommand = clsPatterns.ReplaceAllValues(Override_SQLCommand, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + oSQL = clsPatterns.ReplaceAllValues(oSQL, pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + Override_SQLCommand = clsPatterns.ReplaceAllValues(Override_SQLCommand, pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) Dim oDT_ACTIONS As DataTable = ClassDatabase.Return_Datatable(oSQL) If IsNothing(oDT_ACTIONS) Then MsgBox("Something went wrong in custom action - Please check Your log!", MsgBoxStyle.Exclamation, ADDITIONAL_TITLE) @@ -1372,7 +1339,7 @@ Public Class frmValidator End If If Not IsDBNull(oFilteredDatatable.Rows(0).Item("CONNECTION_ID")) And Not IsDBNull(oFilteredDatatable.Rows(0).Item("SET_CONTROL_DATA")) Then Dim oSqlCommand = IIf(IsDBNull(oFilteredDatatable.Rows(0).Item("SET_CONTROL_DATA")), "", oFilteredDatatable.Rows(0).Item("SET_CONTROL_DATA")) - oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) _SetControlValue_in_action = True Dim oDTDEPENDING_RESULT As DataTable = ClassDatabase.Return_Datatable(oSqlCommand) For Each oRowControl2Set As DataRow In oDTDEPENDING_RESULT.Rows @@ -1483,7 +1450,7 @@ Public Class frmValidator End If If Not IsDBNull(oRowDependingControl.Item("CONNECTION_ID")) And Not IsDBNull(oRowDependingControl.Item("SQL_UEBERPRUEFUNG")) Then Dim oSqlCommand = IIf(IsDBNull(oRowDependingControl.Item("SQL_UEBERPRUEFUNG")), "", oRowDependingControl.Item("SQL_UEBERPRUEFUNG")) - oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) _dependingControl_in_action = True Dim oDTDEPENDING_RESULT As DataTable = ClassDatabase.Return_Datatable(oSqlCommand) Try @@ -1576,7 +1543,7 @@ Public Class frmValidator If _dependingColumn_in_action = True Then Exit Sub End If - oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) _dependingColumn_in_action = True Try @@ -1620,7 +1587,7 @@ Public Class frmValidator _Step = 2 Dim sql_Statement = IIf(IsDBNull(ROW.Item("SQL_UEBERPRUEFUNG")), "", ROW.Item("SQL_UEBERPRUEFUNG")) - sql_Statement = clsPatterns.ReplaceAllValues(sql_Statement, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + sql_Statement = clsPatterns.ReplaceAllValues(sql_Statement, pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) _Step = 3 '' Regulären Ausdruck zum Auslesen der Indexe definieren @@ -1808,7 +1775,6 @@ Public Class frmValidator WMDocPathWindows = "" CURRENT_DOC_PATH = "" - CURRENT_WMFILE = Nothing If newGUID > 0 Then LOGGER.Debug("newGUID: " & newGUID.ToString) @@ -1829,34 +1795,6 @@ Public Class frmValidator - Private Function CreateWMObject() As String - LOGGER.Debug($"in GetWMDocFileString...'") - Dim oWMRELPATH As String = BASEDATA_DT_CONFIG.Rows.Item(0).Item("WM_REL_PATH") - If oWMRELPATH.EndsWith("\") = False Then - oWMRELPATH = oWMRELPATH & "\" - End If - Dim oWMOwnPath = WMDocPathWindows.Replace(oWMRELPATH, "") - LOGGER.Debug($"oWMOwnPath: {oWMOwnPath}") - Try - Dim oNormalizedPath = WINDREAM.NormalizePath(oWMOwnPath) - CURRENT_WMFILE = WINDREAM.oSession.GetWMObjectByPath(WMEntity.WMEntityDocument, oNormalizedPath) - WMDocFileString = oNormalizedPath - LOGGER.Debug("WMDocFileString: " & WMDocFileString) - Return True - Catch ex As Exception - Dim _err1 As Boolean = False - LOGGER.Error(ex) - allgFunk.Insert_LogEntry($"ERROR CreateWMObject >> {ex.Message}") - LOGGER.Info("Unexpected error creating WMObject(1) in GetWMDocFileString: " & ex.Message) - LOGGER.Info("Error Number: " & Err.Number.ToString) - errormessage = $"Could not create a WMObject(1) for [{oWMOwnPath}]!" - frmError.ShowDialog() - WMDocFileString = "" - Return False - - End Try - - End Function Private Function GetWMDocPathWindows(_CheckStandard As Integer) Try Dim oResult As String @@ -1864,13 +1802,15 @@ Public Class frmValidator oResult = ClassDatabase.Execute_Scalar(oSQL, CONNECTION_STRING) LOGGER.Debug($"Checking file 0 [{oResult}] exists?...") If File.Exists(oResult) = False Then - 'If USER_USERNAME = "SchreiberM" Then - ' oResult = "\\dd-gan.local.digitaldata.works\DD-DFSR01\UserObjects\UserFiles\schreiberm\Desktop\AANG-3302-swbn.pdf" - 'ElseIf USER_USERNAME = "Administrator" Then - ' 'oResult = "C:\Users\Administrator.DD-GAN\Desktop\test.pdf" - ' oResult = "\\dd-gan.local.digitaldata.works\DD-DFSR01\UserObjects\UserFiles\schreiberm\Desktop\AANG-3302-swbn.pdf" - 'Else - LOGGER.Debug($"GetWMDocPathWindows returned false - trying with standard again...") + If IDB_ACTIVE = True And USER_USERNAME.ToLower = "schreiberm" Then + oResult = "Q:\DigitalData - Geschäftsprozesse\BusinessApplication01\File\Ausgangsangebot\Gestempelt\GAANG-3471-aveco.pdf" + 'If USER_USERNAME = "SchreiberM" Then + ' oResult = "\\dd-gan.local.digitaldata.works\DD-DFSR01\UserObjects\UserFiles\schreiberm\Desktop\AANG-3302-swbn.pdf" + 'ElseIf USER_USERNAME = "Administrator" Then + ' 'oResult = "C:\Users\Administrator.DD-GAN\Desktop\test.pdf" + ' oResult = "\\dd-gan.local.digitaldata.works\DD-DFSR01\UserObjects\UserFiles\schreiberm\Desktop\AANG-3302-swbn.pdf" + Else + LOGGER.Debug($"GetWMDocPathWindows returned false - trying with standard again...") oSQL = $"SELECT [dbo].[FNPM_GET_FILEPATH] ({CURRENT_DOC_GUID},1)" oResult = ClassDatabase.Execute_Scalar(oSQL, CONNECTION_STRING) LOGGER.Debug($"Checking file 1[{oResult}] exists?...") @@ -1878,9 +1818,9 @@ Public Class frmValidator LOGGER.Warn($"File {oResult} not existing!") Return False End If - 'End If - End If - WMDocPathWindows = oResult + End If + End If + WMDocPathWindows = oResult OLD_Document_Path = WMDocPathWindows CURRENT_DOC_PATH = WMDocPathWindows LOGGER.Debug($"CURRENT_DOC_PATH: {CURRENT_DOC_PATH}") @@ -1907,7 +1847,7 @@ Public Class frmValidator Sub Load_Next_Document(first As Boolean) - CURRENT_WMFILE = Nothing + activate_controls(False) oErrorMessage = "" WMDocPathWindows = "" @@ -1921,7 +1861,6 @@ Public Class frmValidator Try If first = True Then LOGGER.Debug("First Document") - CURRENT_WMFILE = Nothing Else LOGGER.Debug("Following Document ") docCounter += 1 @@ -1950,17 +1889,11 @@ Public Class frmValidator MsgBox("Could not access the file! Check the log!", MsgBoxStyle.Critical, ADDITIONAL_TITLE) Exit Sub End If - If IDB_ACTIVE = False Then - If CreateWMObject() = False Then - Exit Sub - End If - Else - Load_IDB_DOC_DATA() + Load_IDB_DOC_DATA() - If IDB_DT_DOC_DATA.Rows.Count = 1 Then + If IDB_DT_DOC_DATA.Rows.Count = 1 Then LOGGER.Debug("Got one IDB DocData Result") End If - End If 'Beschriftung des Navigators 'lblNavigator_anzDok.Text = position & " of " & Anzahl_ValDoks & " files" If WMDocPathWindows <> String.Empty Then @@ -1975,13 +1908,6 @@ Public Class frmValidator bsiDocID.Caption = "Document-ID: " & CURRENT_DOC_ID & " - GUID: " & CURRENT_DOC_GUID LOGGER.Debug("AllDocInfo created...") - If IDB_ACTIVE = False Then - oErrorMessage = Windream_get_Doc_info() - Else - ' oErrorMessage = IDB_GetDocInfo() - End If - - If oErrorMessage = "" Then @@ -2018,21 +1944,10 @@ Public Class frmValidator 'Nun loggen das das Profil geladen wurde If PROFIL_LOGINDEX <> "" Then Dim oLogString = $"PMProfile loaded: [{CURRENT_ProfilGUID}-{CURRENT_ProfilName}]{PMDelimiter}{USER_USERNAME}{PMDelimiter}{Now.ToString}" - If IDB_ACTIVE = False Then - WMIndexVectofield(oLogString, PROFIL_LOGINDEX) - Else - oLogString = $"PMProfile loaded: [{CURRENT_ProfilGUID}-{CURRENT_ProfilName}]" - IDBData.SetVariableValue(PROFIL_LOGINDEX, oLogString) - 'LOGGER.Debug("Profilname erfolgreich in Vektorfeld LOG geschrieben") - 'Else - ' errormessage = "Fehler beim finalen Indexieren:" & vbNewLine & idxerr_message - ' My.Settings.Save() - ' frmError.ShowDialog() - ' _error = True - + oLogString = $"PMProfile loaded: [{CURRENT_ProfilGUID}-{CURRENT_ProfilName}]" + IDBData.SetVariableValue(PROFIL_LOGINDEX, oLogString) End If - End If activate_controls(True) Else errormessage = oErrorMessage @@ -2069,222 +1984,26 @@ Public Class frmValidator End Try End Sub Sub load_viewer() - DocumentViewerValidator.LoadFile(WMDocPathWindows) - DocumentViewerValidator.RightOnlyView(USER_RIGHT_VIEW_ONLY) - If USER_RIGHT_VIEW_ONLY = True Then - RibbonPageFile.Visible = False - Else - RibbonPageFile.Visible = True - End If - SplitContainer1.Panel2Collapsed = False - - End Sub - Sub activate_controls(status As Boolean) - Me.pnldesigner.Enabled = status - Me.btnSave.Enabled = status - End Sub - Private Function Windream_get_Doc_info() Try - - 'If CultureInfo.CurrentUICulture.ThreeLetterISOLanguageName = "eng" Then - ' My.Settings.vIDX_DMS_ERSTELLT = "DMS Created" - ' dmsCreated = "DMS Created" - ' My.Settings.vIDX_DMS_ERSTELLT_Zeit = "DMS Created Time" - ' dmscreatedtime = "DMS Created Time" - ' My.Settings.Save() - 'Else - - 'End If - Try - LOGGER.Debug($"GetVariableValue [{INDEX_DMS_ERSTELLT}]...") - CURRENT_DOC_CREATION_DATE = CURRENT_WMFILE.GetVariableValue(INDEX_DMS_ERSTELLT) - Catch ex As Exception - LOGGER.Error(ex) - If ex.Message.Contains("Variable: " & INDEX_DMS_ERSTELLT & " not found!") Then - LOGGER.Info("1. Ausnahme in Windream_get_Doc_info: Variable: " & INDEX_DMS_ERSTELLT & " not found", True) - LOGGER.Info("1. Ausnahme-Fehler: " & ex.Message) - If INDEX_DMS_ERSTELLT = "DMS Created" Then - - INDEX_DMS_ERSTELLT = "DMS erstellt" - INDEX_DMS_ERSTELLT_ZEIT = "DMS erstellt (Zeit)" - CONFIG.Config.IndexDmsErstellt = INDEX_DMS_ERSTELLT - CONFIG.Config.IndexDmsErstelltZeit = INDEX_DMS_ERSTELLT_ZEIT - CONFIG.Save() - - 'SaveMySettingsValue("IDX_DMS_ERSTELLT_ZEIT", "DMS erstellt (Zeit)") - 'SaveMySettingsValue("IDX_DMS_ERSTELLT", "DMS erstellt") - Else - INDEX_DMS_ERSTELLT = "DMS Created" - INDEX_DMS_ERSTELLT_ZEIT = "DMS Created Time" - CONFIG.Config.IndexDmsErstellt = INDEX_DMS_ERSTELLT - CONFIG.Config.IndexDmsErstelltZeit = INDEX_DMS_ERSTELLT_ZEIT - 'SaveMySettingsValue("IDX_DMS_ERSTELLT", "DMS Created") - 'SaveMySettingsValue("IDX_DMS_ERSTELLT_ZEIT", "DMS erstellt Time") - End If - - CURRENT_DOC_CREATION_DATE = CURRENT_WMFILE.GetVariableValue(INDEX_DMS_ERSTELLT) - Else - LOGGER.Info("error in Windream_get_Doc_info 1: " & ex.Message) - Return "error in Windream_get_Doc_info 1: " & ex.Message - End If - End Try - - LOGGER.Debug("DMS-Erstellt aus WD: " & CURRENT_DOC_CREATION_DATE) - - Try - LOGGER.Debug($"GetVariableValue [{INDEX_DMS_ERSTELLT_ZEIT}]...") - CURRENT_DOC_CREATION_TIME = CURRENT_WMFILE.GetVariableValue(INDEX_DMS_ERSTELLT_ZEIT) - Catch ex As Exception - - If ex.Message.Contains("Variable: " & INDEX_DMS_ERSTELLT_ZEIT & " not found!") Then - LOGGER.Info("1. Ausnahme in Windream_get_Doc_info: Variable: " & INDEX_DMS_ERSTELLT_ZEIT & " not found", True) - If INDEX_DMS_ERSTELLT = "DMS Created" Then - - INDEX_DMS_ERSTELLT = "DMS erstellt" - INDEX_DMS_ERSTELLT_ZEIT = "DMS erstellt (Zeit)" - - CONFIG.Config.IndexDmsErstellt = INDEX_DMS_ERSTELLT - CONFIG.Config.IndexDmsErstelltZeit = INDEX_DMS_ERSTELLT_ZEIT - CONFIG.Save() - - 'SaveMySettingsValue("IDX_DMS_ERSTELLT_ZEIT", "DMS erstellt (Zeit)") - Else - INDEX_DMS_ERSTELLT = "DMS Created" - INDEX_DMS_ERSTELLT_ZEIT = "DMS Created Time" - - CONFIG.Config.IndexDmsErstellt = INDEX_DMS_ERSTELLT - CONFIG.Config.IndexDmsErstelltZeit = INDEX_DMS_ERSTELLT_ZEIT - CONFIG.Save() - - 'SaveMySettingsValue("IDX_DMS_ERSTELLT", "DMS Created") - 'SaveMySettingsValue("IDX_DMS_ERSTELLT_ZEIT", "DMS Created Time") - End If - LOGGER.Debug($"GetVariableValue (2) [{INDEX_DMS_ERSTELLT_ZEIT}]...") - CURRENT_DOC_CREATION_TIME = CURRENT_WMFILE.GetVariableValue(INDEX_DMS_ERSTELLT_ZEIT) - Else - LOGGER.Error(ex) - LOGGER.Info("error in Windream_get_Doc_info 3: " & ex.Message) - Return "error in Windream_get_Doc_info 3: " & ex.Message - End If - End Try - - LOGGER.Debug("DMSErstelltZeit aus WD: " & CURRENT_DOC_CREATION_TIME) - - If CURRENT_DOC_CREATION_TIME.Length > 11 Then - CURRENT_DOC_CREATION_DATE = CURRENT_DOC_CREATION_DATE & " " & CURRENT_DOC_CREATION_TIME.Substring(10) + DocumentViewerValidator.LoadFile(WMDocPathWindows) + DocumentViewerValidator.RightOnlyView(USER_RIGHT_VIEW_ONLY) + If USER_RIGHT_VIEW_ONLY = True Then + RibbonPageFile.Visible = False Else - CURRENT_DOC_CREATION_DATE = CURRENT_DOC_CREATION_DATE & " " & CURRENT_DOC_CREATION_TIME + RibbonPageFile.Visible = True End If - - Return "" + SplitContainer1.Panel2Collapsed = False Catch ex As Exception LOGGER.Error(ex) - LOGGER.Info("error in Windream_get_Doc_info (GENERELL): " & ex.Message) - Return "error in Windream_get_Doc_info (GENERELL): " & ex.Message + allgFunk.Insert_LogEntry($"ERROR load_viewer >> {ex.Message}") End Try - End Function - Private Function Return_VektorArray(ByVal oDocument As WMObject, vktIndexName As String, NIIndexe As Object, CheckDuplikat As Boolean, vType As Object) - Dim ValueArray() - - ' Try - Dim missing As Boolean = False - Dim Anzahl As Integer = 0 - - '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) = ConvertVectorType(vType, value) - 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) = ConvertVectorType(vType, NewValue) - Anzahl += 1 - - End If - Next - Else - - '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) = ConvertVectorType(vType, WDValue) - 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 - 'Das Array anpassen - ReDim Preserve ValueArray(Anzahl) - 'Den Wert im Array speichern - ValueArray(Anzahl) = ConvertVectorType(vType, NewValue) - Anzahl += 1 - Else - End If - End If - Next - End If - End If - Else - '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) = ConvertVectorType(vType, NewValue) - Anzahl += 1 - Else - End If - Else 'Dererste Wert, also hinzufügen - 'Das Array anpassen - ReDim Preserve ValueArray(Anzahl) - 'Den Wert im Array speichern - ValueArray(Anzahl) = ConvertVectorType(vType, NewValue) - Anzahl += 1 - - End If - - Else - 'Das Array anpassen - ReDim Preserve ValueArray(Anzahl) - 'Den Wert im Array speichern - ValueArray(Anzahl) = ConvertVectorType(vType, NewValue) - Anzahl += 1 - End If - End If - Next - End If - - Return ValueArray - 'Catch ex As Exception - ' Return ValueArray - 'End Try - - - End Function + End Sub + Sub activate_controls(status As Boolean) + Me.pnldesigner.Enabled = status + Me.btnSave.Enabled = status + End Sub Public Function ConvertVectorType(vType As Object, value As String) Select Case vType Case 36865 ' 36865 @@ -2320,60 +2039,10 @@ Public Class frmValidator End Select End Function - Private Function ReturnVektor_IndexValue(VKTBezeichner As String) - Try - Dim value - Dim name = VKTBezeichner.Replace("[%VKT", "") - Dim Sort_Arr() As String - Dim i As Integer = 0 - 'Jetzt im Vektorfeld des Profils nachsehen ob der WErt bereits vorhanden ist - Dim wertWD = CURRENT_WMFILE.GetVariableValue(PROFIL_VEKTORINDEX) - If wertWD Is Nothing = False Then - 'Es wird gegen ein Vektorfeld nachindexiert - If wertWD.GetType.ToString.Contains("System.Object") Then - 'es handelt sich um ein Vektorfeld - Zuweisen der Indexwerte des Vektorfeldes zu Array - For Each obj As Object In wertWD - If obj Is Nothing = False Then - ReDim Preserve Sort_Arr(i) - Sort_Arr(i) = obj.ToString() - i += 1 - End If - Next - 'Das Ergebnis-Array nun Rückwärts sortieren, um die letzte Änderung zu finden - For Each _string As Object In Sort_Arr.Reverse() - Dim DDPM_String As String = _string.ToString() - ' - Dim VektorArray() = Split(DDPM_String, PMDelimiter) - If VektorArray(1).ToString.ToLower = name.ToLower Then - value = VektorArray(2) - Exit For - End If - - Next - - End If - End If - If value Is Nothing Then value = "" - Return value - Catch ex As Exception - LOGGER.Error(ex) - MsgBox("error in ReturnVektor_IndexValue: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, ADDITIONAL_TITLE) - LOGGER.Info("error in ReturnVektor_IndexValue: " & ex.Message) - Return "" - End Try - - - - - End Function Private Function GetVariableValuefromSource(oSourceIndexName As String, Optional oIDBTyp As Integer = 0, Optional FromIDB As Boolean = False) As Object Try Dim oValuefromSource - If IDB_ACTIVE = False Then - oValuefromSource = CURRENT_WMFILE.GetVariableValue(oSourceIndexName) - Else - oValuefromSource = IDBData.GetVariableValue(oSourceIndexName, oIDBTyp, FromIDB) - End If + oValuefromSource = IDBData.GetVariableValue(oSourceIndexName, oIDBTyp, FromIDB) Return oValuefromSource Catch ex As Exception LOGGER.Error(ex) @@ -2438,35 +2107,27 @@ Public Class frmValidator LOGGER.Debug("Indexwert soll nicht geladen werden.") Exit Select End If + oValueFromSource = GetVariableValuefromSource(oSourceIndexName, oIDBTyp, oIDBOverride) - - If oSourceIndexName.StartsWith("[%VKT") And PROFIL_VEKTORINDEX <> "" Then - oValueFromSource = ReturnVektor_IndexValue(oSourceIndexName) + If oValueFromSource Is Nothing Then + oValueFromSource = "" Else - - oValueFromSource = GetVariableValuefromSource(oSourceIndexName, oIDBTyp, oIDBOverride) - - If oValueFromSource Is Nothing Then - oValueFromSource = "" - Else - If oValueFromSource.ToString = "System.Object[]" Then - LOGGER.Debug("TextBox with VektorField: " & oSourceIndexName) - Try - LOGGER.Debug($"Length of Vektorarray: {oValueFromSource.length}") - Catch ex As Exception - LOGGER.Info($"Error in gettin the lenth of vektorfield {oSourceIndexName} - {ex.Message}") - End Try - If oValueFromSource.length = 1 Then - oValueFromSource = oValueFromSource(0) - Else ' - LOGGER.Info(" >> Vectorfield " & oSourceIndexName & "' contains more then one value - First value will be used") - oValueFromSource = oValueFromSource(0) - End If - LOGGER.Debug($"wertWD has been saved...") - + If oValueFromSource.ToString = "System.Object[]" Then + LOGGER.Debug("TextBox with VektorField: " & oSourceIndexName) + Try + LOGGER.Debug($"Length of Vektorarray: {oValueFromSource.length}") + Catch ex As Exception + LOGGER.Info($"Error in gettin the lenth of vektorfield {oSourceIndexName} - {ex.Message}") + End Try + If oValueFromSource.length = 1 Then + oValueFromSource = oValueFromSource(0) + Else ' + LOGGER.Info(" >> Vectorfield " & oSourceIndexName & "' contains more then one value - First value will be used") + oValueFromSource = oValueFromSource(0) End If - End If + LOGGER.Debug($"wertWD has been saved...") + End If End If Try oControl.Text = NotNull(oValueFromSource, oDefaultValue) @@ -2476,8 +2137,6 @@ Public Class frmValidator oControl.Text = "" _CURRENT_INDEX_ARRAY(oCount, 1) = "" End Try - - End If Catch ex As Exception LOGGER.Error(ex) @@ -2510,14 +2169,9 @@ Public Class frmValidator Exit Select End If - If oSourceIndexName.StartsWith("[%VKT") And PROFIL_VEKTORINDEX <> "" Then - oValueFromSource = ReturnVektor_IndexValue(oSourceIndexName) - Else - oValueFromSource = GetVariableValuefromSource(oSourceIndexName, oIDBTyp, oIDBOverride) - End If + oValueFromSource = GetVariableValuefromSource(oSourceIndexName, oIDBTyp, oIDBOverride) If oValueFromSource Is Nothing Then - LOGGER.Debug($"oMyComboBox {oMyCombobox.Name} - Indexvalue from index {oSourceIndexName}: Nothing") If oDefaultValue = String.Empty Then LOGGER.Debug($"oMyComboBox {oMyCombobox.Name}-defaultValue wurde nicht gefunden") @@ -2772,22 +2426,16 @@ Public Class frmValidator LOGGER.Debug("Loading Bool-Value from Windream.") - If oSourceIndexName.StartsWith("[%VKT") And PROFIL_VEKTORINDEX <> "" Then - oValueFromSource = ReturnVektor_IndexValue(oSourceIndexName) - Else - Try - LOGGER.Debug($"..Now GetVariableValue({oSourceIndexName})...") - oValueFromSource = GetVariableValuefromSource(oSourceIndexName, oIDBTyp, oIDBOverride) - Catch ex As Exception - LOGGER.Warn($"Could not get the windreamValue for CheckboxIndex: {oSourceIndexName} [{ex.Message}]") - End Try - - End If + Try + LOGGER.Debug($"..Now GetVariableValue({oSourceIndexName})...") + oValueFromSource = GetVariableValuefromSource(oSourceIndexName, oIDBTyp, oIDBOverride) + Catch ex As Exception + LOGGER.Warn($"Could not get the windreamValue for CheckboxIndex: {oSourceIndexName} [{ex.Message}]") + End Try If oValueFromSource Is Nothing Then LOGGER.Info(">> Zurückgegebener Wert des Wertes für Checkbox mit Indexname '" & oIndexName & "' ist nothing. Check defaultvalue") - chk.Checked = False Else LOGGER.Debug("Index value loaded: " & oValueFromSource.ToString) @@ -2897,17 +2545,8 @@ Public Class frmValidator Exit For End If If oSourceIndexName Is Nothing = False Then - Try - If oSourceIndexName.StartsWith("[%VKT") And PROFIL_VEKTORINDEX <> "" Then - LOGGER.Debug("DATE über PM-Vektor holen") - - oValueFromSource = ReturnVektor_IndexValue(oSourceIndexName) - LOGGER.Info(">> DTP is """) - Else - oValueFromSource = GetVariableValuefromSource(oSourceIndexName, oIDBTyp, oIDBOverride) - - End If + oValueFromSource = GetVariableValuefromSource(oSourceIndexName, oIDBTyp, oIDBOverride) If oValueFromSource Is Nothing Then oValueFromSource = "" Dim tempdate As Date = CDate("01.01.0001 00:00:00") @@ -2954,7 +2593,7 @@ Public Class frmValidator Dim oDEPENDING_GUID = oRow.Item("CONTROL_ID") Dim oDEPENDING_COLUMN = oRow.Item("SPALTENNAME") Dim oSqlCommand = oRow.Item("SQL_COMMAND") - oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) Try @@ -3085,7 +2724,7 @@ Public Class frmValidator Private Function btnFinish_continue() Try Dim oSQL = PROFIL_FINISH_SQL - oSQL = clsPatterns.ReplaceAllValues(oSQL, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + oSQL = clsPatterns.ReplaceAllValues(oSQL, pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) Dim oDT_ACTIONS As DataTable = ClassDatabase.Return_Datatable(oSQL) If IsNothing(oDT_ACTIONS) Then @@ -3170,14 +2809,11 @@ Public Class frmValidator For Each oFinalIndexRow As DataRow In oDTFinalIndexes.Rows Dim oValue As String = oFinalIndexRow.Item("VALUE").ToString Dim oIndexType = 0 - If IDB_ACTIVE = False Then - oIndexType = WINDREAM.GetTypeOfIndex(oFinalIndexRow.Item("INDEXNAME")) - End If If oValue.ToUpper = "SQL-Command".ToUpper Then '###### Indexierung mit variablen SQL ### LOGGER.Debug("Indexing wih dynamic sql...") Dim oSQLCommand = oFinalIndexRow.Item("SQL_COMMAND") - oSQLCommand = clsPatterns.ReplaceAllValues(oSQLCommand, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + oSQLCommand = clsPatterns.ReplaceAllValues(oSQLCommand, pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) If IsNothing(oSQLCommand) Then errormessage = "Error while replacing Values in final indexing - Check the log" My.Settings.Save() @@ -3216,39 +2852,14 @@ Public Class frmValidator oResult(0) = oValue LOGGER.Debug($"oIndexType {oIndexType.ToString}") - If oIndexType > 4000 And oIndexType < 5000 Then - 'If dr.Item("INDEXNAME").ToString.StartsWith("[%VKT") Then - ' Dim PM_String = Return_PM_VEKTOR(value, dr.Item("INDEXNAME")) - 'Hier muss nun separat as Vektorfeld indexiert werden - If WMIndexVectofield(oValue, oFinalIndexRow.Item("INDEXNAME"), oFinalIndexRow.Item("PREVENT_DUPLICATES"), oFinalIndexRow.Item("ALLOW_NEW_VALUES")) = False Then - LOGGER.Debug("Final Vektorindex '" & oFinalIndexRow.Item("INDEXNAME").ToString & "' has beens et suxxessfully!") - Else - errormessage = "Error in final indexing:" & vbNewLine & idxerr_message - My.Settings.Save() - frmError.ShowDialog() - oErrorOcurred = True - ItemWorked = False - End If - Else - LOGGER.Debug("Now the final indexing...") + + LOGGER.Debug("Now the final indexing...") Dim oFIResult As Boolean = False - If IDB_ACTIVE = False Then - If Indexiere_File(CURRENT_WMFILE, oFinalIndexRow.Item("INDEXNAME"), oResult) = True Then - oFIResult = True - LOGGER.Debug("FINALER INDEX '" & oFinalIndexRow.Item("INDEXNAME") & "' WURDE ERFOLGREICH GESETZT") - - 'Nun das Logging - If PROFIL_LOGINDEX <> "" Then - Dim logstr = Return_LOGString(oValue, "DDFINALINDEX", oFinalIndexRow.Item("INDEXNAME")) - WMIndexVectofield(logstr, PROFIL_LOGINDEX) - End If - End If - Else - If IDBData.SetVariableValue(oFinalIndexRow.Item("INDEXNAME"), oValue) = True Then - oFIResult = True - LOGGER.Debug("Final index IDB '" & oFinalIndexRow.Item("INDEXNAME") & "' was updated.") - End If + If IDBData.SetVariableValue(oFinalIndexRow.Item("INDEXNAME"), oValue) = True Then + oFIResult = True + LOGGER.Debug("Final index IDB '" & oFinalIndexRow.Item("INDEXNAME") & "' was updated.") End If + If oFIResult = False Then errormessage = "Error in final indexing:" & vbNewLine & idxerr_message My.Settings.Save() @@ -3257,7 +2868,6 @@ Public Class frmValidator ItemWorked = False End If - End If If oErrorOcurred = True Then ItemWorked = False Exit For @@ -3407,7 +3017,7 @@ Public Class frmValidator 'wenn Move2Folder aktiviert wurde If Move2Folder <> "" Then - idxerr_message = allgFunk.Move2Folder(WMDocPathWindows, Move2Folder, CURRENT_ProfilGUID, _windream) + 'idxerr_message = allgFunk.Move2Folder(WMDocPathWindows, Move2Folder, CURRENT_ProfilGUID, _windream) If idxerr_message <> "" Then errormessage = "Fehler bei Move2Folder:" & vbNewLine & idxerr_message My.Settings.Save() @@ -3515,44 +3125,7 @@ Public Class frmValidator Return PM_String End Function - Private Function WMIndexVectofield(input As String, NameVKTIndex As String, Optional PreventDuplicates As Boolean = False, Optional AllowAddNewValues As Boolean = True, Optional IndexBehaviour As String = "Add") - Dim oOldValue As Object = CURRENT_WMFILE.GetVariableValue(NameVKTIndex) - Dim oValueList As New List(Of Object) - Dim oNewValue As Object() - Dim oMissing As Boolean = False - - If oOldValue IsNot Nothing AndAlso TypeOf oOldValue Is Object Then - - ' If new values are allowed, add the old values first - If AllowAddNewValues Then - oValueList = DirectCast(oOldValue, Object()).ToList() - End If - - ' Add the new value - oValueList.Add(input) - Else - ' Just add input as the only value - oValueList.Add(input) - End If - If PreventDuplicates Then - oValueList = oValueList. - Distinct(). - ToList() - End If - - oNewValue = oValueList.ToArray() - - If oNewValue.Length > 0 Then - 'Jetzt die Datei indexieren - If Indexiere_File(CURRENT_WMFILE, NameVKTIndex, oNewValue) = False Then - oMissing = True - oErrorMessage = "Error while indexing Vektorfeld '" & NameVKTIndex & "' - ERROR: " & idxerr_message - End If - End If - - Return oMissing - End Function Function DT_FOR_ARRAY(pArr As String()) As DataTable Dim odt As New DataTable odt.Columns.Add("ID", GetType(Integer)) @@ -3620,9 +3193,8 @@ Public Class frmValidator Dim Zeilen As Integer = lookup.SelectedValues.Count 'Wenn kein Wert ausgewählt wurde und der Index aber gesetzt werden muss - If Zeilen > 0 Then - Dim ZeilenGrid As Integer = 0 - Dim myVektorArr As String() + Dim ZeilenGrid As Integer = 0 + Dim myVektorArr As String() 'Jeden Werte des Datagridviews durchlaufen For Each value As String In lookup.SelectedValues If value Is Nothing = False Then @@ -3634,34 +3206,14 @@ Public Class frmValidator End If Next - If IDB_ACTIVE = False Then - - If Indexiere_File(CURRENT_WMFILE, oIndexName, myVektorArr) = False Then - oMissing = True - oErrorMessage = "Error while indexing von LookupGrid - ERROR: " & idxerr_message - Exit For - End If - Else - Dim oMyDT = DT_FOR_ARRAY(myVektorArr) + Dim oMyDT = DT_FOR_ARRAY(myVektorArr) - If IDBData.SetVariableValue(oIndexName, oMyDT, oOVERWRITE_DATA, oIDBTyp) = False Then + If IDBData.SetVariableValue(oIndexName, oMyDT, oOVERWRITE_DATA, oIDBTyp) = False Then oMissing = True oErrorMessage = "Error while indexing IDB-Object LookupGrid" Exit For End If - End If - Else - Dim oValues As New List(Of Object) From {String.Empty} - If IDB_ACTIVE = False Then - If Indexiere_File(CURRENT_WMFILE, oIndexName, oValues.ToArray) = False Then - oMissing = True - oErrorMessage = "Error while indexing von LookupGrid - ERROR: " & idxerr_message - Exit For - End If - End If - - End If Else @@ -3675,97 +3227,59 @@ Public Class frmValidator End If 'den aktuellen Wert in windream auslesen Dim oValueFromObject - - If oIndexName.StartsWith("[%VKT") Then - oValueFromObject = ReturnVektor_IndexValue(oIndexName) - Else - oValueFromObject = GetVariableValuefromSource(oIndexName, oIDBTyp) - Dim oValueIsIndifferent As Boolean = False - If Not IsNothing(oValueFromObject) Then - - If IDB_ACTIVE = False Then - If oValueFromObject.ToString = "System.Object[]" Then - If oValueFromObject.Length = 1 Then - oValueFromObject = oValueFromObject(0) - Else ' - LOGGER.Info(" >> Vectorfield " & oIndexName & "' contains more then one value - First value will be used") - oValueFromObject = oValueFromObject(0) - End If + oValueFromObject = GetVariableValuefromSource(oIndexName, oIDBTyp) + Dim oValueIsIndifferent As Boolean = False + If Not IsNothing(oValueFromObject) Then + If IDB_ACTIVE = False Then + If oValueFromObject.ToString = "System.Object[]" Then + If oValueFromObject.Length = 1 Then + oValueFromObject = oValueFromObject(0) + Else ' + LOGGER.Info(" >> Vectorfield " & oIndexName & "' contains more then one value - First value will be used") + oValueFromObject = oValueFromObject(0) End If End If - Else - oValueFromObject = "" End If - - If IsNothing(oValueFromObject) Then - LOGGER.Debug($"CheckUpdateIndex.LookUpGrid: oValueFromObject is NOTHING!") + Else + oValueFromObject = "" + End If + If IsNothing(oValueFromObject) Then + LOGGER.Debug($"CheckUpdateIndex.LookUpGrid: oValueFromObject is NOTHING!") + oValueIsIndifferent = True + End If + If oValueIsIndifferent = False Then + If IsDBNull(oValueFromObject) Then + LOGGER.Debug($"CheckUpdateIndex.LookUpGrid: oValueFromObject is DBNULL!") oValueIsIndifferent = True End If - If oValueIsIndifferent = False Then - If IsDBNull(oValueFromObject) Then - LOGGER.Debug($"CheckUpdateIndex.LookUpGrid: oValueFromObject is DBNULL!") - oValueIsIndifferent = True - End If - End If - Dim oValueSourceIsDifferent As Boolean = False - If oValueIsIndifferent = False Then - LOGGER.Debug($"CheckUpdateIndex.LookUpGrid: oValueFromObject is [{oValueFromObject}]") - Try - If oValueFromObject <> oMyInput Then - oValueSourceIsDifferent = True - LOGGER.Debug($"CheckUpdateIndex.LookUpGrid: There is a difference between oValueFromObject and [{oValueFromObject}]") - End If - Catch ex As Exception + End If + Dim oValueSourceIsDifferent As Boolean = False + If oValueIsIndifferent = False Then + LOGGER.Debug($"CheckUpdateIndex.LookUpGrid: oValueFromObject is [{oValueFromObject}]") + Try + If oValueFromObject <> oMyInput Then oValueSourceIsDifferent = True - LOGGER.Debug($"oValueFromObject <> oMyInput not possible as one object might be a multiple row object") - End Try + LOGGER.Debug($"CheckUpdateIndex.LookUpGrid: There is a difference between oValueFromObject and [{oValueFromObject}]") + End If + Catch ex As Exception + oValueSourceIsDifferent = True + LOGGER.Debug($"oValueFromObject <> oMyInput not possible as one object might be a multiple row object") + End Try - Else + Else - End If + End If 'wenn Wert in Windream <> der Eingabe darf indexiert werden 'IsNothing(oValueFromObject) Or oValueFromObject <> oMyInput If (oValueIsIndifferent = True Or oValueSourceIsDifferent = True) Then - 'Wenn der Wert in ein Vektorfeld geschrieben wird - If oIndexName.StartsWith("[%VKT") Then - oMyInput = Return_PM_VEKTOR(oMyInput, oIndexName) - 'Hier muss nun separat as Vektorfeld indexiert werden - If WMIndexVectofield(oMyInput, PROFIL_VEKTORINDEX) = True Then - oMissing = True - oErrorMessage = "Error while indexing Textbox as VEKTOR - ERROR: " & idxerr_message - Exit For - End If - Else - If IDB_ACTIVE = False Then - Dim result() As String - ReDim Preserve result(0) - result(0) = oMyInput - If Indexiere_File(CURRENT_WMFILE, oIndexName, result) = False Then - oMissing = True - oErrorMessage = "Error while indexing Textbox - ERROR: " & idxerr_message - Exit For - End If - Else - If IDBData.SetVariableValue(oIndexName, oMyInput) = False Then - Exit For - End If - End If - If IDB_ACTIVE = False Then - If PROFIL_LOGINDEX <> "" Then - Dim oLogStr = Return_LOGString(oMyInput, oValueFromObject, oIndexName) - WMIndexVectofield(oLogStr, PROFIL_LOGINDEX) - 'Else - ' IDBData.SetVariableValue(PROFIL_LOGINDEX, oLogStr) - End If - End If - 'Nun das Logging - - + If IDBData.SetVariableValue(oIndexName, oMyInput) = False Then + Exit For End If + End If + End If - End If End If Catch ex As Exception @@ -3802,24 +3316,20 @@ Public Class frmValidator 'den aktuellen Wert in windream auslesen Dim oSourceValue = GetVariableValuefromSource(oIndexName, oIDBTyp) - - If oIndexName.StartsWith("[%VKT") Then - oSourceValue = ReturnVektor_IndexValue(oIndexName) - Else - 'wertWD = CURRENT_WMFILE.GetVariableValue(oIndexName) - If Not IsNothing(oSourceValue) Then - If oSourceValue.ToString = "System.Object[]" Then - If oSourceValue.Length = 1 Then - oSourceValue = oSourceValue(0) - Else ' - LOGGER.Info(" >> Vectorfield " & oIndexName & "' contains more then one value - First value will be used") - oSourceValue = oSourceValue(0) - End If + 'wertWD = Nothing.GetVariableValue(oIndexName) + If Not IsNothing(oSourceValue) Then + If oSourceValue.ToString = "System.Object[]" Then + If oSourceValue.Length = 1 Then + oSourceValue = oSourceValue(0) + Else ' + LOGGER.Info(" >> Vectorfield " & oIndexName & "' contains more then one value - First value will be used") + oSourceValue = oSourceValue(0) End If - Else - oSourceValue = "" End If + Else + oSourceValue = "" End If + Dim oSetValue As Boolean = False If IsDBNull(oSourceValue) Then oSetValue = True @@ -3836,45 +3346,11 @@ Public Class frmValidator End If 'wenn Wert in Windream <> der Eingabe darf indexiert werden If oSetValue = True Then - 'Wenn der Wert in ein Vektorfeld geschrieben wird - If oIndexName.StartsWith("[%VKT") Then - oMyInput = Return_PM_VEKTOR(oMyInput, oIndexName) - 'Hier muss nun separat as Vektorfeld indexiert werden - If WMIndexVectofield(oMyInput, PROFIL_VEKTORINDEX) = True Then - oMissing = True - oErrorMessage = "Error while indexing textbox as VEKTOR - ERROR: " & idxerr_message - Exit For - End If - Else - If IDB_ACTIVE = False Then - Dim result() As String - ReDim Preserve result(0) - result(0) = oMyInput - If Indexiere_File(CURRENT_WMFILE, oIndexName, result) = False Then - oMissing = True - oErrorMessage = "Error while indexing Textbox - ERROR: " & idxerr_message - Exit For - End If - Else - If IDBData.SetVariableValue(oIndexName, oMyInput) = False Then - Exit For - End If - End If - If IDB_ACTIVE = False Then - If PROFIL_LOGINDEX <> "" Then - Dim oMyLogString = Return_LOGString(oMyInput, oSourceValue, oIndexName) - WMIndexVectofield(oMyLogString, PROFIL_LOGINDEX) - 'Else - 'IDBData.SetVariableValue(PROFIL_LOGINDEX, oMyLogString) - - - End If - End If + If IDBData.SetVariableValue(oIndexName, oMyInput) = False Then + Exit For End If - - End If End If Catch ex As Exception @@ -3900,12 +3376,8 @@ Public Class frmValidator oMyInput = cmb.Text LOGGER.Debug($"inputvalue Combobox: {cmb.Text}") Dim oWMValue - 'den aktuellen Wert in windream auslesen - If oIndexName.StartsWith("[%VKT") Then - oWMValue = ReturnVektor_IndexValue(oIndexName) - Else - oWMValue = GetVariableValuefromSource(oIndexName, oIDBTyp) - End If + oWMValue = GetVariableValuefromSource(oIndexName, oIDBTyp) + LOGGER.Debug($"Got a WMValue...") If IsNothing(oWMValue) Then LOGGER.Debug($"WMValue is nothing...Value EmptyString will be used") @@ -3941,46 +3413,12 @@ Public Class frmValidator End Try 'wenn Wert in Windream <> der Eingabe darf indexiert werden If oitsadifference = True Then - LOGGER.Debug($"Index with ID{oControlId} will now be indexed...") - 'Wenn der Wert in ein Vektorfeld geschrieben wird - If oIndexName.StartsWith("[%VKT") Then - oMyInput = Return_PM_VEKTOR(oMyInput, oIndexName) - 'Hier muss nun separat as Vektorfeld indexiert werden - If WMIndexVectofield(oMyInput, PROFIL_VEKTORINDEX) = True Then - oMissing = True - oErrorMessage = "Error while indexing Combobox as VEKTOR - ERROR: " & idxerr_message - Exit For - End If - Else - If IDB_ACTIVE = False Then - Dim result() As String - ReDim Preserve result(0) - result(0) = oMyInput - If Indexiere_File(CURRENT_WMFILE, oIndexName, result) = False Then - cmb.DroppedDown = True - oMissing = True - oErrorMessage = "Error while indexing Combobox - ERROR: " & idxerr_message - Exit For - End If - Else - If IDBData.SetVariableValue(oIndexName, oMyInput) = False Then - cmb.DroppedDown = True - oMissing = True - oErrorMessage = "Error indexing combobox idb" - Exit For - End If - End If - If IDB_ACTIVE = False Then - If PROFIL_LOGINDEX <> "" Then - Dim ologStr = Return_LOGString(oMyInput, oWMValue, oIndexName) - WMIndexVectofield(ologStr, PROFIL_LOGINDEX) - 'Else - 'IDBData.SetVariableValue(PROFIL_LOGINDEX, ologStr) - End If - - End If - 'Nun das Logging - + LOGGER.Debug($"Index with ID [{oControlId}] will now be indexed...") + If IDBData.SetVariableValue(oIndexName, oMyInput) = False Then + cmb.DroppedDown = True + oMissing = True + oErrorMessage = "Error indexing combobox idb" + Exit For End If Else LOGGER.Debug($"oitsadifference = False...Index with ID{oControlId} will not be indexed...") @@ -4010,57 +3448,21 @@ Public Class frmValidator ElseIf dtp.Value.ToString <> "01.01.0001 00:00:00" Then oMyInput = CDate(dtp.Value) 'den aktuellen Wert in windream auslesen - ' Dim wertWD As String = CURRENT_WMFILE.GetVariableValue(_IDXName) + ' Dim wertWD As String = Nothing.GetVariableValue(_IDXName) Dim oObjectValue - If oIndexName.StartsWith("[%VKT") Then - oObjectValue = ReturnVektor_IndexValue(oIndexName) - Else - oObjectValue = GetVariableValuefromSource(oIndexName, oIDBTyp) - End If + oObjectValue = GetVariableValuefromSource(oIndexName, oIDBTyp) If IsNothing(oObjectValue) Then oObjectValue = CDate("01.01.1900") End If 'wenn Wert in Windream <> der Eingabe darf indexiert werden If oObjectValue <> oMyInput Then - 'Wenn der WErt in ein Vektorfeld geschrieben wird - If oIndexName.StartsWith("[%VKT") Then - 'Input = die String komponente as String - oMyInput = Return_PM_VEKTOR(oMyInput, oIndexName) - 'Hier muss nun separat as Vektorfeld indexiert werden - If WMIndexVectofield(oMyInput, PROFIL_VEKTORINDEX) = True Then - oMissing = True - oErrorMessage = "Error while indexing DatePicker as VEKTOR - ERROR: " & idxerr_message - Exit For - End If - Else - If IDB_ACTIVE = False Then - Dim result() - ReDim Preserve result(0) - result(0) = CDate(oMyInput) - If Indexiere_File(CURRENT_WMFILE, oIndexName, result) = False Then - oMissing = True - oErrorMessage = "Error while indexing DatePicker- ERROR: " & idxerr_message - Exit For - End If - Else - If IDBData.SetVariableValue(oIndexName, oObjectValue) = False Then - oMissing = True - oErrorMessage = "Error indexing datepicker idb" - Exit For - End If - End If - If IDB_ACTIVE = False Then - If PROFIL_LOGINDEX <> "" Then - Dim oLogstr = Return_LOGString(oMyInput, oObjectValue, oIndexName) - WMIndexVectofield(oLogstr, PROFIL_LOGINDEX) - 'Else - 'IDBData.SetVariableValue(PROFIL_LOGINDEX, oLogstr) - End If - End If + If IDBData.SetVariableValue(oIndexName, oObjectValue) = False Then + oMissing = True + oErrorMessage = "Error indexing datepicker idb" + Exit For End If Else LOGGER.Debug("Value WD ('" & oObjectValue.ToString & "') = Input-value ('" & oMyInput.ToString & "')") - End If Else LOGGER.Debug("DateValue is 01.01.0001 00:00:00") @@ -4078,21 +3480,12 @@ Public Class frmValidator 'den aktuellen Wert in windream auslesen Dim WertWD As String Dim oBoolValue As Boolean - If oIndexName.StartsWith("[%VKT") Then - WertWD = ReturnVektor_IndexValue(oIndexName) - If WertWD = "" Then - oBoolValue = False - Else - oBoolValue = CBool(WertWD) - End If + Dim _Value + Dim oObjectCheck = GetVariableValuefromSource(oIndexName, oIDBTyp) + If IsNothing(oObjectCheck) Then + oBoolValue = False Else - Dim _Value - Dim oObjectCheck = GetVariableValuefromSource(oIndexName, oIDBTyp) - - If IsNothing(oObjectCheck) Then - oBoolValue = False - Else - If oObjectCheck.ToString = "System.Object[]" Then + If oObjectCheck.ToString = "System.Object[]" Then If oObjectCheck.Length = 1 Then _Value = oObjectCheck(0) Else ' @@ -4105,11 +3498,7 @@ Public Class frmValidator oBoolValue = CBool(_Value) End If - End If - - - ' Dim Bool_WD = CBool(CURRENT_WMFILE.GetVariableValue(_IDXName)) 'wenn Wert in Windream <> der Eingabe darf indexiert werden If oBoolValue <> chk.Checked Then Dim result() As String @@ -4120,42 +3509,12 @@ Public Class frmValidator result(0) = 0 End If - If oIndexName.StartsWith("[%VKT") Then - 'Input = die String komponente mit Boolean as String - oMyInput = Return_PM_VEKTOR(chk.Checked.ToString, oIndexName) - 'Hier muss nun separat as Vektorfeld indexiert werden - If WMIndexVectofield(oMyInput, PROFIL_VEKTORINDEX) = True Then - oMissing = True - oErrorMessage = "Error while indexing Checkbox as VEKTOR - ERROR: " & idxerr_message - Exit For - End If - Else - If IDB_ACTIVE = False Then - If Indexiere_File(CURRENT_WMFILE, oIndexName, result) = False Then - oMissing = True - oErrorMessage = "Error while indexing Checkbox - ERROR: " & idxerr_message - Exit For - End If - Else - If IDBData.SetVariableValue(oIndexName, chk.Checked.ToString) Then - oErrorMessage = "error indexing checkboxidb" - Exit For - End If - End If - If IDB_ACTIVE = False Then - If PROFIL_LOGINDEX <> "" Then - Dim oLogstr = Return_LOGString(CBool(result(0)).ToString, WertWD, oIndexName) - WMIndexVectofield(oLogstr, PROFIL_LOGINDEX) - 'Else - 'IDBData.SetVariableValue(PROFIL_LOGINDEX, oLogstr) - End If - End If - + If IDBData.SetVariableValue(oIndexName, chk.Checked.ToString) Then + oErrorMessage = "error indexing checkboxidb" + Exit For End If End If - - Case "System.Windows.Forms.DataGridView" Dim dgv As DataGridView = oControl @@ -4211,23 +3570,15 @@ Public Class frmValidator End Select Next - If IDB_ACTIVE = False Then - If Indexiere_File(CURRENT_WMFILE, oIndexName, myVektorArr) = False Then + + Dim oDT As DataTable = DT_FOR_ARRAY(myVektorArr) + If oDT.Rows.Count > 0 Then + If IDBData.SetVariableValue(oIndexName, oDT, True) = False Then oMissing = True - oErrorMessage = "Error while indexing Vektorfeld - ERROR: " & idxerr_message + oErrorMessage = "Error indexing Datagridview idb" Exit For End If - Else - Dim oDT As DataTable = DT_FOR_ARRAY(myVektorArr) - If oDT.Rows.Count > 0 Then - If IDBData.SetVariableValue(oIndexName, oDT, True) = False Then - oMissing = True - oErrorMessage = "Error indexing Datagridview idb" - Exit For - End If - End If End If - 'Jetzt die Datei indexieren End If Case "DevExpress.XtraGrid.GridControl" @@ -4290,51 +3641,29 @@ Public Class frmValidator Next + Dim oMyDT = DT_FOR_ARRAY(myVektorArr) - If IDB_ACTIVE = False Then - If Indexiere_File(CURRENT_WMFILE, oIndexName, myVektorArr) = False Then + If oMyDT.Rows.Count > 0 Then + If IDBData.SetVariableValue(oIndexName, oMyDT, True, oIDBTyp) = False Then oMissing = True - oErrorMessage = $"Error while indexing table (1) {dgv.Name} - ERROR: " & idxerr_message + oErrorMessage = $"Error while indexing table IDB (1) {dgv.Name} - ERROR: " & idxerr_message Exit For End If - Else - Dim oMyDT = DT_FOR_ARRAY(myVektorArr) - If oMyDT.Rows.Count > 0 Then - If IDBData.SetVariableValue(oIndexName, oMyDT, True, oIDBTyp) = False Then - oMissing = True - oErrorMessage = $"Error while indexing table IDB (1) {dgv.Name} - ERROR: " & idxerr_message - Exit For - End If - End If End If - - Else - Dim oValue As New List(Of Object) From {String.Empty} - - If IDB_ACTIVE = False Then - If Indexiere_File(CURRENT_WMFILE, oIndexName, oValue.ToArray) = False Then - oMissing = True - 'oErrorMessage = "Error while indexing der Tabelle - ERROR: " & idxerr_message - oErrorMessage = $"Error while indexing table (2) {dgv.Name} - ERROR: " & idxerr_message - Exit For - End If - Else - Dim oOldAttributeResult = IDBData.GetVariableValue(oIndexName, oIDBTyp) - Dim oTypeOldResult = oOldAttributeResult.GetType.ToString - If oTypeOldResult = "System.Data.DataTable" Then - Dim oDT As DataTable = IDBData.GetVariableValue(oIndexName, oIDBTyp) - If oDT.Rows.Count > 0 Then - LOGGER.Debug("User cleared the grid, so data needs to be erased!") - IDBData.Delete_AttributeData(CURRENT_DOC_ID, oIndexName) - End If - Else - LOGGER.Debug("(String) User cleared the grid, so data needs to be erased!") + Else Dim oValue As New List(Of Object) From {String.Empty} + Dim oOldAttributeResult = IDBData.GetVariableValue(oIndexName, oIDBTyp) + Dim oTypeOldResult = oOldAttributeResult.GetType.ToString + If oTypeOldResult = "System.Data.DataTable" Then + Dim oDT As DataTable = IDBData.GetVariableValue(oIndexName, oIDBTyp) + If oDT.Rows.Count > 0 Then + LOGGER.Debug("User cleared the grid, so data needs to be erased!") IDBData.Delete_AttributeData(CURRENT_DOC_ID, oIndexName) End If - + Else + LOGGER.Debug("(String) User cleared the grid, so data needs to be erased!") + IDBData.Delete_AttributeData(CURRENT_DOC_ID, oIndexName) End If - End If End Select End If 'End If für Control und ReadOnly = False @@ -4359,47 +3688,7 @@ Public Class frmValidator End Try End Function - Private Function Indexiere_File(_dok As WINDREAMLib.WMObject, idxxname As String, idxvalue As Object) As Boolean - Dim File_indexiert As Boolean = False - idxerr_message = "" - Try - 'Die Arrays vorbereiten - Dim arrIndex() As String = Nothing - Dim arrValue() As String = Nothing - arrIndex = Nothing - arrValue = Nothing - 'Den Indexnamen übergeben - ReDim Preserve arrIndex(0) - arrIndex(0) = idxxname - 'Das Array der Idnexwerte überprüfen - If idxvalue Is Nothing = False Then - If idxvalue.Length() > 1 Then - LOGGER.Debug("Indexing Index '" & idxxname & "' with Arrayvalue") - Dim anzahl As Integer = 0 - For Each indexvalue As String In idxvalue - ReDim Preserve arrValue(anzahl) - arrValue(anzahl) = indexvalue - anzahl += 1 - Next - Else - LOGGER.Debug("Indexing Index '" & idxxname & "' with value '" & idxvalue(0) & "'") - ReDim Preserve arrValue(0) - arrValue(0) = idxvalue(0).ToString - End If - 'Jetzt das eigentliche Indexieren der Datei - 'File_indexiert = Me._windreamPM.RunIndexing(_dok, arrIndex, arrValue) - File_indexiert = WINDREAM.RunIndexing(_dok, arrIndex, arrValue) - Return File_indexiert - End If - Catch ex As Exception - LOGGER.Error(ex) - allgFunk.Insert_LogEntry($"ERROR Indexiere_File Validator >> {ex.Message}") - idxerr_message = "Unexpected error in Indexiere_File: " & ex.Message.ToString - LOGGER.Info("Unexpected error in Indexiere_File: " & ex.Message.ToString, True) - Return False - End Try - End Function Private Sub btnfinal_Click(sender As System.Object, e As System.EventArgs) Finish_WFStep() @@ -4469,54 +3758,22 @@ Public Class frmValidator 'Aus der Tabelle löschen Dim oDelete = $"DELETE FROM TBPM_PROFILE_FILES WHERE (GUID = {CURRENT_DOC_GUID})" If ClassDatabase.Execute_non_Query(oDelete) = True Then - - End If - - Dim resul = allgFunk.Delete_xffres(WMDocPathWindows, _windream) - If resul = Nothing Or resul = True Then Dim oDeleteResult As Boolean = False - If IDB_ACTIVE = False Then - oDeleteResult = Delete_WMFile() - End If + 'To Do Delete IDB File If oDeleteResult = True Then Load_Next_Document(False) End If - End If + + + End If Catch ex As Exception LOGGER.Error(ex) - MsgBox("Fehler bei Löschen windream-Datei:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) + MsgBox("Error in delete file:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try End Sub - Private Function Delete_WMFile() - Try - If CURRENT_WMFILE Is Nothing = False Then - 'Close_document_viewer() - 'Me.PdfViewer1.DocumentFilePath = "" - Try - If CURRENT_WMFILE.aLocked Then - ' unlock the windream object - CURRENT_WMFILE.unlock() - End If - CURRENT_WMFILE.Delete() - LOGGER.Info(">> Manuelles Löschen: Datei " & CURRENT_WMFILE.aName & " erfolgreich gelöscht") - Return True - Catch ex As Exception - LOGGER.Error(ex) - MsgBox("Das windream-Objekt konnte nicht gelöscht werden!" & vbNewLine & vbNewLine & "Fehlermeldung:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) - LOGGER.Info(" windream-Objekt konnte nicht gelöscht werden - Fehlermeldung: " & ex.Message, True) - Return False - End Try - End If - Catch ex As Exception - LOGGER.Error(ex) - LOGGER.Info(" Fehler bei Delete_File", True) - LOGGER.Info(">> Fehlermeldung: " & ex.Message) - Return False - End Try - End Function Private Const SEE_MASK_INVOKEIDLIST = &HC Private Const SEE_MASK_NOCLOSEPROCESS = &H40 Private Const SEE_MASK_FLAG_NO_UI = &H400 diff --git a/app/DD_PM_WINDREAM/frmValidatorSearch.vb b/app/DD_PM_WINDREAM/frmValidatorSearch.vb index ae6b3f5..4b66b59 100644 --- a/app/DD_PM_WINDREAM/frmValidatorSearch.vb +++ b/app/DD_PM_WINDREAM/frmValidatorSearch.vb @@ -414,7 +414,7 @@ Public Class frmValidatorSearch If IsNothing(_DTSQLSearches) Then Exit Sub Dim oConID = _DTSQLSearches.Rows(XtraTabControlSQL.SelectedTabPageIndex).Item("CONN_ID") Dim oCommand = _DTSQLSearches.Rows(XtraTabControlSQL.SelectedTabPageIndex).Item("SQL_COMMAND") - oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) Dim oTabIndex = _DTSQLSearches.Rows(XtraTabControlSQL.SelectedTabPageIndex).Item("TAB_INDEX") Dim oTabCaption = _DTSQLSearches.Rows(XtraTabControlSQL.SelectedTabPageIndex).Item("TAB_TITLE") RefreshTabSQL(oConID, oCommand, oTabIndex, oTabCaption) @@ -423,7 +423,7 @@ Public Class frmValidatorSearch If IsNothing(_DTDocSearches) Then Exit Sub Dim oConID = _DTDocSearches.Rows(XtraTabControlDocs.SelectedTabPageIndex).Item("CONN_ID") Dim oCommand = _DTDocSearches.Rows(XtraTabControlDocs.SelectedTabPageIndex).Item("SQL_COMMAND") - oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) Dim oTabIndex = _DTDocSearches.Rows(XtraTabControlDocs.SelectedTabPageIndex).Item("TAB_INDEX") Dim oTabCaption = _DTDocSearches.Rows(XtraTabControlDocs.SelectedTabPageIndex).Item("TAB_TITLE") RefreshTabDoc(oConID, oCommand, oTabIndex, oTabCaption) @@ -610,7 +610,7 @@ Public Class frmValidatorSearch _DTSQLSearches = BASEDATA_DT_PROFILE_SEARCHES_SQL Dim oConID = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(0).Item("CONN_ID") Dim oCommand = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(0).Item("SQL_COMMAND") - oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) XtraTabControlSQL.SelectedTabPageIndex = 0 Refresh_Load_GridSQL(oConID, oCommand, 0, BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(0).Item("TAB_TITLE")) End If @@ -618,7 +618,7 @@ Public Class frmValidatorSearch _DTDocSearches = BASEDATA_DT_PROFILE_SEARCHES_DOC Dim oConID = BASEDATA_DT_PROFILE_SEARCHES_DOC.Rows(0).Item("CONN_ID") Dim oCommand = BASEDATA_DT_PROFILE_SEARCHES_DOC.Rows(0).Item("SQL_COMMAND") - oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) XtraTabControlDocs.SelectedTabPageIndex = 0 RefreshTabDoc(oConID, oCommand, 0, BASEDATA_DT_PROFILE_SEARCHES_DOC.Rows(0).Item("TAB_TITLE")) End If @@ -635,7 +635,7 @@ Public Class frmValidatorSearch Dim oTabIndex = XtraTabControlDocs.SelectedTabPageIndex Dim oConID = BASEDATA_DT_PROFILE_SEARCHES_DOC.Rows(oTabIndex).Item("CONN_ID") Dim oCommand = BASEDATA_DT_PROFILE_SEARCHES_DOC.Rows(oTabIndex).Item("SQL_COMMAND") - oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) RefreshTabDoc(oConID, oCommand, oTabIndex, BASEDATA_DT_PROFILE_SEARCHES_DOC.Rows(oTabIndex).Item("TAB_TITLE")) End Sub @@ -667,7 +667,7 @@ Public Class frmValidatorSearch Dim oTabIndex = XtraTabControlSQL.SelectedTabPageIndex Dim oConID = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(oTabIndex).Item("CONN_ID") Dim oCommand = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(oTabIndex).Item("SQL_COMMAND") - oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.pnldesigner, Nothing, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) RefreshTabSQL(oConID, oCommand, oTabIndex, BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(oTabIndex).Item("TAB_TITLE")) End Sub