2 Commits

Author SHA1 Message Date
Developer01
6261ad5996 Benutzeroberfläche und SQL-Logging optimiert
Die Änderungen umfassen:
- Entfernung von `ToolTip1`- und `ImageOptions`-Eigenschaften zur Vereinfachung der Benutzeroberfläche.
- Hinzufügen von `_lastUsedOverviewSQL` zur Speicherung der letzten SQL-Abfrage.
- Erweiterung der SQL-Verarbeitung mit Platzhalterersetzung (`@PROFILE_ID`).
- Verbesserte Performance-Diagnose und Logging mit `LOG_HOTSPOTS`.
- Dynamische Aktualisierung der Baumknotenanzahl und verbesserte Hintergrundprozesse.
- Aktualisierung von Ressourcen und Lokalisierung zur Unterstützung mehrsprachiger Anwendungen.
- Entfernung von DevExpress-Komponenten und Modernisierung der UI-Elemente.
2026-05-29 14:21:26 +02:00
Developer01
ab0ff0f851 Neue Funktion: Leere Workflows ausblenden
- Hinzufügen der Eigenschaft `Hide_Empty_Workflows` in `ClassConfig` zur Steuerung der Sichtbarkeit leerer Workflows.
- Neues Ribbon-Element `Bchkitm_load_empty_wf` zur Aktivierung/Deaktivierung der Funktion.
- Asynchrone Aktualisierung der Knotenanzahlen in `TreeList_Cockpit` mit `_treeNodeCounts`.
- Sichtbarkeitssteuerung für Knoten basierend auf der Checkbox `Bchkitm_load_empty_wf`.
- Verbesserte Benutzerfreundlichkeit durch Tooltips und Logging.
- Optimierung von SQL-Abfragen und Bereinigung von Knotenbezeichnungen.
2026-05-29 12:44:11 +02:00
8 changed files with 639 additions and 301 deletions

View File

@@ -43,6 +43,7 @@ Public Class ClassConfig
Public Property LastExportPath As String = ""
Public Property ADDITIONAL_SEARCHES_LOAD_ONCLICK As Boolean = True
Public Property NOTES_ONCLICK As Boolean = True
Public Property Hide_Empty_Workflows As Boolean = True
Public Property GridFontSizeDelta As Integer = 0
Public Property ProfileConfig As New ProfileUserConfig
Public Property InvDashboardSplitterPositions As New List(Of InvDashboardSplitterPosition)

View File

@@ -78,6 +78,7 @@ Partial Class frmMain
Me.barbtnitmsaveLogfiles = New DevExpress.XtraBars.BarButtonItem()
Me.bsitmCount = New DevExpress.XtraBars.BarStaticItem()
Me.BarButtonItemCock_refresh = New DevExpress.XtraBars.BarButtonItem()
Me.Bchkitm_load_empty_wf = New DevExpress.XtraBars.BarCheckItem()
Me.RibbonPageStart = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
@@ -239,9 +240,9 @@ Partial Class frmMain
'RibbonControl1
'
Me.RibbonControl1.ExpandCollapseItem.Id = 0
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.bbtniRefresh, Me.bbiProfilverwaltung, Me.bbiKonfiguration, Me.bbtniGrundeinstellung, Me.bbtnitemInfo, Me.BarButtonItem1, Me.bsiUser, Me.bsiLicenses, Me.bsiUserLoggedIn, Me.bsiVersion, Me.bsilastsync, Me.bsiDebug, Me.bsiMessage, Me.bbtniMetadataFile, Me.BarEditItem1, Me.bsiGeneralInfo, Me.bbtnitmGhostMode, Me.bsi_GhostMode, Me.BarButtonItemGhostMode, Me.SearchItem1, Me.SearchItem2, Me.BarStaticItemAppServer, Me.bbtniCW, Me.bsiInactivityCheck, Me.BarButtonItem2, Me.BarCheckItemAutofilter, Me.BarCheckItem2, Me.BarButtonItemResetLayout, Me.BarButtonItem4, Me.BarButtonItemExportExcel, Me.BarButtonItem6, Me.BarButtonItem7, Me.BarButtonItemWFSingle, Me.BarButtonItemWFGroup, Me.BarButtonItemFileLink, Me.BarButtonItemMassValidation, Me.BarCheckItemShowSearch, Me.barItemGridFontSize, Me.BarButtonItem8, Me.BbtnitmAHWF1, Me.BbtnitmAHWF2, Me.BbtnitmAHWF3, Me.BbtnitmAHWF4, Me.bbtnitmLanguage_Change, Me.BarButtonItem10, Me.BBtnItmNotfications, Me.BSIVERSION1, Me.barbtnitmsaveLogfiles, Me.bsitmCount, Me.BarButtonItemCock_refresh})
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.bbtniRefresh, Me.bbiProfilverwaltung, Me.bbiKonfiguration, Me.bbtniGrundeinstellung, Me.bbtnitemInfo, Me.BarButtonItem1, Me.bsiUser, Me.bsiLicenses, Me.bsiUserLoggedIn, Me.bsiVersion, Me.bsilastsync, Me.bsiDebug, Me.bsiMessage, Me.bbtniMetadataFile, Me.BarEditItem1, Me.bsiGeneralInfo, Me.bbtnitmGhostMode, Me.bsi_GhostMode, Me.BarButtonItemGhostMode, Me.SearchItem1, Me.SearchItem2, Me.BarStaticItemAppServer, Me.bbtniCW, Me.bsiInactivityCheck, Me.BarButtonItem2, Me.BarCheckItemAutofilter, Me.BarCheckItem2, Me.BarButtonItemResetLayout, Me.BarButtonItem4, Me.BarButtonItemExportExcel, Me.BarButtonItem6, Me.BarButtonItem7, Me.BarButtonItemWFSingle, Me.BarButtonItemWFGroup, Me.BarButtonItemFileLink, Me.BarButtonItemMassValidation, Me.BarCheckItemShowSearch, Me.barItemGridFontSize, Me.BarButtonItem8, Me.BbtnitmAHWF1, Me.BbtnitmAHWF2, Me.BbtnitmAHWF3, Me.BbtnitmAHWF4, Me.bbtnitmLanguage_Change, Me.BarButtonItem10, Me.BBtnItmNotfications, Me.BSIVERSION1, Me.barbtnitmsaveLogfiles, Me.bsitmCount, Me.BarButtonItemCock_refresh, Me.Bchkitm_load_empty_wf})
resources.ApplyResources(Me.RibbonControl1, "RibbonControl1")
Me.RibbonControl1.MaxItemId = 58
Me.RibbonControl1.MaxItemId = 60
Me.RibbonControl1.Name = "RibbonControl1"
Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPageStart, Me.RibbonPageTabelle, Me.RibbonPageAktionen})
Me.RibbonControl1.RepositoryItems.AddRange(New DevExpress.XtraEditors.Repository.RepositoryItem() {Me.RepositoryItemProgressBar1, Me.RepositoryItemTrackBar1, Me.cmbGridFontSize})
@@ -670,6 +671,15 @@ Partial Class frmMain
Me.BarButtonItemCock_refresh.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItemCock_refresh.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.BarButtonItemCock_refresh.Name = "BarButtonItemCock_refresh"
'
'Bchkitm_load_empty_wf
'
Me.Bchkitm_load_empty_wf.BindableChecked = True
resources.ApplyResources(Me.Bchkitm_load_empty_wf, "Bchkitm_load_empty_wf")
Me.Bchkitm_load_empty_wf.Checked = True
Me.Bchkitm_load_empty_wf.Id = 59
Me.Bchkitm_load_empty_wf.ImageOptions.SvgImage = CType(resources.GetObject("Bchkitm_load_empty_wf.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.Bchkitm_load_empty_wf.Name = "Bchkitm_load_empty_wf"
'
'RibbonPageStart
'
Me.RibbonPageStart.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup3, Me.RibbonPageGroupBasicConf, Me.RibbonPageGroup7, Me.RibbonPageGroup4, Me.RibbonPageGroupAHW})
@@ -680,6 +690,7 @@ Partial Class frmMain
'
Me.RibbonPageGroup1.AllowTextClipping = False
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItemCock_refresh)
Me.RibbonPageGroup1.ItemLinks.Add(Me.Bchkitm_load_empty_wf)
Me.RibbonPageGroup1.ItemLinks.Add(Me.bbtniRefresh)
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItemGhostMode)
Me.RibbonPageGroup1.ItemLinks.Add(Me.BBtnItmNotfications)
@@ -799,7 +810,7 @@ Partial Class frmMain
resources.ApplyResources(Me.ImageCollection1, "ImageCollection1")
Me.ImageCollection1.ImageStream = CType(resources.GetObject("ImageCollection1.ImageStream"), DevExpress.Utils.ImageCollectionStreamer)
Me.ImageCollection1.Images.SetKeyName(0, "splittablecells_32x32.png")
Me.ImageCollection1.Images.SetKeyName(1, "bosaleitem_32x32.png")
Me.ImageCollection1.Images.SetKeyName(1, "icons8-microsoft-to-do-app-50.png")
Me.ImageCollection1.Images.SetKeyName(2, "bar2_32x32.png")
Me.ImageCollection1.Images.SetKeyName(3, "gaugestylefullcircular_32x32.png")
'
@@ -1793,4 +1804,5 @@ Partial Class frmMain
Friend WithEvents Panel1 As Panel
Friend WithEvents SplitterControl1 As DevExpress.XtraEditors.SplitterControl
Friend WithEvents BarButtonItemCock_refresh As DevExpress.XtraBars.BarButtonItem
Friend WithEvents Bchkitm_load_empty_wf As DevExpress.XtraBars.BarCheckItem
End Class

View File

