UPDATE TBDD_MODULES SET DB_VERSION = '3.1' where NAME = 'Process-Manager'; GO ALTER TABLE dbo.TBPM_CHART ADD COCKPIT_CHART_ID INT NOT NULL DEFAULT 0; GO ALTER VIEW [dbo].[VWPM_CHART_INVOICE_MONITOR_SERIES] AS select 'Alle Rechnungen' as Title ,15 Anzahl ,500000 NettoSumme ,1 SEQ ,1 COCKPIT_CHART_ID --,convert(varchar,format(SUM(500000),'###,###,###.00','de-de')) NettoSumme UNION SELECT 'Posteingang' as Title ,10 Anzahl ,12000 NettoSumme ,2 SEQ ,1 COCKPIT_CHART_ID --,convert(varchar,format(SUM(12000),'###,###,###.00','de-de')) NettoSumme UNION SELECT 'Fachliche Freigabe' as Title ,5 Anzahl ,13658.5 NettoSumme ,3 SEQ ,1 COCKPIT_CHART_ID --,convert(varchar,format(13658.5,'###,###,###.00','de-de')) NettoSumme UNION SELECT 'Finale Freigabe' as Title ,53 Anzahl ,658555.65 NettoSumme ,4 SEQ ,1 COCKPIT_CHART_ID --,convert(varchar,format(658555.65,'###,###,###.00','de-de')) NettoSumme UNION SELECT 'Zeitkritisch' as Title ,0 Anzahl ,'0.000' NettoSumme ,5 SEQ ,1 COCKPIT_CHART_ID --ORDER BY SEQ GO ALTER view [dbo].[VWPM_CHART_TOP5] as SELECT 'Kreditor1' as KRED_NAME ,56 as ANZ_BELEG ,convert(decimal(19,2),125565478.8) as Netto ,convert(decimal(19,2),10000) as Skonto ,1 COCKPIT_CHART_ID UNION SELECT 'Kreditor2' as KRED_NAME ,49 as ANZ_BELEG ,convert(decimal(19,2),8575222.48) as Netto ,convert(decimal(19,2),8555.4) as Skonto ,1 COCKPIT_CHART_ID UNION SELECT 'Kreditor3' as KRED_NAME ,43 as ANZ_BELEG ,convert(decimal(19,2),2582222.8) as Netto ,convert(decimal(19,2),5647.2) as Skonto ,1 COCKPIT_CHART_ID UNION SELECT 'Kreditor4' as KRED_NAME ,3 as ANZ_BELEG ,convert(decimal(19,2),68589.89) as Netto ,convert(decimal(19,2),48.96) as Skonto ,1 COCKPIT_CHART_ID GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[TBTF_CFG_COCKPIT]( [PK_CFG_COCKPIT_ID] [bigint] IDENTITY(1,1) NOT NULL, [ACTIVE] [bit] NOT NULL, [NAME] [nvarchar](150) NOT 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, CONSTRAINT [PK_TBTF_CFG_COCKPIT_ID] PRIMARY KEY CLUSTERED ( [PK_CFG_COCKPIT_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [dbo].[TBTF_CFG_COCKPIT] ADD CONSTRAINT [DF_TBTF_CFG_COCKPIT_ACTIVE] DEFAULT ((1)) FOR [ACTIVE] GO ALTER TABLE [dbo].[TBTF_CFG_COCKPIT] ADD CONSTRAINT [DF_TBTF_CFG_COCKPIT_ADDED_WHO] DEFAULT (N'DEFAULT') FOR [ADDED_WHO] GO ALTER TABLE [dbo].[TBTF_CFG_COCKPIT] ADD CONSTRAINT [DF_TBTF_CFG_COCKPIT_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN] GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Primary key' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_CFG_COCKPIT', @level2type=N'COLUMN',@level2name=N'PK_CFG_COCKPIT_ID' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'On / Off Switch' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_CFG_COCKPIT', @level2type=N'COLUMN',@level2name=N'ACTIVE' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Optional name' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_CFG_COCKPIT', @level2type=N'COLUMN',@level2name=N'NAME' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Optional description' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_CFG_COCKPIT', @level2type=N'COLUMN',@level2name=N'COMMENT' GO USE [DD_ECM] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[TBTF_MAP_COCKPIT]( [PK_MAP_COCKPIT_ID] [bigint] IDENTITY(1,1) NOT NULL, [FK_CFG_COCKPIT_ID] [bigint] NOT NULL, [FK_CFG_USER_ID] [int] NULL, [FK_CFG_GROUP_ID] [int] NULL, [SEQUENCE] [smallint] NOT NULL, [ADDED_WHO] [nvarchar](50) NOT NULL, [ADDED_WHEN] [datetime] NOT NULL, [CHANGED_WHO] [nvarchar](50) NULL, [CHANGED_WHEN] [datetime] NULL, CONSTRAINT [PK_TBTF_MAP_COCKPIT_ID] PRIMARY KEY CLUSTERED ( [PK_MAP_COCKPIT_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [dbo].[TBTF_MAP_COCKPIT] ADD CONSTRAINT [DF_TBTF_MAP_COCKPIT_SEQUENCE] DEFAULT ((0)) FOR [SEQUENCE] GO ALTER TABLE [dbo].[TBTF_MAP_COCKPIT] ADD CONSTRAINT [DF_TBTF_MAP_COCKPIT_ADDED_WHO] DEFAULT (N'DEFAULT') FOR [ADDED_WHO] GO ALTER TABLE [dbo].[TBTF_MAP_COCKPIT] ADD CONSTRAINT [DF_TBTF_MAP_COCKPIT_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN] GO ALTER TABLE [dbo].[TBTF_MAP_COCKPIT] WITH CHECK ADD CONSTRAINT [FK_TBTF_MAP_COCKPIT_TBDD_GROUPS] FOREIGN KEY([FK_CFG_GROUP_ID]) REFERENCES [dbo].[TBDD_GROUPS] ([GUID]) GO ALTER TABLE [dbo].[TBTF_MAP_COCKPIT] CHECK CONSTRAINT [FK_TBTF_MAP_COCKPIT_TBDD_GROUPS] GO ALTER TABLE [dbo].[TBTF_MAP_COCKPIT] WITH CHECK ADD CONSTRAINT [FK_TBTF_MAP_COCKPIT_TBDD_USER] FOREIGN KEY([FK_CFG_USER_ID]) REFERENCES [dbo].[TBDD_USER] ([GUID]) GO ALTER TABLE [dbo].[TBTF_MAP_COCKPIT] CHECK CONSTRAINT [FK_TBTF_MAP_COCKPIT_TBDD_USER] GO ALTER TABLE [dbo].[TBTF_MAP_COCKPIT] WITH CHECK ADD CONSTRAINT [FK_TBTF_MAP_COCKPIT_TBTF_CFG_COCKPIT] FOREIGN KEY([FK_CFG_COCKPIT_ID]) REFERENCES [dbo].[TBTF_CFG_COCKPIT] ([PK_CFG_COCKPIT_ID]) GO ALTER TABLE [dbo].[TBTF_MAP_COCKPIT] CHECK CONSTRAINT [FK_TBTF_MAP_COCKPIT_TBTF_CFG_COCKPIT] GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Primary key' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_MAP_COCKPIT', @level2type=N'COLUMN',@level2name=N'PK_MAP_COCKPIT_ID' GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION]( [PK_CFG_COCKPIT_DEFINITION_ID] [bigint] IDENTITY(1,1) NOT NULL, [FK_CFG_COCKPIT_ID] [bigint] NOT NULL, [ACTIVE] [bit] NOT NULL, [PARENT_ID] [int] NOT NULL, [TYPE_ID] [tinyint] NOT NULL, [ICON_ID] [smallint] NOT NULL, [NAME] [nvarchar](150) NULL, [FK_PROFILE_ID] [int] NULL, [FK_CHART_ID] [int] NULL, [FK_MONITOR_ID] [int] 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, CONSTRAINT [PK_TBTF_CFG_COCKPIT_DEFINITION_PK_COCKPIT_ID] PRIMARY KEY CLUSTERED ( [PK_CFG_COCKPIT_DEFINITION_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ALTER TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION] ADD CONSTRAINT [DF_TBTF_CFG_COCKPIT_DEFINITION_ACTIVE] DEFAULT ((1)) FOR [ACTIVE] GO ALTER TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION] ADD CONSTRAINT [DF_TBTF_CFG_COCKPIT_DEFINITION_PARENT_ID] DEFAULT ((0)) FOR [PARENT_ID] GO ALTER TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION] ADD CONSTRAINT [DF_TBTF_CFG_COCKPIT_DEFINITION_TYPE] DEFAULT ((0)) FOR [TYPE_ID] GO ALTER TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION] ADD CONSTRAINT [DF_TBTF_CFG_COCKPIT_DEFINITION_ICON] DEFAULT ((0)) FOR [ICON_ID] GO ALTER TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION] ADD CONSTRAINT [DF_TBTF_CFG_COCKPIT_DEFINITION_ADDED_WHO] DEFAULT (N'DEFAULT') FOR [ADDED_WHO] GO ALTER TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION] ADD CONSTRAINT [DF_TBTF_CFG_COCKPIT_DEFINITION_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN] GO ALTER TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION] WITH NOCHECK ADD CONSTRAINT [FK_TBTF_CFG_COCKPIT_DEFINITION_TBPM_PROFILE] FOREIGN KEY([FK_PROFILE_ID]) REFERENCES [dbo].[TBPM_PROFILE] ([GUID]) GO ALTER TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION] NOCHECK CONSTRAINT [FK_TBTF_CFG_COCKPIT_DEFINITION_TBPM_PROFILE] GO ALTER TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION] WITH CHECK ADD CONSTRAINT [FK_TBTF_CFG_COCKPIT_DEFINITION_TBTF_CFG_COCKPIT] FOREIGN KEY([FK_CFG_COCKPIT_ID]) REFERENCES [dbo].[TBTF_CFG_COCKPIT] ([PK_CFG_COCKPIT_ID]) GO ALTER TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION] CHECK CONSTRAINT [FK_TBTF_CFG_COCKPIT_DEFINITION_TBTF_CFG_COCKPIT] GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Primary key' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_CFG_COCKPIT_DEFINITION', @level2type=N'COLUMN',@level2name=N'PK_CFG_COCKPIT_DEFINITION_ID' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'On / Off Switch' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_CFG_COCKPIT_DEFINITION', @level2type=N'COLUMN',@level2name=N'ACTIVE' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0 = Overview, 1 = Profile, 2 = Monitoring, 3 = Chart' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_CFG_COCKPIT_DEFINITION', @level2type=N'COLUMN',@level2name=N'TYPE_ID' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Zahlenwerte für Symbole' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_CFG_COCKPIT_DEFINITION', @level2type=N'COLUMN',@level2name=N'ICON_ID' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Optional name' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_CFG_COCKPIT_DEFINITION', @level2type=N'COLUMN',@level2name=N'NAME' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Optional description' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_CFG_COCKPIT_DEFINITION', @level2type=N'COLUMN',@level2name=N'COMMENT' 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: 23.04.2026 / MK -- Version Number: 1.0.0.0 -- ================================================================= -- History: -- 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, [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], [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 [CCP].[PK_CFG_COCKPIT_DEFINITION_ID], [CCP].[FK_CFG_COCKPIT_ID], [CCP].[PARENT_ID], [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] WHERE [CC].[ACTIVE] in (0,1) AND [CCP].[ACTIVE] in (0,1) AND [CCP].[FK_CFG_COCKPIT_ID] IN (SELECT TOP 100 PERCENT [FK_CFG_COCKPIT_ID] FROM [dbo].[TBTF_MAP_COCKPIT] WITH (NOLOCK) WHERE [FK_CFG_USER_ID] = @USER_ID ORDER BY [SEQUENCE] ASC); ----------------------------------------------------------------------------------------------------------------------------------- --===============================================-- get group allocated cockpits --==============================================-- INSERT INTO @RESULT([PK_CFG_COCKPIT_DEFINITION_ID], [FK_CFG_COCKPIT_ID], [PARENT_ID], [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 [CCP].[PK_CFG_COCKPIT_DEFINITION_ID], [CCP].[FK_CFG_COCKPIT_ID], [CCP].[PARENT_ID], [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 WHERE [CC].[ACTIVE] in (0,1) AND [CCP].[ACTIVE] in (0,1) AND [CCP].[FK_CFG_COCKPIT_ID] IN (SELECT TOP 100 PERCENT [FK_CFG_COCKPIT_ID] FROM [dbo].[TBTF_MAP_COCKPIT] WITH (NOLOCK) WHERE [FK_CFG_GROUP_ID] IN (SELECT DISTINCT [GROUP_ID] FROM [dbo].[TBDD_GROUPS_USER] WITH (NOLOCK) WHERE [USER_ID] = @USER_ID) ORDER BY [SEQUENCE] ASC) AND [FK_CFG_COCKPIT_ID] NOT IN (SELECT [FK_CFG_COCKPIT_ID] FROM @RESULT); -- Allow no duplicates ---------------------------------------------------------------------------------------------------------------------------- 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