From 6bba79458a65815c6341bfa32085729045c4480a Mon Sep 17 00:00:00 2001 From: Developer01 Date: Tue, 2 Jun 2026 13:02:04 +0200 Subject: [PATCH] Neue Skripte von marvin DD_ECm und taskFLOW Cockpit --- 00_DB_SETUP_SINGLE/01_DD_ECM/Update/2.5.sql | 131 +++++++++++ 01_SMART_UP_TOOLS/02_TASKFLOW/Updates/3.2.sql | 222 ++++++++++++++++++ 2 files changed, 353 insertions(+) create mode 100644 00_DB_SETUP_SINGLE/01_DD_ECM/Update/2.5.sql create mode 100644 01_SMART_UP_TOOLS/02_TASKFLOW/Updates/3.2.sql diff --git a/00_DB_SETUP_SINGLE/01_DD_ECM/Update/2.5.sql b/00_DB_SETUP_SINGLE/01_DD_ECM/Update/2.5.sql new file mode 100644 index 0000000..1165274 --- /dev/null +++ b/00_DB_SETUP_SINGLE/01_DD_ECM/Update/2.5.sql @@ -0,0 +1,131 @@ +UPDATE TBDD_BASECONFIG SET DB_VERSION = '2.5.0'; +GO +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + +-- [FNDD_GET_GROUP_FOR_USER] +-- ================================================================= +-- Gets groups in which a given user is member of +-- +-- Returns: Table +-- ================================================================= +-- Copyright (c) 2026 by Digital Data GmbH +-- +-- Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim +-- Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works +-- ================================================================= +-- Creation Date / Author: 13.01.2026 / MK +-- Version Date / Editor: 13.01.2026 / MK +-- Version Number: 1.0.0.0 +-- ================================================================= +-- History: +-- 13.01.2026 / MK - First Version + +CREATE OR ALTER FUNCTION [dbo].[FNDD_GET_GROUP_FOR_USER] ( + @pUSER_GUID BIGINT, -- GUID from TBDD_USERS. GUID - or - USER_NAME is required! + @pUSER_NAME NVARCHAR(50), -- USERNAME FROM TBDD_USERS. GUID - or - USER_NAME is required! + @pIS_ACTIVE BIT, -- NULL = active or inactive groups, 0 = inactive groups, 1 = active groups + @pIS_INTERNAL BIT -- NULL = internal or custom groups, 0 = custom groups, 1 = internal groups +) +RETURNS @RESULT TABLE ( [GUID] [int] NOT NULL, + [NAME] [varchar](50) NULL, + [ECM_FK_ID] [int] NOT NULL, + [AD_SYNC] [bit] NOT NULL, + [INTERNAL] [bit] NOT NULL, + [ACTIVE] [bit] NOT NULL, + [COMMENT] [varchar](200) NULL, + [ADDED_WHO] [varchar](50) NULL, + [ADDED_WHEN] [datetime] NULL, + [CHANGED_WHO] [varchar](50) NULL, + [CHANGED_WHEN] [datetime] NULL) +AS +BEGIN + + --=========================================-- Parameter copies (avoid sniffing) --========================================-- + DECLARE @USER_GUID BIGINT = @pUSER_GUID, + @USER_NAME NVARCHAR(50) = LTRIM(RTRIM(@pUSER_NAME)), + @IS_ACTIVE BIT = @pIS_ACTIVE, + @IS_INTERNAL BIT = @pIS_INTERNAL; + ---------------------------------------------------------------------------------------------------------------------------- + + --=============================================-- Get missing informations --=============================================-- + IF ((@USER_GUID IS NULL) OR (@USER_GUID = 0)) BEGIN + SELECT @USER_GUID = [GUID] + FROM [dbo].[TBDD_USER] (NOLOCK) + WHERE [USERNAME] = @USER_NAME; + END; + ---------------------------------------------------------------------------------------------------------------------------- + + --=============================================-- Get user allocated groups --============================================-- + IF (@USER_GUID > 0) BEGIN + + INSERT INTO @RESULT + ([GUID], + [NAME], + [ECM_FK_ID], + [AD_SYNC], + [INTERNAL], + [ACTIVE], + [COMMENT], + [ADDED_WHO], + [ADDED_WHEN], + [CHANGED_WHO], + [CHANGED_WHEN]) + SELECT TOP (100) PERCENT + [GUID], + [NAME], + [ECM_FK_ID], + [AD_SYNC], + [INTERNAL], + [ACTIVE], + [COMMENT], + [ADDED_WHO], + [ADDED_WHEN], + [CHANGED_WHO], + [CHANGED_WHEN] + FROM [dbo].[TBDD_GROUPS] (NOLOCK) + WHERE [GUID] IN (SELECT [GROUP_ID] FROM [dbo].[TBDD_GROUPS_USER] (NOLOCK) WHERE [USER_ID] = @USER_GUID) + AND ([ACTIVE] = CASE WHEN @IS_ACTIVE IS NULL THEN 0 ELSE @IS_ACTIVE END + OR [ACTIVE] = CASE WHEN @IS_ACTIVE IS NULL THEN 1 ELSE @IS_ACTIVE END) + AND ([INTERNAL] = CASE WHEN @IS_INTERNAL IS NULL THEN 0 ELSE @IS_INTERNAL END + OR [INTERNAL] = CASE WHEN @IS_INTERNAL IS NULL THEN 1 ELSE @IS_INTERNAL END); + + END; + ---------------------------------------------------------------------------------------------------------------------------- + + RETURN; + +END; + +-- Test mit +-- SELECT * FROM [FNDD_GET_GROUP_FOR_USER](1,NULL,NULL,NULL) +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +--Changed 22.05.2026 MS Prüfen ob IDB existiert +ALTER PROCEDURE [dbo].[PRPM_REMOVE_NE_FILES] +AS +DECLARE + @DOC_ID INTEGER, + @DocRelativePath VARCHAR(500) + +DECLARE c_PRPM_REMOVE_NE_FILES CURSOR FOR + select DOC_ID,FILE_PATH from TBPM_PROFILE_FILES + OPEN c_PRPM_REMOVE_NE_FILES + FETCH NEXT FROM c_PRPM_REMOVE_NE_FILES INTO @DOC_ID,@DocRelativePath + WHILE @@FETCH_STATUS = 0 + BEGIN + IF OBJECT_ID('IDB.dbo.TBIDB_DOC_INFO', 'U') IS NOT NULL + BEGIN + IF NOT EXISTS(SELECT [dwDocID] FROM [sDD_VMP01_APS01_windream60].[dbo].[BaseAttributes] where dwDocID = @DOC_ID) + IF NOT EXISTS(SELECT IDB_OBJ_ID FROM IDB.dbo.TBIDB_DOC_INFO WHERE IDB_OBJ_ID = @DOC_ID and UPPER(RELATIVE_PATH) = UPPER(@DocRelativePath)) + DELETE FROM TBPM_PROFILE_FILES WHERE DOC_ID = @DOC_ID + END + + FETCH NEXT FROM c_PRPM_REMOVE_NE_FILES INTO @DOC_ID,@DocRelativePath + END +CLOSE c_PRPM_REMOVE_NE_FILES +DEALLOCATE c_PRPM_REMOVE_NE_FILES diff --git a/01_SMART_UP_TOOLS/02_TASKFLOW/Updates/3.2.sql b/01_SMART_UP_TOOLS/02_TASKFLOW/Updates/3.2.sql new file mode 100644 index 0000000..14c9245 --- /dev/null +++ b/01_SMART_UP_TOOLS/02_TASKFLOW/Updates/3.2.sql @@ -0,0 +1,222 @@ +UPDATE TBDD_MODULES SET DB_VERSION = '3.2' where NAME = 'Process-Manager'; +GO + + + +ALTER TABLE dbo.TBPM_MONITOR_KONFIG +ADD COCKPIT_ID BIGINT NOT NULL DEFAULT ((0)); +GO + + + +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + +-- [FNTF_GET_COCKPIT_DEFINITION] +-- ================================================================= +-- Returns a table with user allocated cockpits +-- +-- Returns: TABLE +-- ================================================================= +-- Copyright (c) 2026 by Digital Data GmbH +-- +-- Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim +-- Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works +-- ================================================================= +-- Creation Date / Author: 23.04.2026 / MK +-- Version Date / Editor: 02.06.2026 / MK +-- Version Number: 1.1.0.0 +-- ================================================================= +-- History: +-- 23.04.2026 / MK - First Version +-- 02.06.2026 / MK - Inaktive TF Profile werden gefiltert + +CREATE OR ALTER FUNCTION [dbo].[FNTF_GET_COCKPIT_DEFINITION]( + @pUSER_ID BIGINT, -- GUID from [TBDD_USER] + @pLANGUAGE NVARCHAR(10) = NULL -- OPTIONAL: Set Language if you want to Override setting in Profile table. Failsafe is getting data from [TBDD_USERS] +) +RETURNS @RESULT TABLE ( [PK_RESULT_ID] [bigint] Identity(1,1) NOT NULL, + [PK_CFG_COCKPIT_DEFINITION_ID] [bigint] NOT NULL, + [FK_CFG_COCKPIT_ID] [bigint] NOT NULL, + [PARENT_ID] [bigint] NOT NULL, + [MAP_SEQUENCE] [smallint] NULL, + [ACTIVE] [bit] NOT NULL, + [TYPE_ID] [tinyint] NOT NULL, + [ICON_INDEX] [smallint] NOT NULL, + [NAME] [nvarchar](150) NULL, + [FK_PROFILE_ID] [bigint] NULL, + [FK_CHART_ID] [bigint] NULL, + [FK_MONITOR_ID] [bigint] NULL, + [SQL_QUERY] [nvarchar](max) NOT NULL, + [SQL_QUERY_COUNT] [nvarchar](max) NULL, + [COMMENT] [nvarchar](500) NULL, + [ADDED_WHO] [nvarchar](50) NOT NULL, + [ADDED_WHEN] [datetime] NOT NULL, + [CHANGED_WHO] [nvarchar](50) NULL, + [CHANGED_WHEN] [datetime] NULL) +AS +BEGIN + + --=========================================-- Parameter copies (avoid sniffing) --========================================-- + DECLARE @USER_ID BIGINT = @pUSER_ID, + @LANGUAGE NVARCHAR(10) = @pLANGUAGE; + ---------------------------------------------------------------------------------------------------------------------------- + + + --===============================================-- declare runtime vars --===============================================-- + DECLARE @MY_FUNCTION_NAME NVARCHAR(128) = OBJECT_NAME(@@PROCID); + DECLARE @MODULE_SHORT_NAME NVARCHAR(10) = 'PM'; + ---------------------------------------------------------------------------------------------------------------------------- + + + --===================================================-- Failsafe settings --====================================================-- + SET @LANGUAGE = + CASE + WHEN ((LEN(@LANGUAGE) = 0) AND (SELECT count([LANGUAGE]) FROM [TBDD_USER] WITH (NOLOCK) WHERE [GUID] = @USER_ID) = 1) + THEN (SELECT [LANGUAGE] FROM [TBDD_USER] WITH (NOLOCK) WHERE [GUID] = @USER_ID) + ELSE @LANGUAGE + END; + ----------------------------------------------------------------------------------------------------------------------------------- + + + --===============================================-- get user allocated cockpits --===============================================-- + INSERT INTO @RESULT([PK_CFG_COCKPIT_DEFINITION_ID], + [FK_CFG_COCKPIT_ID], + [PARENT_ID], + [MAP_SEQUENCE], + [ACTIVE], + [TYPE_ID], + [ICON_INDEX], + [NAME], + [FK_PROFILE_ID], + [FK_CHART_ID], + [FK_MONITOR_ID], + [SQL_QUERY], + [SQL_QUERY_COUNT], + [COMMENT], + [ADDED_WHO], + [ADDED_WHEN], + [CHANGED_WHO], + [CHANGED_WHEN]) + + SELECT DISTINCT TOP 100 PERCENT + [CCP].[PK_CFG_COCKPIT_DEFINITION_ID], + [CCP].[FK_CFG_COCKPIT_ID], + [CCP].[PARENT_ID], + [MC].[SEQUENCE], + [CCP].[ACTIVE], + [CCP].[TYPE_ID], + [CCP].[ICON_ID] , + CASE + WHEN ((SELECT COUNT(1) FROM [dbo].[TBDD_GUI_LANGUAGE_PHRASE] WITH (NOLOCK) WHERE [MODULE] IN (@MODULE_SHORT_NAME) AND [LANGUAGE] = @LANGUAGE AND [TITLE] = [CCP].[NAME]) = 1) + THEN (SELECT [STRING1] FROM [dbo].[TBDD_GUI_LANGUAGE_PHRASE] WITH (NOLOCK) WHERE [MODULE] IN (@MODULE_SHORT_NAME) AND [LANGUAGE] = @LANGUAGE AND [TITLE] = [CCP].[NAME]) + + ELSE [CCP].[NAME] + END as [NAME], + [CCP].[FK_PROFILE_ID], + [CCP].[FK_CHART_ID], + [CCP].[FK_MONITOR_ID], + [CCP].[SQL_QUERY], + [CCP].[SQL_QUERY_COUNT], + [CCP].[COMMENT], + [CCP].[ADDED_WHO], + [CCP].[ADDED_WHEN], + [CCP].[CHANGED_WHO], + [CCP].[CHANGED_WHEN] + + FROM [dbo].[TBTF_CFG_COCKPIT_DEFINITION] as [CCP] WITH (NOLOCK) + INNER JOIN [dbo].[TBTF_CFG_COCKPIT] as [CC] WITH (NOLOCK) ON [CCP].[FK_CFG_COCKPIT_ID] = [CC].[PK_CFG_COCKPIT_ID] + LEFT JOIN [dbo].[TBTF_MAP_COCKPIT] as [MC] WITH (NOLOCK) ON [CCP].[FK_CFG_COCKPIT_ID] = [MC].[FK_CFG_COCKPIT_ID] + AND [MC].[FK_CFG_USER_ID] = @USER_ID + LEFT JOIN [dbo].[TBPM_PROFILE] as [TFP] WITH (NOLOCK) ON [CCP].[FK_PROFILE_ID] = [TFP].[GUID] + + WHERE (([CC].[ACTIVE] IN (0,1) AND [TYPE_ID] = 0) -- Overview + OR ([CC].[ACTIVE] IN (0,1) AND [TYPE_ID] = 1 AND [TFP].[ACTIVE] = 1) -- Profile + OR ([CC].[ACTIVE] IN (0,1) AND [TYPE_ID] = 2) -- Monitor + OR ([CC].[ACTIVE] IN (0,1) AND [TYPE_ID] = 3)) -- Chart + + AND [CCP].[FK_CFG_COCKPIT_ID] NOT IN (SELECT [FK_CFG_COCKPIT_ID] FROM @RESULT) -- Allow no duplicates + + ORDER BY [MC].[SEQUENCE] ASC, [CCP].[PARENT_ID] ASC, [CCP].[TYPE_ID] ASC; + ----------------------------------------------------------------------------------------------------------------------------------- + + + --===============================================-- get group allocated cockpits --==============================================-- + INSERT INTO @RESULT([PK_CFG_COCKPIT_DEFINITION_ID], + [FK_CFG_COCKPIT_ID], + [PARENT_ID], + [MAP_SEQUENCE], + [ACTIVE], + [TYPE_ID], + [ICON_INDEX], + [NAME], + [FK_PROFILE_ID], + [FK_CHART_ID], + [FK_MONITOR_ID], + [SQL_QUERY], + [SQL_QUERY_COUNT], + [COMMENT], + [ADDED_WHO], + [ADDED_WHEN], + [CHANGED_WHO], + [CHANGED_WHEN]) + + SELECT DISTINCT TOP 100 PERCENT + [CCP].[PK_CFG_COCKPIT_DEFINITION_ID], + [CCP].[FK_CFG_COCKPIT_ID], + [CCP].[PARENT_ID], + [MC].[SEQUENCE], + [CCP].[ACTIVE], + [CCP].[TYPE_ID], + [CCP].[ICON_ID] , + CASE + WHEN ((SELECT COUNT(1) FROM [dbo].[TBDD_GUI_LANGUAGE_PHRASE] WITH (NOLOCK) WHERE [MODULE] IN (@MODULE_SHORT_NAME) AND [LANGUAGE] = @LANGUAGE AND [TITLE] = [CCP].[NAME]) = 1) + THEN (SELECT [STRING1] FROM [dbo].[TBDD_GUI_LANGUAGE_PHRASE] WITH (NOLOCK) WHERE [MODULE] IN (@MODULE_SHORT_NAME) AND [LANGUAGE] = @LANGUAGE AND [TITLE] = [CCP].[NAME]) + + ELSE [CCP].[NAME] + END as [NAME], + [CCP].[FK_PROFILE_ID], + [CCP].[FK_CHART_ID], + [CCP].[FK_MONITOR_ID], + [CCP].[SQL_QUERY], + [CCP].[SQL_QUERY_COUNT], + [CCP].[COMMENT], + [CCP].[ADDED_WHO], + [CCP].[ADDED_WHEN], + [CCP].[CHANGED_WHO], + [CCP].[CHANGED_WHEN] + + FROM [dbo].[TBTF_CFG_COCKPIT_DEFINITION] as [CCP] WITH (NOLOCK) + INNER JOIN [dbo].[TBTF_CFG_COCKPIT] as [CC] WITH (NOLOCK) ON [CCP].[FK_CFG_COCKPIT_ID] = [CC].PK_CFG_COCKPIT_ID + LEFT JOIN [dbo].[TBTF_MAP_COCKPIT] as [MC] WITH (NOLOCK) ON [CCP].[FK_CFG_COCKPIT_ID] = [MC].[FK_CFG_COCKPIT_ID] + AND [MC].[FK_CFG_GROUP_ID] IN (SELECT DISTINCT [GROUP_ID] + FROM [dbo].[TBDD_GROUPS_USER] WITH (NOLOCK) + WHERE [USER_ID] = @USER_ID) + LEFT JOIN [dbo].[TBPM_PROFILE] as [TFP] WITH (NOLOCK) ON [CCP].[FK_PROFILE_ID] = [TFP].[GUID] + + WHERE (([CC].[ACTIVE] IN (0,1) AND [TYPE_ID] = 0) -- Overview + OR ([CC].[ACTIVE] IN (0,1) AND [TYPE_ID] = 1 AND [TFP].[ACTIVE] = 1) -- Profile + OR ([CC].[ACTIVE] IN (0,1) AND [TYPE_ID] = 2) -- Monitor + OR ([CC].[ACTIVE] IN (0,1) AND [TYPE_ID] = 3)) -- Chart + + AND [CCP].[FK_CFG_COCKPIT_ID] NOT IN (SELECT [FK_CFG_COCKPIT_ID] FROM @RESULT) -- Allow no duplicates + + ORDER BY [MC].[SEQUENCE] ASC, [CCP].[PARENT_ID] ASC, [CCP].[TYPE_ID] ASC; + ---------------------------------------------------------------------------------------------------------------------------- + + + RETURN; + +END; + +/*** +-- TEST: + + SELECT * FROM [FNTF_GET_COCKPIT_DEFINITION](1,NULL) + SELECT * FROM [FNTF_GET_COCKPIT_DEFINITION](2,'en-us') + SELECT * FROM [FNTF_GET_COCKPIT_DEFINITION](5,'en-us') + +***/ +GO \ No newline at end of file