Zu testen bei ewa
This commit is contained in:
@@ -301,68 +301,7 @@ Public Class ClassHelper
|
||||
End Try
|
||||
End Try
|
||||
End Sub
|
||||
'Private Shared Sub BWFileHandler_DoWork()
|
||||
' Try
|
||||
' Dim oOverrideRunPath As String = ""
|
||||
' Dim oExtension = Path.GetExtension(BW_DocPath).ToLower
|
||||
' For Each oROW As DataRow In CURRENT_TBFILE_EXTENSION_OVERRIDE.Rows
|
||||
' If oExtension.Replace(".", "") = oROW.Item("FILE_EXTENSION") Then
|
||||
' LOGGER.Debug($"Specific fileextension override for extension [{oExtension}] found! ")
|
||||
' oOverrideRunPath = oROW.Item("PROCESS")
|
||||
' End If
|
||||
' Next
|
||||
' Dim oMyProcess = New Process()
|
||||
' Dim oSql
|
||||
' Try
|
||||
' '######
|
||||
' Dim startInfo As New ProcessStartInfo()
|
||||
' If oOverrideRunPath <> "" Then
|
||||
' startInfo.FileName = oOverrideRunPath
|
||||
' startInfo.Arguments = """" & BW_DocPath & """"
|
||||
' startInfo.UseShellExecute = True
|
||||
' startInfo.RedirectStandardOutput = False
|
||||
' Else
|
||||
' startInfo.FileName = BW_DocPath
|
||||
' startInfo.UseShellExecute = True
|
||||
' startInfo.RedirectStandardOutput = False
|
||||
' End If
|
||||
' '#####
|
||||
' oMyProcess.Start(startInfo)
|
||||
' Dim myViewerProcessID = oMyProcess.Id
|
||||
' oMyProcess.WaitForExit()
|
||||
' oExtension = Path.GetExtension(BW_DocPath).ToLower
|
||||
' LOGGER.Debug($"Checking oExtension [{oExtension}]...")
|
||||
' If FILE_FORMATS_CHANGE_DURING_EDIT.Contains(oExtension) Then
|
||||
' oSql = $"SELECT * FROM VWOF_DOCID_HANDLE WHERE dwParentID = {BW_ParentID} and [Filename] = '{BW_Filename}'"
|
||||
' Dim oDTNEWDoc As DataTable = MYDB_ECM.GetDatatable(oSql)
|
||||
|
||||
' If Not IsNothing(oDTNEWDoc) Then
|
||||
' If oDTNEWDoc.Rows.Count = 1 Then
|
||||
|
||||
' Dim oInsert = $"INSERT INTO TBPMO_DOC_ID_CHANGED (USER_ID,PROCESS_ID,VERSION_ID,OLD_DOC_ID,NEW_DOC_ID, DOC_PATH) VALUES (
|
||||
' {USER_GUID},'{myViewerProcessID.ToString}',{oDTNEWDoc.Rows(0).Item("dwVersionID")},{BW_DocID},{oDTNEWDoc.Rows(0).Item("NewDocID")}, '{BW_DocPath}')"
|
||||
' MYDB_ECM.ExecuteNonQuery(oInsert)
|
||||
' End If
|
||||
|
||||
|
||||
' End If
|
||||
' End If
|
||||
|
||||
' Catch ex As Exception
|
||||
' 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 & 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 & vBCrlf & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
|
||||
' End Try
|
||||
' End Try
|
||||
'End Sub
|
||||
Private Shared Sub FOLDER_OPEN(PATH As Object, DocID As String)
|
||||
Try
|
||||
If PATH <> Nothing Then
|
||||
@@ -461,12 +400,35 @@ Public Class ClassHelper
|
||||
End Function
|
||||
Public Shared Sub REMOVE_OLD_DROP_FILES()
|
||||
Try
|
||||
' ✅ NEU: Pre-Check - welche Dateien sind betroffen?
|
||||
Dim preCheckSQL = $"SELECT GUID, FILENAME_ONLY, ADDED_WHEN, DATEDIFF(MINUTE, ADDED_WHEN, GETDATE()) AS AGE_MINUTES " &
|
||||
$"FROM TBPMO_FILES_USER " &
|
||||
$"WHERE ADDED_WHEN < DATEADD(MINUTE, -15, GETDATE()) " &
|
||||
$"AND WORKED = 0 AND USER_WORK = '{USER_USERNAME}'"
|
||||
|
||||
Dim preCheckDT = MYDB_ECM.GetDatatable(preCheckSQL)
|
||||
|
||||
If preCheckDT IsNot Nothing AndAlso preCheckDT.Rows.Count > 0 Then
|
||||
LOGGER.Warn($"REMOVE_OLD_DROP_FILES: {preCheckDT.Rows.Count} Dateien werden als TIMEOUT markiert:")
|
||||
For Each row As DataRow In preCheckDT.Rows
|
||||
LOGGER.Warn($" - GUID={row("GUID")}, Datei={row("FILENAME_ONLY")}, Alter={row("AGE_MINUTES")} Minuten")
|
||||
Next
|
||||
Else
|
||||
LOGGER.Debug($"REMOVE_OLD_DROP_FILES: Keine Dateien älter als 15 Minuten (User: {USER_USERNAME})")
|
||||
End If
|
||||
|
||||
' ✅ Dann UPDATE
|
||||
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)
|
||||
SET [USER_WORK] = [USER_WORK] + '_TIMEOUT',
|
||||
WORKED = 1
|
||||
WHERE ADDED_WHEN < DATEADD(MINUTE, -15, GETDATE())
|
||||
AND WORKED = 0 AND USER_WORK = '{0}' ;", USER_USERNAME)
|
||||
|
||||
Dim rowsAffected = MYDB_ECM.ExecuteNonQuery(oDEL)
|
||||
|
||||
If rowsAffected > 0 Then
|
||||
LOGGER.Warn($"REMOVE_OLD_DROP_FILES: {rowsAffected} Dateien wurden als TIMEOUT markiert")
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error while REMOVE_OLD_DROP_FILES")
|
||||
End Try
|
||||
@@ -475,7 +437,19 @@ Public Class ClassHelper
|
||||
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)
|
||||
CURRENT_TBPMO_FILES_USER = MYDB_ECM.GetDatatable(sql)
|
||||
' ✅ NEU: Logging
|
||||
If CURRENT_TBPMO_FILES_USER Is Nothing Then
|
||||
LOGGER.Warn($"Create_USER_FILE_TABLE: GetDatatable gab Nothing zurück (User: {USER_USERNAME})")
|
||||
Else
|
||||
LOGGER.Debug($"Create_USER_FILE_TABLE: {CURRENT_TBPMO_FILES_USER.Rows.Count} Dateien geladen (User: {USER_USERNAME})")
|
||||
|
||||
' ✅ DEBUG: Zeige GUIDs der geladenen Dateien
|
||||
For Each row As DataRow In CURRENT_TBPMO_FILES_USER.Rows
|
||||
LOGGER.Debug($" - GUID={row("GUID")}, WORKED={row("WORKED")}, Datei={row("FILENAME2WORK")}")
|
||||
Next
|
||||
End If
|
||||
Catch ex As Exception
|
||||
LOGGER.Error($"Create_USER_FILE_TABLE Exception: {ex.Message}")
|
||||
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error while creating User_File_Table")
|
||||
End Try
|
||||
End Sub
|
||||
@@ -551,9 +525,11 @@ Public Class ClassHelper
|
||||
Else
|
||||
LOGGER.Warn($"File does not exist: [{pFilename}] - Cannot compute hash.")
|
||||
End If
|
||||
|
||||
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}]")
|
||||
@@ -561,34 +537,74 @@ Public Class ClassHelper
|
||||
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."
|
||||
$"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."
|
||||
$"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
|
||||
LOGGER.Info($"User wählte NEIN bei Hash-Duplikat-Check für [{filename_only}] - Import abgebrochen")
|
||||
Return False
|
||||
Else
|
||||
LOGGER.Info($"User wählte JA bei Hash-Duplikat-Check für [{filename_only}] - fahre fort")
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
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)
|
||||
' ✅ NEU: Pre-Check - gibt es bereits einen Eintrag mit diesem Hash?
|
||||
Dim preCheckSQL = $"SELECT GUID, USER_WORK, WORKED FROM TBPMO_FILES_USER WHERE FILE_HASH = '{CURRENT_FILE_HASH}' AND USER_WORK = '{USER_USERNAME}'"
|
||||
Dim preCheckDT = MYDB_ECM.GetDatatable(preCheckSQL)
|
||||
|
||||
If preCheckDT IsNot Nothing AndAlso preCheckDT.Rows.Count > 0 Then
|
||||
LOGGER.Warn($"WARNUNG: Datei mit Hash [{CURRENT_FILE_HASH}] bereits in TBPMO_FILES_USER vorhanden:")
|
||||
For Each row As DataRow In preCheckDT.Rows
|
||||
LOGGER.Warn($" - GUID={row("GUID")}, USER_WORK={row("USER_WORK")}, WORKED={row("WORKED")}")
|
||||
Next
|
||||
End If
|
||||
|
||||
' ✅ INSERT mit explizitem Logging
|
||||
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)
|
||||
|
||||
LOGGER.Debug($"Führe INSERT aus: [{ins}]")
|
||||
Dim insertResult = MYDB_ECM.ExecuteNonQuery(ins)
|
||||
|
||||
If insertResult Then
|
||||
' ✅ VERIFY - wurde wirklich eingefügt?
|
||||
Dim verifySQL = $"SELECT TOP 1 GUID, ADDED_WHEN FROM TBPMO_FILES_USER WHERE FILE_HASH = '{CURRENT_FILE_HASH}' AND USER_WORK = '{USER_USERNAME}' ORDER BY GUID DESC"
|
||||
Dim verifyDT = MYDB_ECM.GetDatatable(verifySQL)
|
||||
|
||||
If verifyDT IsNot Nothing AndAlso verifyDT.Rows.Count > 0 Then
|
||||
Dim insertedGUID = verifyDT.Rows(0)("GUID")
|
||||
Dim insertedADDED_WHEN = verifyDT.Rows(0)("ADDED_WHEN")
|
||||
LOGGER.Info($"INSERT ERFOLGREICH: GUID={insertedGUID}, ADDED_WHEN={insertedADDED_WHEN}, Datei=[{filename_only}]")
|
||||
Else
|
||||
LOGGER.Error($"INSERT fehlgeschlagen (VERIFY)! Datei=[{filename_only}], Hash=[{CURRENT_FILE_HASH}]")
|
||||
End If
|
||||
Else
|
||||
LOGGER.Error($"INSERT fehlgeschlagen (ExecuteNonQuery)! Datei=[{filename_only}]")
|
||||
End If
|
||||
|
||||
Return insertResult
|
||||
|
||||
Catch ex As Exception
|
||||
LOGGER.Error($"Insert_USER_File Exception: {ex.Message}")
|
||||
MsgBox("Unexpected Error in Insert file for user (TBPMO_FILES_USER): " & ex.Message, MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End Try
|
||||
|
||||
Reference in New Issue
Block a user