MS Logging, Import windream, Hash-wert

This commit is contained in:
Developer01
2025-05-07 14:57:07 +02:00
parent d2009b661c
commit e8f3b68041
18 changed files with 240 additions and 153 deletions

View File

@@ -516,7 +516,7 @@ Public Class ClassDOC_SEARCH
Public Shared Function CREATE_DOC_RELATED_LINKS(DOC_ID As Integer, RECORD_ID As Integer)
Try
Dim execute = String.Format("EXEC [dbo].[PRPMO_DOC_CREATE_NEW_DOC] {0},{1},'{2}'", DOC_ID, RECORD_ID, USER_USERNAME)
Dim execute = String.Format("EXEC PROF_DOC_CREATE_UPDATE {0},{1},'{2}','{3}'", DOC_ID, RECORD_ID, USER_USERNAME, CURRENT_FILE_HASH)
If MYDB_ECM.ExecuteNonQuery(execute) = True Then
Return True
Else

View File

@@ -8,7 +8,7 @@ Public Class ClassDragDrop
LOGGER.Debug("In Drop_File....")
files_dropped = Nothing
Dim sql As String = "DELETE FROM TBPMO_FILES_USER WHERE HANDLE_TYPE <> 'SCAN' AND USER_WORK = '" & USER_USERNAME & "'"
Dim Sql As String = "DELETE FROM TBPMO_FILES_USER WHERE HANDLE_TYPE <> 'SCAN' AND USER_WORK = '" & USER_USERNAME & "'"
MYDB_ECM.ExecuteNonQuery(sql)

View File

@@ -87,7 +87,9 @@ Public Class ClassFolderWatcher
'Die Datei übergeben
LOGGER.Debug("OnCreated-File:" & e.FullPath)
If FileExistsinDropTable(CURRENT_FILENAME) = False Then
ClassHelper.Insert_USER_File(e.FullPath, handleType)
If ClassHelper.Insert_USER_File(e.FullPath, handleType) = False Then
Exit Sub
End If
Else
Console.WriteLine("File existiert bereits")
End If

View File

