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 LastExportPath As String = ""
Public Property ADDITIONAL_SEARCHES_LOAD_ONCLICK As Boolean = True Public Property ADDITIONAL_SEARCHES_LOAD_ONCLICK As Boolean = True
Public Property NOTES_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 GridFontSizeDelta As Integer = 0
Public Property ProfileConfig As New ProfileUserConfig Public Property ProfileConfig As New ProfileUserConfig
Public Property InvDashboardSplitterPositions As New List(Of InvDashboardSplitterPosition) Public Property InvDashboardSplitterPositions As New List(Of InvDashboardSplitterPosition)

View File

@@ -78,6 +78,7 @@ Partial Class frmMain
Me.barbtnitmsaveLogfiles = New DevExpress.XtraBars.BarButtonItem() Me.barbtnitmsaveLogfiles = New DevExpress.XtraBars.BarButtonItem()
Me.bsitmCount = New DevExpress.XtraBars.BarStaticItem() Me.bsitmCount = New DevExpress.XtraBars.BarStaticItem()
Me.BarButtonItemCock_refresh = New DevExpress.XtraBars.BarButtonItem() Me.BarButtonItemCock_refresh = New DevExpress.XtraBars.BarButtonItem()
Me.Bchkitm_load_empty_wf = New DevExpress.XtraBars.BarCheckItem()
Me.RibbonPageStart = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageStart = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
@@ -239,9 +240,9 @@ Partial Class frmMain
'RibbonControl1 'RibbonControl1
' '
Me.RibbonControl1.ExpandCollapseItem.Id = 0 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") resources.ApplyResources(Me.RibbonControl1, "RibbonControl1")
Me.RibbonControl1.MaxItemId = 58 Me.RibbonControl1.MaxItemId = 60
Me.RibbonControl1.Name = "RibbonControl1" Me.RibbonControl1.Name = "RibbonControl1"
Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPageStart, Me.RibbonPageTabelle, Me.RibbonPageAktionen}) 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}) 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.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItemCock_refresh.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.BarButtonItemCock_refresh.Name = "BarButtonItemCock_refresh" 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 'RibbonPageStart
' '
Me.RibbonPageStart.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup3, Me.RibbonPageGroupBasicConf, Me.RibbonPageGroup7, Me.RibbonPageGroup4, Me.RibbonPageGroupAHW}) 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.AllowTextClipping = False
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItemCock_refresh) 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.bbtniRefresh)
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItemGhostMode) Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItemGhostMode)
Me.RibbonPageGroup1.ItemLinks.Add(Me.BBtnItmNotfications) Me.RibbonPageGroup1.ItemLinks.Add(Me.BBtnItmNotfications)
@@ -799,7 +810,7 @@ Partial Class frmMain
resources.ApplyResources(Me.ImageCollection1, "ImageCollection1") resources.ApplyResources(Me.ImageCollection1, "ImageCollection1")
Me.ImageCollection1.ImageStream = CType(resources.GetObject("ImageCollection1.ImageStream"), DevExpress.Utils.ImageCollectionStreamer) Me.ImageCollection1.ImageStream = CType(resources.GetObject("ImageCollection1.ImageStream"), DevExpress.Utils.ImageCollectionStreamer)
Me.ImageCollection1.Images.SetKeyName(0, "splittablecells_32x32.png") 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(2, "bar2_32x32.png")
Me.ImageCollection1.Images.SetKeyName(3, "gaugestylefullcircular_32x32.png") Me.ImageCollection1.Images.SetKeyName(3, "gaugestylefullcircular_32x32.png")
' '
@@ -1793,4 +1804,5 @@ Partial Class frmMain
Friend WithEvents Panel1 As Panel Friend WithEvents Panel1 As Panel
Friend WithEvents SplitterControl1 As DevExpress.XtraEditors.SplitterControl Friend WithEvents SplitterControl1 As DevExpress.XtraEditors.SplitterControl
Friend WithEvents BarButtonItemCock_refresh As DevExpress.XtraBars.BarButtonItem Friend WithEvents BarButtonItemCock_refresh As DevExpress.XtraBars.BarButtonItem
Friend WithEvents Bchkitm_load_empty_wf As DevExpress.XtraBars.BarCheckItem
End Class End Class

View File

