diff --git a/01_SMART_UP_TOOLS/02_TASKFLOW/Updates/3.5.sql b/01_SMART_UP_TOOLS/02_TASKFLOW/Updates/3.5.sql new file mode 100644 index 0000000..5d2bd2f --- /dev/null +++ b/01_SMART_UP_TOOLS/02_TASKFLOW/Updates/3.5.sql @@ -0,0 +1,280 @@ +UPDATE TBDD_MODULES SET DB_VERSION = '3.5' where NAME = 'Process-Manager'; +GO + +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +-- ============================================= +-- Author: Digital Data MS +-- Created: 11.06.2021 +-- Description: Gets the next DocumentID +-- Changed: 10.08.2026 MS NLCK +-- Changed: 10.07.2026 MK Format and logic rework +-- Changed: 05.05.2022 Insert only when <> 0 + +-- ============================================= +CREATE OR ALTER PROCEDURE [dbo].[PRPM_GET_NEXT_DOC_INFO] ( + @PROFIL_ID Integer, + @pDocID BigInt, + @UserID Integer +) +AS +BEGIN + + DECLARE @GUID BIGINT = 0, + @DocID BIGINT = 0, + @FILES2BValidated SMALLINT = 0; + + IF (@pDocID = 0 And EXISTS(SELECT GUID FROM TBPM_FILES_USER_NOT_INDEXED WITH (NOLOCK) WHERE DATEDIFF(second,ADDED_WHEN,GETDATE()) < 4 AND USRID = @UserID)) BEGIN + PRINT 'NO DocID and datdiff < 5 sec' + DECLARE @FILEPATH VARCHAR(512) + SELECT @FILEPATH = FILE_PATH FROM TBPM_FILES_USER_NOT_INDEXED WITH (NOLOCK)WHERE DATEDIFF(second,ADDED_WHEN,GETDATE()) < 4 AND USRID = @UserID; + PRINT '@FILEPATH' + SELECT @pDocID = DOC_ID From TBPM_PROFILE_FILES WITH (NOLOCK) where FILE_PATH = @FILEPATH; + END; + + INSERT INTO TBPM_DOCWALKOVER (DocID,UserID) VALUES (@pDocID,@UserID); + + SELECT @GUID = ISNULL([GUID],0), + @DocID = ISNULL([DOC_ID],0), + @FILES2BValidated = ISNULL((SELECT COUNT(GUID) FROM TBPM_VALIDATION_PROFILE_GROUP_USER A WITH (NOLOCK) WHERE A.DocID NOT IN (SELECT DocID FROM TBPM_DOCWALKOVER WITH (NOLOCK) WHERE UserID = @UserID) and UserID = @UserID),0) + + FROM TBPM_PROFILE_FILES WITH (NOLOCK) + WHERE PROFIL_ID = @PROFIL_ID + AND DOC_ID = (SELECT MIN(DocID) FROM TBPM_VALIDATION_PROFILE_GROUP_USER WITH (NOLOCK) WHERE UserID = @UserID AND DocID not in (SELECT DISTINCT DocID FROM TBPM_DOCWALKOVER WITH (NOLOCK) WHERE UserID = @UserID)); + + SELECT @GUID as 'DocGUID', + @DocID as 'DocID', + @FILES2BValidated as 'FILES2BValidated'; + + RETURN; + +END; +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: 10.07.2026 / MK +-- Version Number: 1.2.0.0 +-- ================================================================= +-- History: +-- 10.07.2026 / MK - Aktiv/Inaktiv Anzeige verbessert +-- 02.06.2026 / MK - Inaktive TF Profile werden gefiltert +-- 23.04.2026 / MK - First Version + + + +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], + CASE + WHEN [CCP].[TYPE_ID] = 0 AND ([CC].[ACTIVE] = 0 OR [CCP].[ACTIVE] = 0) + THEN 0 + WHEN [CCP].[TYPE_ID] = 1 AND ([CC].[ACTIVE] = 0 OR [CCP].[ACTIVE] = 0 OR [TFP].[ACTIVE] = 0) + THEN 0 + WHEN [CCP].[TYPE_ID] = 2 AND ([CC].[ACTIVE] = 0 OR [CCP].[ACTIVE] = 0) + THEN 0 + WHEN [CCP].[TYPE_ID] = 3 AND ([CC].[ACTIVE] = 0 OR [CCP].[ACTIVE] = 0) + THEN 0 + ELSE [CCP].[ACTIVE] + END as [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 [CCP].[TYPE_ID] = 0) -- Overview + OR ([CC].[ACTIVE] IN (0,1) AND [CCP].[TYPE_ID] = 1) -- Profile + OR ([CC].[ACTIVE] IN (0,1) AND [CCP].[TYPE_ID] = 2) -- Monitor + OR ([CC].[ACTIVE] IN (0,1) AND [CCP].[TYPE_ID] = 3)) -- Chart + + AND [CCP].[FK_CFG_COCKPIT_ID] NOT IN (SELECT [FK_CFG_COCKPIT_ID] FROM @RESULT) -- Allow no duplicates + + ORDER BY [CCP].[TYPE_ID] ASC, [MC].[SEQUENCE] ASC, [CCP].[PARENT_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], + CASE + WHEN [CCP].[TYPE_ID] = 0 AND ([CC].[ACTIVE] = 0 OR [CCP].[ACTIVE] = 0) + THEN 0 + WHEN [CCP].[TYPE_ID] = 1 AND ([CC].[ACTIVE] = 0 OR [CCP].[ACTIVE] = 0 OR [TFP].[ACTIVE] = 0) + THEN 0 + WHEN [CCP].[TYPE_ID] = 2 AND ([CC].[ACTIVE] = 0 OR [CCP].[ACTIVE] = 0) + THEN 0 + WHEN [CCP].[TYPE_ID] = 3 AND ([CC].[ACTIVE] = 0 OR [CCP].[ACTIVE] = 0) + THEN 0 + ELSE [CCP].[ACTIVE] + END as [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 [CCP].[TYPE_ID] = 0) -- Overview + OR ([CC].[ACTIVE] IN (0,1) AND [CCP].[TYPE_ID] = 1) -- Profile + OR ([CC].[ACTIVE] IN (0,1) AND [CCP].[TYPE_ID] = 2) -- Monitor + OR ([CC].[ACTIVE] IN (0,1) AND [CCP].[TYPE_ID] = 3)) -- Chart + + AND [CCP].[FK_CFG_COCKPIT_ID] NOT IN (SELECT [FK_CFG_COCKPIT_ID] FROM @RESULT) -- Allow no duplicates + + ORDER BY [CCP].[TYPE_ID] ASC, [MC].[SEQUENCE] ASC, [CCP].[PARENT_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') + +***/ \ No newline at end of file diff --git a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/3.3.0.sql b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/3.3.0.sql index 8692abf..e68d1dc 100644 Binary files a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/3.3.0.sql and b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/3.3.0.sql differ