From df3f8167fe24371f1e8a7a7200f060dd8525b865 Mon Sep 17 00:00:00 2001 From: Developer01 Date: Fri, 24 Apr 2026 11:15:09 +0200 Subject: [PATCH] =?UTF-8?q?Automatisches=20Mappen=20und=20Arbeiten=20mit?= =?UTF-8?q?=20Tempor=C3=A4rem=20Verzeichnis=20ConnectionID=20sicher=20auf?= =?UTF-8?q?=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/TaskFlow/ClassAllgemeineFunktionen.vb | 515 ++++++++ app/TaskFlow/ClassDocumentPathHandler.vb | 311 +++++ app/TaskFlow/ClassInit.vb | 8 + app/TaskFlow/ClassParamRefresh.vb | 28 +- app/TaskFlow/ModuleMySettings.vb | 3 + app/TaskFlow/ModuleRuntimeVariables.vb | 5 + app/TaskFlow/frmAnnotations.vb | 2 +- app/TaskFlow/frmValidator.vb | 400 ++++-- app/TaskFlow/frmValidatorSearch.vb | 31 +- app/TaskFlow/logtaskflow.txt | 1364 +++++++++++++++++++++ app/TaskFlow/taskFLOW.vbproj | 2 + 11 files changed, 2552 insertions(+), 117 deletions(-) create mode 100644 app/TaskFlow/ClassDocumentPathHandler.vb create mode 100644 app/TaskFlow/logtaskflow.txt diff --git a/app/TaskFlow/ClassAllgemeineFunktionen.vb b/app/TaskFlow/ClassAllgemeineFunktionen.vb index e9d3978..a998a1d 100644 --- a/app/TaskFlow/ClassAllgemeineFunktionen.vb +++ b/app/TaskFlow/ClassAllgemeineFunktionen.vb @@ -3,6 +3,7 @@ Imports System.Data.OracleClient Imports System.IO Imports WINDREAMLib Imports DevExpress.Utils.CommonDialogs +Imports System.Runtime.InteropServices Public Class ClassAllgemeineFunktionen Public Shared Function GUI_LANGUAGE_INFO(pTITLE As String) @@ -417,4 +418,518 @@ Public Class ClassAllgemeineFunktionen ' Ergebnis zurückgeben Return b64 End Function +#Region "Windows API Deklarationen" + + Private Shared Function WNetAddConnection2(ByRef lpNetResource As NETRESOURCE, + ByVal lpPassword As String, + ByVal lpUsername As String, + ByVal dwFlags As Integer) As Integer + End Function + + + Private Shared Function WNetCancelConnection2(ByVal lpName As String, + ByVal dwFlags As Integer, + ByVal fForce As Boolean) As Integer + End Function + + + Private Structure NETRESOURCE + Public dwScope As Integer + Public dwType As Integer + Public dwDisplayType As Integer + Public dwUsage As Integer + Public lpLocalName As String + Public lpRemoteName As String + Public lpComment As String + Public lpProvider As String + End Structure + + Private Const RESOURCETYPE_DISK As Integer = 1 + Private Const CONNECT_UPDATE_PROFILE As Integer = 1 + Private Const ERROR_SUCCESS As Integer = 0 + Private Const ERROR_ALREADY_ASSIGNED As Integer = 85 +#End Region + + ''' + ''' Struktur für Netzlaufwerk-Informationen + ''' + Public Structure NetworkDriveInfo + Public DriveLetter As String + Public NetworkPath As String + Public DriveType As IO.DriveType + Public IsReady As Boolean + Public TotalSize As Long + Public FreeSpace As Long + End Structure + + ''' + ''' Ermittelt den nächsten freien Laufwerksbuchstaben (alphabetisch absteigend von Z bis A) + ''' + ''' Liste der nicht erlaubten Laufwerksbuchstaben (z.B. "Y,M,V") + ''' Nächster freier Laufwerksbuchstabe mit Doppelpunkt (z.B. "Z:") oder String.Empty wenn keiner frei + Public Shared Function GetNextFreeDriveLetter(Optional blacklist As String = "") As String + Try + ' Blacklist verarbeiten (Großbuchstaben ohne Doppelpunkte) + Dim blacklistArray As New List(Of Char) + If Not String.IsNullOrEmpty(blacklist) Then + For Each item In blacklist.Split(","c) + Dim letter = item.Trim().ToUpper().Replace(":", "") + If letter.Length = 1 AndAlso Char.IsLetter(letter(0)) Then + blacklistArray.Add(letter(0)) + End If + Next + End If + + ' Alle aktuell verwendeten Laufwerksbuchstaben ermitteln + Dim usedDrives As New List(Of Char) + For Each drive As IO.DriveInfo In IO.DriveInfo.GetDrives() + Dim letter As Char = drive.Name(0) + usedDrives.Add(Char.ToUpper(letter)) + Next + + ' Alphabetisch absteigend von Z bis A durchgehen + For i As Integer = Asc("Z"c) To Asc("A"c) Step -1 + Dim currentLetter As Char = Chr(i) + + ' Prüfen ob Buchstabe verfügbar ist + If Not usedDrives.Contains(currentLetter) AndAlso Not blacklistArray.Contains(currentLetter) Then + LOGGER.Debug($"Nächster freier Laufwerksbuchstabe gefunden: {currentLetter}:") + Return currentLetter & ":" + End If + Next + + LOGGER.Warn("Kein freier Laufwerksbuchstabe gefunden!") + Return String.Empty + + Catch ex As Exception + LOGGER.Error($"Fehler beim Ermitteln des nächsten freien Laufwerksbuchstabens: {ex.Message}") + LOGGER.Error(ex) + Return String.Empty + End Try + End Function + + ''' + ''' Prüft ob ein Laufwerksbuchstabe verfügbar ist (nicht verwendet und nicht in Blacklist) + ''' + ''' Zu prüfender Laufwerksbuchstabe + ''' Liste der nicht erlaubten Laufwerksbuchstaben + ''' True wenn verfügbar, False wenn bereits verwendet oder in Blacklist + Public Shared Function IsDriveLetterAvailable(driveLetter As String, Optional blacklist As String = "") As Boolean + Try + ' Formatierung sicherstellen + driveLetter = driveLetter.Trim().ToUpper().Replace(":", "") + If driveLetter.Length <> 1 OrElse Not Char.IsLetter(driveLetter(0)) Then + LOGGER.Warn($"Ungültiger Laufwerksbuchstabe: {driveLetter}") + Return False + End If + + Dim letter As Char = driveLetter(0) + + ' Blacklist prüfen + If Not String.IsNullOrEmpty(blacklist) Then + For Each item In blacklist.Split(","c) + Dim blacklistedLetter = item.Trim().ToUpper().Replace(":", "") + If blacklistedLetter.Length = 1 AndAlso blacklistedLetter(0) = letter Then + LOGGER.Debug($"Laufwerk {letter}: ist in der Blacklist") + Return False + End If + Next + End If + + ' Prüfen ob bereits verwendet + For Each drive As IO.DriveInfo In IO.DriveInfo.GetDrives() + If Char.ToUpper(drive.Name(0)) = letter Then + LOGGER.Debug($"Laufwerk {letter}: ist bereits verwendet") + Return False + End If + Next + + Return True + + Catch ex As Exception + LOGGER.Error($"Fehler beim Prüfen der Laufwerksverfügbarkeit: {ex.Message}") + LOGGER.Error(ex) + Return False + End Try + End Function + + ''' + ''' Mappt ein Netzlaufwerk mit automatischer Laufwerksbuchstabenwahl oder spezifischem Buchstaben + ''' + ''' Gewünschter Laufwerksbuchstabe (leer = automatisch den nächsten freien wählen) + ''' UNC-Pfad des Netzwerkshares + ''' Komma-getrennte Liste verbotener Laufwerksbuchstaben (z.B. "Y,M,V") + ''' Optionaler Benutzername für Authentifizierung + ''' Optionales Passwort für Authentifizierung + ''' Soll das Mapping persistent sein? + ''' Verwendeter Laufwerksbuchstabe bei Erfolg, String.Empty bei Fehler + Public Shared Function MapNetworkDrive(driveLetter As String, + networkPath As String, + Optional blacklist As String = "", + Optional userName As String = Nothing, + Optional password As String = Nothing, + Optional persistent As Boolean = True) As String + Try + Dim targetDriveLetter As String = "" + + ' Szenario 1: Kein Laufwerksbuchstabe angegeben -> Automatische Auswahl + If String.IsNullOrEmpty(driveLetter) Then + LOGGER.Info("Kein Laufwerksbuchstabe angegeben - suche nächsten freien Buchstaben...") + targetDriveLetter = GetNextFreeDriveLetter(blacklist) + + If String.IsNullOrEmpty(targetDriveLetter) Then + LOGGER.Error("Kein freier Laufwerksbuchstabe verfügbar!") + Return String.Empty + End If + + LOGGER.Info($"Automatisch gewählter Laufwerksbuchstabe: {targetDriveLetter}") + Else + ' Szenario 2: Spezifischer Laufwerksbuchstabe angegeben + targetDriveLetter = driveLetter.Trim().ToUpper() + If Not targetDriveLetter.EndsWith(":") Then + targetDriveLetter &= ":" + End If + + ' Prüfen ob Laufwerk verfügbar ist + If Not IsDriveLetterAvailable(targetDriveLetter, blacklist) Then + LOGGER.Error($"Laufwerk {targetDriveLetter} ist nicht verfügbar (bereits verwendet oder in Blacklist)") + Return String.Empty + End If + End If + + ' Laufwerk mappen + If MapNetworkDriveInternal(targetDriveLetter, networkPath, userName, password, persistent) Then + LOGGER.Info($"✓ Netzlaufwerk {targetDriveLetter} erfolgreich gemappt zu {networkPath}") + Return targetDriveLetter + Else + LOGGER.Error($"✗ Fehler beim Mappen von {targetDriveLetter}") + Return String.Empty + End If + + Catch ex As Exception + LOGGER.Error($"Fehler in MapNetworkDrive: {ex.Message}") + LOGGER.Error(ex) + Return String.Empty + End Try + End Function + + ''' + ''' Interne Methode zum tatsächlichen Mappen eines Netzlaufwerks + ''' + Private Shared Function MapNetworkDriveInternal(driveLetter As String, + networkPath As String, + userName As String, + password As String, + persistent As Boolean) As Boolean + Try + ' Erst trennen falls vorhanden (ohne Fehler wenn nicht vorhanden) + DisconnectNetworkDrive(driveLetter, True) + + ' NETRESOURCE-Struktur vorbereiten + Dim netResource As New NETRESOURCE With { + .dwType = RESOURCETYPE_DISK, + .lpLocalName = driveLetter, + .lpRemoteName = networkPath + } + + Dim flags As Integer = If(persistent, CONNECT_UPDATE_PROFILE, 0) + + ' WICHTIG: Credentials als Nothing übergeben = Verwende aktuelle Windows-Credentials + ' Wenn der Share öffentlich oder mit aktuellen Credentials erreichbar ist, funktioniert es + Dim result As Integer = WNetAddConnection2(netResource, password, userName, flags) + + Select Case result + Case ERROR_SUCCESS + LOGGER.Debug($"✓ Laufwerk {driveLetter} erfolgreich gemappt") + Return True + + Case 1326 ' ERROR_LOGON_FAILURE + LOGGER.Error($"❌ Authentifizierungsfehler (1326): Anmeldung fehlgeschlagen für [{networkPath}]") + LOGGER.Error($" → Der UNC-Pfad erfordert möglicherweise spezielle Credentials") + LOGGER.Error($" → Oder der aktuelle Benutzer hat keine Berechtigung") + Return False + + Case 53 ' ERROR_BAD_NETPATH + LOGGER.Error($"❌ Netzwerkpfad nicht gefunden (53): [{networkPath}]") + Return False + + Case 67 ' ERROR_BAD_NET_NAME + LOGGER.Error($"❌ Netzwerkname ungültig (67): [{networkPath}]") + Return False + + Case 85 ' ERROR_ALREADY_ASSIGNED + LOGGER.Warn($"⚠️ Laufwerk {driveLetter} ist bereits zugewiesen (85)") + ' Versuche es zu trennen und erneut zu verbinden + DisconnectNetworkDrive(driveLetter, force:=True) + System.Threading.Thread.Sleep(500) ' Kurze Pause + result = WNetAddConnection2(netResource, password, userName, flags) + If result = ERROR_SUCCESS Then + LOGGER.Info($"✓ Laufwerk {driveLetter} nach erneutem Versuch erfolgreich gemappt") + Return True + Else + Return False + End If + + Case Else + LOGGER.Error($"❌ WNetAddConnection2 Error Code: {result}") + Return False + End Select + + Catch ex As Exception + LOGGER.Error($"Fehler in MapNetworkDriveInternal: {ex.Message}") + LOGGER.Error(ex) + Return False + End Try + End Function + ''' + ''' Test-Funktion um UNC-Pfad-Zugriff zu prüfen + ''' + Public Shared Function TestUNCAccess(uncPath As String) As Boolean + Try + LOGGER.Info($"🔍 Teste Zugriff auf UNC-Pfad: [{uncPath}]") + + ' Teste ob Pfad existiert und erreichbar ist + If System.IO.Directory.Exists(uncPath) Then + LOGGER.Info($"✓ UNC-Pfad ist direkt erreichbar ohne Mapping") + + ' Teste Lese-Berechtigung + Try + Dim files = System.IO.Directory.GetFiles(uncPath) + LOGGER.Info($"✓ Lese-Berechtigung vorhanden ({files.Length} Dateien gefunden)") + Return True + Catch permEx As UnauthorizedAccessException + LOGGER.Error($"❌ Keine Lese-Berechtigung: {permEx.Message}") + Return False + End Try + Else + LOGGER.Error($"❌ UNC-Pfad nicht erreichbar oder existiert nicht") + Return False + End If + + Catch ex As Exception + LOGGER.Error($"❌ Fehler beim Testen des UNC-Zugriffs: {ex.Message}") + LOGGER.Error(ex) + Return False + End Try + End Function + ''' + ''' Trennt ein Netzlaufwerk mit Windows-API + ''' + Public Shared Function DisconnectNetworkDrive(driveLetter As String, Optional force As Boolean = True) As Boolean + Try + ' Formatierung sicherstellen + driveLetter = driveLetter.Trim().ToUpper() + If Not driveLetter.EndsWith(":") Then + driveLetter &= ":" + End If + + Dim flags As Integer = CONNECT_UPDATE_PROFILE + Dim result As Integer = WNetCancelConnection2(driveLetter, flags, force) + + If result = ERROR_SUCCESS Then + LOGGER.Debug($"Netzlaufwerk {driveLetter} erfolgreich getrennt") + Return True + ElseIf result = ERROR_ALREADY_ASSIGNED Then + LOGGER.Debug($"Netzlaufwerk {driveLetter} war nicht verbunden") + Return True + Else + LOGGER.Warn($"Warnung beim Trennen von {driveLetter}: Error Code {result}") + Return False + End If + + Catch ex As Exception + LOGGER.Debug($"Fehler beim Trennen von {driveLetter} (ignoriert): {ex.Message}") + Return False + End Try + End Function + + ''' + ''' Ermittelt alle gemappten Netzlaufwerke + ''' + Public Shared Function GetMappedNetworkDrives() As List(Of NetworkDriveInfo) + Dim mappedDrives As New List(Of NetworkDriveInfo) + + Try + For Each drive As IO.DriveInfo In IO.DriveInfo.GetDrives() + If drive.DriveType = IO.DriveType.Network Then + Dim driveInfo As New NetworkDriveInfo With { + .DriveLetter = drive.Name, + .NetworkPath = GetNetworkPath(drive.Name), + .DriveType = drive.DriveType, + .IsReady = drive.IsReady + } + + If drive.IsReady Then + Try + driveInfo.TotalSize = drive.TotalSize + driveInfo.FreeSpace = drive.AvailableFreeSpace + Catch ex As Exception + LOGGER.Debug($"Konnte Größeninformationen für {drive.Name} nicht ermitteln: {ex.Message}") + End Try + End If + + mappedDrives.Add(driveInfo) + End If + Next + + LOGGER.Debug($"Insgesamt {mappedDrives.Count} Netzlaufwerk(e) gefunden") + Return mappedDrives + + Catch ex As Exception + LOGGER.Error($"Fehler beim Ermitteln der Netzlaufwerke: {ex.Message}") + LOGGER.Error(ex) + Return mappedDrives + End Try + End Function + + ''' + ''' Ermittelt den UNC-Pfad eines gemappten Laufwerks + ''' + Public Shared Function GetNetworkPath(driveLetter As String) As String + Try + driveLetter = driveLetter.Trim().ToUpper() + If Not driveLetter.EndsWith(":") Then + driveLetter &= ":" + End If + + Dim network As Object = CreateObject("WScript.Network") + Dim enumDrives As Object = network.EnumNetworkDrives() + + For i As Integer = 0 To enumDrives.Count - 1 Step 2 + If enumDrives.Item(i).ToString.Equals(driveLetter, StringComparison.OrdinalIgnoreCase) Then + Return enumDrives.Item(i + 1).ToString() + End If + Next + + Return String.Empty + + Catch ex As Exception + LOGGER.Debug($"Fehler beim Ermitteln des Netzwerkpfads für {driveLetter}: {ex.Message}") + Return String.Empty + End Try + End Function + + ''' + ''' Prüft ob ein bestimmtes Laufwerk als Netzlaufwerk gemappt ist + ''' + Public Shared Function IsDriveMapped(driveLetter As String) As Boolean + Try + driveLetter = driveLetter.Trim().ToUpper() + If Not driveLetter.EndsWith(":") Then + driveLetter &= ":" + End If + If Not driveLetter.EndsWith("\") Then + driveLetter &= "\" + End If + + Dim driveInfo As New IO.DriveInfo(driveLetter) + Return driveInfo.DriveType = IO.DriveType.Network AndAlso driveInfo.IsReady + + Catch ex As Exception + Return False + End Try + End Function + + ''' + ''' Gibt eine formatierte Übersicht aller gemappten Netzlaufwerke zurück + ''' + Public Shared Function GetMappedDrivesInfo() As String + Dim result As New System.Text.StringBuilder() + Dim drives = GetMappedNetworkDrives() + + If drives.Count = 0 Then + Return "Keine Netzlaufwerke gefunden." + End If + + result.AppendLine($"Gemappte Netzlaufwerke ({drives.Count}):") + result.AppendLine(New String("-"c, 60)) + + For Each drive In drives + result.AppendLine($"Laufwerk: {drive.DriveLetter}") + result.AppendLine($" Pfad: {drive.NetworkPath}") + result.AppendLine($" Status: {If(drive.IsReady, "Verfügbar", "Nicht verfügbar")}") + + If drive.IsReady AndAlso drive.TotalSize > 0 Then + Dim totalGB As Double = drive.TotalSize / (1024.0 ^ 3) + Dim freeGB As Double = drive.FreeSpace / (1024.0 ^ 3) + result.AppendLine($" Größe: {totalGB:N2} GB (Frei: {freeGB:N2} GB)") + End If + + result.AppendLine() + Next + + Return result.ToString() + End Function + ''' + ''' Mappt ein spezifisches Laufwerk (z.B. "V") mit Blacklist-Prüfung + ''' + Public Function MapSpecificDrive(driveLetter As String, blacklist As String, networkPath As String) As Boolean + Try + ' Formatierung sicherstellen + driveLetter = driveLetter.Trim().ToUpper().Replace(":", "") + + If String.IsNullOrEmpty(driveLetter) OrElse driveLetter.Length <> 1 Then + LOGGER.Warn($"⚠️ Ungültiger Laufwerksbuchstabe: [{driveLetter}]") + Return False + End If + + Dim driveWithColon As String = driveLetter & ":" + + ' Prüfen ob Laufwerk verfügbar ist + If Not IsDriveLetterAvailable(driveWithColon, blacklist) Then + LOGGER.Warn($"⚠️ Laufwerk {driveWithColon} ist nicht verfügbar (bereits verwendet oder in Blacklist)") + Return False + End If + + ' UNC-Pfad vorbereiten (ohne abschließenden Backslash) + Dim uncPath As String = networkPath.TrimEnd("\"c) + + ' Laufwerk mappen (OHNE Credentials, persistent=False für temporäres Mapping) + Dim result = MapNetworkDrive(driveWithColon, uncPath, blacklist, userName:=Nothing, password:=Nothing, persistent:=False) + + If Not String.IsNullOrEmpty(result) Then + LOGGER.Debug($"✓ Laufwerk {driveWithColon} erfolgreich gemappt zu [{uncPath}]") + Return True + Else + LOGGER.Error($"❌ Fehler beim Mappen von {driveWithColon}") + Return False + End If + + Catch ex As Exception + LOGGER.Error($"Fehler in MapSpecificDrive: {ex.Message}") + LOGGER.Error(ex) + Return False + End Try + End Function + + ''' + ''' Mappt automatisch den nächsten freien Laufwerksbuchstaben (Z→A) + ''' + Public Function MapDriveAutomatic(blacklist As String, networkPath As String) As String + Try + ' UNC-Pfad vorbereiten (ohne abschließenden Backslash) + Dim uncPath As String = networkPath.TrimEnd("\"c) + + LOGGER.Debug($"🔍 Suche automatisch freien Laufwerksbuchstaben...") + LOGGER.Debug($" Blacklist: [{blacklist}]") + LOGGER.Debug($" Netzwerkpfad: [{uncPath}]") + + ' Automatisches Mapping (leer = automatische Auswahl, persistent=False) + Dim result = MapNetworkDrive("", uncPath, blacklist, userName:=Nothing, password:=Nothing, persistent:=False) + + If Not String.IsNullOrEmpty(result) Then + LOGGER.Debug($"✓ Automatisch gewähltes Laufwerk: {result}") + Return result + Else + LOGGER.Error($"❌ Kein freier Laufwerksbuchstabe verfügbar") + Return String.Empty + End If + + Catch ex As Exception + LOGGER.Error($"Fehler in MapDriveAutomatic: {ex.Message}") + LOGGER.Error(ex) + Return String.Empty + End Try + End Function + End Class diff --git a/app/TaskFlow/ClassDocumentPathHandler.vb b/app/TaskFlow/ClassDocumentPathHandler.vb new file mode 100644 index 0000000..e852b76 --- /dev/null +++ b/app/TaskFlow/ClassDocumentPathHandler.vb @@ -0,0 +1,311 @@ +Imports System.IO +Imports DigitalData.Modules.Logging +''' +''' Zentrale Klasse für Dokumentenpfad-Verwaltung mit optionalem Laufwerks-Mapping und Temp-Kopie +''' +Public Class ClassDocumentPathHandler + + Private ReadOnly _logger As Logger + Private _mappedDrive As String = "" + + ''' + ''' Initialisiert den DocumentPathHandler + ''' + ''' Logger-Instanz + Public Sub New(logger As Logger) + _logger = logger + End Sub + + ''' + ''' Verarbeitet einen Dokumentenpfad: Optional Mapping, dann Temp-Kopie + ''' + ''' Quell-Pfad der Datei (UNC oder lokal) + ''' Optionen für die Verarbeitung + ''' DocumentPathResult mit finalem Pfad und Mapping-Info + Public Function ProcessDocumentPath(sourcePath As String, options As DocumentPathOptions) As DocumentPathResult + Dim result As New DocumentPathResult With { + .SourcePath = sourcePath, + .FinalPath = sourcePath, + .Success = False, + .WasMapped = False, + .WasCopiedToTemp = False + } + + Try + ' Validierung + If String.IsNullOrEmpty(sourcePath) Then + result.ErrorMessage = "Quell-Pfad ist leer" + _logger.Error("❌ ProcessDocumentPath: Quell-Pfad ist leer") + Return result + End If + + Dim workingPath As String = sourcePath + + ' ========== SCHRITT 1: OPTIONALES LAUFWERKS-MAPPING ========== + If options.EnableMapping AndAlso Not String.IsNullOrEmpty(options.WMSuffix) Then + Dim mappingResult = TryMapNetworkDrive(sourcePath, options) + If mappingResult.Success Then + workingPath = mappingResult.MappedPath + _mappedDrive = mappingResult.DriveLetter + result.WasMapped = True + result.MappedDrive = _mappedDrive + _logger.Info($"✓ Laufwerk gemappt: {_mappedDrive}") + Else + _logger.Warn("⚠️ Laufwerks-Mapping fehlgeschlagen - verwende Original-UNC-Pfad") + workingPath = sourcePath + End If + End If + + ' ========== SCHRITT 2: PRÜFEN OB DATEI EXISTIERT ========== + If Not File.Exists(workingPath) Then + result.ErrorMessage = $"Datei nicht gefunden: [{workingPath}]" + _logger.Error($"❌ {result.ErrorMessage}") + + ' Cleanup bei Fehler + If result.WasMapped Then + UnmapDrive() + End If + + Return result + End If + + ' ========== SCHRITT 3: OPTIONALE TEMP-KOPIE ========== + If options.CopyToTemp Then + Dim tempResult = CopyToTempFolder(workingPath, options.TempFolder) + If tempResult.Success Then + result.FinalPath = tempResult.TempPath + result.WasCopiedToTemp = True + result.TempPath = tempResult.TempPath + _logger.Info($"✓ Datei in Temp kopiert: [{Path.GetFileName(tempResult.TempPath)}]") + + ' Laufwerk unmappen nach erfolgreicher Kopie + If result.WasMapped AndAlso options.UnmapAfterCopy Then + UnmapDrive() + result.WasMapped = False ' Wurde bereits getrennt + End If + Else + _logger.Warn($"⚠️ Temp-Kopie fehlgeschlagen: {tempResult.ErrorMessage}") + result.FinalPath = workingPath + + ' Cleanup bei Fehler + If result.WasMapped Then + UnmapDrive() + End If + End If + Else + result.FinalPath = workingPath + _logger.Debug($"📄 Verwende Pfad ohne Temp-Kopie: [{workingPath}]") + End If + + result.Success = True + Return result + + Catch ex As Exception + result.ErrorMessage = $"Unerwarteter Fehler: {ex.Message}" + _logger.Error($"❌ ProcessDocumentPath: {ex.Message}") + _logger.Error(ex) + + ' Cleanup bei Exception + If result.WasMapped Then + UnmapDrive() + End If + + Return result + End Try + End Function + + ''' + ''' Versucht ein Netzlaufwerk zu mappen + ''' + Private Function TryMapNetworkDrive(sourcePath As String, options As DocumentPathOptions) As MappingResult + Dim result As New MappingResult With {.Success = False} + + Try + ' Prüfen ob Pfad mit WMSUFFIX beginnt + If Not sourcePath.StartsWith(options.WMSuffix, StringComparison.OrdinalIgnoreCase) Then + _logger.Debug($"📄 Pfad beginnt nicht mit WMSUFFIX - kein Mapping erforderlich") + Return result + End If + + _logger.Debug($"📂 WMSUFFIX erkannt - starte Laufwerks-Mapping") + + ' Laufwerk mappen + Dim mappedDrive As String = "" + Dim allgFunk As New ClassAllgemeineFunktionen() + + If Not String.IsNullOrEmpty(options.SpecificDrive) AndAlso options.SpecificDrive.Length = 1 Then + ' Spezifisches Laufwerk + If allgFunk.MapSpecificDrive(options.SpecificDrive, options.DriveBlacklist, options.WMSuffix) Then + mappedDrive = options.SpecificDrive & ":" + End If + Else + ' Automatisches Mapping + mappedDrive = allgFunk.MapDriveAutomatic(options.DriveBlacklist, options.WMSuffix) + End If + + If String.IsNullOrEmpty(mappedDrive) Then + _logger.Warn("⚠️ Kein Laufwerk gemappt") + Return result + End If + + ' Pfad umschreiben + Dim relativePath As String = sourcePath.Substring(options.WMSuffix.Length) + If relativePath.StartsWith("\") Then + relativePath = relativePath.Substring(1) + End If + + Dim mappedPath As String = mappedDrive.TrimEnd(":"c, "\"c) & ":\" & relativePath + + _logger.Debug($"📄 Original: [{sourcePath}]") + _logger.Debug($"📄 Gemappt: [{mappedPath}]") + + result.Success = True + result.DriveLetter = mappedDrive + result.MappedPath = mappedPath + Return result + + Catch ex As Exception + _logger.Error($"Fehler beim Mapping: {ex.Message}") + _logger.Error(ex) + Return result + End Try + End Function + + ''' + ''' Kopiert Datei in Temp-Ordner mit eindeutigem Zeitstempel + ''' + Private Function CopyToTempFolder(sourcePath As String, tempFolder As String) As TempCopyResult + Dim result As New TempCopyResult With {.Success = False} + + Try + ' Temp-Ordner validieren + If String.IsNullOrEmpty(tempFolder) Then + result.ErrorMessage = "Temp-Ordner nicht gesetzt" + _logger.Warn("⚠️ TEMP_DOCUMENT_FOLDER ist nicht gesetzt") + + If Not frmValidator.InitializeTempFolder() Then + result.ErrorMessage = "Temp-Ordner konnte nicht initialisiert werden" + Return result + End If + + tempFolder = TEMP_DOCUMENT_FOLDER + End If + + If Not Directory.Exists(tempFolder) Then + result.ErrorMessage = $"Temp-Ordner existiert nicht: [{tempFolder}]" + _logger.Error($"❌ {result.ErrorMessage}") + Return result + End If + + ' Eindeutigen Dateinamen generieren + Dim originalFileName As String = Path.GetFileName(sourcePath) + Dim fileNameWithoutExt As String = Path.GetFileNameWithoutExtension(originalFileName) + Dim extension As String = Path.GetExtension(originalFileName) + Dim timestamp As String = DateTime.Now.ToString("yyyyMMdd_HHmmss_fff") + Dim uniqueFileName As String = $"{fileNameWithoutExt}_{timestamp}{extension}" + Dim targetPath As String = Path.Combine(tempFolder, uniqueFileName) + + _logger.Debug($"📄 Kopiere nach Temp:") + _logger.Debug($" Von: [{sourcePath}]") + _logger.Debug($" Nach: [{targetPath}]") + + ' Datei kopieren + File.Copy(sourcePath, targetPath, overwrite:=True) + + result.Success = True + result.TempPath = targetPath + result.TempFileName = uniqueFileName + Return result + + Catch ex As Exception + result.ErrorMessage = $"Fehler beim Kopieren: {ex.Message}" + _logger.Error($"❌ {result.ErrorMessage}") + _logger.Error(ex) + Return result + End Try + End Function + + ''' + ''' Trennt das gemappte Laufwerk + ''' + Public Sub UnmapDrive() + If Not String.IsNullOrEmpty(_mappedDrive) Then + Try + If ClassAllgemeineFunktionen.DisconnectNetworkDrive(_mappedDrive, force:=True) Then + _logger.Info($"🔌 Laufwerk {_mappedDrive} getrennt") + Else + _logger.Warn($"⚠️ Warnung beim Trennen von {_mappedDrive}") + End If + Catch ex As Exception + _logger.Debug($"Fehler beim Trennen von {_mappedDrive}: {ex.Message}") + Finally + _mappedDrive = "" + End Try + End If + End Sub + + ''' + ''' Cleanup-Methode (z.B. beim Schließen des Forms) + ''' + Public Sub Cleanup() + UnmapDrive() + End Sub + +#Region "Nested Classes für Optionen und Ergebnisse" + + ''' + ''' Optionen für die Dokumentenpfad-Verarbeitung + ''' + Public Class DocumentPathOptions + ''' Soll Laufwerks-Mapping versucht werden? + Public Property EnableMapping As Boolean = False + + ''' WMSUFFIX für Mapping-Erkennung (z.B. "\\windream\objects") + Public Property WMSuffix As String = "" + + ''' Spezifischer Laufwerksbuchstabe (z.B. "V") oder leer für automatisch + Public Property SpecificDrive As String = "" + + ''' Blacklist für Laufwerksbuchstaben (z.B. "Y,M,V") + Public Property DriveBlacklist As String = "" + + ''' Soll Datei in Temp kopiert werden? + Public Property CopyToTemp As Boolean = False + + ''' Temp-Ordner-Pfad + Public Property TempFolder As String = "" + + ''' Laufwerk nach erfolgreicher Temp-Kopie unmappen? + Public Property UnmapAfterCopy As Boolean = True + End Class + + ''' + ''' Ergebnis der Dokumentenpfad-Verarbeitung + ''' + Public Class DocumentPathResult + Public Property Success As Boolean + Public Property SourcePath As String + Public Property FinalPath As String + Public Property ErrorMessage As String + Public Property WasMapped As Boolean + Public Property MappedDrive As String + Public Property WasCopiedToTemp As Boolean + Public Property TempPath As String + End Class + + Private Class MappingResult + Public Property Success As Boolean + Public Property DriveLetter As String + Public Property MappedPath As String + End Class + + Private Class TempCopyResult + Public Property Success As Boolean + Public Property TempPath As String + Public Property TempFileName As String + Public Property ErrorMessage As String + End Class + +#End Region + +End Class diff --git a/app/TaskFlow/ClassInit.vb b/app/TaskFlow/ClassInit.vb index 85e591f..2d883dd 100644 --- a/app/TaskFlow/ClassInit.vb +++ b/app/TaskFlow/ClassInit.vb @@ -483,6 +483,14 @@ Public Class ClassInit 'BASEDATA_DT_TBDD_CONNECTION = DataASorDB.GetDatatable("DD_ECM", oSql, "TBDD_CONNECTION", "") BASEDATA_DT_TBDD_CONNECTION = DatabaseFallback.GetDatatable("TBDD_CONNECTION", New GetDatatableOptions(oSql, DatabaseType.ECM)) + oStep = "TBDD_CATALOG" + oSql = "select CAT_TITLE,CAT_STRING from TBDD_CATALOG" + BASEDATA_DT_TBDD_CATALOG = DatabaseFallback.GetDatatable("TBDD_CATALOG", New GetDatatableOptions(oSql, DatabaseType.ECM)) + + For Each oROW As DataRow In BASEDATA_DT_TBDD_CATALOG.Rows + + Next + oStep = "TBDD_3RD_PARTY_MODULES" oSql = "Select * FROM TBDD_3RD_PARTY_MODULES WHERE ACTIVE = 1" Dim oTBDD_3RD_PARTY_MODULES As DataTable diff --git a/app/TaskFlow/ClassParamRefresh.vb b/app/TaskFlow/ClassParamRefresh.vb index bb4e5da..982763b 100644 --- a/app/TaskFlow/ClassParamRefresh.vb +++ b/app/TaskFlow/ClassParamRefresh.vb @@ -95,9 +95,7 @@ Public Class ClassParamRefresh Else Dim Database_IDB As MSSQLServer = Nothing Dim CON_ID = oMode.Replace("PM.IDB_CONID!", "") - Dim oConString = DatabaseFallback.GetConnectionString(CON_ID) - CONNECTION_STRING_IDB = oConString Database_IDB = New MSSQLServer(LOGCONFIG, CONNECTION_STRING_IDB) If Database_IDB.DBInitialized = True Then @@ -172,7 +170,6 @@ Public Class ClassParamRefresh LOGGER.Debug($"MON_EDITED_COLUMN: {oLEDITEDCOL}") Catch ex As Exception - End Try ElseIf oMode.StartsWith("PM.MON_COL_ADDED_WHEN") Then Dim oLEDITEDCOL = oMode.Replace("PM.MON_COL_ADDED_WHEN=", "") @@ -181,7 +178,6 @@ Public Class ClassParamRefresh LOGGER.Debug($"MON_COL_ADDED_WHEN: {oLEDITEDCOL}") Catch ex As Exception - End Try ElseIf oMode.StartsWith("PM.USE_APPSERVER") Then Dim oUSE_APPSERVER = oMode.Replace("PM.USE_APPSERVER=", "") @@ -189,7 +185,27 @@ Public Class ClassParamRefresh USE_APPSERVER = CBool(oUSE_APPSERVER) Catch ex As Exception USE_APPSERVER = False - + End Try + ElseIf oMode.StartsWith("PM.COPYWM2TEMP") Then + Dim oCOPYWM2TEMP = oMode.Replace("PM.COPYWM2TEMP=", "") + Try + COPY_WMFILE_2TEMP = CBool(oCOPYWM2TEMP) + Catch ex As Exception + COPY_WMFILE_2TEMP = False + End Try + ElseIf oMode.StartsWith("PM.MAP_SHARE_DRIVE") Then + Dim oMAP_SHARE_DRIVE = oMode.Replace("PM.MAP_SHARE_DRIVE=", "") + Try + MAP_SHARE_DRIVE = oMAP_SHARE_DRIVE + Catch ex As Exception + oMAP_SHARE_DRIVE = String.Empty + End Try + ElseIf oMode.StartsWith("PM.MAP_BLACKLIST") Then + Dim oMAP_BLACKLIST = oMode.Replace("PM.MAP_BLACKLIST=", "") + Try + MAP_BLACKLIST = oMAP_BLACKLIST + Catch ex As Exception + MAP_BLACKLIST = String.Empty End Try ElseIf oMode.StartsWith("PM.SEARCH1") Then Dim oSearch1 = oMode.Replace("PM.SEARCH1=", "") @@ -197,7 +213,6 @@ Public Class ClassParamRefresh SEARCH1 = oSearch1 Catch ex As Exception SEARCH1 = "" - End Try ElseIf oMode.StartsWith("PM.SEARCH2") Then Dim oSearch2 = oMode.Replace("PM.SEARCH2=", "") @@ -205,7 +220,6 @@ Public Class ClassParamRefresh SEARCH2 = oSearch2 Catch ex As Exception SEARCH2 = "" - End Try ElseIf oMode.StartsWith("PM.TRAFFICLIGHT_ICON") Then Dim oParam = oMode.Replace("PM.TRAFFICLIGHT_ICON=", "") diff --git a/app/TaskFlow/ModuleMySettings.vb b/app/TaskFlow/ModuleMySettings.vb index a518ab4..cb6a10f 100644 --- a/app/TaskFlow/ModuleMySettings.vb +++ b/app/TaskFlow/ModuleMySettings.vb @@ -4,6 +4,9 @@ Public Property CONNECTION_STRING_ECM As String = "" Public Property CONNECTION_STRING_IDB As String = "" Public Property IDB_ACTIVE As Boolean = False + Public Property COPY_WMFILE_2TEMP As Boolean = False + Public Property MAP_SHARE_DRIVE As String = String.Empty + Public Property MAP_BLACKLIST As String = String.Empty Public Property EDMIAppServerActive As Boolean = False Public Property OPERATION_MODE_FS As String = "PURE_WM" diff --git a/app/TaskFlow/ModuleRuntimeVariables.vb b/app/TaskFlow/ModuleRuntimeVariables.vb index af59b85..213d555 100644 --- a/app/TaskFlow/ModuleRuntimeVariables.vb +++ b/app/TaskFlow/ModuleRuntimeVariables.vb @@ -19,6 +19,7 @@ Module ModuleRuntimeVariables ' Diese Werte müssen später zur Laufzeit geladen werden Public Property ActiveWorkflowType As Integer Public Property BASEDATA_DT_TBDD_CONNECTION As DataTable + Public Property BASEDATA_DT_TBDD_CATALOG As DataTable Public Property BASEDATA_DT_TBDD_SQL_COMMANDS As DataTable Public Property BASEDATA_DT_CONFIG As DataTable Public Property BASEDATA_DTGRID_GROUPS As DataTable @@ -82,6 +83,10 @@ Module ModuleRuntimeVariables Public Property USER_USERNAME_ORG As String = "" Public Property USER_GHOST_MODE_ACTIVE As Boolean = False Public Property USER_GHOST_MODE_USRNAME As String = "" + ''' + ''' Temporärer Ordner für Dokumentkopien (wenn COPY_WMFILE_2TEMP = True) + ''' + Public TEMP_DOCUMENT_FOLDER As String = String.Empty Public Class UserInheritanceConfirmation Public Property ColumnName As String = "" Public Property Count As Integer diff --git a/app/TaskFlow/frmAnnotations.vb b/app/TaskFlow/frmAnnotations.vb index c873d5b..2cc6b86 100644 --- a/app/TaskFlow/frmAnnotations.vb +++ b/app/TaskFlow/frmAnnotations.vb @@ -7,7 +7,7 @@ Public Class frmAnnotations Try Me.Cursor = Cursors.WaitCursor - ClassAnnotation.Annotate_PDF(txttitle.Text, txtcontent.Text, txtSeitenzahl.Text, True) + ' ClassAnnotation.Annotate_PDF(txttitle.Text, txtcontent.Text, txtSeitenzahl.Text, True) Me.Cursor = Cursors.Default Me.Close() Catch ex As Exception diff --git a/app/TaskFlow/frmValidator.vb b/app/TaskFlow/frmValidator.vb index c12df77..bf4b005 100644 --- a/app/TaskFlow/frmValidator.vb +++ b/app/TaskFlow/frmValidator.vb @@ -140,6 +140,7 @@ Public Class frmValidator Private _overlayHandle As Object = Nothing ' ← NEU: Klassenvariable Private _overlayRefCount As Integer = 0 ' ← NEU: Zähler für verschachtelte Calls Private _overlayLock As New Object() ' ← NEU: Thread-Safe Lock + Private _documentPathHandler As ClassDocumentPathHandler Private Class Translation_Strings @@ -307,6 +308,7 @@ Public Class frmValidator DD_Documentloader = New Loader(LOGCONFIG, OperationMode, Environment.Service.Client, Environment.User) ControlCreator = New ClassControlCreator(LOGCONFIG) Validator = New Validator(LOGCONFIG) + _documentPathHandler = New ClassDocumentPathHandler(MyValidationLogger) Override = False SplitContainer1.Panel2Collapsed = True @@ -328,6 +330,18 @@ Public Class frmValidator MyValidationLogger.Info($"[PERF frmValidation_Load] Nach Initialisierung: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") perfLastCheck = DateTime.Now End If + If COPY_WMFILE_2TEMP = True Then + If String.IsNullOrEmpty(TEMP_DOCUMENT_FOLDER) OrElse Not System.IO.Directory.Exists(TEMP_DOCUMENT_FOLDER) Then + MyValidationLogger.Warn("⚠️ TEMP_DOCUMENT_FOLDER nicht initialisiert → Versuche erneut zu erstellen") + If Not InitializeTempFolder() Then + MyValidationLogger.Error("❌ Temp-Ordner konnte nicht erstellt werden!") + ' Optional: Fallback oder Fehlerbehandlung + End If + Else + MyValidationLogger.Debug($"✓ Temp-Ordner verfügbar: [{TEMP_DOCUMENT_FOLDER}]") + End If + + End If Catch ex As Exception MyValidationLogger.Warn($"⚠️ Error in frmValidation_load1: {ex.Message}") @@ -680,6 +694,35 @@ Public Class frmValidator End Try End Sub Private _isClosingGuard As Boolean = False + Public Shared Function InitializeTempFolder() As Boolean + Try + If COPY_WMFILE_2TEMP = True Then + ' Basis-Temp-Pfad ermitteln + Dim baseTempPath As String = System.IO.Path.GetTempPath() + + ' Application-spezifischen Ordner erstellen (z.B. "TaskFlow_Temp") + TEMP_DOCUMENT_FOLDER = System.IO.Path.Combine(baseTempPath, "DD_VALIDATOR_Documents") + + ' Ordner erstellen, falls nicht vorhanden + If Not System.IO.Directory.Exists(TEMP_DOCUMENT_FOLDER) Then + System.IO.Directory.CreateDirectory(TEMP_DOCUMENT_FOLDER) + LOGGER.Info($"Temporärer Dokumentordner erstellt: [{TEMP_DOCUMENT_FOLDER}]") + Else + LOGGER.Debug($"Temporärer Dokumentordner existiert bereits: [{TEMP_DOCUMENT_FOLDER}]") + End If + + Return True + Else + LOGGER.Debug("COPY_WMFILE_2TEMP = False → Kein Temp-Ordner nötig") + Return True + End If + + Catch ex As Exception + LOGGER.Error($"Fehler beim Erstellen des Temp-Ordners: {ex.Message}") + LOGGER.Error(ex) + Return False + End Try + End Function Private Sub DetachAllGridEvents(parent As Control) For Each ctrl As Control In parent.Controls If TypeOf ctrl Is GridControl Then @@ -754,7 +797,6 @@ Public Class frmValidator _FormClosing = True - ' ========== FIX 5: Sichere Prüfung für frmMessages ========== If Not Me.IsDisposed AndAlso Application.OpenForms().OfType(Of frmValidator_Messages).Any Then If Not IsNothing(frmMessages) AndAlso Not frmMessages.IsDisposed Then Try @@ -764,14 +806,12 @@ Public Class frmValidator End Try End If End If - ' ========== ENDE FIX 5 ========== If LOG_HOTSPOTS Then MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach Messages-Close: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") perfLastCheck = DateTime.Now End If - ' ========== FIX 6: Settings nur bei nicht-disposed Form ========== If Not Me.IsDisposed Then Try ' Position und Größe speichern @@ -784,14 +824,12 @@ Public Class frmValidator MyValidationLogger.Error(ex) End Try End If - ' ========== ENDE FIX 6 ========== If LOG_HOTSPOTS Then MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach Settings.Save: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") perfLastCheck = DateTime.Now End If - ' ========== FIX 7: Inactivity Timer ========== If INACTIVITY_DURATION <> 0 Then Try frmMain.Timer_Inactivity_Reset_Disable("FormClosing") @@ -799,14 +837,12 @@ Public Class frmValidator MyValidationLogger.Warn($"⚠️ [FormClosing] Timer_Inactivity failed: {ex.Message}") End Try End If - ' ========== ENDE FIX 7 ========== If LOG_HOTSPOTS Then MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach Timer-Reset: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") perfLastCheck = DateTime.Now End If - ' ========== FIX 8: DB Cleanup ========== Try Dim oSQL As String If CURRENT_DOC_GUID <> 0 Then @@ -821,7 +857,6 @@ Public Class frmValidator MyValidationLogger.Error(ex) MsgBox("Error in delete jumped files:" & vbcrlf & ex.Message, MsgBoxStyle.Critical) End Try - ' ========== ENDE FIX 8 ========== If LOG_HOTSPOTS Then MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach DB-Cleanup: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") @@ -835,7 +870,6 @@ Public Class frmValidator perfLastCheck = DateTime.Now End If - ' ========== FIX 9: DocumentViewer cleanup ========== Try If Not IsNothing(DocumentViewer1) AndAlso Not DocumentViewer1.IsDisposed Then DocumentViewer1.CloseDocument() @@ -844,14 +878,13 @@ Public Class frmValidator Catch ex As Exception MyValidationLogger.Warn($"⚠️ Unexpected error in DocumentViewerValidator.Done: {ex.Message}") End Try - ' ========== ENDE FIX 9 ========== + If LOG_HOTSPOTS Then MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach DocumentViewer.Done: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") perfLastCheck = DateTime.Now End If - ' ========== FIX 10: ValidatorSearch cleanup ========== Try If _frmValidatorSearch IsNot Nothing AndAlso Not _frmValidatorSearch.IsDisposed Then _frmValidatorSearch.Close() @@ -859,7 +892,7 @@ Public Class frmValidator Catch ex As Exception MyValidationLogger.Error(ex) End Try - ' ========== ENDE FIX 10 ========== + If LOG_HOTSPOTS Then MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach ValidatorSearch.Close: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") @@ -869,6 +902,11 @@ Public Class frmValidator If LOG_HOTSPOTS Then MyValidationLogger.Info($"[PERF frmValidation_FormClosing] GESAMT: {(DateTime.Now - perfStart).TotalMilliseconds}ms") End If + ' Cleanup DocumentPathHandler + If _documentPathHandler IsNot Nothing Then + _documentPathHandler.Cleanup() + End If + Finally ' WICHTIG: Guard wird NICHT zurückgesetzt, da die Form nun wirklich schließt. @@ -880,7 +918,52 @@ Public Class frmValidator If Not IsNothing(DT_AdditionalSearches_Resultset_Docs) Then DT_AdditionalSearches_Resultset_Docs.Clear() End If + End Sub + Private Sub CleanupTempFolder() + Try + If String.IsNullOrEmpty(TEMP_DOCUMENT_FOLDER) Then + MyValidationLogger.Debug("TEMP_DOCUMENT_FOLDER ist nicht gesetzt → Kein Cleanup erforderlich") + Return + End If + If Not System.IO.Directory.Exists(TEMP_DOCUMENT_FOLDER) Then + MyValidationLogger.Debug($"Temp-Ordner [{TEMP_DOCUMENT_FOLDER}] existiert nicht → Kein Cleanup erforderlich") + Return + End If + + ' Alle Dateien im Ordner ermitteln + Dim files As String() = System.IO.Directory.GetFiles(TEMP_DOCUMENT_FOLDER) + + If files.Length = 0 Then + MyValidationLogger.Debug($"Temp-Ordner [{TEMP_DOCUMENT_FOLDER}] ist bereits leer") + Return + End If + + ' Alle Dateien löschen + Dim deletedCount As Integer = 0 + Dim errorCount As Integer = 0 + + For Each filePath As String In files + Try + System.IO.File.Delete(filePath) + deletedCount += 1 + MyValidationLogger.Debug($"Datei gelöscht: [{System.IO.Path.GetFileName(filePath)}]") + Catch fileEx As Exception + errorCount += 1 + MyValidationLogger.Warn($"⚠️ Datei konnte nicht gelöscht werden: [{System.IO.Path.GetFileName(filePath)}] - {fileEx.Message}") + End Try + Next + + If errorCount = 0 Then + MyValidationLogger.Debug($"✓ Temp-Ordner bereinigt: {deletedCount} Datei(en) gelöscht") + Else + MyValidationLogger.Warn($"⚠️ Temp-Ordner teilweise bereinigt: {deletedCount} gelöscht, {errorCount} Fehler") + End If + + Catch ex As Exception + MyValidationLogger.Error($"❌ Fehler beim Bereinigen des Temp-Ordners: {ex.Message}") + MyValidationLogger.Error(ex) + End Try End Sub Public Function Test_Additional_Data_Searches_Exist() As Boolean @@ -1054,9 +1137,11 @@ Public Class frmValidator Continue For End If - If IsDBNull(row.Item("CONNECTION_ID")) Then - MyValidationLogger.Info($"No CONNECTION_ID for SQL-Data - oGUID: {oGUID}") - Continue For + Dim oConnectionId As Integer = 1 + If Not IsDBNull(row.Item("CONNECTION_ID")) Then + oConnectionId = row.Item("CONNECTION_ID") + Else + MyValidationLogger.Warn($"CONNECTION_ID ist NULL für Control [{name}]. Verwende Default-Wert 1.") End If If IsDBNull(row.Item("SQL_UEBERPRUEFUNG")) Then @@ -1064,7 +1149,6 @@ Public Class frmValidator End If Dim oSQLStatement As String = row.Item("SQL_UEBERPRUEFUNG") - Dim oConnectionId As Integer = row.Item("CONNECTION_ID") If String.IsNullOrWhiteSpace(oSQLStatement) Then Continue For @@ -1351,12 +1435,13 @@ Public Class frmValidator End Sub MyValidationLogger.Debug("In add_ComboBox - GUID: " & oControlID) - Dim oCONID As Integer - Try - oCONID = PreventNulletc(oControlRow.Item("CONNECTION_ID"), "Integer") - Catch ex As Exception - oCONID = 0 - End Try + Dim oCONID = 1 + If IsDBNull(oControlRow.Item("CONNECTION_ID")) Then + MyValidationLogger.Warn($"⚠️ CONNECTION_ID is NULL for Control [{oControlInfo}]. Using default value 1.") + Else + oCONID = oControlRow.Item("CONNECTION_ID") + End If + If oCONID >= 0 Then Dim oCommandSQL_UBPF @@ -1746,7 +1831,12 @@ Public Class frmValidator Try Dim oControlName = oRow.Item("NAME").ToString Dim oSqlStatement = oRow.Item("SQL_UEBERPRUEFUNG") - Dim oConnectionId = oRow.Item("CONNECTION_ID") + Dim oConnectionId = 1 + If Not IsDBNull(oRow.Item("CONNECTION_ID")) Then + oConnectionId = oRow.Item("CONNECTION_ID") + Else + MyValidationLogger.Warn($"⚠️ CONNECTION_ID is DBNull for control {oControlName} - Defaulting to 1") + End If If Not IsDBNull(oSqlStatement) And Not IsDBNull(oConnectionId) Then oSqlStatement = clsPatterns.ReplaceAllValues(oSqlStatement, PanelValidatorControl, True) @@ -1949,12 +2039,18 @@ Public Class frmValidator For Each ROW As DataRow In DTFilteredRows.Rows Try Dim displayboxname = ROW.Item("NAME").ToString - If Not IsDBNull(ROW.Item("CONNECTION_ID")) And Not IsDBNull(ROW.Item("SQL_UEBERPRUEFUNG")) Then + Dim oConnectionID = 1 + If Not IsDBNull(ROW.Item("CONNECTION_ID")) Then + oConnectionID = ROW.Item("CONNECTION_ID") + Else + MyValidationLogger.Warn($"⚠️ CONNECTION_ID is DBNull for control {displayboxname} - Defaulting to 1") + End If + If Not IsDBNull(ROW.Item("SQL_UEBERPRUEFUNG")) Then Dim sql_Statement = ROW.Item("SQL_UEBERPRUEFUNG") Dim cellvalue = dgv.Rows(dgv.Rows.Count - 2).Cells(0).Value.ToString() sql_Statement = sql_Statement.ToString.Replace(dgv.Name, cellvalue) - Dim resultDT As DataTable = GetCachedDatatable(sql_Statement, ROW.Item("CONNECTION_ID")) + Dim resultDT As DataTable = GetCachedDatatable(sql_Statement, oConnectionID) If resultDT.Rows.Count >= 1 Then For Each row1 As DataRow In resultDT.Rows @@ -1970,6 +2066,8 @@ Public Class frmValidator Else PanelValidatorControl.Controls(displayboxname).Text = "NO RESULT" End If + Else + MyValidationLogger.Warn($"⚠️ SQL_UEBERPRUEFUNG is DBNull for control {displayboxname} - Cannot execute validation query") End If Catch ex As Exception MyValidationLogger.Error(ex) @@ -2376,11 +2474,18 @@ Public Class frmValidator Dim oControlname2Set = oRow.Item("NAME") MyValidationLogger.Debug($"[SetControlValues_FromControl] Working on SetControlValue for {oControlname2Set} ...") - Dim oConnectionId = oRow.ItemEx("CONNECTION_ID", 0) + Dim oConnectionId = 1 + + If Not IsDBNull(oRow.Item("CONNECTION_ID")) Then + oConnectionId = oRow.Item("CONNECTION_ID") + Else + MyValidationLogger.Warn($"⚠️ CONNECTION_ID is DBNull for control {oControlName} - Defaulting to 1") + End If + Dim oControlDataSql = oRow.ItemEx("SET_CONTROL_DATA", String.Empty) - If oConnectionId = -1 Or oControlDataSql = String.Empty Then - MyValidationLogger.Debug("[SetControlValues_FromControl] Error: Check CONN ID and SQL on NULL VALUES!") + If oControlDataSql = String.Empty Then + MyValidationLogger.Warn($"⚠️ [SetControlValues_FromControl] SET_CONTROL_DATA is empty for control [{oControlName}].") Exit Sub End If @@ -2741,9 +2846,14 @@ Public Class frmValidator MyValidationLogger.Info($"..but _dependingControl_in_action = True ==> Exit Sub!") Exit Sub End If - - If IsDBNull(oRowDependingControl.Item("CONNECTION_ID")) OrElse IsDBNull(oRowDependingControl.Item("SQL_UEBERPRUEFUNG")) Then - MyValidationLogger.Debug($"Error: Check CoNN ID and SQL on NULL VALUES!") + Dim oConnectionId = 1 + If Not IsDBNull(oRowDependingControl.Item("CONNECTION_ID")) Then + oConnectionId = oRowDependingControl.Item("CONNECTION_ID") + Else + MyValidationLogger.Warn($"⚠️ CONNECTION_ID is DBNULL for Control [{oDEPENDING_CtrlName}] (GUID: {oDEPENDING_GUID}) - using default connection ID 1") + End If + If IsDBNull(oRowDependingControl.Item("SQL_UEBERPRUEFUNG")) Then + MyValidationLogger.Warn($"⚠️ SQL_UEBERPRUEFUNG is DBNull for control {oDEPENDING_CtrlName}..") Continue For End If @@ -2751,7 +2861,7 @@ Public Class frmValidator oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, PanelValidatorControl, True) _DependingControl_In_Action = True - Dim oDTDEPENDING_RESULT As DataTable = GetCachedDatatable(oSqlCommand, oRowDependingControl.Item("CONNECTION_ID")) + Dim oDTDEPENDING_RESULT As DataTable = GetCachedDatatable(oSqlCommand, oConnectionId) If oDTDEPENDING_RESULT Is Nothing Then MyValidationLogger.Warn($"⚠️ Datatable for Depending Controls was nothing! Check the SQL [{oSqlCommand}]") @@ -2860,15 +2970,20 @@ Public Class frmValidator MyValidationLogger.Debug($"..but _dependingControl_in_action = True ==> Exit Sub!") Exit Sub End If - If Not IsDBNull(oRowDependingControl.Item("CONNECTION_ID")) And Not IsDBNull(oRowDependingControl.Item("SQL_UEBERPRUEFUNG")) Then + Dim oConnectionId = 1 + If Not IsDBNull(oRowDependingControl.Item("CONNECTION_ID")) Then + oConnectionId = oRowDependingControl.Item("CONNECTION_ID") + Else + MyValidationLogger.Warn($"⚠️ CONNECTION_ID is DBNULL for Control [{oDEPENDING_CtrlName}] (GUID: {oDEPENDING_GUID}) - using default connection ID 1") + End If + + If Not IsDBNull(oRowDependingControl.Item("SQL_UEBERPRUEFUNG")) Then Dim oSqlCommand = IIf(IsDBNull(oRowDependingControl.Item("SQL_UEBERPRUEFUNG")), "", oRowDependingControl.Item("SQL_UEBERPRUEFUNG")) oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, PanelValidatorControl, True) _DependingControl_In_Action = True MyValidationLogger.Debug($"_DependingControl_In_Action: Control {oDEPENDING_CtrlName} ...") - 'Dim oDTDEPENDING_RESULT As DataTable = DatabaseFallback.GetDatatable(New GetDatatableOptions(oSqlCommand, DatabaseType.ECM) With { - ' .ConnectionId = oRowDependingControl.Item("CONNECTION_ID") - '}) - Dim oDTDEPENDING_RESULT As DataTable = GetCachedDatatable(oSqlCommand, oRowDependingControl.Item("CONNECTION_ID")) + + Dim oDTDEPENDING_RESULT As DataTable = GetCachedDatatable(oSqlCommand, oConnectionId) Try Dim oFound As Boolean = False 'Dim oDependingLookup As LookupControl3 = pnldesigner.Controls.Find(oDEPENDING_CtrlName, False).FirstOrDefault() @@ -2950,7 +3065,7 @@ Public Class frmValidator End Try Else - MyValidationLogger.Debug($"Error: Check CoNN ID and SQL on NULL VALUES!") + MyValidationLogger.Warn($"⚠️ SQL_UEBERPRUEFUNG is DBNull for control {oDEPENDING_CtrlName}..") End If Next End Sub @@ -2973,7 +3088,12 @@ Public Class frmValidator If oSQLColumnDatatable.Rows.Count > 0 Then For Each oRow As DataRow In oSQLColumnDatatable.Rows Dim oDEPENDING_CONTROL_ID = oRow.Item("CONTROL_ID") - Dim oCONNID = oRow.Item("CONNECTION_ID") + Dim oCONNID = 1 + If Not IsDBNull(oRow.Item("CONNECTION_ID")) Then + oCONNID = oRow.Item("CONNECTION_ID") + Else + MyValidationLogger.Warn($"⚠️ CONNECTION_ID is DBNULL for CONTROL_ID [{oDEPENDING_CONTROL_ID}] - using default connection ID 1") + End If Dim oDEPENDING_COLUMN = oRow.Item("SPALTENNAME") Dim oSqlCommand = oRow.Item("SQL_COMMAND") Dim oAdvancedLookup = oRow.Item("ADVANCED_LOOKUP") @@ -3015,7 +3135,12 @@ Public Class frmValidator If oSQLColumnDatatable.Rows.Count > 0 Then For Each oRow As DataRow In oSQLColumnDatatable.Rows Dim oDEPENDING_CONTROL_ID = oRow.Item("CONTROL_ID") - Dim oCONNID = oRow.Item("CONNECTION_ID") + Dim oCONNID = 1 + If Not IsDBNull(oRow.Item("CONNECTION_ID")) Then + oCONNID = oRow.Item("CONNECTION_ID") + Else + MyValidationLogger.Warn($"⚠️ CONNECTION_ID is DBNULL for CONTROL_ID [{oDEPENDING_CONTROL_ID}] - using default connection ID 1") + End If Dim oDEPENDING_COLUMN = oRow.Item("SPALTENNAME") Dim oSqlCommand = oRow.Item("SQL_COMMAND") Dim oAdvancedLookup = oRow.Item("ADVANCED_LOOKUP") @@ -3084,7 +3209,13 @@ Public Class frmValidator Try Dim displayboxname = ROW.Item(0).ToString _Step = 1 - If Not IsDBNull(ROW.Item("CONNECTION_ID")) And Not IsDBNull(ROW.Item("SQL_UEBERPRUEFUNG")) Then + Dim oConnectionId = 1 + If Not IsDBNull(ROW.Item("CONNECTION_ID")) Then + oConnectionId = ROW.Item("CONNECTION_ID") + Else + MyValidationLogger.Warn($"⚠️ CONNECTION_ID is DBNULL for control [{displayboxname}] - using default connection ID 1") + End If + If Not IsDBNull(ROW.Item("SQL_UEBERPRUEFUNG")) Then _Step = 2 Dim sql_Statement = IIf(IsDBNull(ROW.Item("SQL_UEBERPRUEFUNG")), "", ROW.Item("SQL_UEBERPRUEFUNG")) @@ -3096,6 +3227,8 @@ Public Class frmValidator Depending_Control_Set_Result(displayboxname, sql_Statement, ROW.Item(1)) _Step = 5 _DependingControl_In_Action = False + Else + MyValidationLogger.Warn($"⚠️ SQL_UEBERPRUEFUNG is DBNull for control [{displayboxname}]..") End If Catch ex As Exception MyValidationLogger.Error(ex) @@ -3171,11 +3304,11 @@ Public Class frmValidator Dim oENABLE_GUID As Integer = CInt(oRowEnablingControl.Item("GUID")) Dim oENABLE_CtrlName = oRowEnablingControl.Item("NAME") - Dim oConnectionId As Integer = oRowEnablingControl.ItemEx("CONNECTION_ID", 0) + Dim oConnectionId As Integer = oRowEnablingControl.ItemEx("CONNECTION_ID", 1) Dim oSqlCommand As String = oRowEnablingControl.ItemEx("SQL_ENABLE", String.Empty) If String.IsNullOrEmpty(oSqlCommand) Then - MyValidationLogger.Debug($"[SKIP] Control [{oENABLE_CtrlName}]: Ungültige CONNECTION_ID oder SQL_ENABLE") + MyValidationLogger.Debug($"[SKIP] Control [{oENABLE_CtrlName}]: Ungültiges SQL_ENABLE") Continue For End If @@ -3285,7 +3418,7 @@ Public Class frmValidator End If MyValidationLogger.Debug($"Found Control [{oENABLE_CtrlName}] (ID: {oENABLE_GUID}) on panel which needs to be checked") - Dim oConnectionId As Integer = oRowEnablingControl.ItemEx("CONNECTION_ID", 0) + Dim oConnectionId As Integer = oRowEnablingControl.ItemEx("CONNECTION_ID", 1) Dim oSqlCommand = oRowEnablingControl.ItemEx("SQL_ENABLE_ON_LOAD", String.Empty) If String.IsNullOrWhiteSpace(oSqlCommand) Then @@ -3538,17 +3671,23 @@ Public Class frmValidator Return True End If If check.ToString.Length > 0 And Not {"@@DISPLAY_ONLY", "DD PM-ONLY FOR DISPLAY"}.Contains(dr.Item("INDEX_NAME")) Then - Dim cs As String = DatabaseFallback.GetConnectionString(dr.Item("CONNECTION_ID")) + Dim oConnectionId = 1 + If Not IsDBNull(dr.Item("CONNECTION_ID")) Then + oConnectionId = dr.Item("CONNECTION_ID") + Else + MyValidationLogger.Warn($"⚠️ CONNECTION_ID is DBNULL for control [{control.Name}] - using default connection ID 1") + End If + Dim cs As String = DatabaseFallback.GetConnectionString(oConnectionId) If allgFunk.CheckValue_Exists(dr.Item("SQL_UEBERPRUEFUNG"), "@Eingabe", control.Text, dr.Item("TYP"), cs, CURRENT_ProfilGUID) = True Then - Return True + Return True + Else + errormessage = "the input-value '" & control.Text & "' is not existing in database!" + My.Settings.Save() + Return False + End If Else - errormessage = "the input-value '" & control.Text & "' is not existing in database!" - My.Settings.Save() - Return False - End If - Else - Return True + Return True End If End If Next @@ -3652,9 +3791,9 @@ Public Class frmValidator If WM_AHWF_docPath <> String.Empty Then oWMOwnPath = WM_AHWF_docPath - WMDocPathWindows = oWMOwnPath + DocPathWindows = oWMOwnPath Else - oWMOwnPath = WMDocPathWindows.Replace(WMSUFFIX, "") + oWMOwnPath = DocPathWindows.Replace(WMSUFFIX, "") End If Try @@ -3702,7 +3841,7 @@ Public Class frmValidator Return True End If - Dim oResult As String + Dim oFilePath_from_DB As String WMDocPathWindows = String.Empty If OPERATION_MODE_FS <> ClassConstants.OpModeFS_ZF Then @@ -3714,34 +3853,58 @@ Public Class frmValidator Return False End If - Dim path0 = ObjectEx.NotNull(oDT.Rows(0).Item("PATH0"), String.Empty).ToString - Dim path1 = ObjectEx.NotNull(oDT.Rows(0).Item("PATH1"), String.Empty).ToString + Dim oPath0 = ObjectEx.NotNull(oDT.Rows(0).Item("PATH0"), String.Empty).ToString + Dim oPath1 = ObjectEx.NotNull(oDT.Rows(0).Item("PATH1"), String.Empty).ToString - MyValidationLogger.Debug($"First Checking file [{path0}] exists?...") + MyValidationLogger.Debug($"First Checking file [{oPath0}] exists?...") - If path0 <> String.Empty AndAlso File.Exists(path0) Then - oResult = path0 + If oPath0 <> String.Empty AndAlso File.Exists(oPath0) Then + oFilePath_from_DB = oPath0 Else MyValidationLogger.Info($"Getting filepath with standard 1 ...") - MyValidationLogger.Debug($"Second Checking file [{path1}] exists?...") - If path1 <> String.Empty AndAlso File.Exists(path1) Then - oResult = path1 + MyValidationLogger.Debug($"Second Checking file [{oPath1}] exists?...") + If oPath1 <> String.Empty AndAlso File.Exists(oPath1) Then + oFilePath_from_DB = oPath1 Else - MyValidationLogger.Info($"Second FileExists also returned false [{path1}]!") - DocPathWindows = path1 - MyValidationLogger.Warn($"⚠️ GetDocPathWindows: File [{path1}] not existing!") + MyValidationLogger.Info($"Second FileExists also returned false [{oPath1}]!") + DocPathWindows = oPath1 + MyValidationLogger.Warn($"⚠️ GetDocPathWindows: File [{oPath1}] not existing!") Return False End If End If - DocPathWindows = oResult Else - oResult = ClassConstants.OpModeFS_ZF + oFilePath_from_DB = ClassConstants.OpModeFS_ZF MyValidationLogger.Debug($"GetDocPathWindows: Filestore is {ClassConstants.OpModeFS_ZF}") End If - WMDocPathWindows = oResult - CURRENT_DOC_PATH = WMDocPathWindows + If COPY_WMFILE_2TEMP = True Then + ' Optionen konfigurieren + Dim options As New ClassDocumentPathHandler.DocumentPathOptions With { + .EnableMapping = True, + .WMSuffix = WMSUFFIX, + .SpecificDrive = If(Len(MAP_SHARE_DRIVE) = 1, MAP_SHARE_DRIVE, ""), + .DriveBlacklist = MAP_BLACKLIST, + .CopyToTemp = True, + .TempFolder = TEMP_DOCUMENT_FOLDER, + .UnmapAfterCopy = True + } + + ' Verarbeiten + Dim result = _documentPathHandler.ProcessDocumentPath(oFilePath_from_DB, options) + + If result.Success Then + DocPathWindows = result.FinalPath + WMDocPathWindows = oFilePath_from_DB + MyValidationLogger.Info($"✓ Dokument verarbeitet: [{Path.GetFileName(result.FinalPath)}]") + Else + MyValidationLogger.Error($"❌ Fehler: {result.ErrorMessage}") + DocPathWindows = oFilePath_from_DB + End If + Else + DocPathWindows = oFilePath_from_DB + MyValidationLogger.Info($"📄 Verwende Originalpfad: [{oFilePath_from_DB}]") + End If MyValidationLogger.Info($"GetWMDocPathWindows CURRENT_DOC_PATH: {CURRENT_DOC_PATH}") Return True Catch ex As Exception @@ -3754,6 +3917,24 @@ Public Class frmValidator End Function + Private Sub CleanupCurrentTempFile() + Try + ' Prüfen ob DocPathWindows eine Temp-Datei ist + If COPY_WMFILE_2TEMP = True AndAlso + Not String.IsNullOrEmpty(DocPathWindows) AndAlso + Not String.IsNullOrEmpty(TEMP_DOCUMENT_FOLDER) AndAlso + DocPathWindows.StartsWith(TEMP_DOCUMENT_FOLDER, StringComparison.OrdinalIgnoreCase) Then + + If System.IO.File.Exists(DocPathWindows) Then + System.IO.File.Delete(DocPathWindows) + MyValidationLogger.Debug($"🗑️ Temp-Datei gelöscht: [{System.IO.Path.GetFileName(DocPathWindows)}]") + End If + End If + + Catch ex As Exception + MyValidationLogger.Warn($"⚠️ Temp-Datei konnte nicht gelöscht werden: {ex.Message}") + End Try + End Sub Sub Load_IDB_DOC_DATA() Try Dim oSQl As String = IDB_DOC_DATA_SQL @@ -3801,7 +3982,10 @@ Public Class frmValidator OverrideAll = False _Indexe_Loaded = False MyValidationLogger.Debug("In Load_Next_Document") - + ' Alte Temp-Datei aufräumen (falls vorhanden) + If Not first Then + CleanupCurrentTempFile() + End If Dim layoutSuspended As Boolean = False Try If first = True Then @@ -3903,7 +4087,7 @@ Public Class frmValidator If oErrMsgMissingInput = "" Then - If WMDocPathWindows <> String.Empty Or OPERATION_MODE_FS = ClassConstants.OpModeFS_ZF Then + If DocPathWindows <> String.Empty Or OPERATION_MODE_FS = ClassConstants.OpModeFS_ZF Then LoadDocument_DDViewer() If Current_Document.Extension <> "pdf" Then bbtniAnnotation.Visibility = BarItemVisibility.Never @@ -4316,7 +4500,7 @@ Public Class frmValidator Try Dim oDocument As DocumentResultList.Document = Nothing ' Load DocumentInfo - oDocument = DD_Documentloader.Load(CURRENT_DOC_ID, WMDocPathWindows) + oDocument = DD_Documentloader.Load(CURRENT_DOC_ID, DocPathWindows) If oDocument Is Nothing Then Exit Sub End If @@ -4685,7 +4869,11 @@ Public Class frmValidator End Function Sub FillIndexValues(first As Boolean, Optional SingleAttribute As String = "") - ' ========== PERFORMANCE-LOGGING ========== + If _SetControlValue_In_Action AndAlso Not String.IsNullOrWhiteSpace(SingleAttribute) Then + MyValidationLogger.Debug("FillIndexValues", $"Übersprungen: SetControlValue läuft für [{SingleAttribute}]") + Exit Sub + End If + Dim perfStart As DateTime = DateTime.MinValue Dim perfLastCheck As DateTime = DateTime.MinValue If LOG_HOTSPOTS Then @@ -5513,7 +5701,12 @@ Public Class frmValidator Dim oDEPENDING_CTRL_ID = CInt(oRow.Item("CONTROL_ID")) Dim oDEPENDING_COLUMN = oRow.Item("SPALTENNAME") Dim oSqlCommand = oRow.Item("SQL_COMMAND") - Dim oCONNID = oRow.Item("CONNECTION_ID") + Dim oCONNID = 1 + If Not IsNullOrEmpty(oRow.Item("CONN_ID")) Then + oCONNID = CInt(oRow.Item("CONN_ID")) + Else + MyValidationLogger.Warn($"⚠️ CONN_ID is null or empty for CONTROL_ID {oDEPENDING_CTRL_ID} - defaulting to 1") + End If Dim oAdvancedLookup = oRow.Item("ADVANCED_LOOKUP") oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, PanelValidatorControl, True) @@ -5746,13 +5939,13 @@ Public Class frmValidator Else RibbonPageGroupCustom.Visible = False End If - If Not (IsNothing(WMDocPathWindows) And ActiveWorkflowType = ConstAHWorkflow_BlindFile) Then - If ButtonExport2Folder_Caption <> "" And WMDocPathWindows <> "" Then + If Not (IsNothing(DocPathWindows) And ActiveWorkflowType = ConstAHWorkflow_BlindFile) Then + If ButtonExport2Folder_Caption <> "" And DocPathWindows <> "" Then MyValidationLogger.Debug("Enabling Export2File, Caption set") MyValidationLogger.Debug("Button Caption: [{0}]", ButtonExport2Folder_Caption) MyValidationLogger.Debug("Export root folder: [{0}]", ButtonExport2Folder_RootFolder) - If File.Exists(WMDocPathWindows) Then + If File.Exists(DocPathWindows) Then MyValidationLogger.Debug("File exists, Showing Export Button") barbtnitmExport.Caption = ButtonExport2Folder_Caption @@ -6056,7 +6249,12 @@ Public Class frmValidator MyValidationLogger.Debug("Indexing wih dynamic sql...") Dim oGUID = oFinalIndexRow.Item("GUID") Dim oSQLCommand = oFinalIndexRow.Item("SQL_COMMAND") - Dim oConnectionID = oFinalIndexRow.Item("CONNECTION_ID") + Dim oConnectionID = 1 + If Not IsNullOrEmpty(oFinalIndexRow.Item("CONN_ID")) Then + oConnectionID = CInt(oFinalIndexRow.Item("CONN_ID")) + Else + MyValidationLogger.Warn($"⚠️ CONN_ID is null or empty for final indexing of index {oFinalIndex} - defaulting to 1") + End If oSQLCommand = clsPatterns.ReplaceAllValues(oSQLCommand, PanelValidatorControl, True) If IsNothing(oSQLCommand) Then errormessage = "Error while replacing Values in final indexing - Check the log" @@ -6305,7 +6503,7 @@ Public Class frmValidator If Not IsNothing(DT_ENTRY) Then If DT_ENTRY.Rows.Count = 1 Then Dim AnnotationString = DT_ENTRY.Rows(0).Item("WORKED_WHEN") & " " & DT_ENTRY.Rows(0).Item("WORKED_BY") & ": " & DT_ENTRY.Rows(0).Item("STATUS_COMMENT") - ClassAnnotation.Annotate_PDF("Workflow-State:", AnnotationString, 0, False) + 'ClassAnnotation.Annotate_PDF("Workflow-State:", AnnotationString, 0, False) End If End If End If @@ -6319,7 +6517,7 @@ Public Class frmValidator For Each rw As DataRow In DT_ENTRIES.Rows AnnotationString = AnnotationString & rw.Item("WORKED_WHEN") & " " & rw.Item("WORKED_BY") & ": " & rw.Item("STATUS_COMMENT") & vbcrlf Next - ClassAnnotation.Annotate_PDF("Workflow History:", AnnotationString, 0, False, 10, 40) + 'ClassAnnotation.Annotate_PDF("Workflow History:", AnnotationString, 0, False, 10, 40) End If End If End If @@ -6333,7 +6531,7 @@ Public Class frmValidator End If If Move2Folder <> "" And (OPERATION_MODE_FS = ClassConstants.OpModeFS_PWM Or OPERATION_MODE_FS = ClassConstants.OpModeFS_IDBWM) Then - idxerr_message = allgFunk.Move2Folder(WMDocPathWindows, Move2Folder, CURRENT_ProfilGUID, WINDREAM_ALLG) + idxerr_message = allgFunk.Move2Folder(DocPathWindows, Move2Folder, CURRENT_ProfilGUID, WINDREAM_ALLG) If idxerr_message <> "" Then errormessage = "Fehler bei Move2Folder:" & vbcrlf & idxerr_message My.Settings.Save() @@ -7751,7 +7949,7 @@ Public Class frmValidator MyValidationLogger.Debug("Skipping document....(Datei_ueberspringen)") Dim oPRoc = String.Format("EXEC PRTF_PROFILE_FILES_WORK {0},{1},{2},{3}", CURRENT_DOC_ID, CURRENT_ProfilGUID, USER_ID, "FreeFile") Dim oSQL = oPRoc & vbCrLf & - $"EXECUTE PRPM_FILES_NOT_INDEXED '{USER_USERNAME}',{CURRENT_ProfilGUID},'{WMDocPathWindows}',{CURRENT_DOC_GUID};" + $"EXECUTE PRPM_FILES_NOT_INDEXED '{USER_USERNAME}',{CURRENT_ProfilGUID},'{DocPathWindows}',{CURRENT_DOC_GUID};" If LOG_HOTSPOTS Then ' ========== DIAGNOSE: Vor DB-Execute ========== MyValidationLogger.Info($"[INFO] Führe DB-UPDATE aus...") @@ -7870,11 +8068,11 @@ Public Class frmValidator Catch exul As Exception MyValidationLogger.Warn($"⚠️ Could not unlock WMFile - ERROR: [{exul.Message}] - now teh system.io.Delete...") End Try + File.Delete(WMDocPathWindows) + MyValidationLogger.Info("Deleting of file via system.io [" & WMDocPathWindows & "] successfull!") WMDocPathWindows = "" CURRENT_DOC_PATH = "" CURRENT_WMFILE = Nothing - File.Delete(WMDocPathWindows) - MyValidationLogger.Info("Deleting of file via system.io [" & WMDocPathWindows & "] successfull!") Return True Catch ex1 As Exception MyValidationLogger.Warn($"⚠️ Could not delete via System.IO - ERROR: [{ex1.Message}] {vbcrlf} Trying system.io...") @@ -7922,7 +8120,7 @@ Public Class frmValidator Public hProcess As IntPtr End Structure Private Sub frmValidation_ResizeEnd(sender As Object, e As EventArgs) Handles Me.ResizeEnd - If WMDocPathWindows Is Nothing = False Then + If DocPathWindows Is Nothing = False Then My.Settings.frmValidatorSize = Me.Size My.Settings.Save() End If @@ -8008,18 +8206,18 @@ Public Class frmValidator End Sub Private Sub BarButtonItem4_ItemClick(sender As Object, e As ItemClickEventArgs) Handles BarButtonItem4.ItemClick - If WMDocPathWindows <> "" Then + If DocPathWindows <> "" Then Try Cursor = Cursors.WaitCursor Dim oShellExecuteInfo As New SHELLEXECUTEINFO oShellExecuteInfo.cbSize = Marshal.SizeOf(oShellExecuteInfo) oShellExecuteInfo.lpVerb = "properties" - oShellExecuteInfo.lpFile = WMDocPathWindows + oShellExecuteInfo.lpFile = DocPathWindows oShellExecuteInfo.nShow = SW_SHOW oShellExecuteInfo.fMask = SEE_MASK_INVOKEIDLIST If Not ShellExecuteEx(oShellExecuteInfo) Then Dim ex As New System.ComponentModel.Win32Exception(System.Runtime.InteropServices.Marshal.GetLastWin32Error()) - MsgBox("error in Datei-Eigenschaften öffnen:" & vbcrlf & ex.Message, MsgBoxStyle.Critical) + MsgBox("error in Datei-Eigenschaften öffnen:" & vbCrLf & ex.Message, MsgBoxStyle.Critical) End If Catch ex As Exception End Try @@ -8222,7 +8420,7 @@ Public Class frmValidator End Sub Private Sub barbtnitmExport_ItemClick(sender As Object, e As ItemClickEventArgs) Handles barbtnitmExport.ItemClick - If File.Exists(WMDocPathWindows) = False Then + If File.Exists(DocPathWindows) = False Then MsgBox("Workflow-Document seems not to exist. Check Your log.", MsgBoxStyle.Exclamation, ADDITIONAL_TITLE) Exit Sub End If @@ -8239,8 +8437,8 @@ Public Class frmValidator Exit Sub End If - oFilenameOnly = Path.GetFileName(WMDocPathWindows) - oExtension = Path.GetExtension(WMDocPathWindows) + oFilenameOnly = Path.GetFileName(DocPathWindows) + oExtension = Path.GetExtension(DocPathWindows) oSQLGetFilename = $"DECLARE @Filename Varchar(512) " & vbcrlf & $"EXEC dbo.PRPM_GETFILENAME_EXPORT {CURRENT_DOC_ID}, 1, @Outputfilename = @Filename OUTPUT;" & vbcrlf & "SELECT @Filename" @@ -8260,28 +8458,28 @@ Public Class frmValidator Dim oTempFullFilename = oTempPath + "\" + oExportFilename & oExtension Dim oConverter As New PDFConverter(LOGCONFIG) - If oConverter.ConvertPDFADocumentToPDFDocument(WMDocPathWindows, oTempFullFilename) = False Then - MyValidationLogger.Warn("⚠️ File [{0}] could not be converted to plain PDF!", WMDocPathWindows) - oFile2Export = WMDocPathWindows + If oConverter.ConvertPDFADocumentToPDFDocument(DocPathWindows, oTempFullFilename) = False Then + MyValidationLogger.Warn("⚠️ File [{0}] could not be converted to plain PDF!", DocPathWindows) + oFile2Export = DocPathWindows Else MyValidationLogger.Info("File [{0}] successfully converted to plain PDF!", oTempFullFilename) - MyValidationLogger.Info("File [{0}] successfully converted to plain PDF!", WMDocPathWindows) + MyValidationLogger.Info("File [{0}] successfully converted to plain PDF!", DocPathWindows) oFile2Export = oTempFullFilename End If Else - MyValidationLogger.Warn("⚠️ No converting as File [{0}] not ending with pdf [{1}]", WMDocPathWindows, oExtension.ToLower) - oFile2Export = WMDocPathWindows + MyValidationLogger.Warn("⚠️ No converting as File [{0}] not ending with pdf [{1}]", DocPathWindows, oExtension.ToLower) + oFile2Export = DocPathWindows End If Else MyValidationLogger.Warn("⚠️ No converting as barbtnitmExport.Tag.ToString <> Convert to PDF") - oFile2Export = WMDocPathWindows + oFile2Export = DocPathWindows End If Else - oFile2Export = WMDocPathWindows + oFile2Export = DocPathWindows End If MyValidationLogger.Info("Final export path is: [{0}]", oFile2Export) File.Copy(oFile2Export, oTargetPath) - MyValidationLogger.Info($"File {WMDocPathWindows} exported successfully!") + MyValidationLogger.Info($"File {oFile2Export} exported successfully!") oCount += 1 Else MsgBox("Error encountered while extracting Export-Filename!" & vbcrlf & "Please inform Admin-Team!", MsgBoxStyle.Critical, ADDITIONAL_TITLE) diff --git a/app/TaskFlow/frmValidatorSearch.vb b/app/TaskFlow/frmValidatorSearch.vb index 04ca221..32ad9fe 100644 --- a/app/TaskFlow/frmValidatorSearch.vb +++ b/app/TaskFlow/frmValidatorSearch.vb @@ -51,6 +51,7 @@ Public Class frmValidatorSearch Private Documentloader As Loader Private Property OperationMode As OperationMode Private ReadOnly Environment As Environment + Private _documentPathHandler As ClassDocumentPathHandler Public Sub New(pfrmValidator As frmValidator, pEnvironment As Environment) @@ -463,7 +464,8 @@ Public Class frmValidatorSearch If My.Settings.frmValSearchSplitterDistance > 20 Then SplitContainerSearches.SplitterDistance = My.Settings.frmValSearchSplitterDistance End If - + ' DocumentPathHandler initialisieren + _documentPathHandler = New ClassDocumentPathHandler(LOGGER) ToolStripDropDownButtonFile.Visible = False End Sub @@ -589,20 +591,33 @@ Public Class frmValidatorSearch If Not IsNothing(DocumentViewer1) Then Dim oFileName = $"{clsWMDocGrid.SELECTED_DOC_ID}.{oDocument.Extension}" - If Not IsNothing(oDocument.Contents) Then - DocumentViewer1.LoadFile_FromPath(clsWMDocGrid.SELECTED_DOC_PATH) ',oFileName, New MemoryStream(oDocument.Contents)) - LastDocID = clsWMDocGrid.SELECTED_DOC_ID - DocumentViewer1.RightViewOnly(USER_RIGHT_VIEW_ONLY) - If USER_RIGHT_VIEW_ONLY = True Then - ToolStripDropDownButtonFile.Visible = False + If Not IsNothing(DocumentViewer1) AndAlso Not IsNothing(oDocument.Contents) Then + ' Optionen konfigurieren + Dim options As New ClassDocumentPathHandler.DocumentPathOptions With { + .EnableMapping = False, + .CopyToTemp = COPY_WMFILE_2TEMP, + .TempFolder = TEMP_DOCUMENT_FOLDER, + .UnmapAfterCopy = False + } + + ' Verarbeiten + Dim result = _documentPathHandler.ProcessDocumentPath(clsWMDocGrid.SELECTED_DOC_PATH, options) + + If result.Success Then + DocumentViewer1.LoadFile_FromPath(result.FinalPath) + LastDocID = clsWMDocGrid.SELECTED_DOC_ID + DocumentViewer1.RightViewOnly(USER_RIGHT_VIEW_ONLY) + LOGGER.Info($"✓ [ValidatorSearch] Dokument geladen: [{Path.GetFileName(result.FinalPath)}]") Else - ToolStripDropDownButtonFile.Visible = True + LOGGER.Error($"❌ [ValidatorSearch] {result.ErrorMessage}") + statlbl.Text = $"Fehler: {result.ErrorMessage}" End If Else statlbl.Text = "odocument.content is nothing, Check Your log" End If + End If Else diff --git a/app/TaskFlow/logtaskflow.txt b/app/TaskFlow/logtaskflow.txt new file mode 100644 index 0000000..8e7b016 --- /dev/null +++ b/app/TaskFlow/logtaskflow.txt @@ -0,0 +1,1364 @@ +09:18:19.8756|taskFLOW|INFO >> MoveNext -> [PERF Item_Scope] START - startedFrom:[DOUBLECLICK] +09:18:19.8756|taskFLOW|INFO >> MoveNext -> Starting Profile Loading +09:18:19.8756|taskFLOW|DEBUG >> MoveNext -> User clicked normal row. +09:18:19.8756|taskFLOW|DEBUG >> MoveNext -> Clicked ProfileId: [10], Started From: [CMROW] +09:18:19.8756|taskFLOW|DEBUG >> MoveNext -> Item_Scope: InDataRow +09:18:19.8756|taskFLOW|DEBUG >> MoveNext -> Item_Scope: GRID_LOAD_TYPE = OVERVIEW +09:18:19.8756|taskFLOW|DEBUG >> MoveNext -> Item_Scope: OVERVIEWgroupRowText Profile (Fixed): 5. Finale Freigabe - FF +09:18:19.8756|taskFLOW|DEBUG >> MoveNext -> Item_Scope: Valid PROFIL_ID +09:18:19.8756|taskFLOW|DEBUG >> MoveNext -> Item_Scope: hitInfo.InDataRow... +09:18:19.8756|taskFLOW|DEBUG >> MoveNext -> Item_Scope: GotDocID 5877040 and DocGUID 816254 +09:18:19.9056|taskFLOW|INFO >> Load_Profil_from_Grid -> [PERF Load_Profil_from_Grid START - pProfilID:[10] +09:18:19.9176|taskFLOW|INFO >> Load_Profil_from_Grid -> [PERF Load_Profil_from_Grid öffnet frmValidator... +09:18:19.9176|frmValidator|DEBUG >> .ctor -> Initialize Components... +09:18:20.2726|frmValidator|DEBUG >> .ctor -> Initialize _frmValidatorSearch... +09:18:20.3456|frmValidator|INFO >> frmValidation_Load -> [PERF frmValidation_Load] START +09:18:20.3456|frmValidator|DEBUG >> frmValidation_Load -> ###frmValidation_Load### +09:18:20.3456|frmValidator|DEBUG >> frmValidation_Load -> Current User Language: [de-DE] +09:18:20.3456|Cache|DEBUG >> .ctor -> Initializing DocumentResultCache with capacity of [104900000] bytes. +09:18:20.3456|frmValidator|INFO >> frmValidation_Load -> [PERF frmValidation_Load] Nach Initialisierung: 5,0038ms +09:18:20.4166|frmValidator|INFO >> frmValidation_Load -> [PERF frmValidation_Load] Nach Position/Size: 65,001ms +09:18:20.4356|FilesystemEx|DEBUG >> CreateDirectory(FilesystemEx.vb:332) -> Directory C:\Users\marschreiber\AppData\Roaming\Digital Data\taskFLOW\1.0.0.0\DocumentViewer already exists. Skipping. +09:18:20.4356|FilesystemEx|DEBUG >> CreateDirectory(FilesystemEx.vb:352) -> Using path C:\Users\marschreiber\AppData\Roaming\Digital Data\taskFLOW\1.0.0.0\DocumentViewer +09:18:20.4356|ConfigManager`1|DEBUG >> LoadAppConfig(ConfigManager.vb:247) -> ApplicationConfig does not exist. +09:18:20.4356|ConfigManager`1|DEBUG >> LoadComputerConfig(ConfigManager.vb:269) -> Computer config does not exist. +09:18:20.4356|ConfigManager`1|DEBUG >> ReadFromFile(ConfigManager.vb:367) -> Loading config from: C:\Users\marschreiber\AppData\Roaming\Digital Data\taskFLOW\1.0.0.0\DocumentViewer\UserConfig.xml +09:18:20.4386|ConfigManager`1|DEBUG >> LoadUserConfig(ConfigManager.vb:280) -> UserConfig exists and will be used. [C:\Users\marschreiber\AppData\Roaming\Digital Data\taskFLOW\1.0.0.0\DocumentViewer\UserConfig.xml] +09:18:20.4386|frmValidator|INFO >> frmValidation_Load -> [PERF frmValidation_Load] Nach DocumentViewer.Init: 20,0034ms +09:18:20.4386|frmValidator|INFO >> frmValidation_Load -> [PERF frmValidation_Load] Nach DTVWCONTROL_INDEX laden (56 Rows): 0,9992ms +09:18:20.4386|frmValidator|DEBUG >> frmValidation_Load -> Profile Data loaded +09:18:20.4386|frmValidator|DEBUG >> frmValidation_Load -> frmValidation_Load finished till Step 3! +09:18:20.4386|frmValidator|DEBUG >> frmValidation_Load -> Step 4 +09:18:20.4386|frmValidator|DEBUG >> frmValidation_Load -> Step 5 +09:18:20.4386|frmValidator|DEBUG >> frmValidation_Load -> Step 6 +09:18:20.4386|frmValidator|INFO >> frmValidation_Load -> [PERF frmValidation_Load] Nach Profile-Properties: 0ms +09:18:20.4386|frmValidator|INFO >> frmValidation_Load -> [PERF frmValidation_Load] Nach Language-Loop (81 Rows): 0ms +09:18:20.4386|frmValidator|DEBUG >> frmValidation_Load -> Buttontext validation loaded +09:18:20.4386|frmValidator|INFO >> frmValidation_Load -> [PERF frmValidation_Load] Nach Button-Setup: 2,0009ms +09:18:20.4386|frmValidator|DEBUG >> frmValidation_Load -> oProfileRejectionText: Beleg ablehnen +09:18:20.4386|frmValidator|DEBUG >> frmValidation_Load -> oProfile_REJECT_SQL_REASONS: SELECT T1.TITLE + '-' + T.TITLE_DE as TITLE FROM TBPM_CUST_WF_ACTIONS T, TBPM_CUST_WF_ACTION_TYPE T1 +Where T.ACTION_TYPE = T1.GUID AND T.ACTIVE = 1 AND T1.GUID = 2 ORDER BY TITLE + +09:18:20.4386|frmValidator|DEBUG >> frmValidation_Load -> oProfileNotResponsibleText: Nicht zuständig +09:18:20.4386|frmValidator|DEBUG >> frmValidation_Load -> oProfile_NOT_RESP_SQL: EXEC [dbo].[PRPM_CUST_NICHT_ZUSTAENDIG] {#IDBA#ObjectID},'{#INT#USERNAME}', '{#USER#LANGUAGE}' +09:18:20.4386|frmValidator|DEBUG >> frmValidation_Load -> Nicht zuständig und Ablehnungs-Buttons werden eingeblendet! +09:18:20.4386|frmValidator|INFO >> frmValidation_Load -> [PERF frmValidation_Load] Nach Rejection/NR-Setup: 0,9937ms +09:18:20.4386|frmValidator|DEBUG >> frmValidation_Load -> >> profiledata saved: +09:18:20.4386|frmValidator|DEBUG >> frmValidation_Load -> >> finalProfile: True +09:18:20.4386|frmValidator|DEBUG >> frmValidation_Load -> >> Move2Folder: +09:18:20.4386|frmValidator|DEBUG >> frmValidation_Load -> >> Right_Delete: False +09:18:20.4386|frmValidator|DEBUG >> frmValidation_Load -> PROFIL_sortbynewest: True +09:18:20.4386|frmValidator|DEBUG >> frmValidation_Load -> Right_Delete: False +09:18:20.4386|frmValidator|INFO >> frmValidation_Load -> [PERF frmValidation_Load] Vor Create_Controls +09:18:20.4386|DatabaseWithFallback|DEBUG >> GetDatatable -> Datatable is chached, fetching data from cache. +09:18:20.4706|DatabaseWithFallback|DEBUG >> GetDatatable -> Datatable is chached, fetching data from cache. +09:18:20.4886|DatabaseWithFallback|DEBUG >> GetDatatable -> Datatable is chached, fetching data from cache. +09:18:20.5026|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 293 - CtrlName: lblEingang - CtrlIndex: ]: End of Select... +09:18:20.5266|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 321 - CtrlName: Erstellt - CtrlIndex: EMAIL_DATETIME] - TXT Try to create control... +09:18:20.5266|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 321 - CtrlName: Erstellt - CtrlIndex: EMAIL_DATETIME] - TXT Created!! +09:18:20.5266|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 321 - CtrlName: Erstellt - CtrlIndex: EMAIL_DATETIME]: End of Select... +09:18:20.5266|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 288 - CtrlName: lblBelegNr - CtrlIndex: ]: End of Select... +09:18:20.5266|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 319 - CtrlName: BelegNr - CtrlIndex: BelegNr] - TXT Try to create control... +09:18:20.5266|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 319 - CtrlName: BelegNr - CtrlIndex: BelegNr] - TXT Created!! +09:18:20.5266|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 319 - CtrlName: BelegNr - CtrlIndex: BelegNr]: End of Select... +09:18:20.5336|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 318 - CtrlName: TXT_Belegart - CtrlIndex: @@DISPLAY_ONLY] - TXT Try to create control... +09:18:20.5336|ClassControlCreator|INFO >> TransformDataRow -> Override oReadOnly = True for Control [TXT_Belegart] as Attribute is @@DISPLAY_ONLY and ReadOnly = False +09:18:20.5336|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 318 - CtrlName: TXT_Belegart - CtrlIndex: @@DISPLAY_ONLY] - TXT Created!! +09:18:20.5336|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 318 - CtrlName: TXT_Belegart - CtrlIndex: @@DISPLAY_ONLY]: End of Select... +09:18:20.5336|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3182 - CtrlName: TXT_BelegartSAP - CtrlIndex: BelegartSAP] - TXT Try to create control... +09:18:20.5336|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3182 - CtrlName: TXT_BelegartSAP - CtrlIndex: BelegartSAP] - TXT Created!! +09:18:20.5336|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3182 - CtrlName: TXT_BelegartSAP - CtrlIndex: BelegartSAP]: End of Select... +09:18:20.6056|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 286 - CtrlName: lblBelegDatum - CtrlIndex: ]: End of Select... +09:18:20.6056|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 313 - CtrlName: BelegDatum - CtrlIndex: BelegDatum] - TXT Try to create control... +09:18:20.6056|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 313 - CtrlName: BelegDatum - CtrlIndex: BelegDatum] - TXT Created!! +09:18:20.6056|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 313 - CtrlName: BelegDatum - CtrlIndex: BelegDatum]: End of Select... +09:18:20.6106|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3192 - CtrlName: TXT_EInvoiceTyp - CtrlIndex: eInvoiceTyp] - TXT Try to create control... +09:18:20.6106|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3192 - CtrlName: TXT_EInvoiceTyp - CtrlIndex: eInvoiceTyp] - TXT Created!! +09:18:20.6106|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3192 - CtrlName: TXT_EInvoiceTyp - CtrlIndex: eInvoiceTyp]: End of Select... +09:18:20.6106|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 289 - CtrlName: lblMandant - CtrlIndex: ]: End of Select... +09:18:20.6106|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 320 - CtrlName: BuchungskreisNr - CtrlIndex: BuchungskreisNr] - TXT Try to create control... +09:18:20.6106|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 320 - CtrlName: BuchungskreisNr - CtrlIndex: BuchungskreisNr] - TXT Created!! +09:18:20.6106|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 320 - CtrlName: BuchungskreisNr - CtrlIndex: BuchungskreisNr]: End of Select... +09:18:20.6106|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 317 - CtrlName: BuchungskreisName - CtrlIndex: BuchungskreisName] - TXT Try to create control... +09:18:20.6106|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 317 - CtrlName: BuchungskreisName - CtrlIndex: BuchungskreisName] - TXT Created!! +09:18:20.6106|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 317 - CtrlName: BuchungskreisName - CtrlIndex: BuchungskreisName]: End of Select... +09:18:20.6106|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 287 - CtrlName: lblKostenstelle - CtrlIndex: ]: End of Select... +09:18:20.6256|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 315 - CtrlName: Kostenstelle - CtrlIndex: Kostenstelle] - TXT Try to create control... +09:18:20.6256|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 315 - CtrlName: Kostenstelle - CtrlIndex: Kostenstelle] - TXT Created!! +09:18:20.6256|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 315 - CtrlName: Kostenstelle - CtrlIndex: Kostenstelle]: End of Select... +09:18:20.6256|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 601 - CtrlName: lblEmailvon - CtrlIndex: ]: End of Select... +09:18:20.6256|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 600 - CtrlName: EmailVersender - CtrlIndex: EmailVersender] - TXT Try to create control... +09:18:20.6256|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 600 - CtrlName: EmailVersender - CtrlIndex: EmailVersender] - TXT Created!! +09:18:20.6256|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 600 - CtrlName: EmailVersender - CtrlIndex: EmailVersender]: End of Select... +09:18:20.6866|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 595 - CtrlName: lblBestellNr - CtrlIndex: ]: End of Select... +09:18:20.6866|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 316 - CtrlName: BestellNr - CtrlIndex: BestellNr] - TXT Try to create control... +09:18:20.6886|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 316 - CtrlName: BestellNr - CtrlIndex: BestellNr] - TXT Created!! +09:18:20.6886|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 316 - CtrlName: BestellNr - CtrlIndex: BestellNr]: End of Select... +09:18:20.6886|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 3131 - CtrlName: lblEmailan - CtrlIndex: ]: End of Select... +09:18:20.6886|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3132 - CtrlName: EmailEmfaenger - CtrlIndex: EmailEmpfaenger] - TXT Try to create control... +09:18:20.6886|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3132 - CtrlName: EmailEmfaenger - CtrlIndex: EmailEmpfaenger] - TXT Created!! +09:18:20.6886|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3132 - CtrlName: EmailEmfaenger - CtrlIndex: EmailEmpfaenger]: End of Select... +09:18:20.6886|frmValidator|DEBUG >> Create_Controls -> [CtrlID: 305 - CtrlName: line20 - CtrlIndex: ]: End of Select... +09:18:20.6886|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 292 - CtrlName: lblKreditor - CtrlIndex: ]: End of Select... +09:18:20.6886|frmValidator|DEBUG >> Create_Controls -> createControlsLU - Found 2 Controls which are depending on LieferantNr +09:18:20.6886|frmValidator|DEBUG >> Create_Controls -> createControlsLU - Found 2 Controls which' enable state is depending on LieferantNr +09:18:20.6886|frmValidator|DEBUG >> Create_Controls -> [LOOKUP#CtrlID: 2289 - CtrlName: LieferantNr - CtrlIndex: LieferantNr]: End of Select... +09:18:20.6886|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 329 - CtrlName: Lieferant - CtrlIndex: Lieferant] - TXT Try to create control... +09:18:20.6886|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 329 - CtrlName: Lieferant - CtrlIndex: Lieferant] - TXT Created!! +09:18:20.6886|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 329 - CtrlName: Lieferant - CtrlIndex: Lieferant]: End of Select... +09:18:20.6886|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 296 - CtrlName: lblKontierung - CtrlIndex: ]: End of Select... +09:18:20.7046|frmValidator|DEBUG >> Create_Controls -> We got a DTGRID_COLUMNS definition for [TABLE#CtrlID: 312 - CtrlName: Kontierung - CtrlIndex: Kontierung] +09:18:20.7046|GridControl|DEBUG >> FillGridTables -> Working on SQL for Column[ColumnRowNr]... +09:18:20.7046|GridControl|DEBUG >> FillGridTables -> SQL has no complex patterns! +09:18:20.7046|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access. +09:18:20.7046|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM] +09:18:20.7046|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Retrieving Connection String from Connection Id [1] +09:18:20.7046|MSSQLServer|DEBUG >> Get_ConnectionStringforID(MSSQLServer.vb:172) -> Getting ConnectionString for ConnectionId [1] +09:18:20.7046|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Server=W2K19SRV398;Database=DD_ECM;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391; +09:18:20.7046|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:20.7046|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM TBDD_CONNECTION WHERE GUID = 1] and Parameters [] +09:18:20.7046|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Data Source=w2k19srv398;Initial Catalog=DD_ECM;User ID=EDMAdmin;Password=XXXXX +09:18:20.7046|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:20.7046|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT ZAEHLER FROM TBWH_SEQUENCE WHERE ZAEHLER <= 500 order by ZAEHLER] and Parameters [] +09:18:20.7046|GridControl|DEBUG >> FillGridTables -> Working on SQL for Column[colSAKNR]... +09:18:20.7046|GridControl|DEBUG >> FillGridTables -> ...has complex patterns!! +09:18:20.7046|GridControl|DEBUG >> FillGridTables -> Working on SQL for Column[colKostenstelle]... +09:18:20.7046|GridControl|DEBUG >> FillGridTables -> ...has complex patterns!! +09:18:20.7206|GridControl|DEBUG >> ConfigureViewColumns -> CURRENCY column [col2]: DisplayFormat wird von ConfigureViewColumnsCurrency gesetzt +09:18:20.7206|GridControl|DEBUG >> ConfigureViewColumnsCurrency -> [ConfigureViewColumnsCurrency] riTextEdit erstellt: DisplayFormat=[#,##0.00 EUR], HashCode=[22930682] +09:18:20.7206|GridControl|DEBUG >> ConfigureViewColumnsCurrency -> [ConfigureViewColumnsCurrency] pGrid.RepositoryItems.Count VOR Schleife=[0] +09:18:20.7206|GridControl|DEBUG >> ConfigureViewColumnsCurrency -> [ConfigureViewColumnsCurrency] [col2] VOR ColumnEdit: RepositoryItems.Count=[0] +09:18:20.7206|GridControl|DEBUG >> ConfigureViewColumnsCurrency -> [ConfigureViewColumnsCurrency] [col2] NACH ColumnEdit: RepositoryItems.Count=[0] +09:18:20.7206|GridControl|DEBUG >> ConfigureViewColumnsCurrency -> [ConfigureViewColumnsCurrency] [col2]: IsSameObject=[True], ColumnEdit.DisplayFormat=[#,##0.00 EUR], ColumnEdit.HashCode=[22930682] +09:18:20.7206|frmValidator|DEBUG >> Create_Controls -> [TABLE#CtrlID: 312 - CtrlName: Kontierung - CtrlIndex: Kontierung]: End of Select... +09:18:20.7206|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:20.7356|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:20.7356|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:20.7356|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:20.7356|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:20.7356|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:20.7356|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 294 - CtrlName: lblBemerkung - CtrlIndex: ]: End of Select... +09:18:20.7356|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 297 - CtrlName: lblZahlart_1 - CtrlIndex: ]: End of Select... +09:18:20.7356|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access. +09:18:20.7356|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM] +09:18:20.7356|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Retrieving Connection String from Connection Id [1] +09:18:20.7356|MSSQLServer|DEBUG >> Get_ConnectionStringforID(MSSQLServer.vb:172) -> Getting ConnectionString for ConnectionId [1] +09:18:20.7356|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Server=W2K19SRV398;Database=DD_ECM;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391; +09:18:20.7356|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:20.7356|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM TBDD_CONNECTION WHERE GUID = 1] and Parameters [] +09:18:20.7356|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Data Source=w2k19srv398;Initial Catalog=DD_ECM;User ID=EDMAdmin;Password=XXXXX +09:18:20.7356|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:20.7356|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [-- MK // 16.09.2025 + +EXEC [dbo].[PRDD_GET_TRANSLATED_CHOICELIST] + @pSOURCE_QUERY = N'SELECT [ID] as ''ID'',[DESCRIPTION] as ''%DESCRIPTION%'' + FROM [FNCUST_TF_GET_PAYMENT_METHODE](''{#USER#LANGUAGE}'')', + @pLANGUAGE = N'{#USER#LANGUAGE}' + +-- Test mit +-- de-de] and Parameters [] +09:18:20.7356|frmValidator|DEBUG >> Create_Controls -> createControlsLU - Found 1 Controls which are depending on LU_Zahlart +09:18:20.7356|frmValidator|DEBUG >> Create_Controls -> [LOOKUP#CtrlID: 309 - CtrlName: LU_Zahlart - CtrlIndex: Zahlart]: End of Select... +09:18:20.7506|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3754 - CtrlName: TXT_ZahlartBezeichnung - CtrlIndex: @@DISPLAY_ONLY] - TXT Try to create control... +09:18:20.7506|ClassControlCreator|INFO >> TransformDataRow -> Override oReadOnly = True for Control [TXT_ZahlartBezeichnung] as Attribute is @@DISPLAY_ONLY and ReadOnly = False +09:18:20.7506|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3754 - CtrlName: TXT_ZahlartBezeichnung - CtrlIndex: @@DISPLAY_ONLY] - TXT Created!! +09:18:20.7506|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3754 - CtrlName: TXT_ZahlartBezeichnung - CtrlIndex: @@DISPLAY_ONLY]: End of Select... +09:18:20.7506|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 314 - CtrlName: Bemerkung - CtrlIndex: Bemerkung] - TXT Try to create control... +09:18:20.7506|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 314 - CtrlName: Bemerkung - CtrlIndex: Bemerkung] - TXT Created!! +09:18:20.7506|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 314 - CtrlName: Bemerkung - CtrlIndex: Bemerkung]: End of Select... +09:18:20.7506|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 303 - CtrlName: lblZahlKondition - CtrlIndex: ]: End of Select... +09:18:20.7506|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 2291 - CtrlName: txtZahlungsbedingung1 - CtrlIndex: Zahlungsbedingung1] - TXT Try to create control... +09:18:20.7506|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 2291 - CtrlName: txtZahlungsbedingung1 - CtrlIndex: Zahlungsbedingung1] - TXT Created!! +09:18:20.7506|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 2291 - CtrlName: txtZahlungsbedingung1 - CtrlIndex: Zahlungsbedingung1]: End of Select... +09:18:20.7506|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 298 - CtrlName: lblZahlziel1 - CtrlIndex: ]: End of Select... +09:18:20.7666|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 299 - CtrlName: lblSkonto 1 - CtrlIndex: ]: End of Select... +09:18:20.7666|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 300 - CtrlName: lblZahlziel2 - CtrlIndex: ]: End of Select... +09:18:20.7666|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 301 - CtrlName: lblSkonto2 - CtrlIndex: ]: End of Select... +09:18:20.7666|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 302 - CtrlName: lblZahlzielNetto - CtrlIndex: ]: End of Select... +09:18:20.7666|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 304 - CtrlName: lblZahlungsinfoBeleg - CtrlIndex: ]: End of Select... +09:18:20.7666|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 323 - CtrlName: Zahlziel1 - CtrlIndex: Zahlziel1] - TXT Try to create control... +09:18:20.7666|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 323 - CtrlName: Zahlziel1 - CtrlIndex: Zahlziel1] - TXT Created!! +09:18:20.7666|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 323 - CtrlName: Zahlziel1 - CtrlIndex: Zahlziel1]: End of Select... +09:18:20.7666|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 324 - CtrlName: Skonto1 - CtrlIndex: Skonto1] - TXT Try to create control... +09:18:20.7666|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 324 - CtrlName: Skonto1 - CtrlIndex: Skonto1] - TXT Created!! +09:18:20.7666|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 324 - CtrlName: Skonto1 - CtrlIndex: Skonto1]: End of Select... +09:18:20.7846|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 325 - CtrlName: Zahlziel2 - CtrlIndex: Zahlziel2] - TXT Try to create control... +09:18:20.7846|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 325 - CtrlName: Zahlziel2 - CtrlIndex: Zahlziel2] - TXT Created!! +09:18:20.7846|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 325 - CtrlName: Zahlziel2 - CtrlIndex: Zahlziel2]: End of Select... +09:18:20.7846|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 326 - CtrlName: Skonto2 - CtrlIndex: Skonto2] - TXT Try to create control... +09:18:20.7846|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 326 - CtrlName: Skonto2 - CtrlIndex: Skonto2] - TXT Created!! +09:18:20.7846|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 326 - CtrlName: Skonto2 - CtrlIndex: Skonto2]: End of Select... +09:18:20.7846|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 328 - CtrlName: txt43 - CtrlIndex: Zahlziel_netto] - TXT Try to create control... +09:18:20.7846|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 328 - CtrlName: txt43 - CtrlIndex: Zahlziel_netto] - TXT Created!! +09:18:20.7846|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 328 - CtrlName: txt43 - CtrlIndex: Zahlziel_netto]: End of Select... +09:18:20.7846|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 327 - CtrlName: Zahlungsbedingung2 - CtrlIndex: Zahlungsbedingung2] - TXT Try to create control... +09:18:20.7846|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 327 - CtrlName: Zahlungsbedingung2 - CtrlIndex: Zahlungsbedingung2] - TXT Created!! +09:18:20.7846|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 327 - CtrlName: Zahlungsbedingung2 - CtrlIndex: Zahlungsbedingung2]: End of Select... +09:18:20.7846|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 3160 - CtrlName: LBLSkontobasisbetrag - CtrlIndex: ]: End of Select... +09:18:20.7976|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 3162 - CtrlName: LBLSkontobetrag - CtrlIndex: ]: End of Select... +09:18:20.7976|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 15019 - CtrlName: lblZahlart - CtrlIndex: ]: End of Select... +09:18:20.7976|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3161 - CtrlName: TXT_49784855 - CtrlIndex: Skontobasisbetrag] - TXT Try to create control... +09:18:20.7976|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3161 - CtrlName: TXT_49784855 - CtrlIndex: Skontobasisbetrag] - TXT Created!! +09:18:20.7976|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3161 - CtrlName: TXT_49784855 - CtrlIndex: Skontobasisbetrag]: End of Select... +09:18:20.7976|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3163 - CtrlName: TXT_Skontobetrag - CtrlIndex: Skontobetrag] - TXT Try to create control... +09:18:20.7976|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3163 - CtrlName: TXT_Skontobetrag - CtrlIndex: Skontobetrag] - TXT Created!! +09:18:20.7976|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3163 - CtrlName: TXT_Skontobetrag - CtrlIndex: Skontobetrag]: End of Select... +09:18:20.7976|frmValidator|DEBUG >> Create_Controls -> [LOOKUP#CtrlID: 18774 - CtrlName: Partnerbank - CtrlIndex: Bankverbindung]: End of Select... +09:18:20.7976|frmValidator|DEBUG >> Create_Controls -> [CtrlID: 306 - CtrlName: line21 - CtrlIndex: ]: End of Select... +09:18:20.7976|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 330 - CtrlName: lblVerantwortlicheBisher - CtrlIndex: ]: End of Select... +09:18:20.7976|frmValidator|DEBUG >> Create_Controls -> [LBL#CtrlID: 3148 - CtrlName: LBL_9d62d117 - CtrlIndex: ]: End of Select... +09:18:20.7976|frmValidator|DEBUG >> Create_Controls -> We got a DTGRID_COLUMNS definition for [TABLE#CtrlID: 311 - CtrlName: GridVerantwortliche - CtrlIndex: Verantwortliche] +09:18:20.8146|GridControl|DEBUG >> ConfigureViewColumnsCurrency -> [ConfigureViewColumnsCurrency] riTextEdit erstellt: DisplayFormat=[#,##0.00 EUR], HashCode=[52099421] +09:18:20.8146|GridControl|DEBUG >> ConfigureViewColumnsCurrency -> [ConfigureViewColumnsCurrency] pGrid.RepositoryItems.Count VOR Schleife=[0] +09:18:20.8146|frmValidator|DEBUG >> Create_Controls -> [TABLE#CtrlID: 311 - CtrlName: GridVerantwortliche - CtrlIndex: Verantwortliche]: End of Select... +09:18:20.8296|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3149 - CtrlName: BestelltWer - CtrlIndex: BestelltWer] - TXT Try to create control... +09:18:20.8296|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3149 - CtrlName: BestelltWer - CtrlIndex: BestelltWer] - TXT Created!! +09:18:20.8296|frmValidator|DEBUG >> Create_Controls -> [TXT#CtrlID: 3149 - CtrlName: BestelltWer - CtrlIndex: BestelltWer]: End of Select... +09:18:20.8296|frmValidator|DEBUG >> Create_Controls -> Create_Controls finished! +09:18:20.8296|frmValidator|INFO >> frmValidation_Load -> [PERF frmValidation_Load] Nach Create_Controls: 390,0041ms +09:18:20.8296|frmValidator|DEBUG >> frmValidation_Load -> frmValidation_Load finished! +09:18:20.8296|frmValidator|INFO >> frmValidation_Load -> [PERF frmValidation_Load] GESAMT frmValidation_Load: 495,0081ms +09:18:20.8916|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:20.8916|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:20.8916|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:20.8916|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:20.8916|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:20.8916|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:21.0466|taskFLOW|DEBUG >> Load_Profil_from_Grid -> Overlay closed in Load_Profil_from_Grid +09:18:21.0466|taskFLOW|INFO >> Load_Profil_from_Grid -> [PERF Load_Profil_from_Grid GESAMT: 1141,008ms +09:18:21.0486|taskFLOW|INFO >> MoveNext -> [PERF Item_Scope] GESAMT: 1172,9949ms +09:18:21.1156|frmValidator|DEBUG >> ShowOverlaySafe -> [Overlay] Geöffnet (RefCount: 0 → 1) +09:18:21.1156|frmValidator|INFO >> frmValidation_Shown -> [PERF] frmValidation_Shown START +09:18:21.1156|frmValidator|INFO >> Load_Next_Document -> [INFO] Load_Next_Document START - first: True +09:18:21.1156|frmValidator|INFO >> Load_Next_Document -> frmValidator.IsDisposed: False +09:18:21.1156|frmValidator|INFO >> Load_Next_Document -> frmValidator.Visible: True +09:18:21.1156|frmValidator|INFO >> Load_Next_Document -> _FormClosing: False +09:18:21.1156|frmValidator|INFO >> Load_Next_Document -> CURRENT_DOC_GUID: 816254 +09:18:21.1156|taskFLOW|DEBUG >> ClearControlCache -> Control cache cleared +09:18:21.1156|frmValidator|INFO >> Load_Next_Document -> [PERF LND] Load_Next_Document START +09:18:21.1156|frmValidator|DEBUG >> activate_controls -> Sub activate_controls - status = False +09:18:21.3806|frmValidator|DEBUG >> Load_Next_Document -> In Load_Next_Document +09:18:21.3806|frmValidator|DEBUG >> Load_Next_Document -> First Document +09:18:21.3806|frmValidator|DEBUG >> Load_Next_Document -> CURRENT_JUMP_DOC_GUID: 816254' +09:18:21.3806|frmValidator|INFO >> Load_Next_Document -> [PERF LND] Nach Get_Next_GUID: 258,0003ms +09:18:21.3806|frmValidator|INFO >> Load_Next_Document -> LoadNextDocument - Dokument-GUID: '816254' +09:18:21.3806|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access. +09:18:21.3806|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM] +09:18:21.3806|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Server=W2K19SRV398;Database=DD_ECM;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391; +09:18:21.3806|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:21.3806|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT dbo.FNPM_GET_FILEPATH(816254,0) AS PATH0, dbo.FNPM_GET_FILEPATH(816254,1) AS PATH1] and Parameters [] +09:18:21.3966|frmValidator|DEBUG >> GetDocPathWindows -> First Checking file [\\W2K19SRV391\Windream\wisag - Geschäftsprozesse\BusinessApplication01\File\Handelsrechnung [380]\0326\2025\12\01\7079357_4101075544.PDF] exists?... +09:18:21.4696|frmValidator|INFO >> GetDocPathWindows -> GetWMDocPathWindows CURRENT_DOC_PATH: \\W2K19SRV391\Windream\wisag - Geschäftsprozesse\BusinessApplication01\File\Handelsrechnung [380]\0326\2025\12\01\7079357_4101075544.PDF +09:18:21.4696|frmValidator|INFO >> Load_Next_Document -> [PERF LND] Nach GetDocPathWindows: 89,0047ms +09:18:21.4696|frmValidator|DEBUG >> Load_IDB_DOC_DATA -> Load_IDB_DOC_DATA SQL: select * from IDB.dbo.VWIDB_DOC_DATA T, TBPM_PROFILE_FILES T1 WITH (READPAST) WHERE T.IDB_OBJ_ID = T1.DOC_ID AND T1.GUID = 816254 +09:18:21.4696|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access. +09:18:21.4696|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM] +09:18:21.4696|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Server=W2K19SRV398;Database=DD_ECM;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391; +09:18:21.4696|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:21.4696|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [select * from IDB.dbo.VWIDB_DOC_DATA T, TBPM_PROFILE_FILES T1 WITH (READPAST) WHERE T.IDB_OBJ_ID = T1.DOC_ID AND T1.GUID = 816254] and Parameters [] +09:18:22.1106|frmValidator|INFO >> Load_Next_Document -> [PERF LND] Nach Load_IDB_DOC_DATA: 638,0034ms +09:18:22.1106|frmValidator|DEBUG >> Load_Next_Document -> Got one IDB DocData Result +09:18:22.1106|frmValidator|INFO >> Load_Next_Document -> [PERF LND] Nach CreateWMObject/Load_IDB_DOC_DATA: 0ms +09:18:22.1326|frmValidator|INFO >> Load_Next_Document -> [PERF LND] Nach IN_WORK-UPDATE: 18,9975ms +09:18:22.1326|frmValidator|DEBUG >> Load_Next_Document -> AllDocInfo created... +09:18:22.1326|frmValidator|INFO >> Load_Next_Document -> [PERF LND] Nach Windream_get_Doc_info: 0ms +09:18:22.1326|Loader|DEBUG >> Load -> DRL Loader - Loading Document Load_FromWindream +09:18:22.1326|Loader|DEBUG >> Load_FromDisk -> Loading file [\\W2K19SRV391\Windream\wisag - Geschäftsprozesse\BusinessApplication01\File\Handelsrechnung [380]\0326\2025\12\01\7079357_4101075544.PDF] +09:18:22.1556|Loader|DEBUG >> Load_FromDisk -> Loaded file [\\W2K19SRV391\Windream\wisag - Geschäftsprozesse\BusinessApplication01\File\Handelsrechnung [380]\0326\2025\12\01\7079357_4101075544.PDF] successfully. +09:18:22.1556|Cache|DEBUG >> Add -> Adding document [5877040]. +09:18:22.1556|frmValidator|INFO >> LoadDocument_DDViewer -> LoadDocument_DDViewer - Current_Document.FullPath: \\W2K19SRV391\Windream\wisag - Geschäftsprozesse\BusinessApplication01\File\Handelsrechnung [380]\0326\2025\12\01\7079357_4101075544.PDF +09:18:22.1576|DocumentViewer|INFO >> LoadFile_FromPath -> Loading file [\\W2K19SRV391\Windream\wisag - Geschäftsprozesse\BusinessApplication01\File\Handelsrechnung [380]\0326\2025\12\01\7079357_4101075544.PDF] from Filesystem +09:18:22.1576|DocumentViewer|DEBUG >> LoadGdPictureFile -> Loading GdPicture: \\W2K19SRV391\Windream\wisag - Geschäftsprozesse\BusinessApplication01\File\Handelsrechnung [380]\0326\2025\12\01\7079357_4101075544.PDF +09:18:22.2216|frmValidator|INFO >> Load_Next_Document -> [PERF LND] Nach LoadDocument_DDViewer: 87,0056ms +09:18:22.2216|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [EUR] +09:18:22.2216|frmValidator|DEBUG >> Load_Next_Document -> ✓ Währung aus Attribut [Inv_Currency]: EUR +09:18:22.2216|frmValidator|INFO >> Load_Next_Document -> [FINAL] DocCurrency = [EUR] +09:18:22.2216|frmValidator|INFO >> FillIndexValues -> [PERF FillIndexValues] START - Controls: 56 +09:18:22.2216|frmValidator|INFO >> FillIndexValues -> [PERF FillIndexValues] Nach columnsByControl-Gruppierung: 1,0163ms +09:18:22.2216|frmValidator|INFO >> FillIndexValues -> [PERF FillIndexValues] Nach _CachedControlsByGuid-Erstellung: 0ms +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblEingang - LOAD IDXVALUES: True +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> INDEX: EMAIL_DATETIME - CONTROLNAME: Erstellt - LOAD IDXVALUES: True +09:18:22.2216|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [2025-12-01 19:40:05] +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [2025-12-01 19:40:05] +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblBelegNr - LOAD IDXVALUES: True +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> INDEX: BelegNr - CONTROLNAME: BelegNr - LOAD IDXVALUES: True +09:18:22.2216|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [4101075544] +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [4101075544] +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> INDEX: @@DISPLAY_ONLY - CONTROLNAME: TXT_Belegart - LOAD IDXVALUES: False +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> oControl TXT_Belegart: Indexwert soll nicht geladen werden. +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> INDEX: BelegartSAP - CONTROLNAME: TXT_BelegartSAP - LOAD IDXVALUES: True +09:18:22.2216|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [R] +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [R] +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblBelegDatum - LOAD IDXVALUES: True +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> INDEX: BelegDatum - CONTROLNAME: BelegDatum - LOAD IDXVALUES: True +09:18:22.2216|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [01.12.2025 00:00:00] +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [01.12.2025 00:00:00] +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> INDEX: eInvoiceTyp - CONTROLNAME: TXT_EInvoiceTyp - LOAD IDXVALUES: True +09:18:22.2216|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [Z20] +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [Z20] +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblMandant - LOAD IDXVALUES: True +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> INDEX: BuchungskreisNr - CONTROLNAME: BuchungskreisNr - LOAD IDXVALUES: True +09:18:22.2216|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [0326] +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [0326] +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> INDEX: BuchungskreisName - CONTROLNAME: BuchungskreisName - LOAD IDXVALUES: True +09:18:22.2216|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [WISAG Gebäudetechnik Nord-West GmbH & Co. KG] +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [WISAG Gebäudetechnik Nord-West GmbH & Co. KG] +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblKostenstelle - LOAD IDXVALUES: True +09:18:22.2216|frmValidator|DEBUG >> FillIndexValues -> INDEX: Kostenstelle - CONTROLNAME: Kostenstelle - LOAD IDXVALUES: True +09:18:22.2216|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2216|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2396|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2396|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [1990326] +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [1990326] +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblEmailvon - LOAD IDXVALUES: True +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> INDEX: EmailVersender - CONTROLNAME: EmailVersender - LOAD IDXVALUES: True +09:18:22.2396|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2396|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2396|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2396|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [noreply@cancom.de] +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [noreply@cancom.de] +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblBestellNr - LOAD IDXVALUES: True +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> INDEX: BestellNr - CONTROLNAME: BestellNr - LOAD IDXVALUES: True +09:18:22.2396|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2396|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2396|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2396|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [] +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [] +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblEmailan - LOAD IDXVALUES: True +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> INDEX: EmailEmpfaenger - CONTROLNAME: EmailEmfaenger - LOAD IDXVALUES: True +09:18:22.2396|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2396|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2396|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2396|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [eorders.wisag@cancom.de] +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [eorders.wisag@cancom.de] +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: line20 - LOAD IDXVALUES: True +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblKreditor - LOAD IDXVALUES: True +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> INDEX: LieferantNr - CONTROLNAME: LieferantNr - LOAD IDXVALUES: True +09:18:22.2396|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2396|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2396|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2396|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [7004027] +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> [FillIndexValues BUGFIX] Lookup [LieferantNr]: DataSource-Backup erstellt +09:18:22.2396|frmValidator|DEBUG >> onLookUpselectedValue -> onLookUpselectedValue +09:18:22.2396|frmValidator|DEBUG >> onLookUpselectedValue -> onLookUpselectedValue suppressed (global guard active) +09:18:22.2396|frmValidator|DEBUG >> onLookUpselectedValue -> onLookUpselectedValue +09:18:22.2396|frmValidator|DEBUG >> onLookUpselectedValue -> onLookUpselectedValue suppressed (global guard active) +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> [FillIndexValues BUGFIX] Lookup [LieferantNr]: SelectedValues auf leere Liste zurückgesetzt +09:18:22.2396|frmValidator|DEBUG >> onLookUpselectedValue -> onLookUpselectedValue +09:18:22.2396|frmValidator|DEBUG >> onLookUpselectedValue -> onLookUpselectedValue suppressed (global guard active) +09:18:22.2396|frmValidator|DEBUG >> onLookUpselectedValue -> onLookUpselectedValue +09:18:22.2396|frmValidator|DEBUG >> onLookUpselectedValue -> onLookUpselectedValue suppressed (global guard active) +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> [FillIndexValues BUGFIX] Lookup [LieferantNr]: SelectedValues FINAL gesetzt = [7004027] +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> INDEX: Lieferant - CONTROLNAME: Lieferant - LOAD IDXVALUES: True +09:18:22.2396|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2396|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2396|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2396|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [CANCOM GmbH - ] +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [CANCOM GmbH - ] +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblKontierung - LOAD IDXVALUES: True +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> INDEX: Kontierung - CONTROLNAME: Kontierung - LOAD IDXVALUES: True +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> Grid [Kontierung]: 6 Spalten aus Cache geladen +09:18:22.2396|frmValidator|DEBUG >> FillIndexValues -> getting Value for Attribute [Kontierung] - oIDBTyp [8] - oIDBOverride [False]... +09:18:22.2396|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2396|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [False] - FromIDB [False] +09:18:22.2396|taskFLOW|DEBUG >> GetVariableValue -> oAttributeValue for Attribute [Kontierung] is so far nothing..Now trying FNIDB_PM_GET_VARIABLE_VALUE +09:18:22.2396|taskFLOW|DEBUG >> GetVariableValue -> : SELECT * FROM [dbo].[FNIDB_PM_GET_VARIABLE_VALUE] (5877040,'Kontierung','de-DE',CONVERT(BIT,'True')) +09:18:22.2396|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access. +09:18:22.2396|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [IDB] with Connection Id [IDB] +09:18:22.2396|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Server=W2K19SRV398;Database=IDB;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391;; +09:18:22.2396|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:22.2506|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM [dbo].[FNIDB_PM_GET_VARIABLE_VALUE] (5877040,'Kontierung','de-DE',CONVERT(BIT,'True'))] and Parameters [] +09:18:22.2506|frmValidator|DEBUG >> FillIndexValues -> oValueType is [System.String]! +09:18:22.2506|frmValidator|DEBUG >> FillIndexValues -> DevExpressGrid: 6 Columns configured for control 312. +09:18:22.2506|frmValidator|DEBUG >> FillIndexValues -> IDB Fill Grid [Kontierung] With String +09:18:22.2506|frmValidator|DEBUG >> FillIndexValues -> oValueFromSource [1~4801300~322.00~199 - Allgemein/Sonstiges NL 0326~~Samsung Galaxy XCover7 EE Bundle] - PMDelimiter[~] +09:18:22.2506|frmValidator|DEBUG >> FillIndexValues -> Now creating the rows For DevexpressGrid ... +09:18:22.2506|frmValidator|DEBUG >> FillIndexValues -> ...Index [1] - Value [1] +09:18:22.2506|taskFLOW|DEBUG >> GetConvertedValue -> GetConvertedValue: INTEGER +09:18:22.2506|taskFLOW|DEBUG >> NormalizeNumericString -> [NormalizeNumericString] Input: [1] +09:18:22.2506|taskFLOW|DEBUG >> NormalizeNumericString -> [NormalizeNumericString] After cleanup: [1], HasDot=False, HasComma=False +09:18:22.2506|taskFLOW|DEBUG >> NormalizeNumericString -> [NormalizeNumericString] No separators found → integer or already normalized +09:18:22.2506|taskFLOW|DEBUG >> NormalizeNumericString -> [NormalizeNumericString] Output: [1] +09:18:22.2506|frmValidator|DEBUG >> FillIndexValues -> ...Index [2] - Value [4801300] +09:18:22.2506|taskFLOW|DEBUG >> GetConvertedValue -> GetConvertedValue: TEXT +09:18:22.2506|taskFLOW|DEBUG >> GetConvertedValue -> GetConvertedValue - Case ELSE - pType is TEXT +09:18:22.2506|frmValidator|DEBUG >> FillIndexValues -> ...Index [3] - Value [322.00] +09:18:22.2506|taskFLOW|DEBUG >> GetConvertedValue -> GetConvertedValue: CURRENCY +09:18:22.2506|taskFLOW|DEBUG >> NormalizeNumericString -> [NormalizeNumericString] Input: [322.00] +09:18:22.2506|taskFLOW|DEBUG >> NormalizeNumericString -> [NormalizeNumericString] After cleanup: [322.00], HasDot=True, HasComma=False +09:18:22.2506|taskFLOW|DEBUG >> NormalizeNumericString -> [NormalizeNumericString] Only dot found: DotCount=1 +09:18:22.2506|taskFLOW|DEBUG >> NormalizeNumericString -> [NormalizeNumericString] Single dot: DigitsAfterDot=2 +09:18:22.2506|taskFLOW|DEBUG >> NormalizeNumericString -> [NormalizeNumericString] Dot treated as decimal separator (3 digits before, 2 after) +09:18:22.2506|taskFLOW|DEBUG >> NormalizeNumericString -> [NormalizeNumericString] Output: [322.00] +09:18:22.2506|taskFLOW|DEBUG >> GetConvertedValue -> GetConvertedValue CURRENCY: Original=[322.00], Normalized=[322.00] +09:18:22.2506|frmValidator|DEBUG >> FillIndexValues -> ...Index [4] - Value [199 - Allgemein/Sonstiges NL 0326] +09:18:22.2506|taskFLOW|DEBUG >> GetConvertedValue -> GetConvertedValue: TEXT +09:18:22.2506|taskFLOW|DEBUG >> GetConvertedValue -> GetConvertedValue - Case ELSE - pType is TEXT +09:18:22.2506|frmValidator|DEBUG >> FillIndexValues -> ...Index [5] - Value [] +09:18:22.2506|taskFLOW|DEBUG >> GetConvertedValue -> GetConvertedValue: TEXT +09:18:22.2506|taskFLOW|DEBUG >> GetConvertedValue -> GetConvertedValue - Case ELSE - pType is TEXT +09:18:22.2506|frmValidator|DEBUG >> FillIndexValues -> ...Index [6] - Value [Samsung Galaxy XCover7 EE Bundle] +09:18:22.2506|taskFLOW|DEBUG >> GetConvertedValue -> GetConvertedValue: TEXT +09:18:22.2506|taskFLOW|DEBUG >> GetConvertedValue -> GetConvertedValue - Case ELSE - pType is TEXT +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:22.2506|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:22.2666|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:22.2666|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblBemerkung - LOAD IDXVALUES: True +09:18:22.2666|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblZahlart_1 - LOAD IDXVALUES: True +09:18:22.2666|frmValidator|DEBUG >> FillIndexValues -> INDEX: Zahlart - CONTROLNAME: LU_Zahlart - LOAD IDXVALUES: True +09:18:22.2666|frmValidator|DEBUG >> FillIndexValues -> [FillIndexValues BUGFIX] Lookup [LU_Zahlart]: Alte SelectedValues gesichert = [0] +09:18:22.2666|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2666|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2666|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2666|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [5] +09:18:22.2666|frmValidator|DEBUG >> FillIndexValues -> [FillIndexValues BUGFIX] Lookup [LU_Zahlart]: DataSource-Backup erstellt +09:18:22.2666|frmValidator|DEBUG >> onLookUpselectedValue -> onLookUpselectedValue +09:18:22.2846|frmValidator|DEBUG >> onLookUpselectedValue -> onLookUpselectedValue suppressed (global guard active) +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> [FillIndexValues BUGFIX] Lookup [LU_Zahlart]: SelectedValues auf leere Liste zurückgesetzt +09:18:22.2846|frmValidator|DEBUG >> onLookUpselectedValue -> onLookUpselectedValue +09:18:22.2846|frmValidator|DEBUG >> onLookUpselectedValue -> onLookUpselectedValue suppressed (global guard active) +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> [FillIndexValues BUGFIX] Lookup [LU_Zahlart]: SelectedValues FINAL gesetzt = [5] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: @@DISPLAY_ONLY - CONTROLNAME: TXT_ZahlartBezeichnung - LOAD IDXVALUES: False +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> oControl TXT_ZahlartBezeichnung: Indexwert soll nicht geladen werden. +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: Bemerkung - CONTROLNAME: Bemerkung - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblZahlKondition - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: Zahlungsbedingung1 - CONTROLNAME: txtZahlungsbedingung1 - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [innerhalb von 10 Tagen ohne Abzug] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [innerhalb von 10 Tagen ohne Abzug] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblZahlziel1 - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblSkonto 1 - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblZahlziel2 - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblSkonto2 - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblZahlzielNetto - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblZahlungsinfoBeleg - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: Zahlziel1 - CONTROLNAME: Zahlziel1 - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [10] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [10] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: Skonto1 - CONTROLNAME: Skonto1 - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [0] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [0] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: Zahlziel2 - CONTROLNAME: Zahlziel2 - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [0] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [0] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: Skonto2 - CONTROLNAME: Skonto2 - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [0] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [0] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: Zahlziel_netto - CONTROLNAME: txt43 - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [0] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [0] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: Zahlungsbedingung2 - CONTROLNAME: Zahlungsbedingung2 - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: LBLSkontobasisbetrag - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: LBLSkontobetrag - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblZahlart - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: Skontobasisbetrag - CONTROLNAME: TXT_49784855 - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [383,19] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [383,19] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: Skontobetrag - CONTROLNAME: TXT_Skontobetrag - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: Bankverbindung - CONTROLNAME: Partnerbank - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [1200 / 72040046 / 0112921200] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> [FillIndexValues BUGFIX] Lookup [Partnerbank]: DataSource-Backup erstellt +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> [FillIndexValues BUGFIX] Lookup [Partnerbank]: SelectedValues auf leere Liste zurückgesetzt +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> [FillIndexValues BUGFIX] Lookup [Partnerbank]: SelectedValues FINAL gesetzt = [1200 / 72040046 / 0112921200] +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: line21 - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: lblVerantwortlicheBisher - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: - CONTROLNAME: LBL_9d62d117 - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> INDEX: Verantwortliche - CONTROLNAME: GridVerantwortliche - LOAD IDXVALUES: True +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> Grid [GridVerantwortliche]: 3 Spalten aus Cache geladen +09:18:22.2846|frmValidator|DEBUG >> FillIndexValues -> getting Value for Attribute [Verantwortliche] - oIDBTyp [8] - oIDBOverride [False]... +09:18:22.2846|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [False] - FromIDB [False] +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> oAttributeValue for Attribute [Verantwortliche] is so far nothing..Now trying FNIDB_PM_GET_VARIABLE_VALUE +09:18:22.2846|taskFLOW|DEBUG >> GetVariableValue -> : SELECT * FROM [dbo].[FNIDB_PM_GET_VARIABLE_VALUE] (5877040,'Verantwortliche','de-DE',CONVERT(BIT,'True')) +09:18:22.2846|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access. +09:18:22.2846|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [IDB] with Connection Id [IDB] +09:18:22.2846|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Server=W2K19SRV398;Database=IDB;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391;; +09:18:22.2846|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:22.2846|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM [dbo].[FNIDB_PM_GET_VARIABLE_VALUE] (5877040,'Verantwortliche','de-DE',CONVERT(BIT,'True'))] and Parameters [] +09:18:22.2976|frmValidator|DEBUG >> FillIndexValues -> oValueType is [System.Data.DataTable]! +09:18:22.2976|frmValidator|DEBUG >> FillIndexValues -> DevExpressGrid: 3 Columns configured for control 311. +09:18:22.2976|frmValidator|DEBUG >> FillIndexValues -> IDB Fill Grid [GridVerantwortliche] With Datatable - Rows 0 - ReadOnly: True +09:18:22.2976|frmValidator|DEBUG >> FillIndexValues -> INDEX: BestelltWer - CONTROLNAME: BestelltWer - LOAD IDXVALUES: True +09:18:22.2976|frmValidator|DEBUG >> GetVariableValuefromSource -> GetVariableValuefromSource - IDBCase... +09:18:22.2976|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.2976|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.2976|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [] +09:18:22.2976|frmValidator|DEBUG >> FillIndexValues -> Value from Source: [] +09:18:22.2976|frmValidator|INFO >> FillIndexValues -> [PERF FillIndexValues] Nach Control-Schleife: 75,9968ms +09:18:22.2976|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access. +09:18:22.2976|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM] +09:18:22.2976|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Retrieving Connection String from Connection Id [1] +09:18:22.2976|MSSQLServer|DEBUG >> Get_ConnectionStringforID(MSSQLServer.vb:172) -> Getting ConnectionString for ConnectionId [1] +09:18:22.2976|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Server=W2K19SRV398;Database=DD_ECM;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391; +09:18:22.2976|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:22.2976|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM TBDD_CONNECTION WHERE GUID = 1] and Parameters [] +09:18:22.2976|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Data Source=w2k19srv398;Initial Catalog=DD_ECM;User ID=EDMAdmin;Password=XXXXX +09:18:22.2976|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:22.2976|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT ZAEHLER FROM TBWH_SEQUENCE WHERE ZAEHLER <= 500 order by ZAEHLER] and Parameters [] +09:18:22.2976|frmValidator|DEBUG >> FillIndexValues -> Trying to create a DropDown(FIV) for CONTROL-ID [312] - RowCount: [500] +09:18:22.2976|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access. +09:18:22.2976|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM] +09:18:22.2976|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Retrieving Connection String from Connection Id [1] +09:18:22.2976|MSSQLServer|DEBUG >> Get_ConnectionStringforID(MSSQLServer.vb:172) -> Getting ConnectionString for ConnectionId [1] +09:18:22.2976|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Server=W2K19SRV398;Database=DD_ECM;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391; +09:18:22.2976|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:22.2976|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM TBDD_CONNECTION WHERE GUID = 1] and Parameters [] +09:18:22.2976|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Data Source=w2k19srv398;Initial Catalog=DD_ECM;User ID=EDMAdmin;Password=XXXXX +09:18:22.2976|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:22.2976|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT ZAEHLER FROM TBWH_SEQUENCE WHERE ZAEHLER <= 500 order by ZAEHLER] and Parameters [] +09:18:22.3136|frmValidator|INFO >> FillIndexValues -> [PERF FillIndexValues] Nach Grid-Dropdown-Loop: 8,9986ms +09:18:22.3136|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access. +09:18:22.3136|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [IDB] with Connection Id [IDB] +09:18:22.3136|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Server=W2K19SRV398;Database=IDB;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391;; +09:18:22.3136|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:22.3136|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [select Attribut, TERM_VALUE from VWIDB_VALUE_TEXT WHERE LANG_CODE IN ('de-DE','UNQID') AND IDB_OBJ_ID = 5877040 AND Attribut in ('PM_Info1','PM_Info2') ORDER BY Attribut] and Parameters [] +09:18:22.3136|frmValidator|DEBUG >> FillIndexValues -> No PM_Info-Configuration!! +09:18:22.3136|frmValidator|INFO >> FillIndexValues -> [PERF FillIndexValues] Nach PM_Info-Setup: 10,0008ms +09:18:22.3136|taskFLOW|DEBUG >> ReplaceAllValues -> input BEFORE replacing: [Select T.DocID,T.FULL_FILENAME,T.Doctype from TBPM_CUST_ATTACHMENTS T INNER JOIN idb.dbo.VWIDB_DOC_DATA T1 ON T.EmailMessageID = T1.EmailMessageID WHERE T1.IDB_OBJ_ID = {#IDBA#ObjectID}] +09:18:22.3136|taskFLOW|DEBUG >> ReplaceIDBAttributes -> IS_SQL = True - oReplaceValue = [{#IDBA#ObjectID}] +09:18:22.3136|taskFLOW|DEBUG >> ReplaceIDBAttributes -> oIDBValue = 5877040 +09:18:22.3136|taskFLOW|DEBUG >> ReplaceIDBAttributes -> sql after ReplaceIDBAttributes: Select T.DocID,T.FULL_FILENAME,T.Doctype from TBPM_CUST_ATTACHMENTS T INNER JOIN idb.dbo.VWIDB_DOC_DATA T1 ON T.EmailMessageID = T1.EmailMessageID WHERE T1.IDB_OBJ_ID = {#IDBA#ObjectID} +09:18:22.3136|taskFLOW|DEBUG >> ReplaceControlValues -> Control cache initialized with 57 controls +09:18:22.3136|taskFLOW|DEBUG >> ReplaceAllValues -> input AFTER replacing: [Select T.DocID,T.FULL_FILENAME,T.Doctype from TBPM_CUST_ATTACHMENTS T INNER JOIN idb.dbo.VWIDB_DOC_DATA T1 ON T.EmailMessageID = T1.EmailMessageID WHERE T1.IDB_OBJ_ID = 5877040] +09:18:22.3136|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access. +09:18:22.3136|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [None] with Connection Id [None] +09:18:22.3136|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Retrieving Connection String from Connection Id [1] +09:18:22.3136|MSSQLServer|DEBUG >> Get_ConnectionStringforID(MSSQLServer.vb:172) -> Getting ConnectionString for ConnectionId [1] +09:18:22.3136|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Server=W2K19SRV398;Database=DD_ECM;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391; +09:18:22.3136|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:22.3136|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM TBDD_CONNECTION WHERE GUID = 1] and Parameters [] +09:18:22.3136|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Data Source=w2k19srv398;Initial Catalog=DD_ECM;User ID=EDMAdmin;Password=XXXXX +09:18:22.3136|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:22.3136|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [Select T.DocID,T.FULL_FILENAME,T.Doctype from TBPM_CUST_ATTACHMENTS T INNER JOIN idb.dbo.VWIDB_DOC_DATA T1 ON T.EmailMessageID = T1.EmailMessageID WHERE T1.IDB_OBJ_ID = 5877040] and Parameters [] +09:18:22.8736|frmValidator|DEBUG >> Load_Additional_Searches -> AdditionalData/Docresults = false! +09:18:22.8736|frmValidator|INFO >> FillIndexValues -> [PERF FillIndexValues] Nach Load_Additional_Searches: 547,9987ms +09:18:22.8756|frmValidator|INFO >> FillIndexValues -> [PERF FillIndexValues] Nach TryOpen_Additional_Searches: 0ms +09:18:22.8756|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access. +09:18:22.8756|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM] +09:18:22.8756|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Retrieving Connection String from Connection Id [1] +09:18:22.8756|MSSQLServer|DEBUG >> Get_ConnectionStringforID(MSSQLServer.vb:172) -> Getting ConnectionString for ConnectionId [1] +09:18:22.8756|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Server=W2K19SRV398;Database=DD_ECM;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391; +09:18:22.8756|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:22.8756|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM TBDD_CONNECTION WHERE GUID = 1] and Parameters [] +09:18:22.8756|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Data Source=w2k19srv398;Initial Catalog=DD_ECM;User ID=EDMAdmin;Password=XXXXX +09:18:22.8756|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:22.8756|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT ZAEHLER FROM TBWH_SEQUENCE WHERE ZAEHLER <= 500 order by ZAEHLER] and Parameters [] +09:18:22.8756|ClassControlCreator|DEBUG >> GridTables_HandleControlValueChange -> Force-setting Editor for all Gridcells.. +09:18:22.8756|ClassControlCreator|DEBUG >> GridTables_HandleControlValueChange -> Force-setting Editor for Grid [Kontierung] +09:18:22.8756|taskFLOW|DEBUG >> ReplaceAllValues -> input BEFORE replacing: [SELECT SANO,SATITLE,SELECTED AS Häufigkeit FROM dbo.FNCUST_GET_SACHKONTEN ('{#CTRL#BuchungskreisNr}','{#CTRL#LieferantNr}') ORDER BY SELECTED DESC] +09:18:22.8756|taskFLOW|DEBUG >> ReplaceIDBAttributes -> sql after ReplaceIDBAttributes: SELECT SANO,SATITLE,SELECTED AS Häufigkeit FROM dbo.FNCUST_GET_SACHKONTEN ('{#CTRL#BuchungskreisNr}','{#CTRL#LieferantNr}') ORDER BY SELECTED DESC +09:18:22.8756|taskFLOW|DEBUG >> ReplaceControlValues -> Found placeholder for control [BuchungskreisNr]. +09:18:22.8756|taskFLOW|DEBUG >> ReplaceControlValues -> oControl.GetType [DevExpress.XtraEditors.TextEdit]. +09:18:22.8756|taskFLOW|DEBUG >> ReplaceControlValues -> TextEdit- oReplaceValue will be [0326]. +09:18:22.8756|taskFLOW|DEBUG >> ReplaceControlValues -> [SQL-ESCAPE CHECK] Control: [BuchungskreisNr], oReplaceValue Type: [String], Value: [0326], IsSQL: [True] +09:18:22.8756|taskFLOW|DEBUG >> SafeSqlEscape -> [SafeSqlEscape] Input Type: [String], Value: [0326] +09:18:22.8756|taskFLOW|DEBUG >> SafeSqlEscape -> [SafeSqlEscape] Output: [0326] +09:18:22.8756|taskFLOW|DEBUG >> ReplaceControlValues -> Found placeholder for control [LieferantNr]. +09:18:22.8756|taskFLOW|DEBUG >> ReplaceControlValues -> oControl.GetType [DigitalData.Controls.LookupGrid.LookupControl3]. +09:18:22.8756|taskFLOW|DEBUG >> ReplaceControlValues -> LookupControl3 [LieferantNr] mit genau einem Value +09:18:22.8756|taskFLOW|DEBUG >> ReplaceControlValues -> oReplaceValue nach Durchlaufen selectedValues: 7004027 +09:18:22.8756|taskFLOW|DEBUG >> ReplaceControlValues -> oReplaceValue nach Durchlaufen selectedValues: 7004027 +09:18:22.8756|taskFLOW|DEBUG >> ReplaceControlValues -> [SQL-ESCAPE CHECK] Control: [LieferantNr], oReplaceValue Type: [String], Value: [7004027], IsSQL: [True] +09:18:22.8756|taskFLOW|DEBUG >> SafeSqlEscape -> [SafeSqlEscape] Input Type: [String], Value: [7004027] +09:18:22.8756|taskFLOW|DEBUG >> SafeSqlEscape -> [SafeSqlEscape] Output: [7004027] +09:18:22.8756|taskFLOW|DEBUG >> ReplaceAllValues -> input AFTER replacing: [SELECT SANO,SATITLE,SELECTED AS Häufigkeit FROM dbo.FNCUST_GET_SACHKONTEN ('0326','7004027') ORDER BY SELECTED DESC] +09:18:22.8756|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access. +09:18:22.8756|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM] +09:18:22.8756|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Retrieving Connection String from Connection Id [1] +09:18:22.8756|MSSQLServer|DEBUG >> Get_ConnectionStringforID(MSSQLServer.vb:172) -> Getting ConnectionString for ConnectionId [1] +09:18:22.8756|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Server=W2K19SRV398;Database=DD_ECM;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391; +09:18:22.8756|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:22.8756|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM TBDD_CONNECTION WHERE GUID = 1] and Parameters [] +09:18:22.8756|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Data Source=w2k19srv398;Initial Catalog=DD_ECM;User ID=EDMAdmin;Password=XXXXX +09:18:22.8756|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:22.8756|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT SANO,SATITLE,SELECTED AS Häufigkeit FROM dbo.FNCUST_GET_SACHKONTEN ('0326','7004027') ORDER BY SELECTED DESC] and Parameters [] +09:18:22.8916|ClassControlCreator|DEBUG >> GridTables_HandleControlValueChange -> Force-setting Editor for all Gridcells.. +09:18:22.8916|ClassControlCreator|DEBUG >> GridTables_HandleControlValueChange -> Force-setting Editor for Grid [Kontierung] +09:18:22.8916|taskFLOW|DEBUG >> ReplaceAllValues -> input BEFORE replacing: [SELECT KST + ' - ' + TITLE FROM [dbo].[FNCUST_GET_KST] ('{#CTRL#BuchungskreisNr}') ORDER BY SEQU] +09:18:22.8916|taskFLOW|DEBUG >> ReplaceIDBAttributes -> sql after ReplaceIDBAttributes: SELECT KST + ' - ' + TITLE FROM [dbo].[FNCUST_GET_KST] ('{#CTRL#BuchungskreisNr}') ORDER BY SEQU +09:18:22.8916|taskFLOW|DEBUG >> ReplaceControlValues -> Found placeholder for control [BuchungskreisNr]. +09:18:22.8916|taskFLOW|DEBUG >> ReplaceControlValues -> oControl.GetType [DevExpress.XtraEditors.TextEdit]. +09:18:22.8916|taskFLOW|DEBUG >> ReplaceControlValues -> TextEdit- oReplaceValue will be [0326]. +09:18:22.8916|taskFLOW|DEBUG >> ReplaceControlValues -> [SQL-ESCAPE CHECK] Control: [BuchungskreisNr], oReplaceValue Type: [String], Value: [0326], IsSQL: [True] +09:18:22.8916|taskFLOW|DEBUG >> SafeSqlEscape -> [SafeSqlEscape] Input Type: [String], Value: [0326] +09:18:22.8916|taskFLOW|DEBUG >> SafeSqlEscape -> [SafeSqlEscape] Output: [0326] +09:18:22.8916|taskFLOW|DEBUG >> ReplaceAllValues -> input AFTER replacing: [SELECT KST + ' - ' + TITLE FROM [dbo].[FNCUST_GET_KST] ('0326') ORDER BY SEQU] +09:18:22.8916|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access. +09:18:22.8916|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM] +09:18:22.8916|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Retrieving Connection String from Connection Id [1] +09:18:22.8916|MSSQLServer|DEBUG >> Get_ConnectionStringforID(MSSQLServer.vb:172) -> Getting ConnectionString for ConnectionId [1] +09:18:22.8916|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Server=W2K19SRV398;Database=DD_ECM;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391; +09:18:22.8916|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:22.8916|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM TBDD_CONNECTION WHERE GUID = 1] and Parameters [] +09:18:22.8916|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Data Source=w2k19srv398;Initial Catalog=DD_ECM;User ID=EDMAdmin;Password=XXXXX +09:18:22.8916|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:22.8916|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT KST + ' - ' + TITLE FROM [dbo].[FNCUST_GET_KST] ('0326') ORDER BY SEQU] and Parameters [] +09:18:22.9116|ClassControlCreator|DEBUG >> GridTables_HandleControlValueChange -> Force-setting Editor for all Gridcells.. +09:18:22.9116|ClassControlCreator|DEBUG >> GridTables_HandleControlValueChange -> Force-setting Editor for Grid [Kontierung] +09:18:22.9116|frmValidator|INFO >> FillIndexValues -> [PERF FillIndexValues] GESAMT: 687,0057ms +09:18:22.9116|frmValidator|DEBUG >> UpdateGridCurrencyFormats -> [UpdateGridCurrencyFormats] DocCurrency is EUR or empty, cache updated but skipping format rebuild. +09:18:22.9116|frmValidator|INFO >> Load_Next_Document -> [PERF LND] Nach FillIndexValues: 690,0046ms +09:18:22.9116|frmValidator|DEBUG >> LoadSQLData -> in LoadSQLData for ControlID [318]... +09:18:22.9116|frmValidator|DEBUG >> LoadSQLData -> LoadSQLData for Control [TXT_Belegart] with GUID [318] ... +09:18:22.9116|taskFLOW|DEBUG >> ReplaceAllValues -> input BEFORE replacing: [-- MP 27.06.2025 + +IF EXISTS (SELECT 1 FROM [TBDD_GUI_LANGUAGE_PHRASE] WHERE [CAPT_TYPE] = 'Document type' + AND [TITLE] = '{#IDBA#Doctype}' AND [LANGUAGE] = '{#USER#LANGUAGE}') +BEGIN +SELECT [STRING1] +FROM [TBDD_GUI_LANGUAGE_PHRASE] +WHERE [CAPT_TYPE] = 'Document type' + AND [TITLE] = '{#IDBA#Doctype}' + AND [LANGUAGE] = '{#USER#LANGUAGE}' +END +ELSE + SELECT '{#IDBA#Doctype}' +] +09:18:22.9116|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - oSingleAttribute [True] - FromIDB [False] +09:18:22.9116|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1 +09:18:22.9116|taskFLOW|DEBUG >> GetVariableValue -> IDBData - GetVariableValue - Returning value: [Handelsrechnung [380]] +09:18:22.9116|taskFLOW|DEBUG >> ReplaceIDBAttributes -> IS_SQL = True - oReplaceValue = [{#IDBA#Doctype}] +09:18:22.9116|taskFLOW|DEBUG >> ReplaceIDBAttributes -> oIDBValue = Handelsrechnung [380] +09:18:22.9116|taskFLOW|DEBUG >> ReplaceIDBAttributes -> sql after ReplaceIDBAttributes: -- MP 27.06.2025 + +IF EXISTS (SELECT 1 FROM [TBDD_GUI_LANGUAGE_PHRASE] WHERE [CAPT_TYPE] = 'Document type' + AND [TITLE] = '{#IDBA#Doctype}' AND [LANGUAGE] = '{#USER#LANGUAGE}') +BEGIN +SELECT [STRING1] +FROM [TBDD_GUI_LANGUAGE_PHRASE] +WHERE [CAPT_TYPE] = 'Document type' + AND [TITLE] = '{#IDBA#Doctype}' + AND [LANGUAGE] = '{#USER#LANGUAGE}' +END +ELSE + SELECT '{#IDBA#Doctype}' + +09:18:22.9116|taskFLOW|DEBUG >> ReplaceAllValues -> input AFTER replacing: [-- MP 27.06.2025 + +IF EXISTS (SELECT 1 FROM [TBDD_GUI_LANGUAGE_PHRASE] WHERE [CAPT_TYPE] = 'Document type' + AND [TITLE] = 'Handelsrechnung [380]' AND [LANGUAGE] = 'de-DE') +BEGIN +SELECT [STRING1] +FROM [TBDD_GUI_LANGUAGE_PHRASE] +WHERE [CAPT_TYPE] = 'Document type' + AND [TITLE] = 'Handelsrechnung [380]' + AND [LANGUAGE] = 'de-DE' +END +ELSE + SELECT 'Handelsrechnung [380]' +] +09:18:22.9116|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access. +09:18:22.9116|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM] +09:18:22.9116|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Retrieving Connection String from Connection Id [1] +09:18:22.9116|MSSQLServer|DEBUG >> Get_ConnectionStringforID(MSSQLServer.vb:172) -> Getting ConnectionString for ConnectionId [1] +09:18:22.9116|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Server=W2K19SRV398;Database=DD_ECM;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391; +09:18:22.9116|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:22.9116|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM TBDD_CONNECTION WHERE GUID = 1] and Parameters [] +09:18:22.9116|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Data Source=w2k19srv398;Initial Catalog=DD_ECM;User ID=EDMAdmin;Password=XXXXX +09:18:22.9116|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:22.9116|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [-- MP 27.06.2025 + +IF EXISTS (SELECT 1 FROM [TBDD_GUI_LANGUAGE_PHRASE] WHERE [CAPT_TYPE] = 'Document type' + AND [TITLE] = 'Handelsrechnung [380]' AND [LANGUAGE] = 'de-DE') +BEGIN +SELECT [STRING1] +FROM [TBDD_GUI_LANGUAGE_PHRASE] +WHERE [CAPT_TYPE] = 'Document type' + AND [TITLE] = 'Handelsrechnung [380]' + AND [LANGUAGE] = 'de-DE' +END +ELSE + SELECT 'Handelsrechnung [380]' +] and Parameters [] +09:18:22.9116|frmValidator|DEBUG >> LoadSQLData -> in LoadSQLData for ControlID [2289]... +09:18:22.9116|frmValidator|DEBUG >> LoadSQLData -> LoadSQLData for Control [LieferantNr] with GUID [2289] ... +09:18:22.9116|taskFLOW|DEBUG >> ReplaceAllValues -> input BEFORE replacing: [SELECT T.KreditorNR AS "KreditorNr", T.KreditorName1_2 AS "Kreditor Name" + FROM [DD_ECM].[dbo].[TBCUST_KREDITOR_DISTINCT] T + INNER JOIN [DD_ECM].[dbo].[TBCUST_SYNC_SAP_KREDITOREN_ZO] T2 + ON '000'+T.KreditorNr = T2.LIFNR + WHERE T2.BUKRS = '{#CTRL#BuchungskreisNr}' + AND LEN(T2.SPERR) = 0 +UNION +SELECT T.KreditorNR AS "KreditorNr", T.KreditorName1_2 AS "Kreditor Name" + FROM [DD_ECM].[dbo].[TBCUST_KREDITOR_DISTINCT] T + INNER JOIN [DD_ECM].[dbo].[TBCUST_SYNC_SAP_KREDITOREN_ZO] T2 + ON T.KreditorNr = T2.LIFNR + WHERE T2.BUKRS = '{#CTRL#BuchungskreisNr}' + AND LEN(T2.SPERR) = 0 + ORDER BY T.KreditorNR ASC + +] +09:18:22.9116|taskFLOW|DEBUG >> ReplaceIDBAttributes -> sql after ReplaceIDBAttributes: SELECT T.KreditorNR AS "KreditorNr", T.KreditorName1_2 AS "Kreditor Name" + FROM [DD_ECM].[dbo].[TBCUST_KREDITOR_DISTINCT] T + INNER JOIN [DD_ECM].[dbo].[TBCUST_SYNC_SAP_KREDITOREN_ZO] T2 + ON '000'+T.KreditorNr = T2.LIFNR + WHERE T2.BUKRS = '{#CTRL#BuchungskreisNr}' + AND LEN(T2.SPERR) = 0 +UNION +SELECT T.KreditorNR AS "KreditorNr", T.KreditorName1_2 AS "Kreditor Name" + FROM [DD_ECM].[dbo].[TBCUST_KREDITOR_DISTINCT] T + INNER JOIN [DD_ECM].[dbo].[TBCUST_SYNC_SAP_KREDITOREN_ZO] T2 + ON T.KreditorNr = T2.LIFNR + WHERE T2.BUKRS = '{#CTRL#BuchungskreisNr}' + AND LEN(T2.SPERR) = 0 + ORDER BY T.KreditorNR ASC + + +09:18:22.9116|taskFLOW|DEBUG >> ReplaceControlValues -> Found placeholder for control [BuchungskreisNr]. +09:18:22.9116|taskFLOW|DEBUG >> ReplaceControlValues -> oControl.GetType [DevExpress.XtraEditors.TextEdit]. +09:18:22.9116|taskFLOW|DEBUG >> ReplaceControlValues -> TextEdit- oReplaceValue will be [0326]. +09:18:22.9116|taskFLOW|DEBUG >> ReplaceControlValues -> [SQL-ESCAPE CHECK] Control: [BuchungskreisNr], oReplaceValue Type: [String], Value: [0326], IsSQL: [True] +09:18:22.9116|taskFLOW|DEBUG >> SafeSqlEscape -> [SafeSqlEscape] Input Type: [String], Value: [0326] +09:18:22.9116|taskFLOW|DEBUG >> SafeSqlEscape -> [SafeSqlEscape] Output: [0326] +09:18:22.9116|taskFLOW|DEBUG >> ReplaceAllValues -> input AFTER replacing: [SELECT T.KreditorNR AS "KreditorNr", T.KreditorName1_2 AS "Kreditor Name" + FROM [DD_ECM].[dbo].[TBCUST_KREDITOR_DISTINCT] T + INNER JOIN [DD_ECM].[dbo].[TBCUST_SYNC_SAP_KREDITOREN_ZO] T2 + ON '000'+T.KreditorNr = T2.LIFNR + WHERE T2.BUKRS = '0326' + AND LEN(T2.SPERR) = 0 +UNION +SELECT T.KreditorNR AS "KreditorNr", T.KreditorName1_2 AS "Kreditor Name" + FROM [DD_ECM].[dbo].[TBCUST_KREDITOR_DISTINCT] T + INNER JOIN [DD_ECM].[dbo].[TBCUST_SYNC_SAP_KREDITOREN_ZO] T2 + ON T.KreditorNr = T2.LIFNR + WHERE T2.BUKRS = '0326' + AND LEN(T2.SPERR) = 0 + ORDER BY T.KreditorNR ASC + +] +09:18:22.9116|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access. +09:18:22.9116|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM] +09:18:22.9116|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Retrieving Connection String from Connection Id [1] +09:18:22.9116|MSSQLServer|DEBUG >> Get_ConnectionStringforID(MSSQLServer.vb:172) -> Getting ConnectionString for ConnectionId [1] +09:18:22.9116|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Server=W2K19SRV398;Database=DD_ECM;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391; +09:18:22.9116|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:22.9116|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM TBDD_CONNECTION WHERE GUID = 1] and Parameters [] +09:18:22.9226|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Data Source=w2k19srv398;Initial Catalog=DD_ECM;User ID=EDMAdmin;Password=XXXXX +09:18:22.9226|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:22.9226|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT T.KreditorNR AS "KreditorNr", T.KreditorName1_2 AS "Kreditor Name" + FROM [DD_ECM].[dbo].[TBCUST_KREDITOR_DISTINCT] T + INNER JOIN [DD_ECM].[dbo].[TBCUST_SYNC_SAP_KREDITOREN_ZO] T2 + ON '000'+T.KreditorNr = T2.LIFNR + WHERE T2.BUKRS = '0326' + AND LEN(T2.SPERR) = 0 +UNION +SELECT T.KreditorNR AS "KreditorNr", T.KreditorName1_2 AS "Kreditor Name" + FROM [DD_ECM].[dbo].[TBCUST_KREDITOR_DISTINCT] T + INNER JOIN [DD_ECM].[dbo].[TBCUST_SYNC_SAP_KREDITOREN_ZO] T2 + ON T.KreditorNr = T2.LIFNR + WHERE T2.BUKRS = '0326' + AND LEN(T2.SPERR) = 0 + ORDER BY T.KreditorNR ASC + +] and Parameters [] +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> [LoadSQLData DEBUG] Lookup [LieferantNr] konfiguriert: +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> DataSource-Typ: System.Data.DataTable +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> ValueMember: [] +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> DisplayMember: [] +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> [LoadSQLData BUGFIX] Alte SelectedValues gesichert: [7004027] +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> [LoadSQLData BUGFIX] Wert [7004027] existiert im neuen DataSource ✓ +09:18:23.0026|frmValidator|DEBUG >> onLookUpselectedValue -> onLookUpselectedValue +09:18:23.0026|frmValidator|DEBUG >> onLookUpselectedValue -> onLookUpselectedValue suppressed (global guard active) +09:18:23.0026|frmValidator|DEBUG >> onLookUpselectedValue -> onLookUpselectedValue +09:18:23.0026|frmValidator|DEBUG >> onLookUpselectedValue -> onLookUpselectedValue suppressed (global guard active) +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> [LoadSQLData BUGFIX] SelectedValues wiederhergestellt: [7004027] +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> in LoadSQLData for ControlID [329]... +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> LoadSQLData for Control [Lieferant] with GUID [329] ... +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> Control for Index [{0}] is read-only. Continuing. +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> in LoadSQLData for ControlID [309]... +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> LoadSQLData for Control [LU_Zahlart] with GUID [309] ... +09:18:23.0026|taskFLOW|DEBUG >> ReplaceAllValues -> input BEFORE replacing: [-- MK // 16.09.2025 + +EXEC [dbo].[PRDD_GET_TRANSLATED_CHOICELIST] + @pSOURCE_QUERY = N'SELECT [ID] as ''ID'',[DESCRIPTION] as ''%DESCRIPTION%'' + FROM [FNCUST_TF_GET_PAYMENT_METHODE](''{#USER#LANGUAGE}'')', + @pLANGUAGE = N'{#USER#LANGUAGE}' + +-- Test mit +-- de-de] +09:18:23.0026|taskFLOW|DEBUG >> ReplaceIDBAttributes -> sql after ReplaceIDBAttributes: -- MK // 16.09.2025 + +EXEC [dbo].[PRDD_GET_TRANSLATED_CHOICELIST] + @pSOURCE_QUERY = N'SELECT [ID] as ''ID'',[DESCRIPTION] as ''%DESCRIPTION%'' + FROM [FNCUST_TF_GET_PAYMENT_METHODE](''{#USER#LANGUAGE}'')', + @pLANGUAGE = N'{#USER#LANGUAGE}' + +-- Test mit +-- de-de +09:18:23.0026|taskFLOW|DEBUG >> ReplaceAllValues -> input AFTER replacing: [-- MK // 16.09.2025 + +EXEC [dbo].[PRDD_GET_TRANSLATED_CHOICELIST] + @pSOURCE_QUERY = N'SELECT [ID] as ''ID'',[DESCRIPTION] as ''%DESCRIPTION%'' + FROM [FNCUST_TF_GET_PAYMENT_METHODE](''de-DE'')', + @pLANGUAGE = N'de-DE' + +-- Test mit +-- de-de] +09:18:23.0026|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access. +09:18:23.0026|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM] +09:18:23.0026|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Server=W2K19SRV398;Database=DD_ECM;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391; +09:18:23.0026|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:23.0026|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [-- MK // 16.09.2025 + +EXEC [dbo].[PRDD_GET_TRANSLATED_CHOICELIST] + @pSOURCE_QUERY = N'SELECT [ID] as ''ID'',[DESCRIPTION] as ''%DESCRIPTION%'' + FROM [FNCUST_TF_GET_PAYMENT_METHODE](''de-DE'')', + @pLANGUAGE = N'de-DE' + +-- Test mit +-- de-de] and Parameters [] +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> [LoadSQLData DEBUG] Lookup [LU_Zahlart] konfiguriert: +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> DataSource-Typ: System.Data.DataTable +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> ValueMember: [ID] +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> DisplayMember: [ID] +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> [LoadSQLData BUGFIX] Alte SelectedValues gesichert: [5] +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> [LoadSQLData BUGFIX] Wert [5] existiert im neuen DataSource ✓ +09:18:23.0026|frmValidator|DEBUG >> onLookUpselectedValue -> onLookUpselectedValue +09:18:23.0026|frmValidator|DEBUG >> onLookUpselectedValue -> onLookUpselectedValue suppressed (global guard active) +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> [LoadSQLData BUGFIX] SelectedValues wiederhergestellt: [5] +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> in LoadSQLData for ControlID [3754]... +09:18:23.0026|frmValidator|DEBUG >> LoadSQLData -> LoadSQLData for Control [TXT_ZahlartBezeichnung] with GUID [3754] ... +09:18:23.0026|taskFLOW|DEBUG >> ReplaceAllValues -> input BEFORE replacing: [-- MK // 22.10.2025 + +SELECT TOP 1 [DESCRIPTION] +FROM [FNCUST_TF_GET_PAYMENT_METHODE]('{#USER#LANGUAGE}') +WHERE [ID] = '{#CTRL#LU_Zahlart}'; + +-- Test mit +-- de-de +-- 2] +09:18:23.0026|taskFLOW|DEBUG >> ReplaceIDBAttributes -> sql after ReplaceIDBAttributes: -- MK // 22.10.2025 + +SELECT TOP 1 [DESCRIPTION] +FROM [FNCUST_TF_GET_PAYMENT_METHODE]('{#USER#LANGUAGE}') +WHERE [ID] = '{#CTRL#LU_Zahlart}'; + +-- Test mit +-- de-de +-- 2 +09:18:23.0026|taskFLOW|DEBUG >> ReplaceControlValues -> Found placeholder for control [LU_Zahlart]. +09:18:23.0026|taskFLOW|DEBUG >> ReplaceControlValues -> oControl.GetType [DigitalData.Controls.LookupGrid.LookupControl3]. +09:18:23.0026|taskFLOW|DEBUG >> ReplaceControlValues -> LookupControl3 [LU_Zahlart] mit genau einem Value +09:18:23.0026|taskFLOW|DEBUG >> ReplaceControlValues -> oReplaceValue nach Durchlaufen selectedValues: 5 +09:18:23.0026|taskFLOW|DEBUG >> ReplaceControlValues -> oReplaceValue nach Durchlaufen selectedValues: 5 +09:18:23.0026|taskFLOW|DEBUG >> ReplaceControlValues -> [SQL-ESCAPE CHECK] Control: [LU_Zahlart], oReplaceValue Type: [String], Value: [5], IsSQL: [True] +09:18:23.0026|taskFLOW|DEBUG >> SafeSqlEscape -> [SafeSqlEscape] Input Type: [String], Value: [5] +09:18:23.0026|taskFLOW|DEBUG >> SafeSqlEscape -> [SafeSqlEscape] Output: [5] +09:18:23.0026|taskFLOW|DEBUG >> ReplaceAllValues -> input AFTER replacing: [-- MK // 22.10.2025 + +SELECT TOP 1 [DESCRIPTION] +FROM [FNCUST_TF_GET_PAYMENT_METHODE]('de-DE') +WHERE [ID] = '5'; + +-- Test mit +-- de-de +-- 2] +09:18:23.0026|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access. +09:18:23.0026|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM] +09:18:23.0026|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Retrieving Connection String from Connection Id [1] +09:18:23.0026|MSSQLServer|DEBUG >> Get_ConnectionStringforID(MSSQLServer.vb:172) -> Getting ConnectionString for ConnectionId [1] +09:18:23.0026|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Server=W2K19SRV398;Database=DD_ECM;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391; +09:18:23.0026|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:23.0026|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM TBDD_CONNECTION WHERE GUID = 1] and Parameters [] +09:18:23.0166|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Data Source=w2k19srv398;Initial Catalog=DD_ECM;User ID=EDMAdmin;Password=XXXXX +09:18:23.0166|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:23.0166|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [-- MK // 22.10.2025 + +SELECT TOP 1 [DESCRIPTION] +FROM [FNCUST_TF_GET_PAYMENT_METHODE]('de-DE') +WHERE [ID] = '5'; + +-- Test mit +-- de-de +-- 2] and Parameters [] +09:18:23.0166|frmValidator|DEBUG >> LoadSQLData -> in LoadSQLData for ControlID [18774]... +09:18:23.0166|frmValidator|DEBUG >> LoadSQLData -> LoadSQLData for Control [Partnerbank] with GUID [18774] ... +09:18:23.0166|frmValidator|INFO >> LoadSQLData -> No CONNECTION_ID for SQL-Data - oGUID: 18774 +09:18:23.0166|frmValidator|INFO >> Load_Next_Document -> [PERF LND] Nach LoadSQLData-Loop: 107,0017ms +09:18:23.0166|taskFLOW|DEBUG >> SetVariableValue -> IDBData - SetVariableValue - Attribute: [PM_LOGGING] - NewValue: [PMProfile loaded: [10-4 Workflow 3.0 - Freigabe Final]] - CheckDeleted: [False] - oIDBTyp: [0] +09:18:23.0166|taskFLOW|DEBUG >> SetVariableValue -> DECLARE @NEW_OBJ_MD_ID BIGINT +EXEC PRIDB_NEW_OBJ_DATA 5877040,'PM_LOGGING','marschreiber','PMProfile loaded: [10-4 Workflow 3.0 - Freigabe Final]','de-DE',0,@OMD_ID = @NEW_OBJ_MD_ID OUTPUT; +09:18:23.1256|frmValidator|DEBUG >> activate_controls -> Sub activate_controls - status = True +09:18:23.1556|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:23.1556|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:23.1556|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:23.1577|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewColumnsCurrency) +09:18:23.1577|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewEvents) +09:18:23.1577|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:23.1577|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:23.1577|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:23.1577|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:23.1577|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:23.1577|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:23.1577|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:23.1577|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:23.1577|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:23.2086|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewColumnsCurrency) +09:18:23.2086|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewEvents) +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:23.2506|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:23.2506|frmValidator|INFO >> Load_Next_Document -> [PERF LND] Nach Currency-Format: 231,002ms +09:18:23.2506|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access. +09:18:23.2506|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM] +09:18:23.2506|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Server=W2K19SRV398;Database=DD_ECM;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391; +09:18:23.2506|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:23.2506|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject(MSSQLServer.vb:390) -> GetDatatableWithConnectionObject: Running Query [ + + SELECT + CONVERT(VARCHAR(30), A.ADDED_WHEN,20) + ' - ' + B.STRING1 as MSG,A.ImageIndex +FROM + TBTF_VALIDATOR_MESSAGE A WITH (READPAST) INNER JOIN + (SELECt * FROM TBDD_GUI_LANGUAGE_PHRASE WITH (READPAST) + WHERE MODULE = 'PM' AND OBJ_NAME = 'frmValidator' AND CAPT_TYPE = 'WF_MESSAGE') B ON A.GUI_LANG_TITLE = B.TITLE WHERE A.Active = 1 and (A.DocID = 5877040 or A.DocID = 1) AND B.LANGUAGE = 'de-DE' ORDER BY A.ADDED_WHEN DESC +] and Parameters [] +09:18:23.2776|frmValidator|INFO >> Load_Next_Document -> [PERF LND] Nach Show_WF_Messages: 20,9974ms +09:18:23.2776|frmValidator|DEBUG >> Load_Next_Document -> [DIAGNOSE] VOR Controls2B_EnDisabled_onLoad: +09:18:23.2776|frmValidator|DEBUG >> Load_Next_Document -> _FormLoaded = [True] +09:18:23.2776|frmValidator|DEBUG >> Load_Next_Document -> _FormClosing = [False] +09:18:23.2776|frmValidator|DEBUG >> Load_Next_Document -> IsDisposed = [False] +09:18:23.2776|frmValidator|DEBUG >> Controls2B_EnDisabled_onLoad -> We got 2 controls which need to be checked dis/enable on load! +09:18:23.2776|frmValidator|DEBUG >> Controls2B_EnDisabled_onLoad -> Checking Control [LU_Zahlart] (ID: 309) for SQL_ENABLE_ON_LOAD... +09:18:23.2776|frmValidator|DEBUG >> Controls2B_EnDisabled_onLoad -> Found Control [LU_Zahlart] (ID: 309) on panel which needs to be checked +09:18:23.2776|taskFLOW|DEBUG >> Controls2B_EnDisabled_onLoad -> [Controls2B_EnDisabled_onLoad] BEFORE ReplaceAllValues for Control [LU_Zahlart] +09:18:23.2776|taskFLOW|DEBUG >> Controls2B_EnDisabled_onLoad -> SQL Command: [-- MK // 17.09.2025 + +DECLARE @Active BIT, + @Creditor NVARCHAR(100) = '{#CTRL#LieferantNr}'; + +SET @Active = CASE + + WHEN LEN(@Creditor) > 0 and (@Creditor <> '0') + THEN 1 + + ELSE 0 + +END; + +SELECT @Active;] +09:18:23.2776|taskFLOW|DEBUG >> Controls2B_EnDisabled_onLoad -> Panel Controls Count: [55] +09:18:23.2776|taskFLOW|DEBUG >> ReplaceAllValues -> input BEFORE replacing: [-- MK // 17.09.2025 + +DECLARE @Active BIT, + @Creditor NVARCHAR(100) = '{#CTRL#LieferantNr}'; + +SET @Active = CASE + + WHEN LEN(@Creditor) > 0 and (@Creditor <> '0') + THEN 1 + + ELSE 0 + +END; + +SELECT @Active;] +09:18:23.2776|taskFLOW|DEBUG >> ReplaceIDBAttributes -> sql after ReplaceIDBAttributes: -- MK // 17.09.2025 + +DECLARE @Active BIT, + @Creditor NVARCHAR(100) = '{#CTRL#LieferantNr}'; + +SET @Active = CASE + + WHEN LEN(@Creditor) > 0 and (@Creditor <> '0') + THEN 1 + + ELSE 0 + +END; + +SELECT @Active; +09:18:23.2776|taskFLOW|DEBUG >> ReplaceControlValues -> Found placeholder for control [LieferantNr]. +09:18:23.2776|taskFLOW|DEBUG >> ReplaceControlValues -> oControl.GetType [DigitalData.Controls.LookupGrid.LookupControl3]. +09:18:23.2776|taskFLOW|DEBUG >> ReplaceControlValues -> LookupControl3 [LieferantNr] mit genau einem Value +09:18:23.2776|taskFLOW|DEBUG >> ReplaceControlValues -> oReplaceValue nach Durchlaufen selectedValues: 7004027 +09:18:23.2776|taskFLOW|DEBUG >> ReplaceControlValues -> oReplaceValue nach Durchlaufen selectedValues: 7004027 +09:18:23.2776|taskFLOW|DEBUG >> ReplaceControlValues -> [SQL-ESCAPE CHECK] Control: [LieferantNr], oReplaceValue Type: [String], Value: [7004027], IsSQL: [True] +09:18:23.2776|taskFLOW|DEBUG >> SafeSqlEscape -> [SafeSqlEscape] Input Type: [String], Value: [7004027] +09:18:23.2776|taskFLOW|DEBUG >> SafeSqlEscape -> [SafeSqlEscape] Output: [7004027] +09:18:23.2776|taskFLOW|DEBUG >> ReplaceAllValues -> input AFTER replacing: [-- MK // 17.09.2025 + +DECLARE @Active BIT, + @Creditor NVARCHAR(100) = '7004027'; + +SET @Active = CASE + + WHEN LEN(@Creditor) > 0 and (@Creditor <> '0') + THEN 1 + + ELSE 0 + +END; + +SELECT @Active;] +09:18:23.2776|taskFLOW|DEBUG >> Controls2B_EnDisabled_onLoad -> [Controls2B_EnDisabled_onLoad] AFTER ReplaceAllValues: [-- MK // 17.09.2025 + +DECLARE @Active BIT, + @Creditor NVARCHAR(100) = '7004027'; + +SET @Active = CASE + + WHEN LEN(@Creditor) > 0 and (@Creditor <> '0') + THEN 1 + + ELSE 0 + +END; + +SELECT @Active;] +09:18:23.2776|frmValidator|DEBUG >> Controls2B_EnDisabled_onLoad -> [SQL START] Control [LU_Zahlart]: Führe SQL aus... +09:18:23.2776|MSSQLServer|DEBUG >> GetConnection(MSSQLServer.vb:275) -> The Following Connection is open: Server=W2K19SRV398;Database=DD_ECM;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391; +09:18:23.2776|MSSQLServer|DEBUG >> MaybeGetTransaction(MSSQLServer.vb:117) -> Transaction Mode: [WithTransaction] +09:18:23.2776|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject(MSSQLServer.vb:562) -> GetScalarValueWithConnectionObject: Running Query [-- MK // 17.09.2025 + +DECLARE @Active BIT, + @Creditor NVARCHAR(100) = '7004027'; + +SET @Active = CASE + + WHEN LEN(@Creditor) > 0 and (@Creditor <> '0') + THEN 1 + + ELSE 0 + +END; + +SELECT @Active;] with Parameters [] +09:18:23.2776|frmValidator|DEBUG >> Controls2B_EnDisabled_onLoad -> [SQL ENDE] Control [LU_Zahlart]: Result = [True] +09:18:23.2776|frmValidator|DEBUG >> Controls2B_EnDisabled_onLoad -> Result of Enable SQL [True]... +09:18:23.2776|frmValidator|DEBUG >> Controls2B_EnDisabled_onLoad -> Checking Control [Partnerbank] (ID: 18774) for SQL_ENABLE_ON_LOAD... +09:18:23.2776|frmValidator|DEBUG >> Controls2B_EnDisabled_onLoad -> Found Control [Partnerbank] (ID: 18774) on panel which needs to be checked +09:18:23.2776|taskFLOW|DEBUG >> Controls2B_EnDisabled_onLoad -> [Controls2B_EnDisabled_onLoad] BEFORE ReplaceAllValues for Control [Partnerbank] +09:18:23.2776|taskFLOW|DEBUG >> Controls2B_EnDisabled_onLoad -> SQL Command: [-- MK // 17.09.2025 + +DECLARE @Active BIT, + @Creditor NVARCHAR(100) = '{#CTRL#LieferantNr}'; + +SET @Active = CASE + + WHEN LEN(@Creditor) > 0 and (@Creditor <> '0') + THEN 1 + + ELSE 0 + +END; + +SELECT @Active;] +09:18:23.2826|taskFLOW|DEBUG >> Controls2B_EnDisabled_onLoad -> Panel Controls Count: [55] +09:18:23.2826|taskFLOW|DEBUG >> ReplaceAllValues -> input BEFORE replacing: [-- MK // 17.09.2025 + +DECLARE @Active BIT, + @Creditor NVARCHAR(100) = '{#CTRL#LieferantNr}'; + +SET @Active = CASE + + WHEN LEN(@Creditor) > 0 and (@Creditor <> '0') + THEN 1 + + ELSE 0 + +END; + +SELECT @Active;] +09:18:23.2826|taskFLOW|DEBUG >> ReplaceIDBAttributes -> sql after ReplaceIDBAttributes: -- MK // 17.09.2025 + +DECLARE @Active BIT, + @Creditor NVARCHAR(100) = '{#CTRL#LieferantNr}'; + +SET @Active = CASE + + WHEN LEN(@Creditor) > 0 and (@Creditor <> '0') + THEN 1 + + ELSE 0 + +END; + +SELECT @Active; +09:18:23.2826|taskFLOW|DEBUG >> ReplaceControlValues -> Found placeholder for control [LieferantNr]. +09:18:23.2826|taskFLOW|DEBUG >> ReplaceControlValues -> oControl.GetType [DigitalData.Controls.LookupGrid.LookupControl3]. +09:18:23.2826|taskFLOW|DEBUG >> ReplaceControlValues -> LookupControl3 [LieferantNr] mit genau einem Value +09:18:23.2826|taskFLOW|DEBUG >> ReplaceControlValues -> oReplaceValue nach Durchlaufen selectedValues: 7004027 +09:18:23.2826|taskFLOW|DEBUG >> ReplaceControlValues -> oReplaceValue nach Durchlaufen selectedValues: 7004027 +09:18:23.2826|taskFLOW|DEBUG >> ReplaceControlValues -> [SQL-ESCAPE CHECK] Control: [LieferantNr], oReplaceValue Type: [String], Value: [7004027], IsSQL: [True] +09:18:23.2826|taskFLOW|DEBUG >> SafeSqlEscape -> [SafeSqlEscape] Input Type: [String], Value: [7004027] +09:18:23.2826|taskFLOW|DEBUG >> SafeSqlEscape -> [SafeSqlEscape] Output: [7004027] +09:18:23.2826|taskFLOW|DEBUG >> ReplaceAllValues -> input AFTER replacing: [-- MK // 17.09.2025 + +DECLARE @Active BIT, + @Creditor NVARCHAR(100) = '7004027'; + +SET @Active = CASE + + WHEN LEN(@Creditor) > 0 and (@Creditor <> '0') + THEN 1 + + ELSE 0 + +END; + +SELECT @Active;] +09:18:23.2826|taskFLOW|DEBUG >> Controls2B_EnDisabled_onLoad -> [Controls2B_EnDisabled_onLoad] AFTER ReplaceAllValues: [-- MK // 17.09.2025 + +DECLARE @Active BIT, + @Creditor NVARCHAR(100) = '7004027'; + +SET @Active = CASE + + WHEN LEN(@Creditor) > 0 and (@Creditor <> '0') + THEN 1 + + ELSE 0 + +END; + +SELECT @Active;] +09:18:23.2826|frmValidator|DEBUG >> Controls2B_EnDisabled_onLoad -> [SQL START] Control [Partnerbank]: Führe SQL aus... +09:18:23.2826|frmValidator|DEBUG >> Controls2B_EnDisabled_onLoad -> [SQL ENDE] Control [Partnerbank]: Result = [True] +09:18:23.2826|frmValidator|DEBUG >> Controls2B_EnDisabled_onLoad -> Result of Enable SQL [True]... +09:18:23.2826|frmValidator|DEBUG >> Controls2B_EnDisabled_onLoad -> [EXIT 3] Controls2B_EnDisabled_onLoad: Normale Beendigung +09:18:23.2826|frmValidator|INFO >> Load_Next_Document -> [PERF LND] Nach Controls2B_EnDisabled: 4,9994ms +09:18:23.2826|frmValidator|DEBUG >> Load_Next_Document -> frmValidator: LoadNextDocument finished! +09:18:23.2826|frmValidator|DEBUG >> CloseOverlaySafe -> [Overlay] RefCount: 1 → 0 +09:18:23.2826|frmValidator|DEBUG >> CloseOverlaySafe -> [Overlay] ✓ Geschlossen +09:18:23.2826|frmValidator|INFO >> Load_Next_Document -> [INFO] Load_Next_Document ENDE +09:18:23.2826|frmValidator|INFO >> Load_Next_Document -> frmValidator.IsDisposed: False +09:18:23.2826|frmValidator|INFO >> Load_Next_Document -> frmValidator.Visible: True +09:18:23.2826|frmValidator|INFO >> Load_Next_Document -> [PERF LND] Load_Next_Document GESAMT: 2165,0144ms +09:18:23.2826|frmValidator|INFO >> frmValidation_Shown -> [PERF] frmValidation_Shown nach Load_Next_Document: 2173,0133ms +09:18:23.2826|frmValidator|DEBUG >> frmValidation_Shown -> Enabling Export2File, Caption set +09:18:23.2826|frmValidator|DEBUG >> frmValidation_Shown -> Button Caption: [Export Y:] +09:18:23.2826|frmValidator|DEBUG >> frmValidation_Shown -> Export root folder: [\\wisagservice\re] +09:18:23.2826|frmValidator|DEBUG >> frmValidation_Shown -> File exists, Showing Export Button +09:18:23.4066|frmValidator|DEBUG >> frmValidation_Shown -> Setting default export path to [\\wisagservice\re] +09:18:23.4076|frmValidator|INFO >> frmValidation_Shown -> [PERF] frmValidation_Shown nach Ribbon/Export Setup: 117,9964ms +09:18:23.4076|frmValidator|DEBUG >> frmValidation_Shown -> frmValidation_Shown finished! +09:18:23.4076|frmValidator|DEBUG >> frmValidation_Shown -> ℹ Overlay war bereits geschlossen +09:18:23.4846|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:23.4856|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:23.4856|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:23.4856|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewColumnsCurrency) +09:18:23.4856|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewEvents) +09:18:23.4856|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:23.4856|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:23.4856|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:23.4856|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [ColumnRowNr] +09:18:23.4856|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colSAKNR] +09:18:23.4856|GridControl|DEBUG >> _Lambda$__2 -> CURRENCY column [col2] – NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit +09:18:23.4856|GridControl|DEBUG >> _Lambda$__2 -> Assigning Editor to Column [colKostenstelle] +09:18:23.4856|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [colZuordnung] does not exist +09:18:23.4856|GridControl|DEBUG >> _Lambda$__2 -> Editor for Column [col5] does not exist +09:18:23.6386|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewColumnsCurrency) +09:18:23.6386|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewEvents) +09:18:23.6686|frmValidator|INFO >> frmValidation_Shown -> [PERF] frmValidation_Shown GESAMT: 2553,02ms +09:18:23.6966|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewColumnsCurrency) +09:18:23.6966|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewEvents) +09:18:26.8257|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewColumnsCurrency) +09:18:26.8307|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewEvents) +09:18:26.8587|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewColumnsCurrency) +09:18:26.8587|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewEvents) +09:18:26.8767|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewColumnsCurrency) +09:18:26.8767|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewEvents) +09:18:26.8967|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewColumnsCurrency) +09:18:26.8967|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewEvents) +09:18:26.9257|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewColumnsCurrency) +09:18:26.9257|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewEvents) +09:18:26.9457|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewColumnsCurrency) +09:18:26.9457|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewEvents) +09:18:26.9597|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewColumnsCurrency) +09:18:26.9597|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewEvents) +09:18:26.9727|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewColumnsCurrency) +09:18:26.9727|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewEvents) +09:18:26.9937|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewColumnsCurrency) +09:18:26.9937|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewEvents) +09:18:27.0047|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewColumnsCurrency) +09:18:27.0047|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewEvents) +09:18:27.0197|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewColumnsCurrency) +09:18:27.0197|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewEvents) +09:18:27.0367|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewColumnsCurrency) +09:18:27.0367|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewEvents) +09:18:27.0497|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewColumnsCurrency) +09:18:27.0497|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewEvents) +09:18:27.0497|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewColumnsCurrency) +09:18:27.0497|GridControl|DEBUG >> _Lambda$__1 -> [CustomColumnDisplayText] CURRENCY [col2]: DisplayText=[322,00 EUR], Symbol=[EUR] (from Shared Dict in ConfigureViewEvents) diff --git a/app/TaskFlow/taskFLOW.vbproj b/app/TaskFlow/taskFLOW.vbproj index 3877f8f..f0c9f09 100644 --- a/app/TaskFlow/taskFLOW.vbproj +++ b/app/TaskFlow/taskFLOW.vbproj @@ -462,6 +462,7 @@ + @@ -1256,6 +1257,7 @@ +