@@ -1704,6 +1704,37 @@
NS42LTIuNGwzLjYtMy42SDguNEg0LjRINC4ydjEwbDMuNS0zLjVjMi4yLDIuMiw1LjIsMy41LDguNSwz
LjUgICBDMjIuMSwyOCwyNywyMy43LDI4LDE4aC00LjFDMjMsMjEuNCwxOS45LDI0LDE2LjIsMjR6IiBj
bGFzcz0iR3JlZW4iIC8+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
</data>
<data name="Bchkitm_load_empty_wf.Caption" xml:space="preserve">
<value>Hide empty workflows</value>
</data>
<data name="Bchkitm_load_empty_wf.ImageOptions.ImageIndex" type="System.Int32, mscorlib">
<value>-1</value>
</data>
<data name="Bchkitm_load_empty_wf.ImageOptions.LargeImageIndex" type="System.Int32, mscorlib">
<value>-1</value>
</data>
<data name="Bchkitm_load_empty_wf.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAHoDAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkdyZWVue2ZpbGw6IzAzOUMyMzt9Cgku
QmxhY2t7ZmlsbDojNzI3MjcyO30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5ZZWxsb3d7ZmlsbDojRkZC
MTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iQXV0b0V4cGFu
ZCI+DQogICAgPHBhdGggZD0iTTE5LDEwaC04Yy0wLjYsMC0xLTAuNC0xLTFWNWMwLTAuNiwwLjQtMSwx
LTFoOGMwLjUsMCwxLDAuNCwxLDF2NEMyMCw5LjYsMTkuNSwxMCwxOSwxMHogTTMyLDE5di00ICAgYzAt
MC42LTAuNS0xLTEtMWgtOGMtMC41LDAtMSwwLjQtMSwxdjRjMCwwLjUsMC41LDEsMSwxaDhDMzEuNSwy
MCwzMiwxOS41LDMyLDE5eiBNMzIsMjd2LTRjMC0wLjUtMC41LTEtMS0xaC04Yy0wLjUsMC0xLDAuNS0x
LDEgICB2NGMwLDAuNSwwLjUsMSwxLDFoOEMzMS41LDI4LDMyLDI3LjUsMzIsMjd6IiBjbGFzcz0iWWVs
bG93IiAvPg0KICAgIDxwYXRoIGQ9Ik0wLDRoOEw0LDhMMCw0eiBNMTYsMjR2LTZoNHYtMmgtNHYtNGgt
MnYxNGg2di0ySDE2eiIgY2xhc3M9IkJsYWNrIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
<data name="RibbonPageGroup1.Text" xml:space="preserve">
@@ -1746,7 +1777,7 @@
cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P//
/xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAABgAAAAYAAAACQUAAAAP
BQAAAGkYAAAC/QUAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgGAAAA4Hc9+AAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADr4AAA6+AepCscAAAAWfSURBVEhLvZZpUFNXGIYvVbtvM92kdqa1rVUr42hbay1j
YQUAAAAJcEhZcwAADr0AAA69AUf7kK0AAAWfSURBVEhLvZZpUFNXGIYvVbtvM92kdqa1rVUr42hbay1j
rXVsi61LW+qCrEaQQWAAiRsC4oJiBNlVigurIkkwCghFUdkCAYKI4MqWsINAFrKQ5e2cmxsItJ3pr96Z
d5JJJs/z5TvfOfdS1P90WVEU9YxFpkzK1H/JNIs8Oynkd4RLWYWm3rEJu/TwzP6sJm5oVhM35EIjd19m
Izcos5G7J72RuzvtHpd9vp7HPlfPCzhTR8cvWczzTarh+Zyu4XmfEvG9Eiv5ngmVfI+ESr57vJDveuyG
@@ -1771,7 +1802,7 @@
BM29I3jSo8TjHiUedSvRKJFjbUj+WIumbAjOtvNIEPVtS6yBR3wNtsaJwIqtwpaYKrhGV8LlhBDOUUI4
RlZg8/FyOHDKselYGTZGlGJDRCnWHymh83v4bdgzsdt1kWM+KsiN+Tlmxd+gKOpNi7zF5G0m71hkOhNr
Ju9ahHxPRpS+J5sl//Q08V8z+WmDfEZ41F8VtFHlC52srAAAAABJRU5ErkJggq0GAACJUE5HDQoaCgAA
AA1JSERSAAAAGAAAABgIBgAAAOB3PfgAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA6+AAAOvgHqQrHA
AA1JSERSAAAAGAAAABgIBgAAAOB3PfgAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA69AAAOvQFH+5Ct
AAAGT0lEQVRIS81VeVCTVxx8aq31qCLBoCCXBFCr4llEqijEqxSpFQ+CEQiXXAHkKBoEEYy0IFKhteBR
6okiDiAiIOBUDoEEEMIZDgVJCIcgChSv2c4XcIZpx7b2r+7M98/3Znb3t++9fYT8XxAcTMYnOOuo3nBf
wExyXWCa4MjQ9tjCmEQIGTf6/WeMu+G3VCc1YEVIYbxlflmid68oYWtPfaK5MC1APyWOpekbaaG+hhDy
@@ -1800,7 +1831,7 @@
+XwTXLOjv+VtmFnM1JhiR5s2bf68tRzbpbsiBw0dL1KxVM5QX2X6T+RjQU1DZUjXpk3Y4Gmg8MBm8bRz
ClOIPiFEYdTEJ9Pnrtoyexn74QzVz03eF8vf4d001N4oE0KUCCFT/kREmaDWJ47598GghD7sMR+DPwBL
DL6/Ppn6BAAAAABJRU5ErkJgghcFAACJUE5HDQoaCgAAAA1JSERSAAAAGAAAABgIBgAAAOB3PfgAAAAE
Z0FNQQAAsY8L/GEFAAAACXBIWXMAAA6+AAAOvgHqQrHAAAAEuUlEQVRIS6WVeVBTVxTGbxWpS5fpMm3t
Z0FNQQAAsY8L/GEFAAAACXBIWXMAAA69AAAOvQFH+5CtAAAEuUlEQVRIS6WVeVBTVxTGbxWpS5fpMm3t
0L86pVtcW5wygNRpy2hlEwUUXJAUKARcKGKEkBAgoFAxAxVQIAkhgDqIKJC8hADKqiCLVAGDEGCKMELo
Iu2/X+eGhAaolaHfzO+9uXPvne+dd849l5B/9AIhZNl/QOeXrGUt4oPrO7K/29eWyfa7QxEHmDhgpD51
73qT0ZK0vDllt2Sq8zKmOi/B0FEMQ3sRDHcVMLQVwtAmR0OCm4QQYjV/42JlpT35zdW/BpWYvpeP6W4p
@@ -1822,7 +1853,7 @@
7g9duB90HMo+PKSE+c4Q6ouHIT5G+ijB3kZULi7PNViZZrtBlPPxZ5hhM7IpH21G9oebTGxElq0FH2yY
Rfz+uh5CyGvzT6+l6AQ9eXTR66bebwltCc/CfE/Q225BD7IUrVlqtBSeebv9DSPp72MGtFSzAAAAAElF
TkSuQmCCmAYAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgGAAAA4Hc9+AAAAARnQU1BAACxjwv8YQUA
AAAJcEhZcwAADsEAAA7BAbiRa+0AAAY6SURBVEhLlVZ7TFNnFP90c1P3VOeyOA3Z/pjGTJNtWZZsxmXZ
AAAJcEhZcwAADsAAAA7AAWrWiQkAAAY6SURBVEhLlVZ7TFNnFP90c1P3VOeyOA3Z/pjGTJNtWZZsxmXZ
I5mKj6n44CmMqQgTwflkMBWQTcZQC0oR5RFApTJwKM/CQCoPbWlLodhSSh/0/aCF0lYdv+W7thvLNNlO
8rv35t4vv9/5zjnfOZeQJ9s0Qsh0QsjThJBnCSGzCCGzfaDP9B39Rtf8L6PET+3Zkz4vK78+sKSyO+NG
i5Rff0s+0sRT3G9ol9lvtkplV2r4FacLGnYnZZa9896aNVT0PwlNCwj4eOapnJrVFyu6a/m9WuuI0QnH
@@ -1906,7 +1937,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADw
CAAAAk1TRnQBSQFMAgEBAgEAASwBBQEsAQUBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
CAAAAk1TRnQBSQFMAgEBAgEAATQBBQE0AQUBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA

View File

