MS 3.1.1.0

This commit is contained in:
2024-01-30 15:16:27 +01:00
parent de312ed3f6
commit 8a9bdc2fcd
11 changed files with 310 additions and 168 deletions

View File

@@ -32,7 +32,7 @@ Public Class ClassDOC_SEARCH
OPTION4 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION4_CTRL")
OPTION5 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION5_CTRL")
End If
LOGGER.Info("DT_RESULTLIST_SEL_VALUES.Rows.Count: " & DT_RESULTLIST_SEL_VALUES.Rows.Count)
For Each oRow As DataRow In DT_RESULTLIST_SEL_VALUES.Rows
If oRow.Item("COLUMN_VIEW").ToString = "VALUE1" Then

View File

@@ -83,6 +83,9 @@
End Function
Public Shared Function Delete_ResultFile(RESULT_DOC_ID, RECORD_ID, DELETE_FILE)
Try
If DELETE_FILE = "True" Then
DELETE_FILE = 1
End If
Dim proc = String.Format("EXEC PRPMO_DELETE_RESULTFILE {0},{1},{2}", RESULT_DOC_ID, RECORD_ID, DELETE_FILE)
If MYDB_ECM.ExecuteNonQuery(proc) = True Then
If LICENSE_PROXY = True And DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED Then

View File