@@ -1704,6 +1704,37 @@
NS42LTIuNGwzLjYtMy42SDguNEg0LjRINC4ydjEwbDMuNS0zLjVjMi4yLDIuMiw1LjIsMy41LDguNSwz NS42LTIuNGwzLjYtMy42SDguNEg0LjRINC4ydjEwbDMuNS0zLjVjMi4yLDIuMiw1LjIsMy41LDguNSwz
LjUgICBDMjIuMSwyOCwyNywyMy43LDI4LDE4aC00LjFDMjMsMjEuNCwxOS45LDI0LDE2LjIsMjR6IiBj LjUgICBDMjIuMSwyOCwyNywyMy43LDI4LDE4aC00LjFDMjMsMjEuNCwxOS45LDI0LDE2LjIsMjR6IiBj
bGFzcz0iR3JlZW4iIC8+DQogIDwvZz4NCjwvc3ZnPgs= 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> </value>
</data> </data>
<data name="RibbonPageGroup1.Text" xml:space="preserve"> <data name="RibbonPageGroup1.Text" xml:space="preserve">
@@ -1746,7 +1777,7 @@
cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P// cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P//
/xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAABgAAAAYAAAACQUAAAAP /xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAABgAAAAYAAAACQUAAAAP
BQAAAGkYAAAC/QUAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgGAAAA4Hc9+AAAAARnQU1BAACxjwv8 BQAAAGkYAAAC/QUAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgGAAAA4Hc9+AAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADr4AAA6+AepCscAAAAWfSURBVEhLvZZpUFNXGIYvVbtvM92kdqa1rVUr42hbay1j YQUAAAAJcEhZcwAADr0AAA69AUf7kK0AAAWfSURBVEhLvZZpUFNXGIYvVbtvM92kdqa1rVUr42hbay1j
rXVsi61LW+qCrEaQQWAAiRsC4oJiBNlVigurIkkwCghFUdkCAYKI4MqWsINAFrKQ5e2cmxsItJ3pr96Z rXVsi61LW+qCrEaQQWAAiRsC4oJiBNlVigurIkkwCghFUdkCAYKI4MqWsINAFrKQ5e2cmxsItJ3pr96Z
d5JJJs/z5TvfOfdS1P90WVEU9YxFpkzK1H/JNIs8Oynkd4RLWYWm3rEJu/TwzP6sJm5oVhM35EIjd19m d5JJJs/z5TvfOfdS1P90WVEU9YxFpkzK1H/JNIs8Oynkd4RLWYWm3rEJu/TwzP6sJm5oVhM35EIjd19m
Izcos5G7J72RuzvtHpd9vp7HPlfPCzhTR8cvWczzTarh+Zyu4XmfEvG9Eiv5ngmVfI+ESr57vJDveuyG Izcos5G7J72RuzvtHpd9vp7HPlfPCzhTR8cvWczzTarh+Zyu4XmfEvG9Eiv5ngmVfI+ESr57vJDveuyG
@@ -1771,7 +1802,7 @@
BM29I3jSo8TjHiUedSvRKJFjbUj+WIumbAjOtvNIEPVtS6yBR3wNtsaJwIqtwpaYKrhGV8LlhBDOUUI4 BM29I3jSo8TjHiUedSvRKJFjbUj+WIumbAjOtvNIEPVtS6yBR3wNtsaJwIqtwpaYKrhGV8LlhBDOUUI4
RlZg8/FyOHDKselYGTZGlGJDRCnWHymh83v4bdgzsdt1kWM+KsiN+Tlmxd+gKOpNi7zF5G0m71hkOhNr RlZg8/FyOHDKselYGTZGlGJDRCnWHymh83v4bdgzsdt1kWM+KsiN+Tlmxd+gKOpNi7zF5G0m71hkOhNr
Ju9ahHxPRpS+J5sl//Q08V8z+WmDfEZ41F8VtFHlC52srAAAAABJRU5ErkJggq0GAACJUE5HDQoaCgAA Ju9ahHxPRpS+J5sl//Q08V8z+WmDfEZ41F8VtFHlC52srAAAAABJRU5ErkJggq0GAACJUE5HDQoaCgAA
AA1JSERSAAAAGAAAABgIBgAAAOB3PfgAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA6+AAAOvgHqQrHA AA1JSERSAAAAGAAAABgIBgAAAOB3PfgAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA69AAAOvQFH+5Ct
AAAGT0lEQVRIS81VeVCTVxx8aq31qCLBoCCXBFCr4llEqijEqxSpFQ+CEQiXXAHkKBoEEYy0IFKhteBR AAAGT0lEQVRIS81VeVCTVxx8aq31qCLBoCCXBFCr4llEqijEqxSpFQ+CEQiXXAHkKBoEEYy0IFKhteBR
6okiDiAiIOBUDoEEEMIZDgVJCIcgChSv2c4XcIZpx7b2r+7M98/3Znb3t++9fYT8XxAcTMYnOOuo3nBf 6okiDiAiIOBUDoEEEMIZDgVJCIcgChSv2c4XcIZpx7b2r+7M98/3Znb3t++9fYT8XxAcTMYnOOuo3nBf
wExyXWCa4MjQ9tjCmEQIGTf6/WeMu+G3VCc1YEVIYbxlflmid68oYWtPfaK5MC1APyWOpekbaaG+hhDy wExyXWCa4MjQ9tjCmEQIGTf6/WeMu+G3VCc1YEVIYbxlflmid68oYWtPfaK5MC1APyWOpekbaaG+hhDy
@@ -1800,7 +1831,7 @@
+XwTXLOjv+VtmFnM1JhiR5s2bf68tRzbpbsiBw0dL1KxVM5QX2X6T+RjQU1DZUjXpk3Y4Gmg8MBm8bRz +XwTXLOjv+VtmFnM1JhiR5s2bf68tRzbpbsiBw0dL1KxVM5QX2X6T+RjQU1DZUjXpk3Y4Gmg8MBm8bRz
ClOIPiFEYdTEJ9Pnrtoyexn74QzVz03eF8vf4d001N4oE0KUCCFT/kREmaDWJ47598GghD7sMR+DPwBL ClOIPiFEYdTEJ9Pnrtoyexn74QzVz03eF8vf4d001N4oE0KUCCFT/kREmaDWJ47598GghD7sMR+DPwBL
DL6/Ppn6BAAAAABJRU5ErkJgghcFAACJUE5HDQoaCgAAAA1JSERSAAAAGAAAABgIBgAAAOB3PfgAAAAE DL6/Ppn6BAAAAABJRU5ErkJgghcFAACJUE5HDQoaCgAAAA1JSERSAAAAGAAAABgIBgAAAOB3PfgAAAAE
Z0FNQQAAsY8L/GEFAAAACXBIWXMAAA6+AAAOvgHqQrHAAAAEuUlEQVRIS6WVeVBTVxTGbxWpS5fpMm3t Z0FNQQAAsY8L/GEFAAAACXBIWXMAAA69AAAOvQFH+5CtAAAEuUlEQVRIS6WVeVBTVxTGbxWpS5fpMm3t
0L86pVtcW5wygNRpy2hlEwUUXJAUKARcKGKEkBAgoFAxAxVQIAkhgDqIKJC8hADKqiCLVAGDEGCKMELo 0L86pVtcW5wygNRpy2hlEwUUXJAUKARcKGKEkBAgoFAxAxVQIAkhgDqIKJC8hADKqiCLVAGDEGCKMELo
Iu2/X+eGhAaolaHfzO+9uXPvne+dd849l5B/9AIhZNl/QOeXrGUt4oPrO7K/29eWyfa7QxEHmDhgpD51 Iu2/X+eGhAaolaHfzO+9uXPvne+dd849l5B/9AIhZNl/QOeXrGUt4oPrO7K/29eWyfa7QxEHmDhgpD51
73qT0ZK0vDllt2Sq8zKmOi/B0FEMQ3sRDHcVMLQVwtAmR0OCm4QQYjV/42JlpT35zdW/BpWYvpeP6W4p 73qT0ZK0vDllt2Sq8zKmOi/B0FEMQ3sRDHcVMLQVwtAmR0OCm4QQYjV/42JlpT35zdW/BpWYvpeP6W4p
@@ -1822,7 +1853,7 @@
7g9duB90HMo+PKSE+c4Q6ouHIT5G+ijB3kZULi7PNViZZrtBlPPxZ5hhM7IpH21G9oebTGxElq0FH2yY 7g9duB90HMo+PKSE+c4Q6ouHIT5G+ijB3kZULi7PNViZZrtBlPPxZ5hhM7IpH21G9oebTGxElq0FH2yY
Rfz+uh5CyGvzT6+l6AQ9eXTR66bebwltCc/CfE/Q225BD7IUrVlqtBSeebv9DSPp72MGtFSzAAAAAElF Rfz+uh5CyGvzT6+l6AQ9eXTR66bebwltCc/CfE/Q225BD7IUrVlqtBSeebv9DSPp72MGtFSzAAAAAElF
TkSuQmCCmAYAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgGAAAA4Hc9+AAAAARnQU1BAACxjwv8YQUA TkSuQmCCmAYAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgGAAAA4Hc9+AAAAARnQU1BAACxjwv8YQUA
AAAJcEhZcwAADsEAAA7BAbiRa+0AAAY6SURBVEhLlVZ7TFNnFP90c1P3VOeyOA3Z/pjGTJNtWZZsxmXZ AAAJcEhZcwAADsAAAA7AAWrWiQkAAAY6SURBVEhLlVZ7TFNnFP90c1P3VOeyOA3Z/pjGTJNtWZZsxmXZ
I5mKj6n44CmMqQgTwflkMBWQTcZQC0oR5RFApTJwKM/CQCoPbWlLodhSSh/0/aCF0lYdv+W7thvLNNlO I5mKj6n44CmMqQgTwflkMBWQTcZQC0oR5RFApTJwKM/CQCoPbWlLodhSSh/0/aCF0lYdv+W7thvLNNlO
8rv35t4vv9/5zjnfOZeQJ9s0Qsh0QsjThJBnCSGzCCGzfaDP9B39Rtf8L6PET+3Zkz4vK78+sKSyO+NG 8rv35t4vv9/5zjnfOZeQJ9s0Qsh0QsjThJBnCSGzCCGzfaDP9B39Rtf8L6PET+3Zkz4vK78+sKSyO+NG
i5Rff0s+0sRT3G9ol9lvtkplV2r4FacLGnYnZZa9896aNVT0PwlNCwj4eOapnJrVFyu6a/m9WuuI0QnH i5Rff0s+0sRT3G9ol9lvtkplV2r4FacLGnYnZZa9896aNVT0PwlNCwj4eOapnJrVFyu6a/m9WuuI0QnH
@@ -1906,7 +1937,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADw ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADw
CAAAAk1TRnQBSQFMAgEBAgEAASwBBQEsAQUBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo CAAAAk1TRnQBSQFMAgEBAgEAATQBBQE0AQUBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA

View File