@@ -1324,6 +1324,31 @@
NS42LTIuNGwzLjYtMy42SDguNEg0LjRINC4ydjEwbDMuNS0zLjVjMi4yLDIuMiw1LjIsMy41LDguNSwz
LjUgICBDMjIuMSwyOCwyNywyMy43LDI4LDE4aC00LjFDMjMsMjEuNCwxOS45LDI0LDE2LjIsMjR6IiBj
bGFzcz0iR3JlZW4iIC8+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
</data>
<data name="Bchkitm_load_empty_wf.Caption" xml:space="preserve">
<value>Masquer les flux de travail vides</value>
</data>
<data name="Bchkitm_load_empty_wf.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAHoDAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkdyZWVue2ZpbGw6IzAzOUMyMzt9Cgku
QmxhY2t7ZmlsbDojNzI3MjcyO30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5ZZWxsb3d7ZmlsbDojRkZC
MTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iQXV0b0V4cGFu
ZCI+DQogICAgPHBhdGggZD0iTTE5LDEwaC04Yy0wLjYsMC0xLTAuNC0xLTFWNWMwLTAuNiwwLjQtMSwx
LTFoOGMwLjUsMCwxLDAuNCwxLDF2NEMyMCw5LjYsMTkuNSwxMCwxOSwxMHogTTMyLDE5di00ICAgYzAt
MC42LTAuNS0xLTEtMWgtOGMtMC41LDAtMSwwLjQtMSwxdjRjMCwwLjUsMC41LDEsMSwxaDhDMzEuNSwy
MCwzMiwxOS41LDMyLDE5eiBNMzIsMjd2LTRjMC0wLjUtMC41LTEtMS0xaC04Yy0wLjUsMC0xLDAuNS0x
LDEgICB2NGMwLDAuNSwwLjUsMSwxLDFoOEMzMS41LDI4LDMyLDI3LjUsMzIsMjd6IiBjbGFzcz0iWWVs
bG93IiAvPg0KICAgIDxwYXRoIGQ9Ik0wLDRoOEw0LDhMMCw0eiBNMTYsMjR2LTZoNHYtMmgtNHYtNGgt
MnYxNGg2di0ySDE2eiIgY2xhc3M9IkJsYWNrIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
<data name="RibbonPageGroup1.Text" xml:space="preserve">
@@ -1366,7 +1391,7 @@
cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P//
/xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAABgAAAAYAAAACQUAAAAP
BQAAAGkYAAAC/QUAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgGAAAA4Hc9+AAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADr0AAA69AUf7kK0AAAWfSURBVEhLvZZpUFNXGIYvVbtvM92kdqa1rVUr42hbay1j
YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAWfSURBVEhLvZZpUFNXGIYvVbtvM92kdqa1rVUr42hbay1j
rXVsi61LW+qCrEaQQWAAiRsC4oJiBNlVigurIkkwCghFUdkCAYKI4MqWsINAFrKQ5e2cmxsItJ3pr96Z
d5JJJs/z5TvfOfdS1P90WVEU9YxFpkzK1H/JNIs8Oynkd4RLWYWm3rEJu/TwzP6sJm5oVhM35EIjd19m
Izcos5G7J72RuzvtHpd9vp7HPlfPCzhTR8cvWczzTarh+Zyu4XmfEvG9Eiv5ngmVfI+ESr57vJDveuyG
@@ -1391,7 +1416,7 @@
BM29I3jSo8TjHiUedSvRKJFjbUj+WIumbAjOtvNIEPVtS6yBR3wNtsaJwIqtwpaYKrhGV8LlhBDOUUI4
RlZg8/FyOHDKselYGTZGlGJDRCnWHymh83v4bdgzsdt1kWM+KsiN+Tlmxd+gKOpNi7zF5G0m71hkOhNr
Ju9ahHxPRpS+J5sl//Q08V8z+WmDfEZ41F8VtFHlC52srAAAAABJRU5ErkJggq0GAACJUE5HDQoaCgAA
AA1JSERSAAAAGAAAABgIBgAAAOB3PfgAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA69AAAOvQFH+5Ct
AA1JSERSAAAAGAAAABgIBgAAAOB3PfgAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJ
AAAGT0lEQVRIS81VeVCTVxx8aq31qCLBoCCXBFCr4llEqijEqxSpFQ+CEQiXXAHkKBoEEYy0IFKhteBR
6okiDiAiIOBUDoEEEMIZDgVJCIcgChSv2c4XcIZpx7b2r+7M98/3Znb3t++9fYT8XxAcTMYnOOuo3nBf
wExyXWCa4MjQ9tjCmEQIGTf6/WeMu+G3VCc1YEVIYbxlflmid68oYWtPfaK5MC1APyWOpekbaaG+hhDy
@@ -1420,7 +1445,7 @@
+XwTXLOjv+VtmFnM1JhiR5s2bf68tRzbpbsiBw0dL1KxVM5QX2X6T+RjQU1DZUjXpk3Y4Gmg8MBm8bRz
ClOIPiFEYdTEJ9Pnrtoyexn74QzVz03eF8vf4d001N4oE0KUCCFT/kREmaDWJ47598GghD7sMR+DPwBL
DL6/Ppn6BAAAAABJRU5ErkJgghcFAACJUE5HDQoaCgAAAA1JSERSAAAAGAAAABgIBgAAAOB3PfgAAAAE
Z0FNQQAAsY8L/GEFAAAACXBIWXMAAA69AAAOvQFH+5CtAAAEuUlEQVRIS6WVeVBTVxTGbxWpS5fpMm3t
Z0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAEuUlEQVRIS6WVeVBTVxTGbxWpS5fpMm3t
0L86pVtcW5wygNRpy2hlEwUUXJAUKARcKGKEkBAgoFAxAxVQIAkhgDqIKJC8hADKqiCLVAGDEGCKMELo
Iu2/X+eGhAaolaHfzO+9uXPvne+dd849l5B/9AIhZNl/QOeXrGUt4oPrO7K/29eWyfa7QxEHmDhgpD51
73qT0ZK0vDllt2Sq8zKmOi/B0FEMQ3sRDHcVMLQVwtAmR0OCm4QQYjV/42JlpT35zdW/BpWYvpeP6W4p
@@ -1442,7 +1467,7 @@
7g9duB90HMo+PKSE+c4Q6ouHIT5G+ijB3kZULi7PNViZZrtBlPPxZ5hhM7IpH21G9oebTGxElq0FH2yY
Rfz+uh5CyGvzT6+l6AQ9eXTR66bebwltCc/CfE/Q225BD7IUrVlqtBSeebv9DSPp72MGtFSzAAAAAElF
TkSuQmCCmAYAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgGAAAA4Hc9+AAAAARnQU1BAACxjwv8YQUA
AAAJcEhZcwAADsAAAA7AAWrWiQkAAAY6SURBVEhLlVZ7TFNnFP90c1P3VOeyOA3Z/pjGTJNtWZZsxmXZ
AAAJcEhZcwAADr8AAA6/ATgFUyQAAAY6SURBVEhLlVZ7TFNnFP90c1P3VOeyOA3Z/pjGTJNtWZZsxmXZ
I5mKj6n44CmMqQgTwflkMBWQTcZQC0oR5RFApTJwKM/CQCoPbWlLodhSSh/0/aCF0lYdv+W7thvLNNlO
8rv35t4vv9/5zjnfOZeQJ9s0Qsh0QsjThJBnCSGzCCGzfaDP9B39Rtf8L6PET+3Zkz4vK78+sKSyO+NG
i5Rff0s+0sRT3G9ol9lvtkplV2r4FacLGnYnZZa9896aNVT0PwlNCwj4eOapnJrVFyu6a/m9WuuI0QnH
@@ -1477,7 +1502,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADw
CAAAAk1TRnQBSQFMAgEBAgEAASQBBQEkAQUBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
CAAAAk1TRnQBSQFMAgEBAgEAASwBBQEsAQUBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA

View File

@@ -1408,6 +1408,31 @@
NS42LTIuNGwzLjYtMy42SDguNEg0LjRINC4ydjEwbDMuNS0zLjVjMi4yLDIuMiw1LjIsMy41LDguNSwz
LjUgICBDMjIuMSwyOCwyNywyMy43LDI4LDE4aC00LjFDMjMsMjEuNCwxOS45LDI0LDE2LjIsMjR6IiBj
bGFzcz0iR3JlZW4iIC8+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
</data>
<data name="Bchkitm_load_empty_wf.Caption" xml:space="preserve">
<value>Leere Workflows ausblenden</value>
</data>
<data name="Bchkitm_load_empty_wf.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAHoDAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkdyZWVue2ZpbGw6IzAzOUMyMzt9Cgku
QmxhY2t7ZmlsbDojNzI3MjcyO30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5ZZWxsb3d7ZmlsbDojRkZC
MTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iQXV0b0V4cGFu
ZCI+DQogICAgPHBhdGggZD0iTTE5LDEwaC04Yy0wLjYsMC0xLTAuNC0xLTFWNWMwLTAuNiwwLjQtMSwx
LTFoOGMwLjUsMCwxLDAuNCwxLDF2NEMyMCw5LjYsMTkuNSwxMCwxOSwxMHogTTMyLDE5di00ICAgYzAt
MC42LTAuNS0xLTEtMWgtOGMtMC41LDAtMSwwLjQtMSwxdjRjMCwwLjUsMC41LDEsMSwxaDhDMzEuNSwy
MCwzMiwxOS41LDMyLDE5eiBNMzIsMjd2LTRjMC0wLjUtMC41LTEtMS0xaC04Yy0wLjUsMC0xLDAuNS0x
LDEgICB2NGMwLDAuNSwwLjUsMSwxLDFoOEMzMS41LDI4LDMyLDI3LjUsMzIsMjd6IiBjbGFzcz0iWWVs
bG93IiAvPg0KICAgIDxwYXRoIGQ9Ik0wLDRoOEw0LDhMMCw0eiBNMTYsMjR2LTZoNHYtMmgtNHYtNGgt
MnYxNGg2di0ySDE2eiIgY2xhc3M9IkJsYWNrIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
<data name="RibbonControl1.Location" type="System.Drawing.Point, System.Drawing">
@@ -1493,7 +1518,7 @@
a2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAAChEZXZFeHByZXNzLlV0aWxzLkltYWdlQ29sbGVjdGlvblN0
cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P//
/xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAABgAAAAYAAAACQUAAAAP
BQAAAGkYAAAC/QUAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgGAAAA4Hc9+AAAAARnQU1BAACxjwv8
BQAAAOITAAAC/QUAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgGAAAA4Hc9+AAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAWfSURBVEhLvZZpUFNXGIYvVbtvM92kdqa1rVUr42hbay1j
rXVsi61LW+qCrEaQQWAAiRsC4oJiBNlVigurIkkwCghFUdkCAYKI4MqWsINAFrKQ5e2cmxsItJ3pr96Z
d5JJJs/z5TvfOfdS1P90WVEU9YxFpkzK1H/JNIs8Oynkd4RLWYWm3rEJu/TwzP6sJm5oVhM35EIjd19m
@@ -1518,86 +1543,66 @@
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
AKYAsKWkAAAAAElFTkSuQmCCCw==
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
</value>
</data>
<data name="TreeList_Cockpit.Size" type="System.Drawing.Size, System.Drawing">
@@ -1710,7 +1715,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADw
CAAAAk1TRnQBSQFMAgEBAgEAAVABDAFQAQwBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
CAAAAk1TRnQBSQFMAgEBAgEAAWgBDAFoAQwBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -2534,6 +2539,12 @@
<data name="&gt;&gt;BarButtonItemCock_refresh.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;Bchkitm_load_empty_wf.Name" xml:space="preserve">
<value>Bchkitm_load_empty_wf</value>
</data>
<data name="&gt;&gt;Bchkitm_load_empty_wf.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarCheckItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;RibbonPageStart.Name" xml:space="preserve">
<value>RibbonPageStart</value>
</data>

View File