@@ -2,6 +2,7 @@
Imports System.Globalization
Imports WINDREAMLib
Imports DD_LIB_Standards
Imports DD_Record_Organizer.frmChangeDocType
Public Class ClassImport_Windream
Public Shared Function Import_File(QuellDatei_Path As String, DOCTYPE_ID As Integer)
@@ -24,7 +25,7 @@ Public Class ClassImport_Windream
Dim streamresult = clsWD_SET.Stream_File(QuellDatei_Path, Targetpath)
If streamresult = True Then
Dim sql As String = String.Format("SELECT DocID FROM VWPMO_DOC_SYNC WHERE UPPER(FULL_FILENAME) = UPPER('{0}') AND CONVERT(DATE,Change_DateTime) = CONVERT(DATE,GETDATE())", CURRENT_FILEIN_WD)
CURRENT_DOC_ID = MYDB_ECM.GetScalarValue(SQL)
CURRENT_DOC_ID = MYDB_ECM.GetScalarValue(sql)
sql = $"SELECT * FROM TBDD_INDEX_AUTOM WHERE DOCTYPE_ID = {DOCTYPE_ID} AND ENTITY_ID = {CURRENT_ENTITY_ID}"
Dim dt As DataTable = MYDB_ECM.GetDatatable(sql)
Dim indexierung_erfolgreich As Boolean = False
@@ -146,9 +147,9 @@ Public Class ClassImport_Windream
If CREATE_FOLDER_INDEX(oDYNAMIC_FOLDER, DocTypeID) = True And CURRENT_VARIABLE_FOLDER <> "" Then
LOGGER.Debug("After CREATE_FOLDER_INDEX - oWMTARGET_FOLDER: " & oWMTARGET_FOLDER)
LOGGER.Debug("After CREATE_FOLDER_INDEX - CURRENT_VARIABLE_FOLDER: " & CURRENT_VARIABLE_FOLDER)
LOGGER.Debug("After CREATE_FOLDER_INDEX - CURRENT_VARIABLE_FOLDER: " & CURRENT_VARIABLE_FOLDER)
If oWMTARGET_FOLDER <> CURRENT_VARIABLE_FOLDER Then
If oWMTARGET_FOLDER <> CURRENT_VARIABLE_FOLDER Then
oWMTARGET_FOLDER = oWMTARGET_FOLDER & "\" & CURRENT_VARIABLE_FOLDER.Replace(oWMTARGET_FOLDER, "")
Else
oWMTARGET_FOLDER = CURRENT_VARIABLE_FOLDER
@@ -164,7 +165,7 @@ Public Class ClassImport_Windream
End If
LOGGER.Debug("oWMTARGET_FOLDER: " & oWMTARGET_FOLDER)
LOGGER.Debug("CURRENT_SUBFOLDER: " & CURRENT_SUBFOLDER)
LOGGER.Debug("CURRENT_SUBFOLDER: " & CURRENT_SUBFOLDER)
'Untsserordner ja oder nein
@@ -246,19 +247,22 @@ Public Class ClassImport_Windream
For Each element As System.Text.RegularExpressions.Match In elemente
LOGGER.Debug("element in RegeX: " & element.Value)
Dim oSubstring = element.Value.Substring(2, 1).ToUpper
'%CTRL
Dim oSubstr = element.Value.Substring(2, 4)
Select Case element.Value.Substring(2, 1).ToUpper
'Nur automatische Indizes auswerten
Case "A"
Dim APattern = element.Value.Substring(3, element.Value.Length - 4)
Dim value As String
Dim oPatternvalue As String
Select Case APattern
'Laufzeitvariable Record-ID
Case "RECORD_ID"
value = CURRENT_RECORD_ID
oPatternvalue = CURRENT_RECORD_ID
Case "DOKART"
'Laufzeitvariable Dokumentartstring
value = CURRENT_DOKARTSTRING
oPatternvalue = CURRENT_DOKARTSTRING
Case Else
'Ein Index der nur für die Namenkonvention herangezogen wird
If APattern.StartsWith("NC_") And APattern.Contains("#") Then
@@ -270,22 +274,22 @@ Public Class ClassImport_Windream
Dim sql_AUTOindexresult = MYDB_ECM.GetScalarValue("SELECT SQL_RESULT FROM TBDD_INDEX_AUTOM WHERE GUID = " & INDEX_ID)
If IsNothing(sql_AUTOindexresult) Then
LOGGER.Debug("unexpected: sql_AUTOindexresult is nothing!!")
value = ""
oPatternvalue = ""
Else
If IsDBNull(sql_AUTOindexresult) Then
value = ""
oPatternvalue = ""
Else
sql_AUTOindexresult = sql_AUTOindexresult.ToString.ToUpper.Replace("@RECORD-ID", CURRENT_RECORD_ID)
Dim AUTOindexresult = MYDB_ECM.GetScalarValue(sql_AUTOindexresult)
If IsNothing(AUTOindexresult) Then
LOGGER.Warn("ATTENTION: unexpected: AUTOindexresult is nothing!!")
LOGGER.Warn("" & sql_AUTOindexresult)
value = ""
oPatternvalue = ""
Else
If IsDBNull(AUTOindexresult) Then
value = ""
oPatternvalue = ""
Else
value = AUTOindexresult
oPatternvalue = AUTOindexresult
End If
End If
@@ -293,90 +297,28 @@ Public Class ClassImport_Windream
End If
Else
LOGGER.Warn("INDEX_ID is not numeric: " & INDEX_ID.ToString & "- APattern: " & APattern)
value = ""
oPatternvalue = ""
End If
Else
LOGGER.Warn("split.Length <> 2 - APattern: " & APattern)
value = ""
oPatternvalue = ""
End If
ElseIf APattern.Contains("#") Then
LOGGER.Debug("element [" & APattern & "] filled with Record-Data...: ")
Dim split() As String = APattern.Split("#")
If split.Length = 2 Then
Dim CONTROL_ID = split(1)
If IsNumeric(CONTROL_ID) Then
Dim CONTROLVALUE = ClassControlValues.Get_Control_Value_for_ID(CONTROL_ID, CURRENT_RECORD_ID)
If IsNothing(CONTROLVALUE) Then
Dim checktype = "SELECT CONTROL_TYPE_ID,SQL_COMMAND_1,CONNECTION_ID_1 FROM TBPMO_CONTROL WHERE GUID = " & CONTROL_ID
Dim DTtype As DataTable = MYDB_ECM.GetDatatable(checktype)
If DTtype.Rows.Count = 1 Then
Dim lblsql = DTtype.Rows(0).Item(1)
lblsql = lblsql.ToString.ToUpper.Replace("@RECORD_ID", CURRENT_RECORD_ID)
lblsql = lblsql.ToString.ToUpper.Replace("@RECORD-ID", CURRENT_RECORD_ID)
lblsql = lblsql.ToString.ToUpper.Replace("@ENTITY-ID", CURRENT_ENTITY_ID)
lblsql = lblsql.ToString.ToUpper.Replace("@ENTITY_ID", CURRENT_ENTITY_ID)
LOGGER.Debug("variable sql will be used for convention")
Dim result = MYDB_ECM.GetScalarValue(DTtype.Rows(0).Item(2))
If Not IsNothing(result) Then
value = result.ToString
Else
LOGGER.Warn("variable sqlresult is nothing - " & lblsql)
value = ""
End If
Else
LOGGER.Warn("!!ATTENTION: NameConvention should be filled with value of Control-ID '" & CONTROL_ID & "', but result was nothing.")
LOGGER.Warn("SQL-Command: " & CURRENT_LAST_SQL)
value = ""
End If
oPatternvalue = GET_CTRLData(split(1), DocTypeID, APattern)
Else
If IsDBNull(CONTROLVALUE) Then
LOGGER.Warn("NameConvention should be filled with value of Control-ID '" & CONTROL_ID & "', but result was DBNULL.")
LOGGER.Warn("SQL-Command: " & CURRENT_LAST_SQL)
value = ""
Else
Dim sql1 = "SELECT * FROM TBPMO_WD_NAMECONVENTION_FORMAT WHERE ID = (SELECT TOP 1 GUID FROM TBPMO_WD_FORMVIEW_DOKTYPES WHERE DOCTYPE_ID = " & DocTypeID & " AND FORMVIEW_ID = " & CURRENT_FORMVIEW_ID & ")"
Dim DT_FORMAT As DataTable = MYDB_ECM.GetDatatable(sql1)
If Not IsNothing(DT_FORMAT) Then
If DT_FORMAT.Rows.Count > 0 Then
Dim result
Try
result = (From FormatRow In DT_FORMAT.AsEnumerable
Select FormatRow Where FormatRow.Item("PATTERN") = APattern).Single()
Catch ex As Exception
End Try
If Not IsNothing(result) Then
Dim _rule = result.Item("FORMAT_RULE")
If Not IsNothing(_rule) Then
If IsDate(CONTROLVALUE) Then
Dim _date As Date = CDate(CONTROLVALUE)
'Dim _date = CDate(Format(CONTROLVALUE, "dd-MM-yyyy"))
_rule = _rule.ToString.Replace("Y", "y")
_rule = _rule.ToString.Replace("D", "d")
_rule = _rule.ToString.Replace("m", "M")
Dim convertedvalue = _date.ToString(_rule, CultureInfo.InvariantCulture)
CONTROLVALUE = convertedvalue
End If
End If
End If
End If
End If
value = CONTROLVALUE
End If
End If
End If
End If
End If
End Select
If value <> String.Empty Then
oNewWM_Filename = oNewWM_Filename.Replace(element.Value, value)
If oPatternvalue <> String.Empty Then
oNewWM_Filename = oNewWM_Filename.Replace(element.Value, oPatternvalue)
_NewFileString = oNewWM_Filename
LOGGER.Debug("Actual NEWFILESTRING: " & _NewFileString)
' sql_history_INSERT_INTO = sql_history_INSERT_INTO & ", INDEX" & AnzahlIndexe.ToString
@@ -385,6 +327,7 @@ Public Class ClassImport_Windream
Else
err = True
End If
Case "V"
Dim datetemp As String
Dim _Month As String = My.Computer.Clock.LocalTime.Month
@@ -438,14 +381,28 @@ Public Class ClassImport_Windream
End If
_NewFileString = oNewWM_Filename
Case Else
Dim msg As String
msg = "In der Namenkonvention wurde ein Element gefunden welches nicht zugeordnet werden kann!" & vbNewLine & "Elementname: " & element.Value.ToUpper
If USER_LANGUAGE <> "de-DE" Then
msg = "In nameconvention an element was defined which could not be replaced." & vbNewLine & "elementname: " & element.Value.ToUpper
If element.Value.Substring(2, 4).ToUpper = "CTRL" Then
Dim APattern = element.Value.Substring(3, element.Value.Length - 4)
LOGGER.Debug("element [" & element.Value & "] with Control-Data...: ")
Dim split() As String = APattern.Split("#")
If split.Length = 2 Then
Dim CONTROL_ID = split(1)
Dim oPatternvalue = GET_CTRLData(split(1), DocTypeID, APattern)
oNewWM_Filename = oNewWM_Filename.Replace(element.Value, oPatternvalue)
End If
Else
Dim msg As String
msg = "In der Namenkonvention wurde ein Element gefunden welches nicht zugeordnet werden kann!" & vbNewLine & "Elementname: " & element.Value.ToUpper
If USER_LANGUAGE <> "de-DE" Then
msg = "In nameconvention an element was defined which could not be replaced." & vbNewLine & "Elementname: " & element.Value.ToUpper
End If
LOGGER.Warn(msg)
MsgBox(msg, MsgBoxStyle.Exclamation, "Error in Name Convention:")
End If
LOGGER.Warn(msg)
MsgBox(msg, MsgBoxStyle.Exclamation, "Error in Name Convention:")
End Select
Next
Try
@@ -455,6 +412,8 @@ Public Class ClassImport_Windream
LOGGER.Info(String.Format("DATEINAME contains /-sign. / will be replaced with _"))
oNewWM_Filename = oNewWM_Filename.Replace("/", "_")
End If
oNewWM_Filename = oNewWM_Filename.Replace("\\", "\")
Catch ex As Exception
LOGGER.Warn(" - Error in Versioning file - Error: " & vbNewLine & ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in Versioning file:")
@@ -483,6 +442,89 @@ Public Class ClassImport_Windream
End Try
End Function
Private Shared Function GET_CTRLData(pInput As String, pDoctypeID As Integer, pPattern As String)
Try
Dim oReturnValue As String = ""
pInput = pInput.Replace("]", "")
If IsNumeric(pInput) Then
Dim CONTROLVALUE = ClassControlValues.Get_Control_Value_for_ID(pInput, CURRENT_RECORD_ID)
If IsNothing(CONTROLVALUE) Then
Dim checktype = "SELECT CONTROL_TYPE_ID,SQL_COMMAND_1,CONNECTION_ID_1 FROM TBPMO_CONTROL WHERE GUID = " & pInput
Dim DTtype As DataTable = MYDB_ECM.GetDatatable(checktype)
If DTtype.Rows.Count = 1 Then
Dim lblsql = DTtype.Rows(0).Item(1)
Dim result
If Len(lblsql) = 0 Or lblsql Is Nothing Then
LOGGER.Warn("TBPMO_CONTROL.SQL is nothing")
oReturnValue = ""
Else
lblsql = lblsql.ToString.ToUpper.Replace("@RECORD_ID", CURRENT_RECORD_ID)
lblsql = lblsql.ToString.ToUpper.Replace("@RECORD-ID", CURRENT_RECORD_ID)
lblsql = lblsql.ToString.ToUpper.Replace("@ENTITY-ID", CURRENT_ENTITY_ID)
lblsql = lblsql.ToString.ToUpper.Replace("@ENTITY_ID", CURRENT_ENTITY_ID)
LOGGER.Debug("variable sql will be used for convention")
result = MYDB_ECM.GetScalarValue(DTtype.Rows(0).Item(2))
End If
If Not IsNothing(result) Then
oReturnValue = result.ToString
Else
LOGGER.Warn("variable sqlresult is nothing - " & lblsql)
oReturnValue = ""
End If
Else
LOGGER.Warn("!!ATTENTION: NameConvention should be filled with value of Control-ID '" & pInput & "', but result was nothing.")
LOGGER.Warn("SQL-Command: " & CURRENT_LAST_SQL)
oReturnValue = ""
End If
Else
If IsDBNull(CONTROLVALUE) Then
LOGGER.Warn("NameConvention should be filled with value of Control-ID '" & pInput & "', but result was DBNULL.")
LOGGER.Warn("SQL-Command: " & CURRENT_LAST_SQL)
oReturnValue = ""
Else
Dim sql1 = "SELECT * FROM TBPMO_WD_NAMECONVENTION_FORMAT WHERE ID = (SELECT TOP 1 GUID FROM TBPMO_WD_FORMVIEW_DOKTYPES WHERE DOCTYPE_ID = " & pDoctypeID & " AND FORMVIEW_ID = " & CURRENT_FORMVIEW_ID & ")"
Dim DT_FORMAT As DataTable = MYDB_ECM.GetDatatable(sql1)
If Not IsNothing(DT_FORMAT) Then
If DT_FORMAT.Rows.Count > 0 Then
Dim result
Try
result = (From FormatRow In DT_FORMAT.AsEnumerable
Select FormatRow Where FormatRow.Item("PATTERN") = pPattern).Single()
Catch ex As Exception
End Try
If Not IsNothing(result) Then
Dim _rule = result.Item("FORMAT_RULE")
If Not IsNothing(_rule) Then
If IsDate(CONTROLVALUE) Then
Dim _date As Date = CDate(CONTROLVALUE)
'Dim _date = CDate(Format(CONTROLVALUE, "dd-MM-yyyy"))
_rule = _rule.ToString.Replace("Y", "y")
_rule = _rule.ToString.Replace("D", "d")
_rule = _rule.ToString.Replace("m", "M")
Dim convertedvalue = _date.ToString(_rule, CultureInfo.InvariantCulture)
CONTROLVALUE = convertedvalue
End If
End If
End If
End If
End If
oReturnValue = CONTROLVALUE
End If
End If
End If
Return oReturnValue
Catch ex As Exception
LOGGER.Warn(" - Unexpected Error in GET_CTRLData: " & vbNewLine & ex.Message)
MsgBox("Unexpected Error in GET_CTRLData: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return ""
End Try
End Function
Private Shared Function CREATE_FOLDER_INDEX(FolderConvention As String, DocTypeID As Integer)
Try
CURRENT_VARIABLE_FOLDER_OVERRIDE = False
@@ -509,7 +551,7 @@ Public Class ClassImport_Windream
Dim INDEX_ID = split(1)
If IsNumeric(INDEX_ID) Then
Dim sql = "SELECT SQL_RESULT FROM TBDD_INDEX_AUTOM WHERE GUID = " & INDEX_ID
Dim sql_command = MYDB_ECM.GetScalarValue(SQL)
Dim sql_command = MYDB_ECM.GetScalarValue(sql)
If IsNothing(sql_command) Then
LOGGER.Warn("unexpected: SQL_RESULT is nothing!!")
LOGGER.Warn("" & sql)