@@ -446,13 +446,42 @@ Public Class ClassHelper
Return False
End Try
End Function
Public Shared Function Insert_USER_File(filename As String, handleType As String)
Public Shared Function Insert_USER_File(pFilename As String, handleType As String)
Try
Dim filename_only As String = Path.GetFileName(filename)
Dim ins As String = String.Format("INSERT INTO TBPMO_FILES_USER (FILENAME2WORK, USER_WORK,HANDLE_TYPE,FILENAME_ONLY) VALUES ('{0}','{1}','{2}','{3}')", filename, USER_USERNAME, handleType, filename_only)
Dim filename_only As String = Path.GetFileName(pFilename)
CURRENT_FILE_HASH = ""
If File.Exists(pFilename) Then
If (pFilename.ToUpper.EndsWith(".MSG") Or pFilename.ToUpper.EndsWith(".EML")) And (handleType = "|OUTLOOK_MESSAGE|" Or handleType = "|MSGONLY|") Then
CURRENT_FILE_HASH = FILESYSTEM.GetChecksumFromString(pFilename)
Else
CURRENT_FILE_HASH = FILESYSTEM.GetChecksum(pFilename)
End If
End If
Dim oSQL = $"SELECT ADDED_WHO, FORMAT(ADDED_WHEN, 'dd-MM-yyyy HH:mm') AS ADDED_WHEN_STRING FROM TBPMO_DOCRESULT_LIST WHERE FILE_HASH = '{CURRENT_FILE_HASH}' ORDER BY ADDED_WHEN DESC"
LOGGER.Debug($"Inserting File - hash is [{CURRENT_FILE_HASH}]")
Dim oDTCHECK As DataTable = MYDB_ECM.GetDatatable(oSQL)
If Not IsNothing(oDTCHECK) Then
If oDTCHECK.Rows.Count >= 1 Then
LOGGER.Info($"We got a file with the same hash [{CURRENT_FILE_HASH}]")
Dim oUSER = oDTCHECK.Rows(0).Item(0)
Dim oADDED_WHEN = oDTCHECK.Rows(0).Item(1)
Dim oMSG = $"Achtung:" & vbNewLine & "Die Datei wurde bereits nach orgFLOW importiert. Anzahl: " & oDTCHECK.Rows.Count.ToString & vbNewLine &
$"Importiert wann: {oADDED_WHEN}" & vbNewLine &
$"Importiert wer: {oUSER}" & vbNewLine &
"Wollen Sie die Datei dennoch importieren?"
Dim result As MsgBoxResult
result = MessageBox.Show(oMSG, CAPTION_CONFIRMATION, MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If result = MsgBoxResult.No Then
Return False
End If
End If
End If
Dim ins As String = String.Format("INSERT INTO TBPMO_FILES_USER (FILENAME2WORK, USER_WORK,HANDLE_TYPE,FILENAME_ONLY) VALUES ('{0}','{1}','{2}','{3}')", pFilename, USER_USERNAME, handleType, filename_only)
Return MYDB_ECM.ExecuteNonQuery(ins)
Catch ex As Exception
MsgBox("Unexpected Error in Insert Scan-File: " & ex.Message, MsgBoxStyle.Critical)
MsgBox("Unexpected Error in Insert file for user (TBPMO_FILES_USER): " & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function

View File

@@ -103,8 +103,10 @@ Public Class ClassImport_Windream
End Function
Public Shared Function Name_Generieren(DocTypeID As Integer)
Dim myLogger As New DigitalData.Modules.Logging.Logger
Try
myLogger = LOGCONFIG.GetLogger()
Dim FILE_DELIMITER, VERSION_DELIMITER, _WDOBJECTTYPE, _NewFileString As String
Dim sql As String = "select VERSION_DELIMITER, FILE_DELIMITER FROM TBDD_MODULES where NAME = 'Global-Indexer'"
Dim DT1 As DataTable = MYDB_ECM.GetDatatable(sql)
@@ -124,6 +126,7 @@ Public Class ClassImport_Windream
oWMTARGET_FOLDER = oDT.Rows(0).Item("ZIEL_PFAD")
sql = $"SELECT * FROM TBPMO_WD_FORMVIEW_DOKTYPES WHERE FORMVIEW_ID = {CURRENT_FORMVIEW_ID} AND DOCTYPE_ID = {DocTypeID}"
myLogger.Debug(sql)
Dim oDTFW_DOCTYPES As DataTable = MYDB_ECM.GetDatatable(sql)
Dim oDYNAMIC_FOLDER = oDTFW_DOCTYPES.Rows(0).Item("DYNAMIC_FOLDER")
Dim oNAME_CONVENTION = oDTFW_DOCTYPES.Rows(0).Item("NAME_CONVENTION")
@@ -144,8 +147,8 @@ Public Class ClassImport_Windream
If oDYNAMIC_FOLDER <> String.Empty Then
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)
myLogger.Debug("After CREATE_FOLDER_INDEX - oWMTARGET_FOLDER: " & oWMTARGET_FOLDER)
myLogger.Debug("After CREATE_FOLDER_INDEX - CURRENT_VARIABLE_FOLDER: " & CURRENT_VARIABLE_FOLDER)
If oWMTARGET_FOLDER <> CURRENT_VARIABLE_FOLDER Then
If CURRENT_VARIABLE_FOLDER.StartsWith("\") Then
@@ -165,8 +168,8 @@ Public Class ClassImport_Windream
End If
End If
LOGGER.Debug("oWMTARGET_FOLDER: " & oWMTARGET_FOLDER)
LOGGER.Debug("CURRENT_SUBFOLDER: " & CURRENT_SUBFOLDER)
myLogger.Debug("oWMTARGET_FOLDER: " & oWMTARGET_FOLDER)
myLogger.Debug("CURRENT_SUBFOLDER: " & CURRENT_SUBFOLDER)
'Untsserordner ja oder nein
@@ -174,7 +177,7 @@ Public Class ClassImport_Windream
oWMTARGET_FOLDER = oWMTARGET_FOLDER & "\" & CURRENT_SUBFOLDER
End If
If oWMTARGET_FOLDER.Contains("/") Then
LOGGER.Info(String.Format("Targetpath contains /-sign. / will be replaced with _"))
myLogger.Info(String.Format("Targetpath contains /-sign. / will be replaced with _"))
oWMTARGET_FOLDER = oWMTARGET_FOLDER.Replace("/", "_")
End If
@@ -183,17 +186,17 @@ Public Class ClassImport_Windream
If WMMOD.TestFolderExists(oWMTARGET_FOLDER) = False Then
oWMTARGET_FOLDER = oWMTARGET_FOLDER.Replace("W:", "\\windream\objects")
oWMTARGET_FOLDER = WMMOD.GetNormalizedPath(oWMTARGET_FOLDER, 0)
LOGGER.Info(String.Format("Targetpath ({0}) is not existing or result of WD_PATH_EXISTS was false.", oWMTARGET_FOLDER.Substring(2)))
myLogger.Info(String.Format("Targetpath ({0}) is not existing or result of WD_PATH_EXISTS was false.", oWMTARGET_FOLDER.Substring(2)))
If WMMOD.NewFolder(oWMTARGET_FOLDER) = False Then
LOGGER.Warn(String.Format("Could not create folder-part: {0} - Complete path is: ({1})", oWMTARGET_FOLDER, oWMTARGET_FOLDER.Substring(2)))
myLogger.Warn(String.Format("Could not create folder-part: {0} - Complete path is: ({1})", oWMTARGET_FOLDER, oWMTARGET_FOLDER.Substring(2)))
Return False
End If
End If
Catch ex As Exception
If Not ex.Message.Contains("Filename exists!") Then
LOGGER.Warn(String.Format("Could not create folder ({0}): " & ex.Message, oWMTARGET_FOLDER))
myLogger.Warn(String.Format("Could not create folder ({0}): " & ex.Message, oWMTARGET_FOLDER))
Return False
End If
End Try
@@ -202,15 +205,15 @@ Public Class ClassImport_Windream
Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
'Namenkonvention laden
If IsDBNull(oNAME_CONVENTION) Then
LOGGER.Warn("Achtung: Namenskonvention is DBNull")
myLogger.Warn("Achtung: Namenskonvention is DBNull")
oNAME_CONVENTION = Path.GetFileNameWithoutExtension(CURRENT_FILENAME)
ElseIf oNAME_CONVENTION = String.Empty Then
LOGGER.Warn("Achtung: Namenskonvention is String empty")
myLogger.Warn("Achtung: Namenskonvention is String empty")
oNAME_CONVENTION = Path.GetFileNameWithoutExtension(CURRENT_FILENAME)
End If
'schonmal den gesamten Pfad laden
Dim oNewWM_Filename As String = oWMTARGET_FOLDER & "\" & oNAME_CONVENTION
LOGGER.Debug("oNewWM_Filename: " & oNewWM_Filename)
myLogger.Debug("oNewWM_Filename: " & oNewWM_Filename)
' einen Regulären Ausdruck laden
Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg)
@@ -220,7 +223,7 @@ Public Class ClassImport_Windream
' alle Vorkommen innerhalbd er Namenkonvention durchlaufen
For Each element As System.Text.RegularExpressions.Match In elemente
LOGGER.Debug("element in RegeX: " & element.Value)
myLogger.Debug("element in RegeX: " & element.Value)
Dim oSubstring = element.Value.Substring(2, 1).ToUpper
'%CTRL
Dim oSubstr = element.Value.Substring(2, 4)
@@ -247,7 +250,7 @@ Public Class ClassImport_Windream
If IsNumeric(INDEX_ID) Then
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!!")
myLogger.Debug("unexpected: sql_AUTOindexresult is nothing!!")
oPatternvalue = ""
Else
If IsDBNull(sql_AUTOindexresult) Then
@@ -256,8 +259,8 @@ Public Class ClassImport_Windream
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)
myLogger.Warn("ATTENTION: unexpected: AUTOindexresult is nothing!!")
myLogger.Warn("" & sql_AUTOindexresult)
oPatternvalue = ""
Else
If IsDBNull(AUTOindexresult) Then
@@ -270,16 +273,16 @@ Public Class ClassImport_Windream
End If
End If
Else
LOGGER.Warn("INDEX_ID is not numeric: " & INDEX_ID.ToString & "- APattern: " & APattern)
myLogger.Warn("INDEX_ID is not numeric: " & INDEX_ID.ToString & "- APattern: " & APattern)
oPatternvalue = ""
End If
Else
LOGGER.Warn("split.Length <> 2 - APattern: " & APattern)
myLogger.Warn("split.Length <> 2 - APattern: " & APattern)
oPatternvalue = ""
End If
ElseIf APattern.Contains("#") Then
LOGGER.Debug("element [" & APattern & "] filled with Record-Data...: ")
myLogger.Debug("element [" & APattern & "] filled with Record-Data...: ")
Dim split() As String = APattern.Split("#")
If split.Length = 2 Then
@@ -294,7 +297,7 @@ Public Class ClassImport_Windream
If oPatternvalue <> String.Empty Then
oNewWM_Filename = oNewWM_Filename.Replace(element.Value, oPatternvalue)
_NewFileString = oNewWM_Filename
LOGGER.Debug("Actual NEWFILESTRING: " & _NewFileString)
myLogger.Debug("Actual NEWFILESTRING: " & _NewFileString)
' sql_history_INSERT_INTO = sql_history_INSERT_INTO & ", INDEX" & AnzahlIndexe.ToString
AnzahlIndexe += 1
' sql_history_Index_Values = sql_history_Index_Values & ", '" & value & "'"
@@ -357,7 +360,7 @@ Public Class ClassImport_Windream
Case Else
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...: ")
myLogger.Debug("element [" & element.Value & "] with Control-Data...: ")
Dim split() As String = APattern.Split("#")
If split.Length = 2 Then
Dim CONTROL_ID = split(1)
@@ -370,7 +373,7 @@ Public Class ClassImport_Windream
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)
myLogger.Warn(msg)
MsgBox(msg, MsgBoxStyle.Exclamation, "Error in Name Convention:")
End If
@@ -383,13 +386,13 @@ Public Class ClassImport_Windream
'ungültige Zeichen entfernen
oNewWM_Filename = ClassHelper.CleanFilename(oNewWM_Filename, "")
If oNewWM_Filename.Contains("/") Then
LOGGER.Info(String.Format("DATEINAME contains /-sign. / will be replaced with _"))
myLogger.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)
myLogger.Warn(" - Error in Versioning file - Error: " & vbNewLine & ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in Versioning file:")
err = True
End Try
@@ -410,7 +413,7 @@ Public Class ClassImport_Windream
End If
Catch ex As Exception
LOGGER.Warn(" - Unexpected Error in FileName-Creating: " & vbNewLine & ex.Message)
myLogger.Warn(" - Unexpected Error in FileName-Creating: " & vbNewLine & ex.Message)
MsgBox(" - Unexpected Error in FileName-Creating: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try

View File

@@ -1,4 +1,5 @@
Imports System.IO
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Config
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging
@@ -221,13 +222,13 @@ Public Class ClassInit
oSql = "SELECT * FROM TBPMO_CONTROL"
CURRENT_TBPMO_CONTROL = MYDB_ECM.GetDatatable(oSql)
oSql = String.Format("SELECT * FROM TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE VISIBLE = 1")
oSql = "SELECT * FROM TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE VISIBLE = 1"
DT_DOCSEARCH_RESULTLIST_CONFIG = MYDB_ECM.GetDatatable(oSql)
oSql = String.Format("SELECT * FROM TBPMO_DOCSEARCH_VARIABLE_CONTROLS")
oSql = "SELECT * FROM TBPMO_DOCSEARCH_VARIABLE_CONTROLS"
CURRENT_VARIABLE_CONTROLS = MYDB_ECM.GetDatatable(oSql)
oSql = String.Format("SELECT * FROM TBPMO_FORM_VIEW")
oSql = "SELECT * FROM TBPMO_FORM_VIEW"
CURRENT_TBPMO_FORM_VIEW = MYDB_ECM.GetDatatable(oSql)
oSql = String.Format("select T.*, T1.HEADER_CAPTION,T1.TYPE_ID ,T1.ENTITY_ID,T1.LANGUAGE from TBPMO_DOCRESULT_DROPDOWN_ITEMS T, TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 WHERE T.CONFIG_ID = T1.GUID")
oSql = "select T.*, T1.HEADER_CAPTION,T1.TYPE_ID ,T1.ENTITY_ID,T1.LANGUAGE from TBPMO_DOCRESULT_DROPDOWN_ITEMS T, TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 WHERE T.CONFIG_ID = T1.GUID"
CURRENT_TBPMO_DOCRESULT_DROPDOWN_ITEMS = MYDB_ECM.GetDatatable(oSql)
'clsCURRENT.LOG_ERRORS_ONLY = DEBUG
@@ -245,6 +246,8 @@ Public Class ClassInit
End If
MYGDPICTURE_LICENSE_KEY = MYDB_ECM.GetGDPictureString()
FILESYSTEM = New FilesystemEx(LOGCONFIG)
Catch ex As Exception
LOGGER.Error(ex)

View File

@@ -86,9 +86,9 @@ Public Class ClassWDRights
If Not IsNothing(oSession) Then
LOGGER.Debug("Session created.")
Dim oSql = String.Format("SELECT * FROM [dbo].[FNPMO_GET_RIGHTS_FOR_DOC] ({0},{1}) where USER_OR_GROUP = 'USER'", doc_id, CURRENT_ENTITY_ID)
Dim oSql = String.Format("SELECT * FROM [dbo].[FNOF_GET_RIGHTS_FOR_DOC] ({0}) where USER_OR_GROUP = 'USER'", doc_id)
DT_USER_RIGHT = MYDB_ECM.GetDatatable(oSql)
oSql = String.Format("SELECT * FROM [dbo].[FNPMO_GET_RIGHTS_FOR_DOC] ({0},{1}) where USER_OR_GROUP = 'GROUP'", doc_id, CURRENT_ENTITY_ID)
oSql = String.Format("SELECT * FROM [dbo].[FNOF_GET_RIGHTS_FOR_DOC] ({0}) where USER_OR_GROUP = 'GROUP'", doc_id)
DT_GROUP_RIGHT = MYDB_ECM.GetDatatable(oSql)
If IsNothing(DT_USER_RIGHT) Then
Dim msg = "Error while receiving rights for DocID"