@@ -1324,6 +1324,31 @@
NS42LTIuNGwzLjYtMy42SDguNEg0LjRINC4ydjEwbDMuNS0zLjVjMi4yLDIuMiw1LjIsMy41LDguNSwz NS42LTIuNGwzLjYtMy42SDguNEg0LjRINC4ydjEwbDMuNS0zLjVjMi4yLDIuMiw1LjIsMy41LDguNSwz
LjUgICBDMjIuMSwyOCwyNywyMy43LDI4LDE4aC00LjFDMjMsMjEuNCwxOS45LDI0LDE2LjIsMjR6IiBj LjUgICBDMjIuMSwyOCwyNywyMy43LDI4LDE4aC00LjFDMjMsMjEuNCwxOS45LDI0LDE2LjIsMjR6IiBj
bGFzcz0iR3JlZW4iIC8+DQogIDwvZz4NCjwvc3ZnPgs= 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> </value>
</data> </data>
<data name="RibbonPageGroup1.Text" xml:space="preserve"> <data name="RibbonPageGroup1.Text" xml:space="preserve">
@@ -1366,7 +1391,7 @@
cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P// cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P//
/xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAABgAAAAYAAAACQUAAAAP /xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAABgAAAAYAAAACQUAAAAP
BQAAAGkYAAAC/QUAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgGAAAA4Hc9+AAAAARnQU1BAACxjwv8 BQAAAGkYAAAC/QUAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgGAAAA4Hc9+AAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADr0AAA69AUf7kK0AAAWfSURBVEhLvZZpUFNXGIYvVbtvM92kdqa1rVUr42hbay1j YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAWfSURBVEhLvZZpUFNXGIYvVbtvM92kdqa1rVUr42hbay1j
rXVsi61LW+qCrEaQQWAAiRsC4oJiBNlVigurIkkwCghFUdkCAYKI4MqWsINAFrKQ5e2cmxsItJ3pr96Z rXVsi61LW+qCrEaQQWAAiRsC4oJiBNlVigurIkkwCghFUdkCAYKI4MqWsINAFrKQ5e2cmxsItJ3pr96Z
d5JJJs/z5TvfOfdS1P90WVEU9YxFpkzK1H/JNIs8Oynkd4RLWYWm3rEJu/TwzP6sJm5oVhM35EIjd19m d5JJJs/z5TvfOfdS1P90WVEU9YxFpkzK1H/JNIs8Oynkd4RLWYWm3rEJu/TwzP6sJm5oVhM35EIjd19m
Izcos5G7J72RuzvtHpd9vp7HPlfPCzhTR8cvWczzTarh+Zyu4XmfEvG9Eiv5ngmVfI+ESr57vJDveuyG Izcos5G7J72RuzvtHpd9vp7HPlfPCzhTR8cvWczzTarh+Zyu4XmfEvG9Eiv5ngmVfI+ESr57vJDveuyG
@@ -1391,7 +1416,7 @@
BM29I3jSo8TjHiUedSvRKJFjbUj+WIumbAjOtvNIEPVtS6yBR3wNtsaJwIqtwpaYKrhGV8LlhBDOUUI4 BM29I3jSo8TjHiUedSvRKJFjbUj+WIumbAjOtvNIEPVtS6yBR3wNtsaJwIqtwpaYKrhGV8LlhBDOUUI4
RlZg8/FyOHDKselYGTZGlGJDRCnWHymh83v4bdgzsdt1kWM+KsiN+Tlmxd+gKOpNi7zF5G0m71hkOhNr RlZg8/FyOHDKselYGTZGlGJDRCnWHymh83v4bdgzsdt1kWM+KsiN+Tlmxd+gKOpNi7zF5G0m71hkOhNr
Ju9ahHxPRpS+J5sl//Q08V8z+WmDfEZ41F8VtFHlC52srAAAAABJRU5ErkJggq0GAACJUE5HDQoaCgAA Ju9ahHxPRpS+J5sl//Q08V8z+WmDfEZ41F8VtFHlC52srAAAAABJRU5ErkJggq0GAACJUE5HDQoaCgAA
AA1JSERSAAAAGAAAABgIBgAAAOB3PfgAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA69AAAOvQFH+5Ct AA1JSERSAAAAGAAAABgIBgAAAOB3PfgAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJ
AAAGT0lEQVRIS81VeVCTVxx8aq31qCLBoCCXBFCr4llEqijEqxSpFQ+CEQiXXAHkKBoEEYy0IFKhteBR AAAGT0lEQVRIS81VeVCTVxx8aq31qCLBoCCXBFCr4llEqijEqxSpFQ+CEQiXXAHkKBoEEYy0IFKhteBR
6okiDiAiIOBUDoEEEMIZDgVJCIcgChSv2c4XcIZpx7b2r+7M98/3Znb3t++9fYT8XxAcTMYnOOuo3nBf 6okiDiAiIOBUDoEEEMIZDgVJCIcgChSv2c4XcIZpx7b2r+7M98/3Znb3t++9fYT8XxAcTMYnOOuo3nBf
wExyXWCa4MjQ9tjCmEQIGTf6/WeMu+G3VCc1YEVIYbxlflmid68oYWtPfaK5MC1APyWOpekbaaG+hhDy wExyXWCa4MjQ9tjCmEQIGTf6/WeMu+G3VCc1YEVIYbxlflmid68oYWtPfaK5MC1APyWOpekbaaG+hhDy
@@ -1420,7 +1445,7 @@
+XwTXLOjv+VtmFnM1JhiR5s2bf68tRzbpbsiBw0dL1KxVM5QX2X6T+RjQU1DZUjXpk3Y4Gmg8MBm8bRz +XwTXLOjv+VtmFnM1JhiR5s2bf68tRzbpbsiBw0dL1KxVM5QX2X6T+RjQU1DZUjXpk3Y4Gmg8MBm8bRz
ClOIPiFEYdTEJ9Pnrtoyexn74QzVz03eF8vf4d001N4oE0KUCCFT/kREmaDWJ47598GghD7sMR+DPwBL ClOIPiFEYdTEJ9Pnrtoyexn74QzVz03eF8vf4d001N4oE0KUCCFT/kREmaDWJ47598GghD7sMR+DPwBL
DL6/Ppn6BAAAAABJRU5ErkJgghcFAACJUE5HDQoaCgAAAA1JSERSAAAAGAAAABgIBgAAAOB3PfgAAAAE DL6/Ppn6BAAAAABJRU5ErkJgghcFAACJUE5HDQoaCgAAAA1JSERSAAAAGAAAABgIBgAAAOB3PfgAAAAE
Z0FNQQAAsY8L/GEFAAAACXBIWXMAAA69AAAOvQFH+5CtAAAEuUlEQVRIS6WVeVBTVxTGbxWpS5fpMm3t Z0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAEuUlEQVRIS6WVeVBTVxTGbxWpS5fpMm3t
0L86pVtcW5wygNRpy2hlEwUUXJAUKARcKGKEkBAgoFAxAxVQIAkhgDqIKJC8hADKqiCLVAGDEGCKMELo 0L86pVtcW5wygNRpy2hlEwUUXJAUKARcKGKEkBAgoFAxAxVQIAkhgDqIKJC8hADKqiCLVAGDEGCKMELo
Iu2/X+eGhAaolaHfzO+9uXPvne+dd849l5B/9AIhZNl/QOeXrGUt4oPrO7K/29eWyfa7QxEHmDhgpD51 Iu2/X+eGhAaolaHfzO+9uXPvne+dd849l5B/9AIhZNl/QOeXrGUt4oPrO7K/29eWyfa7QxEHmDhgpD51
73qT0ZK0vDllt2Sq8zKmOi/B0FEMQ3sRDHcVMLQVwtAmR0OCm4QQYjV/42JlpT35zdW/BpWYvpeP6W4p 73qT0ZK0vDllt2Sq8zKmOi/B0FEMQ3sRDHcVMLQVwtAmR0OCm4QQYjV/42JlpT35zdW/BpWYvpeP6W4p
@@ -1442,7 +1467,7 @@
7g9duB90HMo+PKSE+c4Q6ouHIT5G+ijB3kZULi7PNViZZrtBlPPxZ5hhM7IpH21G9oebTGxElq0FH2yY 7g9duB90HMo+PKSE+c4Q6ouHIT5G+ijB3kZULi7PNViZZrtBlPPxZ5hhM7IpH21G9oebTGxElq0FH2yY
Rfz+uh5CyGvzT6+l6AQ9eXTR66bebwltCc/CfE/Q225BD7IUrVlqtBSeebv9DSPp72MGtFSzAAAAAElF Rfz+uh5CyGvzT6+l6AQ9eXTR66bebwltCc/CfE/Q225BD7IUrVlqtBSeebv9DSPp72MGtFSzAAAAAElF
TkSuQmCCmAYAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgGAAAA4Hc9+AAAAARnQU1BAACxjwv8YQUA TkSuQmCCmAYAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgGAAAA4Hc9+AAAAARnQU1BAACxjwv8YQUA
AAAJcEhZcwAADsAAAA7AAWrWiQkAAAY6SURBVEhLlVZ7TFNnFP90c1P3VOeyOA3Z/pjGTJNtWZZsxmXZ AAAJcEhZcwAADr8AAA6/ATgFUyQAAAY6SURBVEhLlVZ7TFNnFP90c1P3VOeyOA3Z/pjGTJNtWZZsxmXZ
I5mKj6n44CmMqQgTwflkMBWQTcZQC0oR5RFApTJwKM/CQCoPbWlLodhSSh/0/aCF0lYdv+W7thvLNNlO I5mKj6n44CmMqQgTwflkMBWQTcZQC0oR5RFApTJwKM/CQCoPbWlLodhSSh/0/aCF0lYdv+W7thvLNNlO
8rv35t4vv9/5zjnfOZeQJ9s0Qsh0QsjThJBnCSGzCCGzfaDP9B39Rtf8L6PET+3Zkz4vK78+sKSyO+NG 8rv35t4vv9/5zjnfOZeQJ9s0Qsh0QsjThJBnCSGzCCGzfaDP9B39Rtf8L6PET+3Zkz4vK78+sKSyO+NG
i5Rff0s+0sRT3G9ol9lvtkplV2r4FacLGnYnZZa9896aNVT0PwlNCwj4eOapnJrVFyu6a/m9WuuI0QnH i5Rff0s+0sRT3G9ol9lvtkplV2r4FacLGnYnZZa9896aNVT0PwlNCwj4eOapnJrVFyu6a/m9WuuI0QnH
@@ -1477,7 +1502,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADw ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADw
CAAAAk1TRnQBSQFMAgEBAgEAASQBBQEkAQUBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo CAAAAk1TRnQBSQFMAgEBAgEAASwBBQEsAQUBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA

