finalize doc

This commit is contained in:
Digital Data - Marlon Schreiber
2019-04-11 11:00:54 +02:00
parent 04daefb3ba
commit 93716bcc96
6 changed files with 307 additions and 318 deletions

View File

@@ -1,40 +1,48 @@
Public Class ClassFinalizeDoc
Public Shared Function Write_Final_Metadata()
Public Shared Function Write_Final_Metadata(WMObject As WINDREAMLib.WMObject)
Try
Dim _error As Boolean = False
If CURRENT_DT_FINAL_INDEXING Is Nothing Then
CURRENT_DT_FINAL_INDEXING = ClassDatabase.Return_Datatable(String.Format("select * from TBPM_PROFILE_FINAL_INDEXING where PROFIL_ID = {0}", CURRENT_ProfilGUID))
End If
If CURRENT_DT_FINAL_INDEXING.Rows.Count > 0 Then
'Jetzt finale Indexe setzen
If LogErrorsOnly = False Then ClassLogger.Add(" >> working final indices for doc: " & CURRENT_WMFILE.aName, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> working final indices for doc: " & WMObject.aName, False)
For Each dr As DataRow In CURRENT_DT_FINAL_INDEXING.Rows
Dim value As String = dr.Item("VALUE").ToString
Dim INDEXNAME = dr.Item("INDEXNAME").ToString
If value.ToUpper = "SQL-Command".ToUpper Then '###### Indexierung mit variablen SQL ###
If LogErrorsOnly = False Then ClassLogger.Add(" >> indexing with dynamic sql...", False)
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 ClassLogger.Add(" >> element in RegeX: " & element.Value, False)
Dim WDINDEXNAME = element.Value.Substring(2, element.Value.Length - 3)
Dim wertWD = CURRENT_WMFILE.GetVariableValue(WDINDEXNAME)
If Not IsNothing(wertWD) Then
SQL_COMMAND = SQL_COMMAND.ToString.Replace(element.Value, wertWD)
Else
ClassLogger.Add(">>Attention: indexvalue is invalid", False)
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in Checking control values for Variable SQL Result - ERROR: " & ex.Message)
End Try
Next
Dim dynamic_value = ClassDatabase.Execute_Scalar(SQL_COMMAND, MyConnectionString, True)
'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 ClassLogger.Add(" >> element in RegeX: " & element.Value, False)
' 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
' ClassLogger.Add(">>Attention: indexvalue is invalid", False)
' End If
' Catch ex As Exception
' ClassLogger.Add("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_EMAIL)
sql_Statement = clsPatterns.ReplaceInternalValues(sql_Statement)
sql_Statement = clsPatterns.ReplaceWindreamIndicies(sql_Statement, WMObject)
If LogErrorsOnly = False Then ClassLogger.Add(">>> sql after ReplaceAllValues: " & sql_Statement, False)
Dim dynamic_value = ClassDatabase.Execute_Scalar(sql_Statement, MyConnectionString, True)
If Not IsNothing(dynamic_value) Then
value = dynamic_value
Else
@@ -58,10 +66,10 @@
result(0) = value
Dim oIndexType = WINDREAM.GetTypeOfIndex(INDEXNAME)
If LogErrorsOnly = False Then ClassLogger.Add($" >> oIndexType {oIndexType.ToString}", False)
If oIndexType > 4000 And oIndexType < 5000 Then
Dim PM_String = Return_PM_VEKTOR(value, INDEXNAME)
'Hier muss nun separat als Vektorfeld indexiert werden
If Indexiere_VektorfeldPM(PM_String, CURRENT_PROFILE_VEKTOR_LOG) = False Then
If Indexiere_VektorfeldPM(value, INDEXNAME, WMObject) = False Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> FINALER INDEX '" & INDEXNAME.Replace("[%VKT", "") & "' WURDE ERFOLGREICH GESETZT", False)
Else
@@ -71,13 +79,13 @@
End If
Else
If LogErrorsOnly = False Then ClassLogger.Add(" >> now indexing..", False)
If Indexiere_File(INDEXNAME, result) = True Then
If Indexiere_File(INDEXNAME, result, WMObject) = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> FINALER INDEX '" & INDEXNAME & "' WURDE ERFOLGREICH GESETZT", False)
If LogErrorsOnly = False Then ClassLogger.Add("")
'Nun das Logging
If CURRENT_PROFILE_VEKTOR_LOG <> "" Then
Dim logstr = Return_LOGString(value, "DDFINALINDEX", INDEXNAME)
Indexiere_VektorfeldPM(logstr, CURRENT_PROFILE_VEKTOR_LOG)
Indexiere_VektorfeldPM(logstr, CURRENT_PROFILE_VEKTOR_LOG, WMObject)
End If
Else
@@ -103,10 +111,10 @@
End Try
End Function
Private Shared Function Indexiere_File(idxxname As String, idxvalue As Object)
Private Shared Function Indexiere_File(idxxname As String, idxvalue As Object, WMObject As WINDREAMLib.WMObject)
Dim File_indexiert As Boolean = False
Try
' Try
'Die Arrays vorbereiten
Dim arrIndex() As String = Nothing
Dim arrValue() As String = Nothing
@@ -132,23 +140,23 @@
End If
'Dim _windreamPM As New ClassPMWindream
'Jetzt das eigentliche Indexieren der Datei
File_indexiert = WINDREAM.RunIndexing(CURRENT_WMFILE, arrIndex, arrValue)
File_indexiert = WINDREAM.RunIndexing(WMObject, arrIndex, arrValue)
Return File_indexiert
End If
Catch ex As Exception
ClassLogger.Add(">> Unvorhergesehener Fehler bei Indexiere_File: " & ex.Message.ToString, True)
Return Err()
End Try
'Catch ex As Exception
' ClassLogger.Add(">> Unvorhergesehener Fehler bei Indexiere_File: " & ex.Message.ToString, True)
' Return Err()
'End Try
End Function
Private Shared Function Indexiere_VektorfeldPM(input As String, NameVectorfield As String)
Private Shared Function Indexiere_VektorfeldPM(input As String, NameVectorfield As String, WMObject As WINDREAMLib.WMObject)
Dim _success As Boolean = True
Dim Anzahl As Integer = 0
Dim myInputArr As String()
'Jeden Wert des Vektorfeldes durchlaufen
Dim wertWD = CURRENT_WMFILE.GetVariableValue(NameVectorfield)
Dim wertWD = WMObject.GetVariableValue(NameVectorfield)
If wertWD Is Nothing = False Then
'Es wird gegen ein Vektorfeld nachindexiert
If wertWD.GetType.ToString.Contains("System.Object") Then
@@ -176,7 +184,7 @@
If myInputArr.Length > 0 Then
'Jetzt die Datei indexieren
If Indexiere_File(NameVectorfield, myInputArr) = False Then
If Indexiere_File(NameVectorfield, myInputArr, WMObject) = False Then
_success = False
'errmessage = "Fehler beim Indexieren Vektorfeld '" & NameVKTIndex & "' - ERROR: " & idxerr_message
End If

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.9.5.11")>
<Assembly: AssemblyVersion("1.9.5.12")>
<Assembly: AssemblyFileVersion("1.0.0.0")>

View File

@@ -336,7 +336,7 @@ Public Class frmMassValidator
Dim indexname As String
Dim resultvalue
'Try
Try
For Each inctrl As Control In Me.pnldesigner.Controls
Dim CONTROL_ID = inctrl.Tag
@@ -565,16 +565,16 @@ Public Class frmMassValidator
End If
End Select
Next
'Catch ex As Exception
' errormessage = "Unexpected Error in FillIndexValues(MI):" & vbNewLine & ex.Message & vbNewLine & "Check Logfile"
' My.Settings.Save()
' frmError.ShowDialog()
' ClassLogger.Add(">> Unexpected Error in FillIndexValues(MIs: " & ex.Message, True)
' ClassLogger.Add(">> Controltype: " & controltype, False)
' ClassLogger.Add(">> Indexname windream: " & indexname, False)
Catch ex As Exception
errormessage = "Unexpected Error in FillIndexValues(MI):" & vbNewLine & ex.Message & vbNewLine & "Check Logfile"
My.Settings.Save()
frmError.ShowDialog()
ClassLogger.Add(">> Unexpected Error in FillIndexValues(MIs: " & ex.Message, True)
ClassLogger.Add(">> Controltype: " & controltype, False)
ClassLogger.Add(">> Indexname windream: " & indexname, False)
'End Try
End Try
End Sub
@@ -929,7 +929,7 @@ Public Class frmMassValidator
End Try
If Not IsNothing(WMDOC) Then
CURRENT_WMFILE = WMDOC
If ClassFinalizeDoc.Write_Final_Metadata = True Then
If ClassFinalizeDoc.Write_Final_Metadata(WMDOC) = True Then
Dim sql = String.Format("UPDATE TBPM_PROFILE_FILES SET IN_WORK = 0, WORK_USER = '{0}', EDIT = 1 WHERE GUID = {1}", Environment.UserName, CURRENT_DOC_GUID)
If ClassDatabase.Execute_non_Query(sql) = True Then
workedFiles += 1

View File

@@ -221,7 +221,7 @@
<value>Refresh AdditionalSearch</value>
</data>
<data name="ContextMenuStrip1.Size" type="System.Drawing.Size, System.Drawing">
<value>207, 114</value>
<value>207, 92</value>
</data>
<data name="&gt;&gt;ContextMenuStrip1.Name" xml:space="preserve">
<value>ContextMenuStrip1</value>
@@ -1368,6 +1368,12 @@
<data name="&gt;&gt;DateieigenschaftenToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;RefreshAdditionalSearchToolStripMenuItem.Name" xml:space="preserve">
<value>RefreshAdditionalSearchToolStripMenuItem</value>
</data>
<data name="&gt;&gt;RefreshAdditionalSearchToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;DD_DMSLiteDataSet.Name" xml:space="preserve">
<value>DD_DMSLiteDataSet</value>
</data>
@@ -1836,12 +1842,6 @@
<data name="&gt;&gt;ToolStripButtonAnnotation.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;RefreshAdditionalSearchToolStripMenuItem.Name" xml:space="preserve">
<value>RefreshAdditionalSearchToolStripMenuItem</value>
</data>
<data name="&gt;&gt;RefreshAdditionalSearchToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>frmValidator</value>
</data>

View File

@@ -2058,7 +2058,7 @@ Public Class frmValidator
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexwert soll nicht geladen werden.", False)
Exit Select
End If
If LogErrorsOnly = False Then ClassLogger.Add($" >> getting wmValue for Index {oWMIndexName}...", False)
Dim wertWD = aktivesDokument.GetVariableValue(oWMIndexName)
If wertWD Is Nothing = False Then
@@ -2069,12 +2069,14 @@ Public Class frmValidator
Case "TABLE"
Dim dt As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBPM_CONTROL_TABLE WHERE CONTROL_ID = " & oControlId)
Dim SpaltenWerte As String()
If LogErrorsOnly = False Then ClassLogger.Add($" >> {dt.Rows.Count} Columns configured for control {oControlId}.", False)
If dt.Rows.Count > 1 Then
For Each Zeile As Object In wertWD
If LogErrorsOnly = False Then ClassLogger.Add($" >> vektorrow Value {Zeile.ToString}...", False)
SpaltenWerte = Split(Zeile, Delimiter)
Select Case dt.Rows.Count
Case 1
dgv.Rows.Add(New String() {SpaltenWerte(0)})
dgv.Rows.Add(New String() {Zeile.ToString})
Case 2
If SpaltenWerte.Length = 2 Then
dgv.Rows.Add(New String() {SpaltenWerte(0), SpaltenWerte(1)})
@@ -2342,6 +2344,9 @@ Public Class frmValidator
'lblerror.Visible = False
Try
Dim _error As Boolean = False
'If ClassFinalizeDoc.Write_Final_Metadata(aktivesDokument) = False Then
' _error = True
'End If
Me.TBPM_PROFILE_FINAL_INDEXINGTableAdapter.Fill(Me.DD_DMSLiteDataSet.TBPM_PROFILE_FINAL_INDEXING, CURRENT_ProfilName)
Dim dtfinal As DataTable = DD_DMSLiteDataSet.TBPM_PROFILE_FINAL_INDEXING
If dtfinal.Rows.Count > 0 Then
@@ -2357,31 +2362,6 @@ Public Class frmValidator
SQL_COMMAND = clsPatterns.ReplaceAllValues(SQL_COMMAND, pnldesigner, aktivesDokument, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_EMAIL)
If LogErrorsOnly = False Then ClassLogger.Add(" >> SQL_COMMAND after ReplaceAllValues: " & SQL_COMMAND, False)
'' 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 ClassLogger.Add(" >> element in RegeX: " & element.Value, False)
' Dim WDINDEXNAME = element.Value.Substring(2, element.Value.Length - 3)
' Dim wertWD = aktivesDokument.GetVariableValue(WDINDEXNAME)
' If Not IsNothing(wertWD) Then
' SQL_COMMAND = SQL_COMMAND.ToString.Replace(element.Value, wertWD)
' Else
' ClassLogger.Add(">> Achtung Indexwert ist nothing!", False)
' End If
' Catch ex As Exception
' ClassLogger.Add("Unexpected Error in Checking control values for Variable SQL Result - ERROR: " & ex.Message)
' End Try
'Next
Dim dynamic_value = ClassDatabase.Execute_Scalar(SQL_COMMAND, MyConnectionString, True)
If Not IsNothing(dynamic_value) Then
@@ -2408,12 +2388,13 @@ Public Class frmValidator
result(0) = value
Dim oIndexType = WINDREAM.GetTypeOfIndex(dr.Item("INDEXNAME"))
If LogErrorsOnly = False Then ClassLogger.Add($" >> oIndexType {oIndexType.ToString}", False)
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"))
' Dim PM_String = Return_PM_VEKTOR(value, dr.Item("INDEXNAME"))
'Hier muss nun separat als Vektorfeld indexiert werden
If Indexiere_VektorfeldPM(PM_String, PROFIL_VEKTORINDEX) = False Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> FINALER INDEX '" & dr.Item("INDEXNAME").ToString.Replace("[%VKT", "") & "' WURDE ERFOLGREICH GESETZT", False)
If Indexiere_VektorfeldPM(value, dr.Item("INDEXNAME")) = False Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> FINALER INDEX '" & dr.Item("INDEXNAME").ToString & "' WURDE ERFOLGREICH GESETZT", False)
Else
errormessage = "Fehler beim finalen Indexieren:" & vbNewLine & idxerr_message
My.Settings.Save()
@@ -2443,7 +2424,7 @@ Public Class frmValidator
End If
Next
End If
'Wenn kein Fehler nach der finalen Indexierung gesetzt wurde
''Wenn kein Fehler nach der finalen Indexierung gesetzt wurde
If _error = False Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Tabelle updaten und co", False)