@@ -32,6 +32,8 @@ Public Class frmMain
Private CURR_DT_VWPM_PROFILE_ACTIVE As DataTable
Private CURR_DT_VWPM_PROFILE_AH_WORKFLOW As DataTable
Private DT_CURR_WF_ITEMS As DataTable
Private _treeNodeCounts As New Dictionary(Of Integer, Integer)
Private OVERVIEW_ADDED_WHEN As String
Private OVERVIEW_CHANGED_WHEN As String
Private OVERVIEW_COUNT As Integer = 0
@@ -74,6 +76,7 @@ Public Class frmMain
Public Const NAVBAR_CLICKED = "NAVBAR LINK CLICKED"
Private CUSTOM_OVERVIEW_SQL As String = String.Empty
Private _lastUsedOverviewSQL As String = String.Empty ' ← NEU: persistente Kopie
Private COCKPIT_CONFIG_ID As Integer = 0
@@ -515,6 +518,14 @@ Public Class frmMain
Else
bbtnitmLanguage_Change.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
End If
' ===== CHECKBOX AUS CONFIG INITIALISIEREN (VOR Decide_Load) =====
' Ohne diesen Block ist Checked immer False nach Neustart, unabhängig vom gespeicherten Config-Wert
Try
Bchkitm_load_empty_wf.Checked = CONFIG.Config.Hide_Empty_Workflows
LOGGER.Debug($"frmMain_Shown: Bchkitm_load_empty_wf.Checked initialized from config: [{CONFIG.Config.Hide_Empty_Workflows}]")
Catch ex As Exception
LOGGER.Warn($"frmMain_Shown: Could not initialize Bchkitm_load_empty_wf.Checked - {ex.Message}")
End Try
LoadCURRENT_DT_PROFILES()
LoadVWPM_CONTROL_INDEX()
@@ -577,6 +588,7 @@ Public Class frmMain
TreeList_Cockpit.BeginUpdate()
Try
TreeList_Cockpit.DataSource = oDT_STRUCTURE_NODES
AddHandler TreeList_Cockpit.CustomDrawNodeCell, AddressOf TreeList_Cockpit_CustomDrawNodeCell
TreeList_Cockpit.KeyFieldName = "PK_CFG_COCKPIT_DEFINITION_ID"
TreeList_Cockpit.ParentFieldName = "PARENT_ID"
TreeList_Cockpit.Columns("PK_RESULT_ID").SortOrder = SortOrder.Ascending
@@ -634,17 +646,35 @@ Public Class frmMain
End Try
End Sub
Private Sub TreeList_Cockpit_CustomDrawNodeCell(sender As Object, e As DevExpress.XtraTreeList.CustomDrawNodeCellEventArgs)
Try
Dim oPk As Object = e.Node.GetValue("PK_CFG_COCKPIT_DEFINITION_ID")
If oPk Is Nothing OrElse IsDBNull(oPk) Then
Exit Sub
End If
Dim oPkInt As Integer = CInt(oPk)
If Not _treeNodeCounts.ContainsKey(oPkInt) Then
Exit Sub
End If
If _treeNodeCounts(oPkInt) > 0 Then
e.Appearance.Font = New Font(e.Appearance.Font, FontStyle.Bold)
Else
e.Appearance.Font = New Font(e.Appearance.Font, FontStyle.Regular)
End If
Catch ex As Exception
LOGGER.Error(ex)
End Try
End Sub
Private Async Sub AppendCountsToTreeAsync()
Try
LOGGER.Debug("AppendCountsToTreeAsync: Starting background count queries...")
' Alle Knoten mit ihren SQL-Befehlen im UI-Thread über NodesIterator einsammeln
Dim oWorkItems As New List(Of (Node As DevExpress.XtraTreeList.Nodes.TreeListNode, SQL As String, OriginalName As String))
TreeList_Cockpit.NodesIterator.DoOperation(
Sub(oNode As DevExpress.XtraTreeList.Nodes.TreeListNode)
' ===== NUR KNOTEN MIT TYPE_ID = 0 ODER 1 VERARBEITEN =====
Dim oTypeId As Object = oNode.GetValue("TYPE_ID")
Dim oProfileID As Object = oNode.GetValue("FK_PROFILE_ID")
If oTypeId Is Nothing OrElse IsDBNull(oTypeId) Then
@@ -658,10 +688,23 @@ Public Class frmMain
Dim oSqlCount As Object = oNode.GetValue("SQL_QUERY_COUNT")
If oSqlCount IsNot Nothing AndAlso Not IsDBNull(oSqlCount) AndAlso Not String.IsNullOrWhiteSpace(oSqlCount.ToString()) Then
Dim oPreparedSQL As String = PrepareSQLWithReplacements(oSqlCount.ToString(), CInt(oProfileID))
Dim oName As String = oNode.GetValue("NAME")?.ToString()
If Not String.IsNullOrWhiteSpace(oName) Then
oWorkItems.Add((oNode, oPreparedSQL, oName))
Dim oProfileIdInt As Integer = If(oProfileID IsNot Nothing AndAlso Not IsDBNull(oProfileID), CInt(oProfileID), 0)
Dim oRawSQL As String = oSqlCount.ToString()
LOGGER.Debug($"AppendCountsToTreeAsync: Preparing SQL for node [{oNode.GetValue("NAME")}] with PROFILE_ID [{oProfileIdInt}]")
LOGGER.Debug($"AppendCountsToTreeAsync: Original SQL: {oRawSQL}")
oRawSQL = oRawSQL.Replace("@PROFILE_ID", oProfileIdInt.ToString())
oRawSQL = oRawSQL.Replace("@PROFIL_ID", oProfileIdInt.ToString())
oRawSQL = oRawSQL.Replace("{#USER#PROFILE_ID}", oProfileIdInt.ToString())
oRawSQL = oRawSQL.Replace("{#USER#PROFIL_ID}", oProfileIdInt.ToString())
Dim oPreparedSQL As String = PrepareSQLWithReplacements(oRawSQL, oProfileIdInt)
' ===== COUNT-SUFFIX VOM VORHERIGEN DURCHLAUF ENTFERNEN =====
Dim oRawName As String = oNode.GetValue("NAME")?.ToString()
Dim oSuffixMatch = System.Text.RegularExpressions.Regex.Match(oRawName, "^(.*)\s+\(\d+\)$")
Dim oCleanName As String = If(oSuffixMatch.Success, oSuffixMatch.Groups(1).Value.Trim(), oRawName)
If Not String.IsNullOrWhiteSpace(oCleanName) Then
oWorkItems.Add((oNode, oPreparedSQL, oCleanName))
End If
Else
LOGGER.Debug($"AppendCountsToTreeAsync: Node [{oNode.GetValue("NAME")}] has no valid SQL_QUERY_COUNT, skipping.")
@@ -669,12 +712,12 @@ Public Class frmMain
End Sub)
If oWorkItems.Count = 0 Then
LOGGER.Debug("AppendCountsToTreeAsync: No nodes with SQL_QUERY_COUNT found, exiting.")
Exit Sub
End If
LOGGER.Debug($"AppendCountsToTreeAsync: {oWorkItems.Count} node(s) with SQL_QUERY_COUNT found")
' DB-Abfragen parallel im Hintergrund ausführen
Dim oResults As New List(Of (Node As DevExpress.XtraTreeList.Nodes.TreeListNode, OriginalName As String, Count As String))
Await Task.Run(Sub()
@@ -692,10 +735,17 @@ Public Class frmMain
Next
End Sub)
' Ergebnisse zurück im UI-Thread auf die Knoten schreiben
_treeNodeCounts.Clear()
TreeList_Cockpit.BeginUpdate()
Try
For Each oResult In oResults
Dim oPk As Object = oResult.Node.GetValue("PK_CFG_COCKPIT_DEFINITION_ID")
If oPk IsNot Nothing AndAlso Not IsDBNull(oPk) Then
Dim oCount As Integer = 0
Integer.TryParse(oResult.Count, oCount)
_treeNodeCounts(CInt(oPk)) = oCount
End If
oResult.Node.SetValue("NAME", $"{oResult.OriginalName} ({oResult.Count})")
LOGGER.Debug($"AppendCountsToTreeAsync: Node [{oResult.OriginalName}] → [{oResult.OriginalName} ({oResult.Count})]")
Next
@@ -705,7 +755,7 @@ Public Class frmMain
TreeList_Cockpit.Refresh()
LOGGER.Debug("AppendCountsToTreeAsync: Finished")
Decide_Show_Empty_Workflows(Not CONFIG.Config.Hide_Empty_Workflows)
Catch ex As Exception
LOGGER.Error(ex)
End Try
@@ -1553,6 +1603,13 @@ Public Class frmMain
'bwSync.ReportProgress(95)
If GridControlWorkflows.Visible = True And FormOpenClose = False Then RefreshHelper.LoadViewInfo()
' ===== TREELIST COUNTS AKTUALISIEREN =====
' Nur ausführen wenn TreeList Knoten mit SQL_QUERY_COUNT vorhanden sind
Dim oDatasource As DataTable = TryCast(TreeList_Cockpit.DataSource, DataTable)
If oDatasource IsNot Nothing AndAlso oDatasource.Columns.Contains("SQL_QUERY_COUNT") Then
LOGGER.Debug("TimerRefresh_Tick: Refreshing TreeList node counts...")
AppendCountsToTreeAsync()
End If
Handling_DEBUG_USER()
Catch ex As Exception
@@ -1738,6 +1795,9 @@ Public Class frmMain
If Not String.IsNullOrWhiteSpace(CUSTOM_OVERVIEW_SQL) Then
LOGGER.Debug($"[LoadOverviewData] Using CUSTOM_OVERVIEW_SQL from TreeList node")
oSQLOverview = CUSTOM_OVERVIEW_SQL
ElseIf Not String.IsNullOrWhiteSpace(_lastUsedOverviewSQL) Then
LOGGER.Debug($"[LoadOverviewData] CUSTOM_OVERVIEW_SQL is empty - using _lastUsedOverviewSQL (e.g. after ValidatorClosed)")
oSQLOverview = _lastUsedOverviewSQL
Else
oSQLOverview = BASEDATA_DT_CONFIG.Rows(0).Item("SQL_PROFILE_MAIN_VIEW")
End If
@@ -3495,24 +3555,22 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G
End Sub
Private Async Sub frmMain_Shown(sender As Object, e As EventArgs) Handles Me.Shown
Me.Text = ADDITIONAL_TITLE
' CurrNavBarGroup = NavBarControl1.Groups(1)
FormShown = True
Try
If CONFIG.Config.MainTreeList_Width > 0 Then
TreeList_Cockpit.Width = CONFIG.Config.MainTreeList_Width
End If
Catch ex As Exception
End Try
Timer_Inactivity_Reset_Disable("Decide_Load")
' ===== ERSTEN KNOTEN AUSWÄHLEN (löst FocusedNodeChanged → Decide_Load aus) =====
Dim oFirstNode As DevExpress.XtraTreeList.Nodes.TreeListNode = TreeList_Cockpit.Nodes.FirstOrDefault()
If oFirstNode IsNot Nothing Then
LOGGER.Debug($"Selecting first TreeList node: [{oFirstNode.GetValue("NAME")}]")
TreeList_Cockpit.FocusedNode = oFirstNode
' FocusedNodeChanged nicht zuverlässig bei programmatischer Zuweisung → direkt aufrufen
Await ProcessTreeListNodeAsync(oFirstNode)
Else
LOGGER.Debug("No TreeList nodes found - falling back to Decide_Load")
@@ -3524,6 +3582,14 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G
Create_GroupBy_Parts()
End If
' ===== SICHTBARKEIT NACH LADEVORGANG NOCHMALS ANWENDEN =====
' AppendCountsToTreeAsync könnte bereits vor frmMain_Shown abgeschlossen sein (Race Condition),
' daher hier sicherstellen, dass die korrekte Sichtbarkeit gesetzt ist
If _treeNodeCounts.Count > 0 Then
LOGGER.Debug($"frmMain_Shown: Applying node visibility after load (Hide_Empty_Workflows=[{CONFIG.Config.Hide_Empty_Workflows}])")
Decide_Show_Empty_Workflows(Not CONFIG.Config.Hide_Empty_Workflows)
End If
Handling_DEBUG_USER()
Dim oSQL = $"SELECT * FROM TBDD_NOTIFICATIONS_SYSTEM NOTE WITH (NOLOCK)
@@ -3538,7 +3604,6 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G
BBtnItmNotfications.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
Open_Notifications_Form()
End If
End If
End Sub
@@ -4468,6 +4533,7 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G
End If
CURRENT_CLICKED_PROFILE_ID = 0
CUSTOM_OVERVIEW_SQL = oSqlQuery.ToString()
_lastUsedOverviewSQL = CUSTOM_OVERVIEW_SQL ' ← SQL merken BEVOR es gelöscht wird
If GridControlWorkflows.Visible = True And FormOpenClose = False Then
RefreshHelper.SaveViewInfo()
@@ -4596,4 +4662,49 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G
Private Sub BarButtonItemCock_refresh_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItemCock_refresh.ItemClick
Load_Treeview()
End Sub
Private Sub Bchkitm_load_empty_wf_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles Bchkitm_load_empty_wf.CheckedChanged
If FormShown = False Then
Exit Sub
End If
CONFIG.Config.Hide_Empty_Workflows = Bchkitm_load_empty_wf.Checked
CONFIG.Save()
End Sub
Private Sub Bchkitm_load_empty_wf_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles Bchkitm_load_empty_wf.ItemClick
Decide_Show_Empty_Workflows(Not Bchkitm_load_empty_wf.Checked)
End Sub
Sub Decide_Show_Empty_Workflows(pShow As Boolean)
Try
LOGGER.Debug($"Decide_Show_Empty_Workflows: pShow=[{pShow}], cached node counts: [{_treeNodeCounts.Count}]")
TreeList_Cockpit.BeginUpdate()
Try
TreeList_Cockpit.NodesIterator.DoOperation(
Sub(oNode As DevExpress.XtraTreeList.Nodes.TreeListNode)
Dim oPk As Object = oNode.GetValue("PK_CFG_COCKPIT_DEFINITION_ID")
If oPk Is Nothing OrElse IsDBNull(oPk) Then
oNode.Visible = True
LOGGER.Debug($"Decide_Show_Empty_Workflows: oPk is Nothing/DBNull - Node visible set to True")
Exit Sub
End If
Dim oPkInt As Integer = CInt(oPk)
If Not _treeNodeCounts.ContainsKey(oPkInt) Then
oNode.Visible = True
LOGGER.Debug($"Decide_Show_Empty_Workflows: oPkInt [{oPkInt}] not found in _treeNodeCounts - Node visible set to True")
Exit Sub
End If
oNode.Visible = pShow OrElse (_treeNodeCounts(oPkInt) > 0)
End Sub)
Finally
TreeList_Cockpit.EndUpdate()
End Try
TreeList_Cockpit.Refresh()
Catch ex As Exception
LOGGER.Error(ex)
End Try
End Sub
End Class