View File

@@ -1408,6 +1408,31 @@
NS42LTIuNGwzLjYtMy42SDguNEg0LjRINC4ydjEwbDMuNS0zLjVjMi4yLDIuMiw1LjIsMy41LDguNSwz NS42LTIuNGwzLjYtMy42SDguNEg0LjRINC4ydjEwbDMuNS0zLjVjMi4yLDIuMiw1LjIsMy41LDguNSwz
LjUgICBDMjIuMSwyOCwyNywyMy43LDI4LDE4aC00LjFDMjMsMjEuNCwxOS45LDI0LDE2LjIsMjR6IiBj LjUgICBDMjIuMSwyOCwyNywyMy43LDI4LDE4aC00LjFDMjMsMjEuNCwxOS45LDI0LDE2LjIsMjR6IiBj
bGFzcz0iR3JlZW4iIC8+DQogIDwvZz4NCjwvc3ZnPgs= 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> </value>
</data> </data>
<data name="RibbonControl1.Location" type="System.Drawing.Point, System.Drawing"> <data name="RibbonControl1.Location" type="System.Drawing.Point, System.Drawing">
@@ -1493,7 +1518,7 @@
a2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAAChEZXZFeHByZXNzLlV0aWxzLkltYWdlQ29sbGVjdGlvblN0 a2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAAChEZXZFeHByZXNzLlV0aWxzLkltYWdlQ29sbGVjdGlvblN0
cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P// cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P//
/xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAABgAAAAYAAAACQUAAAAP /xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAABgAAAAYAAAACQUAAAAP
BQAAAGkYAAAC/QUAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgGAAAA4Hc9+AAAAARnQU1BAACxjwv8 BQAAAOITAAAC/QUAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgGAAAA4Hc9+AAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAWfSURBVEhLvZZpUFNXGIYvVbtvM92kdqa1rVUr42hbay1j YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAWfSURBVEhLvZZpUFNXGIYvVbtvM92kdqa1rVUr42hbay1j
rXVsi61LW+qCrEaQQWAAiRsC4oJiBNlVigurIkkwCghFUdkCAYKI4MqWsINAFrKQ5e2cmxsItJ3pr96Z rXVsi61LW+qCrEaQQWAAiRsC4oJiBNlVigurIkkwCghFUdkCAYKI4MqWsINAFrKQ5e2cmxsItJ3pr96Z
d5JJJs/z5TvfOfdS1P90WVEU9YxFpkzK1H/JNIs8Oynkd4RLWYWm3rEJu/TwzP6sJm5oVhM35EIjd19m d5JJJs/z5TvfOfdS1P90WVEU9YxFpkzK1H/JNIs8Oynkd4RLWYWm3rEJu/TwzP6sJm5oVhM35EIjd19m
@@ -1518,86 +1543,66 @@
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
AKYAsKWkAAAAAElFTkSuQmCCCw==
</value> </value>
</data> </data>
<data name="TreeList_Cockpit.Size" type="System.Drawing.Size, System.Drawing"> <data name="TreeList_Cockpit.Size" type="System.Drawing.Size, System.Drawing">
@@ -1710,7 +1715,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADw ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADw
CAAAAk1TRnQBSQFMAgEBAgEAAVABDAFQAQwBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo CAAAAk1TRnQBSQFMAgEBAgEAAWgBDAFoAQwBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -2534,6 +2539,12 @@
<data name="&gt;&gt;BarButtonItemCock_refresh.Type" xml:space="preserve"> <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> <value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data> </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"> <data name="&gt;&gt;RibbonPageStart.Name" xml:space="preserve">
<value>RibbonPageStart</value> <value>RibbonPageStart</value>
</data> </data>

View File

