USE [BEA] GO /****** Object: UserDefinedFunction [dbo].[fnkt_split_1] Script Date: 13.12.2014 15:01:46 ******/ DROP FUNCTION [dbo].[fnkt_split_1] GO /****** Object: UserDefinedFunction [dbo].[fnkt_split] Script Date: 13.12.2014 15:01:46 ******/ DROP FUNCTION [dbo].[fnkt_split] GO /****** Object: UserDefinedFunction [dbo].[fnkt_get_tgdata_Data] Script Date: 13.12.2014 15:01:46 ******/ DROP FUNCTION [dbo].[fnkt_get_tgdata_Data] GO /****** Object: UserDefinedFunction [dbo].[fnkt_get_Report_Data] Script Date: 13.12.2014 15:01:46 ******/ DROP FUNCTION [dbo].[fnkt_get_Report_Data] GO /****** Object: UserDefinedFunction [dbo].[fnkt_get_mig_hierarchie] Script Date: 13.12.2014 15:01:46 ******/ DROP FUNCTION [dbo].[fnkt_get_mig_hierarchie] GO /****** Object: UserDefinedFunction [dbo].[fnkt_get_hierarchie] Script Date: 13.12.2014 15:01:46 ******/ DROP FUNCTION [dbo].[fnkt_get_hierarchie] GO /****** Object: UserDefinedFunction [dbo].[fnkt_funktionstelle_beziehung_reporting] Script Date: 13.12.2014 15:01:46 ******/ DROP FUNCTION [dbo].[fnkt_funktionstelle_beziehung_reporting] GO /****** Object: UserDefinedFunction [dbo].[fnkt_funktionstelle_beziehung] Script Date: 13.12.2014 15:01:46 ******/ DROP FUNCTION [dbo].[fnkt_funktionstelle_beziehung] GO /****** Object: UserDefinedFunction [dbo].[fnkt_funktionstelle_beziehung] Script Date: 13.12.2014 15:01:46 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE FUNCTION [dbo].[fnkt_funktionstelle_beziehung] ( @keyvalue INT ) RETURNS @tmp1 TABLE ( ID INT , Bezeichnung VARCHAR(255) , Beschreibung VARCHAR(255) , Sequenz INT , aktiv BIT , erstellt_am DATETIME , mutiert_am DATETIME , mutierer INT , typ VARCHAR(255) , MKey INT, Beziehungstyp VARCHAR(255), CID INT, Temp int ) AS BEGIN INSERT @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp, CID ) SELECT dbo.Funktionstelle_Berechtigung.Funktionstelle_BerechtigungNr, dbo.Berechtigung.Bezeichnung, dbo.Funktionstelle_Berechtigung.Sequenz, dbo.Funktionstelle_Berechtigung.Beschreibung, dbo.Funktionstelle_Berechtigung.Aktiv, dbo.Funktionstelle_Berechtigung.Erstellt_am, dbo.Funktionstelle_Berechtigung.Mutiert_am, dbo.Funktionstelle_Berechtigung.Mutierer, dbo.fnkt_get_bezeichnung(0) AS Typ, Funktionstelle_Berechtigung.BerechtigungNr, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp ,dbo.berechtigung.cid FROM dbo.Funktionstelle INNER JOIN dbo.Funktionstelle_Berechtigung ON dbo.Funktionstelle.FunktionstelleNr = dbo.Funktionstelle_Berechtigung.FunktionstelleNr INNER JOIN dbo.Berechtigung ON dbo.Funktionstelle_Berechtigung.BerechtigungNr = dbo.Berechtigung.BerechtigungNr INNER JOIN dbo.Beziehungstyp ON dbo.Funktionstelle_Berechtigung.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr WHERE ( dbo.Funktionstelle.FunktionstelleNr = @keyvalue ) --AND Funktionstelle_Berechtigung.aktiv=1 INSERT @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp, cid ) SELECT TOP ( 100 ) PERCENT dbo.FunktionStelle_Plattform.FunktionStelle_PlattformNr, dbo.Plattform.Bezeichnung, dbo.FunktionStelle_Plattform.Sequenz, dbo.FunktionStelle_Plattform.Beschreibung, dbo.FunktionStelle_Plattform.Aktiv, dbo.FunktionStelle_Plattform.Erstellt_am, dbo.FunktionStelle_Plattform.Mutiert_am, dbo.FunktionStelle_Plattform.Mutierer, dbo.fnkt_get_bezeichnung(3) AS Typ, FunktionStelle_Plattform.PlattformNr, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp, plattform.CID FROM dbo.Funktionstelle INNER JOIN dbo.FunktionStelle_Plattform ON dbo.Funktionstelle.FunktionstelleNr = dbo.FunktionStelle_Plattform.FunktionStelleNr INNER JOIN dbo.Plattform ON dbo.FunktionStelle_Plattform.PlattformNr = dbo.Plattform.PlattformNr INNER JOIN dbo.Beziehungstyp ON dbo.FunktionStelle_Plattform.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr WHERE ( dbo.Funktionstelle.FunktionstelleNr = @keyvalue ) --AND FunktionStelle_Plattform.Aktiv=1 INSERT @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp ) SELECT TOP ( 100 ) PERCENT dbo.FunktionStelle_Server.FunktionStelle_ServerNr, dbo.Server.Bezeichnung, dbo.FunktionStelle_Server.Sequenz, dbo.FunktionStelle_Server.Beschreibung, dbo.FunktionStelle_Server.Aktiv, dbo.FunktionStelle_Server.Erstellt_am, dbo.FunktionStelle_Server.Mutiert_am, dbo.FunktionStelle_Server.Mutierer, dbo.fnkt_get_bezeichnung(4) AS Typ, Funktionstelle_Server.ServerNr, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp FROM dbo.Funktionstelle INNER JOIN dbo.FunktionStelle_Server ON dbo.Funktionstelle.FunktionstelleNr = dbo.FunktionStelle_Server.FunktionStelleNr INNER JOIN dbo.Server ON dbo.FunktionStelle_Server.ServerNr = dbo.Server.ServerNr INNER JOIN dbo.Beziehungstyp ON dbo.FunktionStelle_Server.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr WHERE ( dbo.Funktionstelle.FunktionstelleNr = @keyvalue ) --AND Funktionstelle_Server.Aktiv=1 INSERT @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp, temp ) SELECT dbo.Personal_FunktionStelle.Personal_FunktionStelleNr, dbo.Personal.TGNummer + ' ' + dbo.Personal.Name AS Bezeichnung, dbo.Personal_FunktionStelle.Sequenz, dbo.Personal_FunktionStelle.Beschreibung, dbo.Personal_FunktionStelle.Aktiv, dbo.Personal_FunktionStelle.Erstellt_am, dbo.Personal_FunktionStelle.Mutiert_am, dbo.Personal_FunktionStelle.Mutierer, dbo.fnkt_get_bezeichnung(2) AS TYP, dbo.Personal.Personalnr AS MKEY, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp ,dbo.fnkt_get_temporaer(dbo.Personal_FunktionStelle.Personal_FunktionStelleNr) FROM dbo.Personal_FunktionStelle INNER JOIN dbo.Personal ON dbo.Personal_FunktionStelle.PersonalNr = dbo.Personal.Personalnr INNER JOIN dbo.Funktionstelle ON dbo.Personal_FunktionStelle.FunktionStelleNr = dbo.Funktionstelle.FunktionstelleNr INNER JOIN dbo.Beziehungstyp ON dbo.Personal_FunktionStelle.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr WHERE ( dbo.Funktionstelle.FunktionstelleNr = @keyvalue ) --AND dbo.Personal_FunktionStelle.Aktiv=1 UPDATE @tmp1 SET cid=0 WHERE cid IS null RETURN END GO /****** Object: UserDefinedFunction [dbo].[fnkt_funktionstelle_beziehung_reporting] Script Date: 13.12.2014 15:01:46 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= Create FUNCTION [dbo].[fnkt_funktionstelle_beziehung_reporting] ( @keyvalue INT ) RETURNS @tmp1 TABLE ( ID INT , Bezeichnung VARCHAR(255) , Beschreibung VARCHAR(255) , Sequenz INT , aktiv BIT , erstellt_am DATETIME , mutiert_am DATETIME , mutierer INT , typ VARCHAR(255) , MKey INT, Beziehungstyp VARCHAR(255) ) AS BEGIN INSERT @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp ) SELECT dbo.Funktionstelle_Berechtigung.Funktionstelle_BerechtigungNr, dbo.Berechtigung.Bezeichnung, dbo.Funktionstelle_Berechtigung.Sequenz, dbo.Funktionstelle_Berechtigung.Beschreibung, dbo.Funktionstelle_Berechtigung.Aktiv, dbo.Funktionstelle_Berechtigung.Erstellt_am, dbo.Funktionstelle_Berechtigung.Mutiert_am, dbo.Funktionstelle_Berechtigung.Mutierer, dbo.fnkt_get_bezeichnung(0) AS Typ, Funktionstelle_Berechtigung.BerechtigungNr, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp FROM dbo.Funktionstelle INNER JOIN dbo.Funktionstelle_Berechtigung ON dbo.Funktionstelle.FunktionstelleNr = dbo.Funktionstelle_Berechtigung.FunktionstelleNr INNER JOIN dbo.Berechtigung ON dbo.Funktionstelle_Berechtigung.BerechtigungNr = dbo.Berechtigung.BerechtigungNr INNER JOIN dbo.Beziehungstyp ON dbo.Funktionstelle_Berechtigung.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr WHERE ( dbo.Funktionstelle.FunktionstelleNr = @keyvalue ) AND Funktionstelle_Berechtigung.aktiv=1 INSERT @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp ) SELECT TOP ( 100 ) PERCENT dbo.FunktionStelle_Plattform.FunktionStelle_PlattformNr, dbo.Plattform.Bezeichnung, dbo.FunktionStelle_Plattform.Sequenz, dbo.FunktionStelle_Plattform.Beschreibung, dbo.FunktionStelle_Plattform.Aktiv, dbo.FunktionStelle_Plattform.Erstellt_am, dbo.FunktionStelle_Plattform.Mutiert_am, dbo.FunktionStelle_Plattform.Mutierer, dbo.fnkt_get_bezeichnung(3) AS Typ, FunktionStelle_Plattform.PlattformNr, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp FROM dbo.Funktionstelle INNER JOIN dbo.FunktionStelle_Plattform ON dbo.Funktionstelle.FunktionstelleNr = dbo.FunktionStelle_Plattform.FunktionStelleNr INNER JOIN dbo.Plattform ON dbo.FunktionStelle_Plattform.PlattformNr = dbo.Plattform.PlattformNr INNER JOIN dbo.Beziehungstyp ON dbo.FunktionStelle_Plattform.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr WHERE ( dbo.Funktionstelle.FunktionstelleNr = @keyvalue ) AND FunktionStelle_Plattform.Aktiv=1 INSERT @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp ) SELECT TOP ( 100 ) PERCENT dbo.FunktionStelle_Server.FunktionStelle_ServerNr, dbo.Server.Bezeichnung, dbo.FunktionStelle_Server.Sequenz, dbo.FunktionStelle_Server.Beschreibung, dbo.FunktionStelle_Server.Aktiv, dbo.FunktionStelle_Server.Erstellt_am, dbo.FunktionStelle_Server.Mutiert_am, dbo.FunktionStelle_Server.Mutierer, dbo.fnkt_get_bezeichnung(4) AS Typ, Funktionstelle_Server.ServerNr, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp FROM dbo.Funktionstelle INNER JOIN dbo.FunktionStelle_Server ON dbo.Funktionstelle.FunktionstelleNr = dbo.FunktionStelle_Server.FunktionStelleNr INNER JOIN dbo.Server ON dbo.FunktionStelle_Server.ServerNr = dbo.Server.ServerNr INNER JOIN dbo.Beziehungstyp ON dbo.FunktionStelle_Server.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr WHERE ( dbo.Funktionstelle.FunktionstelleNr = @keyvalue ) AND Funktionstelle_Server.Aktiv=1 INSERT @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp ) SELECT dbo.Personal_FunktionStelle.Personal_FunktionStelleNr, dbo.Personal.TGNummer + ' ' + dbo.Personal.Name AS Bezeichnung, dbo.Personal_FunktionStelle.Sequenz, dbo.Personal_FunktionStelle.Beschreibung, dbo.Personal_FunktionStelle.Aktiv, dbo.Personal_FunktionStelle.Erstellt_am, dbo.Personal_FunktionStelle.Mutiert_am, dbo.Personal_FunktionStelle.Mutierer, dbo.fnkt_get_bezeichnung(2) AS TYP, dbo.Personal.Personalnr AS MKEY, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp FROM dbo.Personal_FunktionStelle INNER JOIN dbo.Personal ON dbo.Personal_FunktionStelle.PersonalNr = dbo.Personal.Personalnr INNER JOIN dbo.Funktionstelle ON dbo.Personal_FunktionStelle.FunktionStelleNr = dbo.Funktionstelle.FunktionstelleNr INNER JOIN dbo.Beziehungstyp ON dbo.Personal_FunktionStelle.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr WHERE ( dbo.Funktionstelle.FunktionstelleNr = @keyvalue ) AND dbo.Personal_FunktionStelle.Aktiv=1 RETURN END GO /****** Object: UserDefinedFunction [dbo].[fnkt_get_hierarchie] Script Date: 13.12.2014 15:01:46 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE FUNCTION [dbo].[fnkt_get_hierarchie] ( @startkey int ) RETURNS @tmp1 TABLE ( ID INT , Bezeichnung VARCHAR(255) , parentid INT, LEVel INT ) AS begin DECLARE @i INT SET @i=0 DECLARE @pid INT --INSERT @tmp1 (id, Bezeichnung, parentid,level) SELECT plattformnr, bezeichnung, parentid,@i FROM dbo.Plattform WHERE plattformnr=@startkey SET @pid=@startkey WHILE @pid>0 BEGIN SET @i=@i+1 INSERT @tmp1 (id, Bezeichnung, parentid,level) SELECT plattformnr, bezeichnung, parentid,@i FROM dbo.Plattform WHERE plattformnr=@pid SELECT @pid=parentid FROM dbo.Plattform WHERE plattformnr=@pid END INSERT @tmp1 (id, Bezeichnung, parentid,level) SELECT plattformnr, bezeichnung, parentid,@i FROM dbo.Plattform WHERE plattformnr=@pid SELECT @pid=plattformnr FROM dbo.Plattform WHERE plattformnr=@pid RETURN end GO /****** Object: UserDefinedFunction [dbo].[fnkt_get_mig_hierarchie] Script Date: 13.12.2014 15:01:46 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE FUNCTION [dbo].[fnkt_get_mig_hierarchie] ( @startkey int ) RETURNS @tmp1 TABLE ( [Parent] [int] NULL, [Parent_Bezeichnung] [nvarchar](50) NULL, [Parent_Typ] [nvarchar](50) NULL, [Sequenz] [int] NULL, [ID] [int] NULL, [Bezeichnung] [nvarchar](50) NULL, [Typ] [nvarchar](50) NULL, [TypNr] [int] NULL, [Typ_Bezeichung] [nvarchar](50) NULL, LEVEL int ) AS begin DECLARE @i INT SET @i=1 DECLARE @pid INT DECLARE @rc INT INSERT @tmp1 SELECT *,1 FROM dbo.BAA_SHU_Extrakt_Beziehungen WHERE id=@startkey AND typnr=-1 SELECT @pid = parent FROM dbo.BAA_SHU_Extrakt_Beziehungen WHERE id=@startkey AND typnr=-1 WHILE @pid>0 BEGIN SET @i=@i+1 SELECT @rc=COUNT(*) FROM dbo.BAA_SHU_Extrakt_Beziehungen WHERE id=@pid AND typnr=-1 IF @rc>0 BEGIN INSERT @tmp1 SELECT *, @i FROM dbo.BAA_SHU_Extrakt_Beziehungen WHERE id=@pid AND typnr=-1 SELECT @pid=parent FROM dbo.BAA_SHU_Extrakt_Beziehungen WHERE id=@pid AND typnr=-1 END ELSE BEGIN SET @pid=0 end end RETURN end GO /****** Object: UserDefinedFunction [dbo].[fnkt_get_Report_Data] Script Date: 13.12.2014 15:01:46 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE FUNCTION [dbo].[fnkt_get_Report_Data] ( @ifnr int ) RETURNS @t2 TABLE ( funktionsnummer VARCHAR(255) , funktionsbezeichnung VARCHAR(255) , plattform VARCHAR(255) , verwaltungmit VARCHAR(255) , verwaltungdurch VARCHAR(255) , berechtigungIn VARCHAR(255) , berechtigungfuer VARCHAR(255) , eigentuemer VARCHAR(255) ) AS BEGIN declare @t1 TABLE ( funktionsnummer VARCHAR(255) , funktionsbezeichnung VARCHAR(255) , plattform VARCHAR(255) , verwaltungmit VARCHAR(255) , verwaltungdurch VARCHAR(255) , berechtigungIn VARCHAR(255) , berechtigungfuer VARCHAR(255) , eigentuemer VARCHAR(255), skey int identity ) DECLARE @fstelle VARCHAR(255) DECLARE @fnr INT DECLARE @fbezeichnung VARCHAR(255) DECLARE @fnummer VARCHAR(255) DECLARE @parent INT DECLARE @tmp1 TABLE ( ID INT , Bezeichnung VARCHAR(255) , Beschreibung VARCHAR(255) , Sequenz INT , aktiv BIT , erstellt_am DATETIME , mutiert_am DATETIME , mutierer INT , typ VARCHAR(255) , MKey INT, Berechtigungstyp VARCHAR(255) ) SELECT TOP 1 @fnr = FunktionstelleNr, @fbezeichnung = bezeichnung, @fstelle = funktionsstelle, @fnummer = Funktionsstelle, @parent = ParentID FROM funktionstelle WHERE funktionstellenr = @ifnr INSERT @tmp1 SELECT * FROM dbo.fnkt_funktionstelle_beziehung_reporting(@fnr) DELETE FROM @tmp1 WHERE typ <> 'Berechtigung' AND typ <> 'Plattform' DECLARE @bez VARCHAR(255) DECLARE @key INT DECLARE @typ VARCHAR(255) DECLARE @key1 INT DECLARE @bez1 VARCHAR(255) DECLARE @btyp VARCHAR(255) DECLARE @skey int DECLARE @funktionsnummer VARCHAR(255) , @funktionsbezeichnung VARCHAR(255) , @verwaltungdurch VARCHAR(255) , @plattform VARCHAR(255) , @verwaltungmit VARCHAR(255) , @berechtigungIn VARCHAR(255) , @berechtigungfuer VARCHAR(255) , @eigentuemer VARCHAR(255), @seq int DECLARE xc CURSOR FOR SELECT bezeichnung, mkey, TYP, Berechtigungstyp FROM @tmp1 OPEN xc FETCH NEXT FROM xc INTO @bez, @key, @typ, @btyp WHILE @@FETCH_STATUS = 0 BEGIN SET @funktionsnummer = @fnummer SET @funktionsbezeichnung = @fbezeichnung SET @berechtigungfuer = @fbezeichnung -- Rollenberechtigung IF UPPER(@typ) = 'BERECHTIGUNG' AND UPPER(@btyp) = 'ROLLENBERECHTIGUNG' BEGIN SET @plattform='' SET @berechtigungfuer='' SET @berechtigungin='' DECLARE xx CURSOR FOR SELECT plattformnr FROM dbo.Berechtigung_Plattform WHERE BerechtigungNr=@key OPEN xx FETCH NEXT FROM xx INTO @key WHILE @@FETCH_STATUS=0 begin SELECT TOP 1 @plattform = bezeichnung FROM dbo.fnkt_get_hierarchie(@key) WHERE level > 0 ORDER BY LEVEL DESC SELECT TOP 1 @berechtigungfuer = bezeichnung FROM dbo.fnkt_get_hierarchie(@key) WHERE level = 1 SELECT TOP 1 @berechtigungin = bezeichnung FROM dbo.fnkt_get_hierarchie(@key) WHERE parentid > 0 ORDER BY level desc IF @@ROWCOUNT = 0 SET @berechtigungin = @berechtigungfuer DECLARE xa CURSOR FOR SELECT dbo.Verwaltung_durch_Plattform.Verwaltung_durch_plattformNr, Sequenz FROM dbo.Verwaltung_durch_Plattform WHERE aktiv = 1 AND plattformnr = @key OPEN xa FETCH NEXT FROM xa INTO @key1,@seq WHILE @@fetch_status = 0 BEGIN SET @verwaltungdurch='' SET @verwaltungmit='' SET @eigentuemer='' SELECT @verwaltungdurch = dbo.Verwaltung_durch.Bezeichnung FROM dbo.Verwaltung_durch_Plattform INNER JOIN dbo.Verwaltung_durch ON dbo.Verwaltung_durch_Plattform.Verwaltung_DurchNr = dbo.Verwaltung_durch.Verwaltung_durchNr WHERE Verwaltung_Durch_PlattformNr=@key1 SELECT @verwaltungmit = dbo.Verwaltung_mit.Bezeichnung FROM dbo.Verwaltung_Mit_Plattform INNER JOIN dbo.Verwaltung_mit ON dbo.Verwaltung_Mit_Plattform.Verwaltung_MitNr = dbo.Verwaltung_mit.Verwaltung_mitNr WHERE PlattformNr = @key SELECT @eigentuemer = ISNULL(dbo.Personal.TGNummer + ' ' + dbo.Personal.Name,'') FROM dbo.Personal_Plattform INNER JOIN dbo.Personal ON dbo.Personal_Plattform.PersonalNr = dbo.Personal.Personalnr WHERE plattformnr = @key AND (dbo.Personal_Plattform.beziehungstypnr=-31 OR dbo.Personal_Plattform.beziehungstypnr=-30) IF @@ROWCOUNT=0 SET @eigentuemer='' INSERT @t1 ( funktionsnummer, funktionsbezeichnung, plattform, verwaltungmit, verwaltungdurch, berechtigungIn, berechtigungfuer, eigentuemer ) VALUES ( @funktionsnummer, @funktionsbezeichnung, @plattform, @verwaltungmit, @verwaltungdurch, @berechtigungIn, @berechtigungfuer, @eigentuemer ) FETCH NEXT FROM xa INTO @key1,@seq END CLOSE xa DEALLOCATE xa FETCH NEXT FROM xx INTO @key END CLOSE xx DEALLOCATE xx END IF UPPER(@typ) = 'BERECHTIGUNG' AND UPPER(@btyp) <> 'ROLLENBERECHTIGUNG' BEGIN SET @plattform='' SET @berechtigungfuer='' SET @berechtigungin='' SET @verwaltungmit='' SET @verwaltungdurch='' SET @eigentuemer='' SELECT @key1 = ParentID, @berechtigungfuer = bezeichnung FROM dbo.Berechtigung WHERE berechtigungnr = @key SELECT @key1 = ParentID, @berechtigungIn = bezeichnung FROM dbo.Berechtigung WHERE berechtigungnr = @key1 SELECT @plattform = bezeichnung FROM dbo.Berechtigung WHERE Berechtigungnr = @key1 SELECT @verwaltungdurch = dbo.Verwaltung_durch.Bezeichnung FROM dbo.Verwaltung_durch_Berechtigung INNER JOIN dbo.Verwaltung_durch ON dbo.Verwaltung_durch_Berechtigung.Verwaltung_DurchNr = dbo.Verwaltung_durch.Verwaltung_durchNr WHERE BerechtigungNr = @key SELECT @verwaltungmit = dbo.Verwaltung_mit.Bezeichnung FROM dbo.Verwaltung_Mit_Berechtigung INNER JOIN dbo.Verwaltung_mit ON dbo.Verwaltung_Mit_Berechtigung.Verwaltung_MitNr = dbo.Verwaltung_mit.Verwaltung_mitNr WHERE Berechtigungnr = @key SELECT @eigentuemer = ISNULL(dbo.Personal.TGNummer + ' ' + dbo.Personal.Name,'') FROM dbo.Personal_berechtigung INNER JOIN dbo.Personal ON dbo.Personal_berechtigung.PersonalNr = dbo.Personal.Personalnr WHERE berechtigungnr = @key AND (dbo.Personal_Berechtigung.beziehungstypnr=-31 OR dbo.Personal_Berechtigung.beziehungstypnr=-30) IF @@ROWCOUNT = 0 SET @eigentuemer='' END IF UPPER(@typ) = 'PLATTFORM' BEGIN SET @plattform='' SET @berechtigungfuer='' SET @berechtigungin='' SELECT TOP 1 @plattform = bezeichnung FROM dbo.fnkt_get_hierarchie(@key) WHERE level > 0 ORDER BY LEVEL DESC SELECT TOP 1 @berechtigungfuer = bezeichnung FROM dbo.fnkt_get_hierarchie(@key) WHERE level = 1 SELECT TOP 1 @berechtigungin = bezeichnung FROM dbo.fnkt_get_hierarchie(@key) WHERE level = 2 ORDER BY level asc --WHERE parentid > 0 ORDER BY level desc IF @@ROWCOUNT = 0 SET @berechtigungin = @berechtigungfuer DECLARE xa CURSOR FOR SELECT dbo.Verwaltung_durch_Plattform.Verwaltung_durch_plattformNr FROM dbo.Verwaltung_durch_Plattform WHERE aktiv = 1 AND plattformnr = @key OPEN xa FETCH NEXT FROM xa INTO @key1 WHILE @@fetch_status = 0 BEGIN SET @verwaltungmit='' SET @verwaltungdurch='' SET @eigentuemer='' SELECT @verwaltungdurch = dbo.Verwaltung_durch.Bezeichnung FROM dbo.Verwaltung_durch_Plattform INNER JOIN dbo.Verwaltung_durch ON dbo.Verwaltung_durch_Plattform.Verwaltung_DurchNr = dbo.Verwaltung_durch.Verwaltung_durchNr WHERE Verwaltung_Durch_PlattformNr=@key1 SELECT @verwaltungmit = dbo.Verwaltung_mit.Bezeichnung FROM dbo.Verwaltung_Mit_Plattform INNER JOIN dbo.Verwaltung_mit ON dbo.Verwaltung_Mit_Plattform.Verwaltung_MitNr = dbo.Verwaltung_mit.Verwaltung_mitNr WHERE PlattformNr = @key SELECT @eigentuemer = ISNULL(dbo.Personal.TGNummer + ' ' + dbo.Personal.Name,'') FROM dbo.Personal_Plattform INNER JOIN dbo.Personal ON dbo.Personal_Plattform.PersonalNr = dbo.Personal.Personalnr WHERE plattformnr = @key AND (dbo.Personal_Plattform.beziehungstypnr=-31 OR dbo.Personal_Plattform.beziehungstypnr=-30) IF @@ROWCOUNT=0 SET @eigentuemer='' INSERT @t1 ( funktionsnummer, funktionsbezeichnung, plattform, verwaltungmit, verwaltungdurch, berechtigungIn, berechtigungfuer, eigentuemer ) VALUES ( @funktionsnummer, @funktionsbezeichnung, @plattform, @verwaltungmit, @verwaltungdurch, @berechtigungIn, @berechtigungfuer, @eigentuemer ) FETCH NEXT FROM xa INTO @key1 END CLOSE xa DEALLOCATE xa END IF UPPER(@typ) = 'ORGANISATION' BEGIN SET @plattform='' SET @verwaltungdurch='' SET @eigentuemer='' SELECT @key1 = ParentID, @berechtigungfuer = bezeichnung FROM dbo.Funktionstelle WHERE Funktionstellenr = @key SELECT @key1 = ParentID, @berechtigungIn = bezeichnung FROM dbo.Funktionstelle WHERE Funktionstellenr = @key1 SELECT @plattform = bezeichnung FROM dbo.Funktionstelle WHERE funktionstellenr = @key1 SELECT @verwaltungdurch = dbo.Verwaltung_durch.Bezeichnung FROM dbo.Verwaltung_durch_Plattform INNER JOIN dbo.Verwaltung_durch ON dbo.Verwaltung_durch_Plattform.Verwaltung_DurchNr = dbo.Verwaltung_durch.Verwaltung_durchNr WHERE PlattformNr = @key SET @verwaltungmit = '' SET @verwaltungdurch = '' --SELECT @verwaltungmit = dbo.Verwaltung_mit.Bezeichnung --FROM dbo.Verwaltung_Mit_Plattform -- INNER JOIN dbo.Verwaltung_mit ON dbo.Verwaltung_Mit_Plattform.Verwaltung_MitNr = dbo.Verwaltung_mit.Verwaltung_mitNr --WHERE PlattformNr = @key --SELECT @eigentuemer = dbo.Personal.TGNummer + ' ' + dbo.Personal.Name --FROM dbo.Personal_Plattform -- INNER JOIN dbo.Personal ON dbo.Personal_Plattform.PersonalNr = dbo.Personal.Personalnr --WHERE plattformnr = @key END INSERT @t1 ( funktionsnummer, funktionsbezeichnung, plattform, verwaltungmit, verwaltungdurch, berechtigungIn, berechtigungfuer, eigentuemer ) VALUES ( @funktionsnummer, @funktionsbezeichnung, @plattform, @verwaltungmit, @verwaltungdurch, @berechtigungIn, @berechtigungfuer, @eigentuemer ) FETCH NEXT FROM xc INTO @bez, @key, @typ, @btyp END INSERT @t1 ( funktionsnummer, funktionsbezeichnung, plattform, verwaltungmit, verwaltungdurch, berechtigungIn, berechtigungfuer, eigentuemer ) VALUES ( @funktionsnummer, @funktionsbezeichnung, @plattform, @verwaltungmit, @verwaltungdurch, @berechtigungIn, @berechtigungfuer, @eigentuemer ) CLOSE xc DEALLOCATE xc DECLARE @b VARCHAR(255) DECLARE @s VARCHAR(255) DECLARE @x VARCHAR(255) DECLARE xc CURSOR for select berechtigungfuer, skey FROM @t1 OPEN xc FETCH NEXT FROM xc INTO @b,@s WHILE @@FETCH_STATUS=0 BEGIN SELECT @x=dbo.fnkt_get_parent(@b,'Plattform') IF @x<>'' BEGIN UPDATE @t1 SET berechtigungin=@x WHERE skey=@s end FETCH NEXT FROM xc INTO @b,@s END CLOSE xc DEALLOCATE xc insert @t2 select funktionsnummer, funktionsbezeichnung, plattform , verwaltungmit , verwaltungdurch , berechtigungIn, berechtigungfuer , eigentuemer from @t1 order by skey RETURN END GO /****** Object: UserDefinedFunction [dbo].[fnkt_get_tgdata_Data] Script Date: 13.12.2014 15:01:46 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE FUNCTION [dbo].[fnkt_get_tgdata_Data] ( @itgnummer VARCHAR(255) ) RETURNS @t1 TABLE ( funktionsnummer VARCHAR(255) , funktionsbezeichnung VARCHAR(255) , plattform VARCHAR(255) , verwaltungmit VARCHAR(255) , verwaltungdurch VARCHAR(255) , berechtigungIn VARCHAR(255) , berechtigungfuer VARCHAR(255) , eigentuemer VARCHAR(255) ) AS BEGIN DECLARE @fstelle VARCHAR(255) DECLARE @fnr INT DECLARE @fbezeichnung VARCHAR(255) DECLARE @fnummer VARCHAR(255) DECLARE @parent INT DECLARE @tgtmp1 TABLE ( ID INT , Bezeichnung VARCHAR(255) , Beschreibung VARCHAR(255) , Sequenz INT , aktiv BIT , erstellt_am DATETIME , mutiert_am DATETIME , mutierer INT , typ VARCHAR(255) , MKey INT, Berechtigungstyp VARCHAR(255) ) DECLARE @tgt1 TABLE ( funktionsnummer VARCHAR(255) , funktionsbezeichnung VARCHAR(255) , plattform VARCHAR(255) , verwaltungmit VARCHAR(255) , verwaltungdurch VARCHAR(255) , berechtigungIn VARCHAR(255) , berechtigungfuer VARCHAR(255) , eigentuemer VARCHAR(255) ) DECLARE @sql VARCHAR(4096) DECLARE @tgtmp TABLE ( fstelle VARCHAR(255) ) INSERT @tgtmp SELECT dbo.Funktionstelle.Funktionsstelle FROM dbo.Personal INNER JOIN dbo.Personal_FunktionStelle ON dbo.Personal.Personalnr = dbo.Personal_FunktionStelle.PersonalNr INNER JOIN dbo.Funktionstelle ON dbo.Personal_FunktionStelle.FunktionStelleNr = dbo.Funktionstelle.FunktionstelleNr WHERE funktionstelle.aktiv=1 and personal_funktionstelle.aktiv=1 and tgnummer = @itgnummer DECLARE xx CURSOR FOR SELECT fstelle FROM @tgtmp OPEN xx FETCH NEXT FROM xx INTO @fnummer WHILE @@FETCH_STATUS = 0 BEGIN SELECT @fnr = funktionstellenr FROM funktionstelle WHERE funktionsstelle = @fnummer INSERT @tgt1 SELECT DISTINCT * FROM dbo.fnkt_get_Report_Data(@fnr) FETCH NEXT FROM xx INTO @fnummer END CLOSE xx DEALLOCATE xx DECLARE @tg VARCHAR(255) DECLARE @name VARCHAR(255) DECLARE @tgtg TABLE ( tgnummer VARCHAR(255) , NAME VARCHAR(255) ) INSERT @tgtg SELECT dbo.Personal.TGNummer, dbo.personal.name FROM dbo.Personal WHERE tgnummer=@itgnummer UPDATE @tgt1 SET funktionsnummer = tgnummer, funktionsbezeichnung = name FROM @tgtg INSERT @t1 SELECT DISTINCT * FROM @tgt1 ORDER BY verwaltungdurch, plattform, verwaltungmit RETURN END GO /****** Object: UserDefinedFunction [dbo].[fnkt_split] Script Date: 13.12.2014 15:01:46 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE FUNCTION [dbo].[fnkt_split] ( @sInputList varchar(8000) -- List of delimited items , @Delimiter char(2) = ',' -- delimiter that separates items , @Delimiterlength INT = 1 ) RETURNS @tmp1 TABLE (item varchar(8000)) AS begin DECLARE @Item VARCHAR(8000) WHILE CHARINDEX(@Delimiter, @sInputList, 0) <> 0 BEGIN SELECT @Item = RTRIM(LTRIM(SUBSTRING(@sInputList, 1, CHARINDEX(@Delimiter, @sInputList, 0) - 1))), @sInputList = RTRIM(LTRIM(SUBSTRING(@sInputList, CHARINDEX(@Delimiter, @sInputList, 0) + @Delimiterlength, LEN(@sInputList)))) IF LEN(@Item) > 0 INSERT INTO @tmp1 SELECT @Item END IF LEN(@sInputList) > 0 INSERT INTO @tmp1 SELECT @sInputList RETURN end GO /****** Object: UserDefinedFunction [dbo].[fnkt_split_1] Script Date: 13.12.2014 15:01:46 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= Create FUNCTION [dbo].[fnkt_split_1] ( @sInputList varchar(8000) -- List of delimited items , @Delimiter char(1) = ',' -- delimiter that separates items , @Delimiterlength INT = 1 ) RETURNS @tmp1 TABLE (item varchar(8000)) AS begin DECLARE @Item VARCHAR(8000) WHILE CHARINDEX(@Delimiter, @sInputList, 0) <> 0 BEGIN SELECT @Item = RTRIM(LTRIM(SUBSTRING(@sInputList, 1, CHARINDEX(@Delimiter, @sInputList, 0) - 1))), @sInputList = RTRIM(LTRIM(SUBSTRING(@sInputList, CHARINDEX(@Delimiter, @sInputList, 0) + @Delimiterlength, LEN(@sInputList)))) IF LEN(@Item) > 0 INSERT INTO @tmp1 SELECT @Item END IF LEN(@sInputList) > 0 INSERT INTO @tmp1 SELECT @sInputList RETURN end GO