3.7.2 Optimierungen und Button Knoten hinzufügen

This commit is contained in:
Developer01
2026-03-16 09:49:12 +01:00
parent 570d1161f8
commit 3a44abf77b
26 changed files with 1051 additions and 4761 deletions

View File

@@ -7,46 +7,37 @@ Public Class ClassHelper
Private Shared BW_DocID As Integer
Private Shared BW_ParentID As Integer
Private Shared BW_Filename As String
Public Shared Function FORMAT_WM_PATH(WMpath As String)
Public Shared Function FORMAT_WM_PATH(WMpath As String) As String
Try
If Not IsNothing(WMpath) Then
Dim ochanged As Boolean = False
If WMpath.StartsWith("W:") Then
WMpath = WMpath.Replace("W:", WMPATH_PREFIX)
ochanged = True
ElseIf WMpath.StartsWith("\") Then
If WMpath.StartsWith(WMPATH_PREFIX) = False Then
WMpath = WMPATH_PREFIX & WMpath
ochanged = True
End If
End If
LOGGER.Debug("WMpath is: " & WMpath)
Return WMpath
Else
If IsNothing(WMpath) Then
Return Nothing
End If
Catch ex As Exception
Return WMpath
End Try
End Function
Public Shared Function GetRelPath(WMpath As String)
Try
If WMpath.StartsWith("W:") Then
WMpath = WMpath.Replace("W:", "")
ElseIf WMpath.StartsWith("\") Then
If WMpath.StartsWith(WMPATH_PREFIX) = False Then
WMpath = WMpath.Replace("WMPATH_PREFIX:", "")
End If
WMpath = WMpath.Replace("W:", WMPATH_PREFIX)
ElseIf WMpath.StartsWith("\") AndAlso Not WMpath.StartsWith(WMPATH_PREFIX) Then
WMpath = WMPATH_PREFIX & WMpath
End If
LOGGER.Debug("WMpath is: " & WMpath)
Return WMpath
Catch ex As Exception
Return WMpath
End Try
End Function
Public Shared Function GetRelPath(WMpath As String) As String
Try
If WMpath.StartsWith("W:") Then
WMpath = WMpath.Replace("W:", "")
ElseIf WMpath.StartsWith(WMPATH_PREFIX) Then
WMpath = WMpath.Replace(WMPATH_PREFIX, "")
End If
LOGGER.Debug("WMpath is: " & WMpath)
Return WMpath
Catch ex As Exception
Return WMpath
End Try
End Function
Public Shared Function Format_Currency(value As String, language As String)
Try
@@ -118,53 +109,28 @@ Public Class ClassHelper
End If
Return tempName
End Function
Public Shared Function CheckFileIsInUse(ByVal filename) As Boolean
Dim fs As Integer = FreeFile()
Dim inuse As Boolean = False
If File.Exists(filename) Then
Try
Using f As New IO.FileStream(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.None)
' thisFileInUse = False
End Using
Catch
inuse = True
End Try
Try
FileOpen(fs, filename, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.LockReadWrite)
Catch ex As Exception
LOGGER.Warn("File " & filename & " inuse or not able to open - message: " & ex.Message)
inuse = True
Finally
FileClose(fs)
End Try
End If
Return inuse
End Function
Public Shared Function Versionierung_Datei(Dateiname As String)
Dim extension
Dim _NewFileString
Public Shared Function Versionierung_Datei(pDateiname As String) As String
Try
Dim version As Integer = 1
pDateiname = FORMAT_WM_PATH(pDateiname)
Dim dir As String = Path.GetDirectoryName(pDateiname)
Dim baseName As String = Path.GetFileNameWithoutExtension(pDateiname)
Dim ext As String = Path.GetExtension(pDateiname)
Dim stammname As String = Path.Combine(dir, baseName)
Dim Stammname As String = Path.GetDirectoryName(Dateiname) & "\" & Path.GetFileNameWithoutExtension(Dateiname)
extension = Path.GetExtension(Dateiname)
Dim _neuername As String = Stammname
'Dim MoveFilename As String = DATEINAME.Replace(element.Value, "")
'Überprüfen ob File existiert
If File.Exists(_neuername & extension) = False Then
_NewFileString = _neuername
Else
Do While File.Exists(_neuername & extension)
version = version + 1
_neuername = Stammname & "~" & version
_NewFileString = _neuername
Loop
If Not File.Exists(pDateiname) Then
Return ""
End If
Return _NewFileString & extension
Dim version As Integer = 2
Dim candidate As String
Do
candidate = stammname & "~" & version & ext
version += 1
Loop While File.Exists(candidate)
Return candidate
Catch ex As Exception
LOGGER.Warn(" - Error in versioning file - error: " & vbNewLine & ex.Message)
LOGGER.Warn(" - Error in versioning file - error: " & vbCrLf & ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in versioning file:")
Return ""
End Try
@@ -209,12 +175,13 @@ Public Class ClassHelper
Return True
Else
MSGBOX_Handler("ERROR", "", "Sorry, but the docpath for doc-id: " & DocID & " is nothing!")
Return False
LOGGER.Debug("RESULT_DOC_PATH IS NOTHING")
Return False
End If
Catch ex As Exception
MsgBox("Unexpected Error in File_open:" & vbNewLine & ex.Message & vbNewLine & RESULT_DOC_PATH & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical)
LOGGER.Warn("Error in File_open: " & ex.Message & vbNewLine & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID)
MsgBox("Unexpected Error in File_open:" & vbCrLf & ex.Message & vbCrLf & RESULT_DOC_PATH & vbCrLf & "DocID: " & DocID, MsgBoxStyle.Critical)
LOGGER.Warn("Error in File_open: " & ex.Message & vbCrLf & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID)
Return False
End Try
End Function
@@ -228,8 +195,8 @@ Public Class ClassHelper
LOGGER.Debug("RESULT_DOC_PATH IS NOTHING")
End If
Catch ex As Exception
MsgBox("Unexpected Error in Open_Folder:" & vbNewLine & ex.Message & vbNewLine & RESULT_DOC_PATH & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical)
LOGGER.Warn("Error in Open_Folder: " & ex.Message & vbNewLine & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID)
MsgBox("Unexpected Error in Open_Folder:" & vbCrLf & ex.Message & vbCrLf & RESULT_DOC_PATH & vbCrLf & "DocID: " & DocID, MsgBoxStyle.Critical)
LOGGER.Warn("Error in Open_Folder: " & ex.Message & vbCrLf & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID)
End Try
End Sub
Private Shared Sub File_SYSOPEN(RESULT_DOC_PATH As Object, DocID As String, pParentID As Integer)
@@ -247,8 +214,8 @@ Public Class ClassHelper
LOGGER.Warn("File_SYSOPEN RESULT_DOC_PATH is nothing")
End If
Catch ex As Exception
MsgBox("Unexpected Error in File_SYSOPEN:" & vbNewLine & ex.Message & vbNewLine & RESULT_DOC_PATH & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical)
LOGGER.Warn("Error in File_SYSOPEN: " & ex.Message & vbNewLine & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID)
MsgBox("Unexpected Error in File_SYSOPEN:" & vbCrLf & ex.Message & vbCrLf & RESULT_DOC_PATH & vbCrLf & "DocID: " & DocID, MsgBoxStyle.Critical)
LOGGER.Warn("Error in File_SYSOPEN: " & ex.Message & vbCrLf & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID)
End Try
End Sub
@@ -313,15 +280,15 @@ Public Class ClassHelper
Catch ex As Exception
' Fehler im Prozessstart oder während des Wartens
LOGGER.Warn("Error in Process.Start(): " & ex.Message & vbNewLine & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
MsgBox("Error in OpenFile: " & ex.Message & vbNewLine &
"Path: " & BW_DocPath & vbNewLine & "DocID: " & BW_DocID,
LOGGER.Warn("Error in Process.Start(): " & ex.Message & vbCrLf & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
MsgBox("Error in OpenFile: " & ex.Message & vbCrLf &
"Path: " & BW_DocPath & vbCrLf & "DocID: " & BW_DocID,
MsgBoxStyle.Exclamation, "Open File Error")
End Try
Catch ex As Exception
' Fehler im gesamten Worker (z. B. Path nicht vorhanden)
LOGGER.Warn("General error in BWFileHandler_DoWork: " & ex.Message & vbNewLine &
LOGGER.Warn("General error in BWFileHandler_DoWork: " & ex.Message & vbCrLf &
" - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
' Letzter Versuch: Öffne mit Standardprogramm
@@ -329,7 +296,7 @@ Public Class ClassHelper
Process.Start(BW_DocPath)
LOGGER.Debug("Fallback: Document opened with default application.")
Catch ex1 As Exception
LOGGER.Warn("Fallback error in Process.Start(): " & ex1.Message & vbNewLine &
LOGGER.Warn("Fallback error in Process.Start(): " & ex1.Message & vbCrLf &
" - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
End Try
End Try
@@ -382,17 +349,17 @@ Public Class ClassHelper
' End If
' Catch ex As Exception
' LOGGER.Warn("Error in Process1.Start(): " & ex.Message & vbNewLine & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
' MsgBox("Error in OpenFile: " & ex.Message & vbNewLine & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID, MsgBoxStyle.Exclamation)
' LOGGER.Warn("Error in Process1.Start(): " & ex.Message & vBCrlf & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
' MsgBox("Error in OpenFile: " & ex.Message & vBCrlf & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID, MsgBoxStyle.Exclamation)
' Exit Sub
' End Try
' Catch ex As Exception
' LOGGER.Warn("Error in Process.Start(): " & ex.Message & vbNewLine & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
' LOGGER.Warn("Error in Process.Start(): " & ex.Message & vBCrlf & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
' Try
' Process.Start(BW_DocPath)
' Catch ex1 As Exception
' LOGGER.Warn("Error in Process.Start(1): " & ex1.Message & vbNewLine & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
' LOGGER.Warn("Error in Process.Start(1): " & ex1.Message & vBCrlf & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
' End Try
' End Try
'End Sub
@@ -407,14 +374,11 @@ Public Class ClassHelper
End If
End If
Catch ex As Exception
MsgBox("Unexpected Error in FOLDER_OPEN:" & vbNewLine & ex.Message & vbNewLine & PATH & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical)
LOGGER.Warn("Error in FOLDER_OPEN: " & ex.Message & vbNewLine & " - Path: " & PATH & " - DocID: " & DocID)
MsgBox("Unexpected Error in FOLDER_OPEN:" & vbCrLf & ex.Message & vbCrLf & PATH & vbCrLf & "DocID: " & DocID, MsgBoxStyle.Critical)
LOGGER.Warn("Error in FOLDER_OPEN: " & ex.Message & vbCrLf & " - Path: " & PATH & " - DocID: " & DocID)
End Try
End Sub
Shared Function Convert_Date_2_Form_Format(p1 As Date) As Date
Throw New NotImplementedException
End Function
Public Shared Function InsertEssential_Log(REFERENCE_KEY As Integer, REFERENCE_STRING As String, COMMENT As String)
Try
COMMENT = COMMENT.Replace("'", "")
@@ -449,7 +413,7 @@ Public Class ClassHelper
Public Shared Sub MSGBOX_Handler(type As String, Caption As String, info1 As String, Optional info2 As String = "")
Dim msg = info1
If info2 <> "" Then
msg &= vbNewLine & vbNewLine & info2
msg &= vbCrLf & vbCrLf & info2
End If
If type = "ERROR" Then
MessageBox.Show(msg, Caption, MessageBoxButtons.OK, MessageBoxIcon.Error)
@@ -495,6 +459,18 @@ Public Class ClassHelper
Return False
End Try
End Function
Public Shared Sub REMOVE_OLD_DROP_FILES()
Try
Dim oDEL = String.Format("UPDATE [DD_ECM].[dbo].[TBPMO_FILES_USER]
SET [USER_WORK] = [USER_WORK] + '_TIMEOUT',
WORKED = 1
WHERE ADDED_WHEN < DATEADD(MINUTE, -5, GETDATE())
AND WORKED = 0 AND USER_WORK = '{0}' ;", USER_USERNAME)
MYDB_ECM.ExecuteNonQuery(oDEL)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error while REMOVE_OLD_DROP_FILES")
End Try
End Sub
Public Shared Sub Create_USER_FILE_TABLE()
Try
Dim sql = String.Format("SELECT *, CONVERT(BIT,0) AS DELETE_FILE FROM TBPMO_FILES_USER WHERE (USER_WORK = '{0}') AND WORKED = 0", USER_USERNAME)
@@ -512,6 +488,15 @@ Public Class ClassHelper
Return False
End Try
End Function
Public Shared Function DELETE_PMO_FILE_USER_OPEN_FILES()
Try
Dim del As String = String.Format("DELETE FROM TBPMO_FILES_USER WHERE (USER_WORK = '{0}') AND WORKED = 0", USER_USERNAME)
Return MYDB_ECM.ExecuteNonQuery(del)
Catch ex As Exception
MsgBox("Unexpected Error in DELETE_PMO_FILE_USER_OPEN_FILES: " & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function DecryptString(ciphertext As String, MethodName As String)
Dim result As String
Dim wrapper As New ClassEncryption("!35452didalog=")
@@ -530,7 +515,6 @@ Public Class ClassHelper
Dim filteredData As DataTable = BaseDatatable.Clone()
'Einfügevariante
BaseDatatable.Select(expression, sortstring).CopyToDataTable(filteredData, LoadOption.PreserveChanges)
Console.WriteLine("Found {0} rows.", filteredData.Rows.Count)
'Dim filteredData = BaseDatatable.Select(expression).CopyToDataTable()
Return filteredData
Catch ex As Exception
@@ -551,27 +535,49 @@ Public Class ClassHelper
Public Shared Function Insert_USER_File(pFilename As String, handleType As String)
Try
Dim filename_only As String = Path.GetFileName(pFilename)
CURRENT_FILE_HASH = ""
Dim CURRENT_FILE_HASH = ""
If File.Exists(pFilename) Then
Dim oFileInfo As New FileInfo(pFilename)
LOGGER.Debug($"File exists: [{pFilename}] | Size: {oFileInfo.Length} bytes | Extension: {oFileInfo.Extension}")
If (pFilename.ToUpper.EndsWith(".MSG") Or pFilename.ToUpper.EndsWith(".EML")) And (handleType = "|OUTLOOK_MESSAGE|" Or handleType = "|MSGONLY|") Then
CURRENT_FILE_HASH = FILESYSTEM.GetChecksumFromString(pFilename)
LOGGER.Debug($"Hash method: GetChecksumFromString | Hash: [{CURRENT_FILE_HASH}]")
Else
CURRENT_FILE_HASH = FILESYSTEM.GetChecksum(pFilename)
LOGGER.Debug($"Hash method: GetChecksum | Hash: [{CURRENT_FILE_HASH}]")
End If
Else
LOGGER.Warn($"File does not exist: [{pFilename}] - Cannot compute hash.")
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"
Dim oSQL = $"SELECT Filename, 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 oFilename = oDTCHECK.Rows(0).Item(0)
Dim oUSER = oDTCHECK.Rows(0).Item(1)
Dim oADDED_WHEN = oDTCHECK.Rows(0).Item(2)
Dim oMSG As String
If USER_LANGUAGE <> "de-DE" Then
oMSG = $"This file has already been imported into orgFLOW!" & vbCrLf &
$"File: [{oFilename}]" & vbCrLf &
$"Imported on: {oADDED_WHEN}" & vbCrLf &
$"Imported by: {oUSER}" & vbCrLf &
$"Total imports with identical content: {oDTCHECK.Rows.Count}" & vbCrLf & vbCrLf &
"Do you want to import this file again?" & vbCrLf &
"NO → Teh complete Import will be cancelled."
Else
oMSG = $"Diese Datei wurde bereits in orgFLOW importiert!" & vbCrLf &
$"Datei: [{oFilename}]" & vbCrLf &
$"Importiert am: {oADDED_WHEN}" & vbCrLf &
$"Importiert von: {oUSER}" & vbCrLf &
$"Anzahl Importe mit identischem Inhalt: {oDTCHECK.Rows.Count}" & vbCrLf & vbCrLf &
"Möchten Sie die Datei dennoch erneut importieren?" & vbCrLf &
"NEIN → Der gesamte Import (alle folgenden) wird abgebrochen."
End If
Dim result As MsgBoxResult
result = MessageBox.Show(oMSG, CAPTION_CONFIRMATION, MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If result = MsgBoxResult.No Then
@@ -580,7 +586,7 @@ Public Class ClassHelper
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)
Dim ins As String = String.Format("INSERT INTO TBPMO_FILES_USER (FILENAME2WORK, USER_WORK,HANDLE_TYPE,FILENAME_ONLY,FILE_HASH) VALUES ('{0}','{1}','{2}','{3}','{4}')", pFilename, USER_USERNAME, handleType, filename_only, CURRENT_FILE_HASH)
Return MYDB_ECM.ExecuteNonQuery(ins)
Catch ex As Exception
MsgBox("Unexpected Error in Insert file for user (TBPMO_FILES_USER): " & ex.Message, MsgBoxStyle.Critical)