@@ -32,6 +32,8 @@ Public Class frmMain
Private CURR_DT_VWPM_PROFILE_ACTIVE As DataTable Private CURR_DT_VWPM_PROFILE_ACTIVE As DataTable
Private CURR_DT_VWPM_PROFILE_AH_WORKFLOW As DataTable Private CURR_DT_VWPM_PROFILE_AH_WORKFLOW As DataTable
Private DT_CURR_WF_ITEMS 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_ADDED_WHEN As String
Private OVERVIEW_CHANGED_WHEN As String Private OVERVIEW_CHANGED_WHEN As String
Private OVERVIEW_COUNT As Integer = 0 Private OVERVIEW_COUNT As Integer = 0
@@ -74,6 +76,7 @@ Public Class frmMain
Public Const NAVBAR_CLICKED = "NAVBAR LINK CLICKED" Public Const NAVBAR_CLICKED = "NAVBAR LINK CLICKED"
Private CUSTOM_OVERVIEW_SQL As String = String.Empty Private CUSTOM_OVERVIEW_SQL As String = String.Empty
Private _lastUsedOverviewSQL As String = String.Empty ' ← NEU: persistente Kopie
Private COCKPIT_CONFIG_ID As Integer = 0 Private COCKPIT_CONFIG_ID As Integer = 0
@@ -515,6 +518,14 @@ Public Class frmMain
Else Else
bbtnitmLanguage_Change.Visibility = DevExpress.XtraBars.BarItemVisibility.Never bbtnitmLanguage_Change.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
End If 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() LoadCURRENT_DT_PROFILES()
LoadVWPM_CONTROL_INDEX() LoadVWPM_CONTROL_INDEX()
@@ -577,6 +588,7 @@ Public Class frmMain
TreeList_Cockpit.BeginUpdate() TreeList_Cockpit.BeginUpdate()
Try Try
TreeList_Cockpit.DataSource = oDT_STRUCTURE_NODES TreeList_Cockpit.DataSource = oDT_STRUCTURE_NODES
AddHandler TreeList_Cockpit.CustomDrawNodeCell, AddressOf TreeList_Cockpit_CustomDrawNodeCell
TreeList_Cockpit.KeyFieldName = "PK_CFG_COCKPIT_DEFINITION_ID" TreeList_Cockpit.KeyFieldName = "PK_CFG_COCKPIT_DEFINITION_ID"
TreeList_Cockpit.ParentFieldName = "PARENT_ID" TreeList_Cockpit.ParentFieldName = "PARENT_ID"
TreeList_Cockpit.Columns("PK_RESULT_ID").SortOrder = SortOrder.Ascending TreeList_Cockpit.Columns("PK_RESULT_ID").SortOrder = SortOrder.Ascending
@@ -634,17 +646,35 @@ Public Class frmMain
End Try End Try
End Sub 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() Private Async Sub AppendCountsToTreeAsync()
Try Try
LOGGER.Debug("AppendCountsToTreeAsync: Starting background count queries...") 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)) Dim oWorkItems As New List(Of (Node As DevExpress.XtraTreeList.Nodes.TreeListNode, SQL As String, OriginalName As String))
TreeList_Cockpit.NodesIterator.DoOperation( TreeList_Cockpit.NodesIterator.DoOperation(
Sub(oNode As DevExpress.XtraTreeList.Nodes.TreeListNode) 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 oTypeId As Object = oNode.GetValue("TYPE_ID")
Dim oProfileID As Object = oNode.GetValue("FK_PROFILE_ID") Dim oProfileID As Object = oNode.GetValue("FK_PROFILE_ID")
If oTypeId Is Nothing OrElse IsDBNull(oTypeId) Then If oTypeId Is Nothing OrElse IsDBNull(oTypeId) Then
@@ -658,10 +688,23 @@ Public Class frmMain
Dim oSqlCount As Object = oNode.GetValue("SQL_QUERY_COUNT") Dim oSqlCount As Object = oNode.GetValue("SQL_QUERY_COUNT")
If oSqlCount IsNot Nothing AndAlso Not IsDBNull(oSqlCount) AndAlso Not String.IsNullOrWhiteSpace(oSqlCount.ToString()) Then 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 oProfileIdInt As Integer = If(oProfileID IsNot Nothing AndAlso Not IsDBNull(oProfileID), CInt(oProfileID), 0)
Dim oName As String = oNode.GetValue("NAME")?.ToString() Dim oRawSQL As String = oSqlCount.ToString()
If Not String.IsNullOrWhiteSpace(oName) Then LOGGER.Debug($"AppendCountsToTreeAsync: Preparing SQL for node [{oNode.GetValue("NAME")}] with PROFILE_ID [{oProfileIdInt}]")
oWorkItems.Add((oNode, oPreparedSQL, oName)) 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 End If
Else Else
LOGGER.Debug($"AppendCountsToTreeAsync: Node [{oNode.GetValue("NAME")}] has no valid SQL_QUERY_COUNT, skipping.") LOGGER.Debug($"AppendCountsToTreeAsync: Node [{oNode.GetValue("NAME")}] has no valid SQL_QUERY_COUNT, skipping.")
@@ -669,12 +712,12 @@ Public Class frmMain
End Sub) End Sub)
If oWorkItems.Count = 0 Then If oWorkItems.Count = 0 Then
LOGGER.Debug("AppendCountsToTreeAsync: No nodes with SQL_QUERY_COUNT found, exiting.")
Exit Sub Exit Sub
End If End If
LOGGER.Debug($"AppendCountsToTreeAsync: {oWorkItems.Count} node(s) with SQL_QUERY_COUNT found") 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)) Dim oResults As New List(Of (Node As DevExpress.XtraTreeList.Nodes.TreeListNode, OriginalName As String, Count As String))
Await Task.Run(Sub() Await Task.Run(Sub()
@@ -692,10 +735,17 @@ Public Class frmMain
Next Next
End Sub) End Sub)
' Ergebnisse zurück im UI-Thread auf die Knoten schreiben _treeNodeCounts.Clear()
TreeList_Cockpit.BeginUpdate() TreeList_Cockpit.BeginUpdate()
Try Try
For Each oResult In oResults 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})") oResult.Node.SetValue("NAME", $"{oResult.OriginalName} ({oResult.Count})")
LOGGER.Debug($"AppendCountsToTreeAsync: Node [{oResult.OriginalName}] → [{oResult.OriginalName} ({oResult.Count})]") LOGGER.Debug($"AppendCountsToTreeAsync: Node [{oResult.OriginalName}] → [{oResult.OriginalName} ({oResult.Count})]")
Next Next
@@ -705,7 +755,7 @@ Public Class frmMain
TreeList_Cockpit.Refresh() TreeList_Cockpit.Refresh()
LOGGER.Debug("AppendCountsToTreeAsync: Finished") LOGGER.Debug("AppendCountsToTreeAsync: Finished")
Decide_Show_Empty_Workflows(Not CONFIG.Config.Hide_Empty_Workflows)
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) LOGGER.Error(ex)
End Try End Try
@@ -1553,6 +1603,13 @@ Public Class frmMain
'bwSync.ReportProgress(95) 'bwSync.ReportProgress(95)
If GridControlWorkflows.Visible = True And FormOpenClose = False Then RefreshHelper.LoadViewInfo() 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() Handling_DEBUG_USER()
Catch ex As Exception Catch ex As Exception
@@ -1738,6 +1795,9 @@ Public Class frmMain
If Not String.IsNullOrWhiteSpace(CUSTOM_OVERVIEW_SQL) Then If Not String.IsNullOrWhiteSpace(CUSTOM_OVERVIEW_SQL) Then
LOGGER.Debug($"[LoadOverviewData] Using CUSTOM_OVERVIEW_SQL from TreeList node") LOGGER.Debug($"[LoadOverviewData] Using CUSTOM_OVERVIEW_SQL from TreeList node")
oSQLOverview = CUSTOM_OVERVIEW_SQL 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 Else
oSQLOverview = BASEDATA_DT_CONFIG.Rows(0).Item("SQL_PROFILE_MAIN_VIEW") oSQLOverview = BASEDATA_DT_CONFIG.Rows(0).Item("SQL_PROFILE_MAIN_VIEW")
End If End If
@@ -3495,24 +3555,22 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G
End Sub End Sub
Private Async Sub frmMain_Shown(sender As Object, e As EventArgs) Handles Me.Shown Private Async Sub frmMain_Shown(sender As Object, e As EventArgs) Handles Me.Shown
Me.Text = ADDITIONAL_TITLE Me.Text = ADDITIONAL_TITLE
' CurrNavBarGroup = NavBarControl1.Groups(1)
FormShown = True FormShown = True
Try Try
If CONFIG.Config.MainTreeList_Width > 0 Then If CONFIG.Config.MainTreeList_Width > 0 Then
TreeList_Cockpit.Width = CONFIG.Config.MainTreeList_Width TreeList_Cockpit.Width = CONFIG.Config.MainTreeList_Width
End If End If
Catch ex As Exception Catch ex As Exception
End Try End Try
Timer_Inactivity_Reset_Disable("Decide_Load") 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() Dim oFirstNode As DevExpress.XtraTreeList.Nodes.TreeListNode = TreeList_Cockpit.Nodes.FirstOrDefault()
If oFirstNode IsNot Nothing Then If oFirstNode IsNot Nothing Then
LOGGER.Debug($"Selecting first TreeList node: [{oFirstNode.GetValue("NAME")}]") LOGGER.Debug($"Selecting first TreeList node: [{oFirstNode.GetValue("NAME")}]")
TreeList_Cockpit.FocusedNode = oFirstNode TreeList_Cockpit.FocusedNode = oFirstNode
' FocusedNodeChanged nicht zuverlässig bei programmatischer Zuweisung → direkt aufrufen
Await ProcessTreeListNodeAsync(oFirstNode) Await ProcessTreeListNodeAsync(oFirstNode)
Else Else
LOGGER.Debug("No TreeList nodes found - falling back to Decide_Load") 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() Create_GroupBy_Parts()
End If 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() Handling_DEBUG_USER()
Dim oSQL = $"SELECT * FROM TBDD_NOTIFICATIONS_SYSTEM NOTE WITH (NOLOCK) 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 BBtnItmNotfications.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
Open_Notifications_Form() Open_Notifications_Form()
End If End If
End If End If
End Sub End Sub
@@ -4468,6 +4533,7 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G
End If End If
CURRENT_CLICKED_PROFILE_ID = 0 CURRENT_CLICKED_PROFILE_ID = 0
CUSTOM_OVERVIEW_SQL = oSqlQuery.ToString() CUSTOM_OVERVIEW_SQL = oSqlQuery.ToString()
_lastUsedOverviewSQL = CUSTOM_OVERVIEW_SQL ' ← SQL merken BEVOR es gelöscht wird
If GridControlWorkflows.Visible = True And FormOpenClose = False Then If GridControlWorkflows.Visible = True And FormOpenClose = False Then
RefreshHelper.SaveViewInfo() 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 Private Sub BarButtonItemCock_refresh_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItemCock_refresh.ItemClick
Load_Treeview() Load_Treeview()
End Sub 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 End Class

View File