View File

@@ -733,20 +733,20 @@ Public Class frmValidator
Try
If LOG_HOTSPOTS Then
' ========== DIAGNOSE: Wer schließt die Form? ==========
MyValidationLogger.Debug($"frmValidator_FormClosing aufgerufen!")
MyValidationLogger.Debug($"CloseReason: {e.CloseReason}")
MyValidationLogger.Debug($"Cancel: {e.Cancel}")
MyValidationLogger.Debug($"LOG_HOTSPOTS - frmValidator_FormClosing aufgerufen!")
MyValidationLogger.Debug($"LOG_HOTSPOTS - CloseReason: {e.CloseReason}")
MyValidationLogger.Debug($"LOG_HOTSPOTS - Cancel: {e.Cancel}")
Try
MyValidationLogger?.Debug($"StackTrace: {System.Environment.StackTrace}")
MyValidationLogger?.Debug($"LOG_HOTSPOTS - StackTrace NO ERROR: {System.Environment.StackTrace}")
Catch ex As Exception
MyValidationLogger?.Debug($"StackTrace konnte nicht ermittelt werden: {ex.Message}")
MyValidationLogger?.Debug($"LOG_HOTSPOTS - StackTrace konnte nicht ermittelt werden: {ex.Message}")
End Try
' Zusätzliche Diagnostik
MyValidationLogger.Debug($"_FormClosing-Flag: {_FormClosing}")
MyValidationLogger.Debug($"CURRENT_DOC_GUID: {CURRENT_DOC_GUID}")
MyValidationLogger.Debug($"CURRENT_ProfilGUID: {CURRENT_ProfilGUID}")
MyValidationLogger.Debug($"LOG_HOTSPOTS - _FormClosing-Flag: {_FormClosing}")
MyValidationLogger.Debug($"LOG_HOTSPOTS - CURRENT_DOC_GUID: {CURRENT_DOC_GUID}")
MyValidationLogger.Debug($"LOG_HOTSPOTS - CURRENT_ProfilGUID: {CURRENT_ProfilGUID}")
' ========== ENDE DIAGNOSE ==========
End If
@@ -755,7 +755,7 @@ Public Class frmValidator
If LOG_HOTSPOTS Then
perfStart = DateTime.Now
perfLastCheck = perfStart
MyValidationLogger.Info("[PERF frmValidation_FormClosing] START")
MyValidationLogger.Info("LOG_HOTSPOTS - [PERF frmValidation_FormClosing] START")
End If
_FormClosing = True
@@ -771,7 +771,7 @@ Public Class frmValidator
End If
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach Messages-Close: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
MyValidationLogger.Info($"[LOG_HOTSPOTS - frmValidation_FormClosing] nach Messages-Close: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
@@ -789,7 +789,7 @@ Public Class frmValidator
End If
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach Settings.Save: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
MyValidationLogger.Info($"[LOG_HOTSPOTS - frmValidation_FormClosing] nach Settings.Save: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
@@ -802,7 +802,7 @@ Public Class frmValidator
End If
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach Timer-Reset: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
MyValidationLogger.Info($"[LOG_HOTSPOTS - frmValidation_FormClosing] nach Timer-Reset: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
@@ -822,14 +822,14 @@ Public Class frmValidator
End Try
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach DB-Cleanup: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
MyValidationLogger.Info($"[LOG_HOTSPOTS - frmValidation_FormClosing] nach DB-Cleanup: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
Reset_CurrentReferences()
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach Reset_CurrentReferences: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
MyValidationLogger.Info($"[LOG_HOTSPOTS - frmValidation_FormClosing] nach Reset_CurrentReferences: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
@@ -844,7 +844,7 @@ Public Class frmValidator
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach DocumentViewer.Done: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
MyValidationLogger.Info($"[LOG_HOTSPOTS - frmValidation_FormClosing] nach DocumentViewer.Done: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
@@ -858,7 +858,7 @@ Public Class frmValidator
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach ValidatorSearch.Close: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
MyValidationLogger.Info($"[LOG_HOTSPOTS - frmValidation_FormClosing] nach ValidatorSearch.Close: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
' ========== NEU: Temp-Ordner bereinigen ==========
@@ -884,7 +884,7 @@ Public Class frmValidator
End If
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF frmValidation_FormClosing] GESAMT: {(DateTime.Now - perfStart).TotalMilliseconds}ms")
MyValidationLogger.Info($"[LOG_HOTSPOTS - frmValidation_FormClosing] GESAMT: {(DateTime.Now - perfStart).TotalMilliseconds}ms")
End If
@@ -4045,11 +4045,11 @@ Public Class frmValidator
Sub Load_Next_Document(first As Boolean)
If LOG_HOTSPOTS Then
' ========== DIAGNOSE START ==========
MyValidationLogger.Info($"[INFO] Load_Next_Document START - first: {first}")
MyValidationLogger.Info($" frmValidator.IsDisposed: {Me.IsDisposed}")
MyValidationLogger.Info($" frmValidator.Visible: {Me.Visible}")
MyValidationLogger.Info($" _FormClosing: {_FormClosing}")
MyValidationLogger.Info($" CURRENT_DOC_GUID: {CURRENT_DOC_GUID}")
MyValidationLogger.Info($"LOG_HOTSPOTS - Load_Next_Document START - first: {first}")
MyValidationLogger.Info($"LOG_HOTSPOTS - frmValidator.IsDisposed: {Me.IsDisposed}")
MyValidationLogger.Info($"LOG_HOTSPOTS - frmValidator.Visible: {Me.Visible}")
MyValidationLogger.Info($"LOG_HOTSPOTS - _FormClosing: {_FormClosing}")
MyValidationLogger.Info($"LOG_HOTSPOTS - CURRENT_DOC_GUID: {CURRENT_DOC_GUID}")
' ========== ENDE DIAGNOSE ==========
End If
@@ -4060,7 +4060,7 @@ Public Class frmValidator
If LOG_HOTSPOTS Then
perfStart = DateTime.Now
perfLastCheck = perfStart
MyValidationLogger.Info("[PERF LND] Load_Next_Document START")
MyValidationLogger.Info("LOG_HOTSPOTS - Load_Next_Document START")
End If
_CachedSqlDataCache.Clear()
@@ -4106,7 +4106,7 @@ Public Class frmValidator
End If
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF LND] Nach Get_Next_GUID: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
MyValidationLogger.Info($"LOG_HOTSPOTS - Nach Get_Next_GUID: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
@@ -4117,7 +4117,7 @@ Public Class frmValidator
End If
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF LND] Nach GetDocPathWindows: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
MyValidationLogger.Info($"LOG_HOTSPOTS - Nach GetDocPathWindows: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
@@ -4129,7 +4129,7 @@ Public Class frmValidator
Load_IDB_DOC_DATA()
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF LND] Nach Load_IDB_DOC_DATA: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
MyValidationLogger.Info($"LOG_HOTSPOTS - Nach Load_IDB_DOC_DATA: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
If IsNothing(IDB_DT_DOC_DATA) Then
@@ -4143,12 +4143,12 @@ Public Class frmValidator
End If
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF LND] Nach CreateWMObject/Load_IDB_DOC_DATA: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
MyValidationLogger.Info($"LOG_HOTSPOTS - Nach CreateWMObject/Load_IDB_DOC_DATA: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
PRTF_PROFILE_FILES_WORK("InWork")
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF LND] Nach IN_WORK-UPDATE: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
MyValidationLogger.Info($"LOG_HOTSPOTS - Nach IN_WORK-UPDATE: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
@@ -4176,7 +4176,7 @@ Public Class frmValidator
End If
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF LND] Nach Windream_get_Doc_info: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
MyValidationLogger.Info($"LOG_HOTSPOTS - Nach Windream_get_Doc_info: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
@@ -4193,9 +4193,9 @@ Public Class frmValidator
If LOG_HOTSPOTS Then
oMilliseconts = (DateTime.Now - perfLastCheck).TotalMilliseconds
If oMilliseconts > 6000 Then
MyValidationLogger.Warn($"[PERF LND] ⚠️ LoadDocument_DDViewer lasted far to long: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
MyValidationLogger.Warn($"LOG_HOTSPOTS - ⚠️ LoadDocument_DDViewer lasted far to long: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
Else
MyValidationLogger.Info($"[PERF LND] Nach LoadDocument_DDViewer: {oMilliseconts}ms")
MyValidationLogger.Info($"LOG_HOTSPOTS - Nach LoadDocument_DDViewer: {oMilliseconts}ms")
End If
perfLastCheck = DateTime.Now
End If
@@ -4241,9 +4241,9 @@ Public Class frmValidator
If LOG_HOTSPOTS Then
oMilliseconts = (DateTime.Now - perfLastCheck).TotalMilliseconds
If oMilliseconts > 6000 Then
MyValidationLogger.Warn($"[PERF LND] ⚠️ FillIndexValues lasted far to long: {oMilliseconts}ms")
MyValidationLogger.Warn($"LOG_HOTSPOTS - ⚠️ FillIndexValues lasted far to long: {oMilliseconts}ms")
Else
MyValidationLogger.Info($"[PERF LND] Nach FillIndexValues: {oMilliseconts}ms")
MyValidationLogger.Info($"LOG_HOTSPOTS - Nach FillIndexValues: {oMilliseconts}ms")
End If
perfLastCheck = DateTime.Now
@@ -4272,7 +4272,7 @@ Public Class frmValidator
End If
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF LND] Nach LoadSQLData-Loop: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
MyValidationLogger.Info($"LOG_HOTSPOTS - Nach LoadSQLData-Loop: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
@@ -4351,7 +4351,7 @@ Public Class frmValidator
End Try
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF LND] Nach Currency-Format: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
MyValidationLogger.Info($"LOG_HOTSPOTS - Nach Currency-Format: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
@@ -4363,9 +4363,9 @@ Public Class frmValidator
If LOG_HOTSPOTS Then
oMilliseconts = (DateTime.Now - perfLastCheck).TotalMilliseconds
If oMilliseconts > 6000 Then
MyValidationLogger.Warn($"[PERF LND] ⚠️ Show_WF_Messages lasted far to long: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
MyValidationLogger.Warn($"LOG_HOTSPOTS - ⚠️ Show_WF_Messages lasted far to long: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
Else
MyValidationLogger.Info($"[PERF LND] Nach Show_WF_Messages: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
MyValidationLogger.Info($"LOG_HOTSPOTS - Nach Show_WF_Messages: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
End If
perfLastCheck = DateTime.Now
@@ -4379,7 +4379,7 @@ Public Class frmValidator
Controls2B_EnDisabled_onLoad()
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF LND] Nach Controls2B_EnDisabled: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
MyValidationLogger.Info($"LOG_HOTSPOTS - Nach Controls2B_EnDisabled: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
MyValidationLogger.Debug("frmValidator: LoadNextDocument finished!")
@@ -4399,11 +4399,11 @@ Public Class frmValidator
CloseOverlaySafe()
If LOG_HOTSPOTS Then
' ========== DIAGNOSE ENDE ==========
MyValidationLogger.Info($"[INFO] Load_Next_Document ENDE")
MyValidationLogger.Info($" frmValidator.IsDisposed: {Me.IsDisposed}")
MyValidationLogger.Info($" frmValidator.Visible: {Me.Visible}")
MyValidationLogger.Info($"LOG_HOTSPOTS - Load_Next_Document ENDE")
MyValidationLogger.Info($"LOG_HOTSPOTS - frmValidator.IsDisposed: {Me.IsDisposed}")
MyValidationLogger.Info($"LOG_HOTSPOTS - frmValidator.Visible: {Me.Visible}")
' ========== ENDE DIAGNOSE ==========
MyValidationLogger.Info($"[PERF LND] Load_Next_Document GESAMT: {(DateTime.Now - perfStart).TotalMilliseconds}ms")
MyValidationLogger.Info($"LOG_HOTSPOTS - Load_Next_Document GESAMT: {(DateTime.Now - perfStart).TotalMilliseconds}ms")
End If
End Try
End Sub

View File

@@ -1,150 +1,297 @@
13:45:45.0872|frmValidator|INFO >> Load_Additional_Searches -> ✓ SQL-Search 'Inhalte ZUGFeRD-XML': 67 Ergebnisse gefunden
13:45:45.0872|taskFLOW|DEBUG >> ReplaceAllValues -> input BEFORE replacing: [Select T.DocID,T.FULL_FILENAME,T.Doctype from TBPM_CUST_ATTACHMENTS T WITH (NOLOCK) INNER JOIN idb.dbo.VWIDB_DOC_DATA T1 ON T.EmailMessageID = T1.EmailMessageID WHERE T1.IDB_OBJ_ID = {#IDBA#ObjectID}]
13:45:45.0872|taskFLOW|DEBUG >> ReplaceIDBAttributes -> Starting ReplaceIDBAttributes with input: [Select T.DocID,T.FULL_FILENAME,T.Doctype from TBPM_CUST_ATTACHMENTS T WITH (NOLOCK) INNER JOIN idb.dbo.VWIDB_DOC_DATA T1 ON T.EmailMessageID = T1.EmailMessageID WHERE T1.IDB_OBJ_ID = {#IDBA#ObjectID}] for document ID: 4511694
13:45:45.0872|taskFLOW|DEBUG >> ReplaceIDBAttributes -> IS_SQL = True - oReplaceValue = [{#IDBA#ObjectID}]
13:45:45.0872|taskFLOW|DEBUG >> ReplaceIDBAttributes -> oIDBValue = 4511694
13:45:45.0872|taskFLOW|DEBUG >> ReplaceIDBAttributes -> sql after ReplaceIDBAttributes: Select T.DocID,T.FULL_FILENAME,T.Doctype from TBPM_CUST_ATTACHMENTS T WITH (NOLOCK) INNER JOIN idb.dbo.VWIDB_DOC_DATA T1 ON T.EmailMessageID = T1.EmailMessageID WHERE T1.IDB_OBJ_ID = {#IDBA#ObjectID}
13:45:45.0872|taskFLOW|DEBUG >> ReplaceControlValues -> Starting ReplaceControlValues with input: [Select T.DocID,T.FULL_FILENAME,T.Doctype from TBPM_CUST_ATTACHMENTS T WITH (NOLOCK) INNER JOIN idb.dbo.VWIDB_DOC_DATA T1 ON T.EmailMessageID = T1.EmailMessageID WHERE T1.IDB_OBJ_ID = 4511694] for document ID: 4511694
13:45:45.0872|taskFLOW|DEBUG >> ReplaceAllValues -> input AFTER replacing: [Select T.DocID,T.FULL_FILENAME,T.Doctype from TBPM_CUST_ATTACHMENTS T WITH (NOLOCK) INNER JOIN idb.dbo.VWIDB_DOC_DATA T1 ON T.EmailMessageID = T1.EmailMessageID WHERE T1.IDB_OBJ_ID = 4511694]
13:45:45.0872|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access.
13:45:45.0872|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM]
13:45:45.0872|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Retrieving Connection String from Connection Id [1]
13:45:45.0872|MSSQLServer|DEBUG >> Get_ConnectionStringforID -> Getting ConnectionString for ConnectionId [1]
13:45:45.0872|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=W2K19SRV398;Database=DD_ECM;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391;
13:45:45.0872|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
13:45:45.0872|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM TBDD_CONNECTION WHERE GUID = 1] and Parameters []
13:45:45.0872|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Data Source=w2k19srv398;Initial Catalog=DD_ECM;User ID=EDMAdmin;Password=XXXXX
13:45:45.0872|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
13:45:45.0872|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [Select T.DocID,T.FULL_FILENAME,T.Doctype from TBPM_CUST_ATTACHMENTS T WITH (NOLOCK) INNER JOIN idb.dbo.VWIDB_DOC_DATA T1 ON T.EmailMessageID = T1.EmailMessageID WHERE T1.IDB_OBJ_ID = 4511694] and Parameters []
13:45:45.5262|frmValidator|DEBUG >> Load_Additional_Searches -> Doc-Search 'Attachments': Keine Ergebnisse gefunden
13:45:45.5262|frmValidator|DEBUG >> Load_Additional_Searches -> Ergebnisprüfung abgeschlossen: AdditionalDataResultsExist=True, AdditionalDocResultsExist=False
13:45:45.5262|frmValidator|DEBUG >> Load_Additional_Searches -> rbnPgGroupAttmt.Visible gesetzt auf: True | Stack:
at taskFLOW.frmValidator.FillIndexValues(Boolean first, String SingleAttribute)
13:45:45.5262|frmValidator|DEBUG >> Load_Additional_Searches -> --- NORMAL-MODUS aktiviert (nur vorbereiten, NICHT Show) ---
13:45:45.5262|taskFLOW|DEBUG >> TabPreload -> === TabPreload START ===
13:45:45.5262|taskFLOW|DEBUG >> TabPreload -> Parameters: TabCountSQL=1, TabCountDoc=0, DTSQL.Rows=1, DTDOC.Rows=0
13:45:45.5262|taskFLOW|DEBUG >> TabPreload -> Ausführung auf UI-Thread
13:45:45.5262|taskFLOW|DEBUG >> TabPreload -> 🚫 Tab-Events deaktiviert
13:45:45.5262|taskFLOW|DEBUG >> TabPreload -> ✓ _DTDATASearches und _DTDocSearches zugewiesen: SQL=1, Doc=0
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> Panel1Collapsed (SQL)=False, Panel2Collapsed (Doc)=True
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> Konfiguriere SQL-Tabs: 1 Definitionen
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlSQL_SelectedPageChanged -> 🚫 XtraTabControlSQL_SelectedPageChanged unterdrückt (SelectedTabPageIndex=1)
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlSQL_SelectedPageChanged -> 🚫 XtraTabControlSQL_SelectedPageChanged unterdrückt (SelectedTabPageIndex=2)
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlSQL_SelectedPageChanged -> 🚫 XtraTabControlSQL_SelectedPageChanged unterdrückt (SelectedTabPageIndex=3)
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlSQL_SelectedPageChanged -> 🚫 XtraTabControlSQL_SelectedPageChanged unterdrückt (SelectedTabPageIndex=4)
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlSQL_SelectedPageChanged -> 🚫 XtraTabControlSQL_SelectedPageChanged unterdrückt (SelectedTabPageIndex=-1)
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> Alle 5 SQL-Tabs auf PageVisible=False gesetzt
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlSQL_SelectedPageChanged -> 🚫 XtraTabControlSQL_SelectedPageChanged unterdrückt (SelectedTabPageIndex=0)
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> SQL-Tab 0: Text='Inhalte ZUGFeRD-XML', PageVisible=True
13:45:45.5322|taskFLOW|INFO >> TabPreload -> ✓ 1 SQL-Tabs konfiguriert
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> Keine Doc-Daten, alle Tabs ausblenden
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlDocs_SelectedPageChanged_1 -> 🚫 XtraTabControlDocs_SelectedPageChanged unterdrückt (SelectedTabPageIndex=1)
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlDocs_SelectedPageChanged_1 -> 🚫 XtraTabControlDocs_SelectedPageChanged unterdrückt (SelectedTabPageIndex=2)
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlDocs_SelectedPageChanged_1 -> 🚫 XtraTabControlDocs_SelectedPageChanged unterdrückt (SelectedTabPageIndex=3)
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlDocs_SelectedPageChanged_1 -> 🚫 XtraTabControlDocs_SelectedPageChanged unterdrückt (SelectedTabPageIndex=4)
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlDocs_SelectedPageChanged_1 -> 🚫 XtraTabControlDocs_SelectedPageChanged unterdrückt (SelectedTabPageIndex=-1)
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> ✓ Tab-Events reaktiviert
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> Setze SQL SelectedTabPageIndex manuell auf 0
13:45:45.5322|taskFLOW|DEBUG >> ReplaceAllValues -> input BEFORE replacing: [SELECT
SPEC_NAME [Definitions-Name],
ITEM_DESCRIPTION [Beschreibung],
CASE
WHEN SPEC_NAME = 'INVOICE_POSITION_NOTE' THEN
REPLACE(REPLACE(ITEM_VALUE, CHAR(13),' '),CHAR(10),' ')
ELSE
ITEM_VALUE
END [Inhalt xml],
GROUP_COUNTER [Gruppenzähler],
IS_REQUIRED [Pflichtangabe],
CREATEDWHEN [Erstellt]
FROM dbo.TBEDMI_ITEM_VALUE WITH (NOLOCK)
WHERE REFERENCE_GUID = (SELECT EmailMessageID FROM IDB.dbo.VWIDB_DOC_DATA WHERE IDB_OBJ_ID = {#IDBA#ObjectID})
ORDER BY GROUP_COUNTER, SPEC_NAME]
13:45:45.5322|taskFLOW|DEBUG >> ReplaceIDBAttributes -> Starting ReplaceIDBAttributes with input: [SELECT
SPEC_NAME [Definitions-Name],
ITEM_DESCRIPTION [Beschreibung],
CASE
WHEN SPEC_NAME = 'INVOICE_POSITION_NOTE' THEN
REPLACE(REPLACE(ITEM_VALUE, CHAR(13),' '),CHAR(10),' ')
ELSE
ITEM_VALUE
END [Inhalt xml],
GROUP_COUNTER [Gruppenzähler],
IS_REQUIRED [Pflichtangabe],
CREATEDWHEN [Erstellt]
FROM dbo.TBEDMI_ITEM_VALUE WITH (NOLOCK)
WHERE REFERENCE_GUID = (SELECT EmailMessageID FROM IDB.dbo.VWIDB_DOC_DATA WHERE IDB_OBJ_ID = {#IDBA#ObjectID})
ORDER BY GROUP_COUNTER, SPEC_NAME] for document ID: 4511694
13:45:45.5322|taskFLOW|DEBUG >> ReplaceIDBAttributes -> IS_SQL = True - oReplaceValue = [{#IDBA#ObjectID}]
13:45:45.5322|taskFLOW|DEBUG >> ReplaceIDBAttributes -> oIDBValue = 4511694
13:45:45.5322|taskFLOW|DEBUG >> ReplaceIDBAttributes -> sql after ReplaceIDBAttributes: SELECT
SPEC_NAME [Definitions-Name],
ITEM_DESCRIPTION [Beschreibung],
CASE
WHEN SPEC_NAME = 'INVOICE_POSITION_NOTE' THEN
REPLACE(REPLACE(ITEM_VALUE, CHAR(13),' '),CHAR(10),' ')
ELSE
ITEM_VALUE
END [Inhalt xml],
GROUP_COUNTER [Gruppenzähler],
IS_REQUIRED [Pflichtangabe],
CREATEDWHEN [Erstellt]
FROM dbo.TBEDMI_ITEM_VALUE WITH (NOLOCK)
WHERE REFERENCE_GUID = (SELECT EmailMessageID FROM IDB.dbo.VWIDB_DOC_DATA WHERE IDB_OBJ_ID = {#IDBA#ObjectID})
ORDER BY GROUP_COUNTER, SPEC_NAME
13:45:45.5322|taskFLOW|DEBUG >> ReplaceControlValues -> Starting ReplaceControlValues with input: [SELECT
SPEC_NAME [Definitions-Name],
ITEM_DESCRIPTION [Beschreibung],
CASE
WHEN SPEC_NAME = 'INVOICE_POSITION_NOTE' THEN
REPLACE(REPLACE(ITEM_VALUE, CHAR(13),' '),CHAR(10),' ')
ELSE
ITEM_VALUE
END [Inhalt xml],
GROUP_COUNTER [Gruppenzähler],
IS_REQUIRED [Pflichtangabe],
CREATEDWHEN [Erstellt]
FROM dbo.TBEDMI_ITEM_VALUE WITH (NOLOCK)
WHERE REFERENCE_GUID = (SELECT EmailMessageID FROM IDB.dbo.VWIDB_DOC_DATA WHERE IDB_OBJ_ID = 4511694)
ORDER BY GROUP_COUNTER, SPEC_NAME] for document ID: 4511694
13:45:45.5322|taskFLOW|DEBUG >> ReplaceAllValues -> input AFTER replacing: [SELECT
SPEC_NAME [Definitions-Name],
ITEM_DESCRIPTION [Beschreibung],
CASE
WHEN SPEC_NAME = 'INVOICE_POSITION_NOTE' THEN
REPLACE(REPLACE(ITEM_VALUE, CHAR(13),' '),CHAR(10),' ')
ELSE
ITEM_VALUE
END [Inhalt xml],
GROUP_COUNTER [Gruppenzähler],
IS_REQUIRED [Pflichtangabe],
CREATEDWHEN [Erstellt]
FROM dbo.TBEDMI_ITEM_VALUE WITH (NOLOCK)
WHERE REFERENCE_GUID = (SELECT EmailMessageID FROM IDB.dbo.VWIDB_DOC_DATA WHERE IDB_OBJ_ID = 4511694)
ORDER BY GROUP_COUNTER, SPEC_NAME]
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> SQL-Tab 0: erzwungener Initial-Refresh
13:45:45.5322|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access.
13:45:45.5322|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM]
13:45:45.5322|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Retrieving Connection String from Connection Id [1]
13:45:45.5322|MSSQLServer|DEBUG >> Get_ConnectionStringforID -> Getting ConnectionString for ConnectionId [1]
13:45:45.5322|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=W2K19SRV398;Database=DD_ECM;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391;
13:45:45.5322|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
13:45:45.5322|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM TBDD_CONNECTION WHERE GUID = 1] and Parameters []
13:45:45.5322|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Data Source=w2k19srv398;Initial Catalog=DD_ECM;User ID=EDMAdmin;Password=XXXXX
13:45:45.5322|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
13:45:45.5322|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [SELECT
SPEC_NAME [Definitions-Name],
ITEM_DESCRIPTION [Beschreibung],
CASE
WHEN SPEC_NAME = 'INVOICE_POSITION_NOTE' THEN
REPLACE(REPLACE(ITEM_VALUE, CHAR(13),' '),CHAR(10),' ')
ELSE
ITEM_VALUE
END [Inhalt xml],
GROUP_COUNTER [Gruppenzähler],
IS_REQUIRED [Pflichtangabe],
CREATEDWHEN [Erstellt]
FROM dbo.TBEDMI_ITEM_VALUE WITH (NOLOCK)
WHERE REFERENCE_GUID = (SELECT EmailMessageID FROM IDB.dbo.VWIDB_DOC_DATA WHERE IDB_OBJ_ID = 4511694)
ORDER BY GROUP_COUNTER, SPEC_NAME] and Parameters []
13:45:45.5832|taskFLOW|DEBUG >> TabPreload -> === TabPreload END ===
14:01:45.9968|taskFLOW|DEBUG >> MoveNext -> TimerRefresh_Tick: Refreshing TreeList node counts...
14:01:45.9968|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Starting background count queries...
14:01:45.9968|taskFLOW|WARN >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 0, using CURRENT_CLICKED_PROFILE_ID instead
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2017
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2006
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 1006
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 4
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2010
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2023
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 1004
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2027
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2012
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2013
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2014
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2015
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 1005
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2008
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2032
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2033
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2025
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2009
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2007
14:01:45.9968|taskFLOW|WARN >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 0, using CURRENT_CLICKED_PROFILE_ID instead
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2034
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2035
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2048
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2036
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2047
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2037
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2049
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2038
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2043
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2039
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2044
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2045
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2040
14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2042
14:01:45.9968|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: 35 node(s) with SQL_QUERY_COUNT found
14:01:45.9968|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:45.9968|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:45.9968|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 26.02.2025
SELECT count(1) FROM [FNCUST_GET_TF_OVERVIEW](1);] with Parameters []
14:01:46.0168|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.0168|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.0168|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.0168|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.0168|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.0168|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.0318|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.0318|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.0318|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.0318|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.0318|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.0318|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.0498|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.0498|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.0498|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.0498|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.0498|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.0498|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.0638|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.0638|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.0638|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.0638|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.0638|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.0638|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.0790|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.0790|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.0790|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.0790|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.0790|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.0790|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.0790|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.0790|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.0898|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.0898|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.0898|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.0898|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.0898|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.0898|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.0898|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.1088|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.1088|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.1088|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.1088|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.1088|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.1088|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.1088|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.1088|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.1088|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.1298|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.1298|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.1298|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.1298|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.1298|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.1298|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.1409|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.1409|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.1409|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.1409|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.1409|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.1409|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 26.02.2025
SELECT count(1) FROM [FNCUST_GET_TF_OVERVIEW](1);] with Parameters []
14:01:46.1528|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.1528|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.1528|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.1528|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.1528|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.1528|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.1528|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.1528|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.1528|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.1688|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.1688|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.1688|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.1688|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.1688|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.1688|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.1688|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.1688|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.1688|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.1688|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.1688|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.1688|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.1878|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.1878|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.1878|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.1878|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.1878|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.1878|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.2008|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.2008|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.2008|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.2008|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.2008|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.2008|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.2008|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.2008|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.2008|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.2158|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.2158|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.2158|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.2158|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:46.2158|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:46.2158|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2009;] with Parameters []
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [VHM Rechnungsprüfung] → [VHM Rechnungsprüfung (13)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [1.0 - Dokumentübernahme durch Erfasser] → [1.0 - Dokumentübernahme durch Erfasser (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [2.0 - Durchsicht der Geschäftsführung] → [2.0 - Durchsicht der Geschäftsführung (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [3.0 - Zuweisung und Vorprüfung durch die FiBu] → [3.0 - Zuweisung und Vorprüfung durch die FiBu (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [4.0 - Prüfung durch die Fachabteilung] → [4.0 - Prüfung durch die Fachabteilung (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [4.1 - Anforderung Rechungskorrektur durch die Fachabteilung] → [4.1 - Anforderung Rechungskorrektur durch die Fachabteilung (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [4.2 - Prüfung durch die Fachabteilung - Stellvertretung] → [4.2 - Prüfung durch die Fachabteilung - Stellvertretung (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [5.0 - Prüfung und Kontierung durch die FiBu] → [5.0 - Prüfung und Kontierung durch die FiBu (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [5.0 - Prüfung und Kontierung durch die FiBu - Arbeitskopie DigitalData] → [5.0 - Prüfung und Kontierung durch die FiBu - Arbeitskopie DigitalData (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [5.1 - Auffangprofil für alle abgelehnten Dokumente] → [5.1 - Auffangprofil für alle abgelehnten Dokumente (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [5.2 - Auftragskontierung] → [5.2 - Auftragskontierung (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [5.3 - Kostenstellenkontierung] → [5.3 - Kostenstellenkontierung (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [5.4 - Finale Kontierung] → [5.4 - Finale Kontierung (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [6.0 - Zahlungsfreigabe der Geschäftsführung] → [6.0 - Zahlungsfreigabe der Geschäftsführung (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [6.1 - Zahlungsfreigabe der Geschäftsführung - Angehaltende Dokumente] → [6.1 - Zahlungsfreigabe der Geschäftsführung - Angehaltende Dokumente (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [7.0 - Manuelle Schleupen Übergabe] → [7.0 - Manuelle Schleupen Übergabe (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [7.1 - Automatische Schleupen Übergabe] → [7.1 - Automatische Schleupen Übergabe (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [96.0 - Zahlungsfreigabe der Geschäftsführung - (nur Ansicht)] → [96.0 - Zahlungsfreigabe der Geschäftsführung - (nur Ansicht) (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [98.0 - Übersichtsprofil - Sämtliche nicht zahlungsfreigebenen Rechnungen] → [98.0 - Übersichtsprofil - Sämtliche nicht zahlungsfreigebenen Rechnungen (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [99.0 - Auffangprofil für nicht bearbeitete Dateien] → [99.0 - Auffangprofil für nicht bearbeitete Dateien (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [VHM Vertragsworkflow] → [VHM Vertragsworkflow (13)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [1.0 - Anfrage des Interessent/Kunde] → [1.0 - Anfrage des Interessent/Kunde (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [2.0 - Rückmeldung Installateur (Energiedienstleistung)] → [2.0 - Rückmeldung Installateur (Energiedienstleistung) (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [2.1 - Rückmeldung Einkauf (Energieversorgung)] → [2.1 - Rückmeldung Einkauf (Energieversorgung) (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [3.0 - Rückmeldung Interessent/Kunde (Energiedienstleistung)] → [3.0 - Rückmeldung Interessent/Kunde (Energiedienstleistung) (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [3.1 - Rückmeldung Interessent/Kunde (Energieversorgung)] → [3.1 - Rückmeldung Interessent/Kunde (Energieversorgung) (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [4.0 - Warte auf unterschriebenen Vertrag (Energiedienstleistung)] → [4.0 - Warte auf unterschriebenen Vertrag (Energiedienstleistung) (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [4.1 - Warte auf unterschriebenen Vertrag (Energieversorgung)] → [4.1 - Warte auf unterschriebenen Vertrag (Energieversorgung) (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [6.0 - Dokumentübernahme durch Erfasser] → [6.0 - Dokumentübernahme durch Erfasser (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [7.0 - Prüfung durch die Fachabteilung (Energiedienstleistung)] → [7.0 - Prüfung durch die Fachabteilung (Energiedienstleistung) (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [7.1 - Prüfung durch die Fachabteilung (Energieversorgung)] → [7.1 - Prüfung durch die Fachabteilung (Energieversorgung) (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [8.0 - Inbetriebnahme erfolgt (Energiedienstleistung)] → [8.0 - Inbetriebnahme erfolgt (Energiedienstleistung) (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [9.0 - Abrechnung / Rechnungserstellung (Energiedienstleistung)] → [9.0 - Abrechnung / Rechnungserstellung (Energiedienstleistung) (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [9.1 - Abrechnung / Rechnungserstellung (Energieversorgung)] → [9.1 - Abrechnung / Rechnungserstellung (Energieversorgung) (5)]
14:01:46.2158|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Node [98.0 - Übersichtsprofil - Sämtliche offene Vorgänge] → [98.0 - Übersichtsprofil - Sämtliche offene Vorgänge (5)]
14:01:46.2348|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Finished
14:01:46.2348|taskFLOW|DEBUG >> Decide_Show_Empty_Workflows -> Decide_Show_Empty_Workflows: pShow=[True], cached node counts: [35]
14:01:46.2348|taskFLOW|DEBUG >> _Lambda$__0 -> Decide_Show_Empty_Workflows: oPkInt [21] not found in _treeNodeCounts - Node visible set to True
14:01:57.8596|taskFLOW|DEBUG >> MoveNext -> TreeList1_FocusedNodeChanged: Node changed - processing
14:01:57.8596|taskFLOW|DEBUG >> MoveNext -> TreeList_Cockpit Node selected - PK_CFG_COCKPIT_DEFINITION_ID:[13] NAME:[5.4 - Finale Kontierung (5)] TYPE_ID:[1] FK_PROFILE_ID:[2015]
14:01:57.8596|taskFLOW|DEBUG >> MoveNext -> TreeList_Cockpit: Profile node clicked - FK_PROFILE_ID:[2015]
14:01:57.8596|taskFLOW|DEBUG >> MoveNext -> TreeList_Cockpit: Loading profile with ID [2015]...
14:01:57.8596|taskFLOW|DEBUG >> MoveNext -> TreeList_Cockpit: Stripped count suffix from title [5.4 - Finale Kontierung (5)] → [5.4 - Finale Kontierung]
14:01:57.8596|taskFLOW|INFO >> MoveNext -> [PERF Decide_Load] START - pIsFormLoad:[False] ForceReload:[True] GRID_LOAD_TYPE:[PROFILE#2015]
14:01:57.8596|taskFLOW|DEBUG >> MoveNext -> Decide_Load: pIsFormLoad [False] - ForceReload [True] - GRID_LOAD_TYPE [PROFILE#2015]
14:01:57.8596|taskFLOW|INFO >> MoveNext -> [PERF Decide_Load] ruft LoadProfileData auf...
14:01:57.8786|taskFLOW|DEBUG >> Load_Profiles_for_User -> Load_Profiles_for_User ...
14:01:57.8786|taskFLOW|DEBUG >> Load_Profiles_for_User -> Load_Profiles_for_User: Current datatable has 8 rows
14:01:57.8786|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2015
14:01:57.8786|DatabaseWithFallback|DEBUG >> GetDatatable -> Client is empty, falling back to direct database access.
14:01:57.8786|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM]
14:01:57.8786|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:01:57.8786|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:01:57.8786|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT * FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2015
ORDER BY [GUID] ASC] and Parameters []
14:01:57.9076|taskFLOW|DEBUG >> UpdateGridCaption -> UpdateGridCaption called - GRID_LOAD_TYPE: [PROFILE#2015], CURRENT_CLICKED_PROFILE_TITLE: [5.4 - Finale Kontierung], NO_WORKFLOWITEMS: [True]
14:01:57.9076|taskFLOW|DEBUG >> UpdateGridCaption -> Grid Caption updated: [Aktuell keine Workflowdaten vorhanden - 5.4 - Finale Kontierung]
14:01:57.9076|taskFLOW|INFO >> MoveNext -> Keine Workflow-Items für Profil: 5.4 - Finale Kontierung
14:01:57.9076|taskFLOW|WARN >> MoveNext -> LoadProfileData for Profile-ID [2015] - Title [5.4 - Finale Kontierung] failed or has no Data - exiting Decide_Load
14:01:57.9186|taskFLOW|INFO >> MoveNext -> [PERF Decide_Load] GESAMT: 51,0171ms
14:02:17.5059|taskFLOW|DEBUG >> MoveNext -> TreeList1_FocusedNodeChanged: Node changed - processing
14:02:17.5059|taskFLOW|DEBUG >> MoveNext -> TreeList_Cockpit Node selected - PK_CFG_COCKPIT_DEFINITION_ID:[7] NAME:[4.2 - Prüfung durch die Fachabteilung - Stellvertretung (5)] TYPE_ID:[1] FK_PROFILE_ID:[2023]
14:02:17.5059|taskFLOW|DEBUG >> MoveNext -> TreeList_Cockpit: Profile node clicked - FK_PROFILE_ID:[2023]
14:02:17.5059|taskFLOW|DEBUG >> MoveNext -> TreeList_Cockpit: Loading profile with ID [2023]...
14:02:17.5059|taskFLOW|DEBUG >> MoveNext -> TreeList_Cockpit: Stripped count suffix from title [4.2 - Prüfung durch die Fachabteilung - Stellvertretung (5)] → [4.2 - Prüfung durch die Fachabteilung - Stellvertretung]
14:02:17.5165|taskFLOW|INFO >> MoveNext -> [PERF Decide_Load] START - pIsFormLoad:[False] ForceReload:[True] GRID_LOAD_TYPE:[PROFILE#2023]
14:02:17.5165|taskFLOW|DEBUG >> MoveNext -> Decide_Load: pIsFormLoad [False] - ForceReload [True] - GRID_LOAD_TYPE [PROFILE#2023]
14:02:17.5165|taskFLOW|INFO >> MoveNext -> [PERF Decide_Load] ruft LoadProfileData auf...
14:02:17.5165|taskFLOW|DEBUG >> Load_Profiles_for_User -> Load_Profiles_for_User ...
14:02:17.5165|taskFLOW|DEBUG >> Load_Profiles_for_User -> Load_Profiles_for_User: Current datatable has 8 rows
14:02:17.5165|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2023
14:02:17.5165|DatabaseWithFallback|DEBUG >> GetDatatable -> Client is empty, falling back to direct database access.
14:02:17.5165|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM]
14:02:17.5165|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=VHM-DD-TEST;Database=DD_ECM;User Id=DD_ECM;Password=XXXXX;
14:02:17.5165|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
14:02:17.5165|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SELECT * FROM [FNCUST_GET_PM_OVERVIEW](1)
WHERE [PROFILE_ID] = 2023
ORDER BY [GUID] ASC] and Parameters []
14:02:17.5445|taskFLOW|DEBUG >> UpdateGridCaption -> UpdateGridCaption called - GRID_LOAD_TYPE: [PROFILE#2023], CURRENT_CLICKED_PROFILE_TITLE: [4.2 - Prüfung durch die Fachabteilung - Stellvertretung], NO_WORKFLOWITEMS: [True]
14:02:17.5445|taskFLOW|DEBUG >> UpdateGridCaption -> Grid Caption updated: [Aktuell keine Workflowdaten vorhanden - 4.2 - Prüfung durch die Fachabteilung - Stellvertretung]
14:02:17.5445|taskFLOW|INFO >> MoveNext -> Keine Workflow-Items für Profil: 4.2 - Prüfung durch die Fachabteilung - Stellvertretung
14:02:17.5445|taskFLOW|WARN >> MoveNext -> LoadProfileData for Profile-ID [2023] - Title [4.2 - Prüfung durch die Fachabteilung - Stellvertretung] failed or has no Data - exiting Decide_Load
14:02:17.5445|taskFLOW|INFO >> MoveNext -> [PERF Decide_Load] GESAMT: 36,9859ms