@@ -733,20 +733,20 @@ Public Class frmValidator
Try Try
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
' ========== DIAGNOSE: Wer schließt die Form? ========== ' ========== DIAGNOSE: Wer schließt die Form? ==========
MyValidationLogger.Debug($"frmValidator_FormClosing aufgerufen!") MyValidationLogger.Debug($"LOG_HOTSPOTS - frmValidator_FormClosing aufgerufen!")
MyValidationLogger.Debug($"CloseReason: {e.CloseReason}") MyValidationLogger.Debug($"LOG_HOTSPOTS - CloseReason: {e.CloseReason}")
MyValidationLogger.Debug($"Cancel: {e.Cancel}") MyValidationLogger.Debug($"LOG_HOTSPOTS - Cancel: {e.Cancel}")
Try Try
MyValidationLogger?.Debug($"StackTrace: {System.Environment.StackTrace}") MyValidationLogger?.Debug($"LOG_HOTSPOTS - StackTrace NO ERROR: {System.Environment.StackTrace}")
Catch ex As Exception 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 End Try
' Zusätzliche Diagnostik ' Zusätzliche Diagnostik
MyValidationLogger.Debug($"_FormClosing-Flag: {_FormClosing}") MyValidationLogger.Debug($"LOG_HOTSPOTS - _FormClosing-Flag: {_FormClosing}")
MyValidationLogger.Debug($"CURRENT_DOC_GUID: {CURRENT_DOC_GUID}") MyValidationLogger.Debug($"LOG_HOTSPOTS - CURRENT_DOC_GUID: {CURRENT_DOC_GUID}")
MyValidationLogger.Debug($"CURRENT_ProfilGUID: {CURRENT_ProfilGUID}") MyValidationLogger.Debug($"LOG_HOTSPOTS - CURRENT_ProfilGUID: {CURRENT_ProfilGUID}")
' ========== ENDE DIAGNOSE ========== ' ========== ENDE DIAGNOSE ==========
End If End If
@@ -755,7 +755,7 @@ Public Class frmValidator
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
perfStart = DateTime.Now perfStart = DateTime.Now
perfLastCheck = perfStart perfLastCheck = perfStart
MyValidationLogger.Info("[PERF frmValidation_FormClosing] START") MyValidationLogger.Info("LOG_HOTSPOTS - [PERF frmValidation_FormClosing] START")
End If End If
_FormClosing = True _FormClosing = True
@@ -771,7 +771,7 @@ Public Class frmValidator
End If End If
If LOG_HOTSPOTS Then 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 perfLastCheck = DateTime.Now
End If End If
@@ -789,7 +789,7 @@ Public Class frmValidator
End If End If
If LOG_HOTSPOTS Then 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 perfLastCheck = DateTime.Now
End If End If
@@ -802,7 +802,7 @@ Public Class frmValidator
End If End If
If LOG_HOTSPOTS Then 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 perfLastCheck = DateTime.Now
End If End If
@@ -822,14 +822,14 @@ Public Class frmValidator
End Try End Try
If LOG_HOTSPOTS Then 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 perfLastCheck = DateTime.Now
End If End If
Reset_CurrentReferences() Reset_CurrentReferences()
If LOG_HOTSPOTS Then 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 perfLastCheck = DateTime.Now
End If End If
@@ -844,7 +844,7 @@ Public Class frmValidator
If LOG_HOTSPOTS Then 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 perfLastCheck = DateTime.Now
End If End If
@@ -858,7 +858,7 @@ Public Class frmValidator
If LOG_HOTSPOTS Then 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 perfLastCheck = DateTime.Now
End If End If
' ========== NEU: Temp-Ordner bereinigen ========== ' ========== NEU: Temp-Ordner bereinigen ==========
@@ -884,7 +884,7 @@ Public Class frmValidator
End If End If
If LOG_HOTSPOTS Then 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 End If
@@ -4045,11 +4045,11 @@ Public Class frmValidator
Sub Load_Next_Document(first As Boolean) Sub Load_Next_Document(first As Boolean)
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
' ========== DIAGNOSE START ========== ' ========== DIAGNOSE START ==========
MyValidationLogger.Info($"[INFO] Load_Next_Document START - first: {first}") MyValidationLogger.Info($"LOG_HOTSPOTS - Load_Next_Document START - first: {first}")
MyValidationLogger.Info($" frmValidator.IsDisposed: {Me.IsDisposed}") MyValidationLogger.Info($"LOG_HOTSPOTS - frmValidator.IsDisposed: {Me.IsDisposed}")
MyValidationLogger.Info($" frmValidator.Visible: {Me.Visible}") MyValidationLogger.Info($"LOG_HOTSPOTS - frmValidator.Visible: {Me.Visible}")
MyValidationLogger.Info($" _FormClosing: {_FormClosing}") MyValidationLogger.Info($"LOG_HOTSPOTS - _FormClosing: {_FormClosing}")
MyValidationLogger.Info($" CURRENT_DOC_GUID: {CURRENT_DOC_GUID}") MyValidationLogger.Info($"LOG_HOTSPOTS - CURRENT_DOC_GUID: {CURRENT_DOC_GUID}")
' ========== ENDE DIAGNOSE ========== ' ========== ENDE DIAGNOSE ==========
End If End If
@@ -4060,7 +4060,7 @@ Public Class frmValidator
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
perfStart = DateTime.Now perfStart = DateTime.Now
perfLastCheck = perfStart perfLastCheck = perfStart
MyValidationLogger.Info("[PERF LND] Load_Next_Document START") MyValidationLogger.Info("LOG_HOTSPOTS - Load_Next_Document START")
End If End If
_CachedSqlDataCache.Clear() _CachedSqlDataCache.Clear()
@@ -4106,7 +4106,7 @@ Public Class frmValidator
End If End If
If LOG_HOTSPOTS Then 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 perfLastCheck = DateTime.Now
End If End If
@@ -4117,7 +4117,7 @@ Public Class frmValidator
End If End If
If LOG_HOTSPOTS Then 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 perfLastCheck = DateTime.Now
End If End If
@@ -4129,7 +4129,7 @@ Public Class frmValidator
Load_IDB_DOC_DATA() Load_IDB_DOC_DATA()
If LOG_HOTSPOTS Then 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 perfLastCheck = DateTime.Now
End If End If
If IsNothing(IDB_DT_DOC_DATA) Then If IsNothing(IDB_DT_DOC_DATA) Then
@@ -4143,12 +4143,12 @@ Public Class frmValidator
End If End If
If LOG_HOTSPOTS Then 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 perfLastCheck = DateTime.Now
End If End If
PRTF_PROFILE_FILES_WORK("InWork") PRTF_PROFILE_FILES_WORK("InWork")
If LOG_HOTSPOTS Then 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 perfLastCheck = DateTime.Now
End If End If
@@ -4176,7 +4176,7 @@ Public Class frmValidator
End If End If
If LOG_HOTSPOTS Then 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 perfLastCheck = DateTime.Now
End If End If
@@ -4193,9 +4193,9 @@ Public Class frmValidator
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
oMilliseconts = (DateTime.Now - perfLastCheck).TotalMilliseconds oMilliseconts = (DateTime.Now - perfLastCheck).TotalMilliseconds
If oMilliseconts > 6000 Then 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 Else
MyValidationLogger.Info($"[PERF LND] Nach LoadDocument_DDViewer: {oMilliseconts}ms") MyValidationLogger.Info($"LOG_HOTSPOTS - Nach LoadDocument_DDViewer: {oMilliseconts}ms")
End If End If
perfLastCheck = DateTime.Now perfLastCheck = DateTime.Now
End If End If
@@ -4241,9 +4241,9 @@ Public Class frmValidator
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
oMilliseconts = (DateTime.Now - perfLastCheck).TotalMilliseconds oMilliseconts = (DateTime.Now - perfLastCheck).TotalMilliseconds
If oMilliseconts > 6000 Then 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 Else
MyValidationLogger.Info($"[PERF LND] Nach FillIndexValues: {oMilliseconts}ms") MyValidationLogger.Info($"LOG_HOTSPOTS - Nach FillIndexValues: {oMilliseconts}ms")
End If End If
perfLastCheck = DateTime.Now perfLastCheck = DateTime.Now
@@ -4272,7 +4272,7 @@ Public Class frmValidator
End If End If
If LOG_HOTSPOTS Then 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 perfLastCheck = DateTime.Now
End If End If
@@ -4351,7 +4351,7 @@ Public Class frmValidator
End Try End Try
If LOG_HOTSPOTS Then 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 perfLastCheck = DateTime.Now
End If End If
@@ -4363,9 +4363,9 @@ Public Class frmValidator
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
oMilliseconts = (DateTime.Now - perfLastCheck).TotalMilliseconds oMilliseconts = (DateTime.Now - perfLastCheck).TotalMilliseconds
If oMilliseconts > 6000 Then 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 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 End If
perfLastCheck = DateTime.Now perfLastCheck = DateTime.Now
@@ -4379,7 +4379,7 @@ Public Class frmValidator
Controls2B_EnDisabled_onLoad() Controls2B_EnDisabled_onLoad()
If LOG_HOTSPOTS Then 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 perfLastCheck = DateTime.Now
End If End If
MyValidationLogger.Debug("frmValidator: LoadNextDocument finished!") MyValidationLogger.Debug("frmValidator: LoadNextDocument finished!")
@@ -4399,11 +4399,11 @@ Public Class frmValidator
CloseOverlaySafe() CloseOverlaySafe()
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
' ========== DIAGNOSE ENDE ========== ' ========== DIAGNOSE ENDE ==========
MyValidationLogger.Info($"[INFO] Load_Next_Document ENDE") MyValidationLogger.Info($"LOG_HOTSPOTS - Load_Next_Document ENDE")
MyValidationLogger.Info($" frmValidator.IsDisposed: {Me.IsDisposed}") MyValidationLogger.Info($"LOG_HOTSPOTS - frmValidator.IsDisposed: {Me.IsDisposed}")
MyValidationLogger.Info($" frmValidator.Visible: {Me.Visible}") MyValidationLogger.Info($"LOG_HOTSPOTS - frmValidator.Visible: {Me.Visible}")
' ========== ENDE DIAGNOSE ========== ' ========== 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 If
End Try End Try
End Sub 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 14:01:45.9968|taskFLOW|DEBUG >> MoveNext -> TimerRefresh_Tick: Refreshing TreeList node counts...
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}] 14:01:45.9968|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: Starting background count queries...
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 14:01:45.9968|taskFLOW|WARN >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 0, using CURRENT_CLICKED_PROFILE_ID instead
13:45:45.0872|taskFLOW|DEBUG >> ReplaceIDBAttributes -> IS_SQL = True - oReplaceValue = [{#IDBA#ObjectID}] 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2017
13:45:45.0872|taskFLOW|DEBUG >> ReplaceIDBAttributes -> oIDBValue = 4511694 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2006
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} 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 1006
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 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 4
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] 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2010
13:45:45.0872|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access. 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2023
13:45:45.0872|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM] 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 1004
13:45:45.0872|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Retrieving Connection String from Connection Id [1] 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2027
13:45:45.0872|MSSQLServer|DEBUG >> Get_ConnectionStringforID -> Getting ConnectionString for ConnectionId [1] 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2012
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; 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2013
13:45:45.0872|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction] 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2014
13:45:45.0872|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM TBDD_CONNECTION WHERE GUID = 1] and Parameters [] 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2015
13:45:45.0872|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Data Source=w2k19srv398;Initial Catalog=DD_ECM;User ID=EDMAdmin;Password=XXXXX 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 1005
13:45:45.0872|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction] 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2008
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 [] 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2032
13:45:45.5262|frmValidator|DEBUG >> Load_Additional_Searches -> Doc-Search 'Attachments': Keine Ergebnisse gefunden 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2033
13:45:45.5262|frmValidator|DEBUG >> Load_Additional_Searches -> Ergebnisprüfung abgeschlossen: AdditionalDataResultsExist=True, AdditionalDocResultsExist=False 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2025
13:45:45.5262|frmValidator|DEBUG >> Load_Additional_Searches -> rbnPgGroupAttmt.Visible gesetzt auf: True | Stack: 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2009
at taskFLOW.frmValidator.FillIndexValues(Boolean first, String SingleAttribute) 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2007
13:45:45.5262|frmValidator|DEBUG >> Load_Additional_Searches -> --- NORMAL-MODUS aktiviert (nur vorbereiten, NICHT Show) --- 14:01:45.9968|taskFLOW|WARN >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 0, using CURRENT_CLICKED_PROFILE_ID instead
13:45:45.5262|taskFLOW|DEBUG >> TabPreload -> === TabPreload START === 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2034
13:45:45.5262|taskFLOW|DEBUG >> TabPreload -> Parameters: TabCountSQL=1, TabCountDoc=0, DTSQL.Rows=1, DTDOC.Rows=0 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2035
13:45:45.5262|taskFLOW|DEBUG >> TabPreload -> Ausführung auf UI-Thread 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2048
13:45:45.5262|taskFLOW|DEBUG >> TabPreload -> 🚫 Tab-Events deaktiviert 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2036
13:45:45.5262|taskFLOW|DEBUG >> TabPreload -> ✓ _DTDATASearches und _DTDocSearches zugewiesen: SQL=1, Doc=0 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2047
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> Panel1Collapsed (SQL)=False, Panel2Collapsed (Doc)=True 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2037
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> Konfiguriere SQL-Tabs: 1 Definitionen 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2049
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlSQL_SelectedPageChanged -> 🚫 XtraTabControlSQL_SelectedPageChanged unterdrückt (SelectedTabPageIndex=1) 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2038
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlSQL_SelectedPageChanged -> 🚫 XtraTabControlSQL_SelectedPageChanged unterdrückt (SelectedTabPageIndex=2) 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2043
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlSQL_SelectedPageChanged -> 🚫 XtraTabControlSQL_SelectedPageChanged unterdrückt (SelectedTabPageIndex=3) 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2039
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlSQL_SelectedPageChanged -> 🚫 XtraTabControlSQL_SelectedPageChanged unterdrückt (SelectedTabPageIndex=4) 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2044
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlSQL_SelectedPageChanged -> 🚫 XtraTabControlSQL_SelectedPageChanged unterdrückt (SelectedTabPageIndex=-1) 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2045
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> Alle 5 SQL-Tabs auf PageVisible=False gesetzt 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2040
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlSQL_SelectedPageChanged -> 🚫 XtraTabControlSQL_SelectedPageChanged unterdrückt (SelectedTabPageIndex=0) 14:01:45.9968|taskFLOW|DEBUG >> PrepareSQLWithReplacements -> PrepareSQLWithReplacements called with oProfileID = 2042
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> SQL-Tab 0: Text='Inhalte ZUGFeRD-XML', PageVisible=True 14:01:45.9968|taskFLOW|DEBUG >> MoveNext -> AppendCountsToTreeAsync: 35 node(s) with SQL_QUERY_COUNT found
13:45:45.5322|taskFLOW|INFO >> TabPreload -> ✓ 1 SQL-Tabs konfiguriert 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;
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> Keine Doc-Daten, alle Tabs ausblenden 14:01:45.9968|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlDocs_SelectedPageChanged_1 -> 🚫 XtraTabControlDocs_SelectedPageChanged unterdrückt (SelectedTabPageIndex=1) 14:01:45.9968|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 26.02.2025
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlDocs_SelectedPageChanged_1 -> 🚫 XtraTabControlDocs_SelectedPageChanged unterdrückt (SelectedTabPageIndex=2) SELECT count(1) FROM [FNCUST_GET_TF_OVERVIEW](1);] with Parameters []
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlDocs_SelectedPageChanged_1 -> 🚫 XtraTabControlDocs_SelectedPageChanged unterdrückt (SelectedTabPageIndex=3) 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;
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlDocs_SelectedPageChanged_1 -> 🚫 XtraTabControlDocs_SelectedPageChanged unterdrückt (SelectedTabPageIndex=4) 14:01:46.0168|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlDocs_SelectedPageChanged_1 -> 🚫 XtraTabControlDocs_SelectedPageChanged unterdrückt (SelectedTabPageIndex=-1) 14:01:46.0168|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> ✓ Tab-Events reaktiviert SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> Setze SQL SelectedTabPageIndex manuell auf 0 WHERE [PROFILE_ID] = 2009;] with Parameters []
13:45:45.5322|taskFLOW|DEBUG >> ReplaceAllValues -> input BEFORE replacing: [SELECT 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;
SPEC_NAME [Definitions-Name], 14:01:46.0168|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
ITEM_DESCRIPTION [Beschreibung], 14:01:46.0168|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
CASE SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHEN SPEC_NAME = 'INVOICE_POSITION_NOTE' THEN WHERE [PROFILE_ID] = 2009;] with Parameters []
REPLACE(REPLACE(ITEM_VALUE, CHAR(13),' '),CHAR(10),' ') 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;
ELSE 14:01:46.0318|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
ITEM_VALUE 14:01:46.0318|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
END [Inhalt xml], SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
GROUP_COUNTER [Gruppenzähler], WHERE [PROFILE_ID] = 2009;] with Parameters []
IS_REQUIRED [Pflichtangabe], 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;
CREATEDWHEN [Erstellt] 14:01:46.0318|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
FROM dbo.TBEDMI_ITEM_VALUE WITH (NOLOCK) 14:01:46.0318|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
WHERE REFERENCE_GUID = (SELECT EmailMessageID FROM IDB.dbo.VWIDB_DOC_DATA WHERE IDB_OBJ_ID = {#IDBA#ObjectID}) SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
ORDER BY GROUP_COUNTER, SPEC_NAME] WHERE [PROFILE_ID] = 2009;] with Parameters []
13:45:45.5322|taskFLOW|DEBUG >> ReplaceIDBAttributes -> Starting ReplaceIDBAttributes with input: [SELECT 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;
SPEC_NAME [Definitions-Name], 14:01:46.0498|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
ITEM_DESCRIPTION [Beschreibung], 14:01:46.0498|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
CASE SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
WHEN SPEC_NAME = 'INVOICE_POSITION_NOTE' THEN WHERE [PROFILE_ID] = 2009;] with Parameters []
REPLACE(REPLACE(ITEM_VALUE, CHAR(13),' '),CHAR(10),' ') 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;
ELSE 14:01:46.0498|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
ITEM_VALUE 14:01:46.0498|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
END [Inhalt xml], SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
GROUP_COUNTER [Gruppenzähler], WHERE [PROFILE_ID] = 2009;] with Parameters []
IS_REQUIRED [Pflichtangabe], 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;
CREATEDWHEN [Erstellt] 14:01:46.0638|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
FROM dbo.TBEDMI_ITEM_VALUE WITH (NOLOCK) 14:01:46.0638|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
WHERE REFERENCE_GUID = (SELECT EmailMessageID FROM IDB.dbo.VWIDB_DOC_DATA WHERE IDB_OBJ_ID = {#IDBA#ObjectID}) SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
ORDER BY GROUP_COUNTER, SPEC_NAME] for document ID: 4511694 WHERE [PROFILE_ID] = 2009;] with Parameters []
13:45:45.5322|taskFLOW|DEBUG >> ReplaceIDBAttributes -> IS_SQL = True - oReplaceValue = [{#IDBA#ObjectID}] 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;
13:45:45.5322|taskFLOW|DEBUG >> ReplaceIDBAttributes -> oIDBValue = 4511694 14:01:46.0638|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
13:45:45.5322|taskFLOW|DEBUG >> ReplaceIDBAttributes -> sql after ReplaceIDBAttributes: SELECT 14:01:46.0638|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SPEC_NAME [Definitions-Name], SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
ITEM_DESCRIPTION [Beschreibung], WHERE [PROFILE_ID] = 2009;] with Parameters []
CASE 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;
WHEN SPEC_NAME = 'INVOICE_POSITION_NOTE' THEN 14:01:46.0790|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
REPLACE(REPLACE(ITEM_VALUE, CHAR(13),' '),CHAR(10),' ') 14:01:46.0790|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
ELSE SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
ITEM_VALUE WHERE [PROFILE_ID] = 2009;] with Parameters []
END [Inhalt xml], 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;
GROUP_COUNTER [Gruppenzähler], 14:01:46.0790|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
IS_REQUIRED [Pflichtangabe], 14:01:46.0790|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
CREATEDWHEN [Erstellt] SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
FROM dbo.TBEDMI_ITEM_VALUE WITH (NOLOCK) WHERE [PROFILE_ID] = 2009;] with Parameters []
WHERE REFERENCE_GUID = (SELECT EmailMessageID FROM IDB.dbo.VWIDB_DOC_DATA WHERE IDB_OBJ_ID = {#IDBA#ObjectID}) 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;
ORDER BY GROUP_COUNTER, SPEC_NAME 14:01:46.0790|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
13:45:45.5322|taskFLOW|DEBUG >> ReplaceControlValues -> Starting ReplaceControlValues with input: [SELECT 14:01:46.0898|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SPEC_NAME [Definitions-Name], SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
ITEM_DESCRIPTION [Beschreibung], WHERE [PROFILE_ID] = 2009;] with Parameters []
CASE 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;
WHEN SPEC_NAME = 'INVOICE_POSITION_NOTE' THEN 14:01:46.0898|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
REPLACE(REPLACE(ITEM_VALUE, CHAR(13),' '),CHAR(10),' ') 14:01:46.0898|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
ELSE SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
ITEM_VALUE WHERE [PROFILE_ID] = 2009;] with Parameters []
END [Inhalt xml], 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;
GROUP_COUNTER [Gruppenzähler], 14:01:46.0898|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
IS_REQUIRED [Pflichtangabe], 14:01:46.0898|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
CREATEDWHEN [Erstellt] SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
FROM dbo.TBEDMI_ITEM_VALUE WITH (NOLOCK) WHERE [PROFILE_ID] = 2009;] with Parameters []
WHERE REFERENCE_GUID = (SELECT EmailMessageID FROM IDB.dbo.VWIDB_DOC_DATA WHERE IDB_OBJ_ID = 4511694) 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;
ORDER BY GROUP_COUNTER, SPEC_NAME] for document ID: 4511694 14:01:46.1088|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
13:45:45.5322|taskFLOW|DEBUG >> ReplaceAllValues -> input AFTER replacing: [SELECT 14:01:46.1088|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SPEC_NAME [Definitions-Name], SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
ITEM_DESCRIPTION [Beschreibung], WHERE [PROFILE_ID] = 2009;] with Parameters []
CASE 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;
WHEN SPEC_NAME = 'INVOICE_POSITION_NOTE' THEN 14:01:46.1088|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
REPLACE(REPLACE(ITEM_VALUE, CHAR(13),' '),CHAR(10),' ') 14:01:46.1088|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
ELSE SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
ITEM_VALUE WHERE [PROFILE_ID] = 2009;] with Parameters []
END [Inhalt xml], 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;
GROUP_COUNTER [Gruppenzähler], 14:01:46.1088|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
IS_REQUIRED [Pflichtangabe], 14:01:46.1088|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
CREATEDWHEN [Erstellt] SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
FROM dbo.TBEDMI_ITEM_VALUE WITH (NOLOCK) WHERE [PROFILE_ID] = 2009;] with Parameters []
WHERE REFERENCE_GUID = (SELECT EmailMessageID FROM IDB.dbo.VWIDB_DOC_DATA WHERE IDB_OBJ_ID = 4511694) 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;
ORDER BY GROUP_COUNTER, SPEC_NAME] 14:01:46.1298|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> SQL-Tab 0: erzwungener Initial-Refresh 14:01:46.1298|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
13:45:45.5322|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access. SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
13:45:45.5322|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM] WHERE [PROFILE_ID] = 2009;] with Parameters []
13:45:45.5322|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Retrieving Connection String from Connection Id [1] 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;
13:45:45.5322|MSSQLServer|DEBUG >> Get_ConnectionStringforID -> Getting ConnectionString for ConnectionId [1] 14:01:46.1298|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
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; 14:01:46.1298|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
13:45:45.5322|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction] SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
13:45:45.5322|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM TBDD_CONNECTION WHERE GUID = 1] and Parameters [] WHERE [PROFILE_ID] = 2009;] with 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 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;
13:45:45.5322|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction] 14:01:46.1409|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
13:45:45.5322|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [SELECT 14:01:46.1409|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
SPEC_NAME [Definitions-Name], SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
ITEM_DESCRIPTION [Beschreibung], WHERE [PROFILE_ID] = 2009;] with Parameters []
CASE 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;
WHEN SPEC_NAME = 'INVOICE_POSITION_NOTE' THEN 14:01:46.1409|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
REPLACE(REPLACE(ITEM_VALUE, CHAR(13),' '),CHAR(10),' ') 14:01:46.1409|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 26.02.2025
ELSE SELECT count(1) FROM [FNCUST_GET_TF_OVERVIEW](1);] with Parameters []
ITEM_VALUE 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;
END [Inhalt xml], 14:01:46.1528|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
GROUP_COUNTER [Gruppenzähler], 14:01:46.1528|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
IS_REQUIRED [Pflichtangabe], SELECT count(1) FROM [FNCUST_GET_PM_OVERVIEW](1)
CREATEDWHEN [Erstellt] WHERE [PROFILE_ID] = 2009;] with Parameters []
FROM dbo.TBEDMI_ITEM_VALUE WITH (NOLOCK) 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;
WHERE REFERENCE_GUID = (SELECT EmailMessageID FROM IDB.dbo.VWIDB_DOC_DATA WHERE IDB_OBJ_ID = 4511694) 14:01:46.1528|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
ORDER BY GROUP_COUNTER, SPEC_NAME] and Parameters [] 14:01:46.1528|MSSQLServer|DEBUG >> GetScalarValueWithConnectionObject -> GetScalarValueWithConnectionObject: Running Query [-- Stand: MK // 28.01.2021
13:45:45.5832|taskFLOW|DEBUG >> TabPreload -> === TabPreload END === 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