USE [Vertragsverwaltung_20160404] GO /****** Object: StoredProcedure [dbo].[sp_applikationsuebersicht_get_details] Script Date: 02.12.2016 09:08:54 ******/ DROP PROCEDURE [dbo].[sp_applikationsuebersicht_get_details] GO /****** Object: StoredProcedure [dbo].[sp_applikationsuebersicht_get_details] Script Date: 02.12.2016 09:08:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO -- ============================================= -- Author: -- Create date: <13.01.2008> -- Description: -- ============================================= CREATE PROCEDURE [dbo].[sp_applikationsuebersicht_get_details] @entryroot int, @suchstring as varchar(255), @mitarbeiternr int AS CREATE TABLE #tmpd( [applikationsnr] [int] , [bezeichnung] [varchar] (255) null, [parentid] [int] null, -- [applikationskategorienr] [int], [aktiv] [bit] null, ) ON [DEFAULT] -- Rootentry für die Treeaufbereitung in der Applikation insert #tmpd (applikationsnr, bezeichnung, parentid, aktiv) values(0,'Root',null,1) declare @appnr int declare @appbez varchar(50) declare @appprnt int declare @anr int declare @bez varchar(50) declare @pid int declare @aktiv bit set @appprnt = -1 ----------------------------------------------------------------------------------------- -- Erster Loop über die Applikationkategorie ----------------------------------------------------------------------------------------- if @entryroot < 0 begin set @entryroot=@entryroot * -1 declare xc cursor for select ApplikationKategorieNr, bezeichnung, aktiv from dbo.applikationkategorie where aktiv=1 and applikationkategorienr=@entryroot open xc fetch next from xc into @appnr, @appbez, @aktiv while @@fetch_status=0 begin insert #tmpd(applikationsnr, bezeichnung, parentid, aktiv) values (@appprnt, @appbez, 0,1) ----------------------------------------------------------------------------------------- -- Zweiter Loop über die Einträge der obesten Ebene der Applikationen ----------------------------------------------------------------------------------------- declare yc cursor for select applikationnr, bezeichnung, parentid, @aktiv from applikation where applikationkategorienr=@appnr and parentid=0 open yc fetch next from yc into @anr, @bez, @pid, @aktiv while @@fetch_status=0 begin insert #tmpd(applikationsnr, bezeichnung, parentid, aktiv) values (@anr, @bez, @appprnt, @aktiv) ----------------------------------------------------------------------------------------- -- Je Applikation die untergeordneten Applikationen/Module auslesen ----------------------------------------------------------------------------------------- execute dbo.sp_get_applstruktur_down @anr,1, @anr fetch next from yc into @anr, @bez, @pid, @aktiv end close yc deallocate yc set @appprnt = @appprnt - 1 fetch next from xc into @appnr, @appbez, @aktiv end close xc deallocate xc end else begin declare yc1 cursor for select applikationnr, bezeichnung, parentid, @aktiv from applikation where applikationnr=@entryroot open yc1 fetch next from yc1 into @anr, @bez, @pid, @aktiv while @@fetch_status=0 begin print @anr print @bez print '----' insert #tmpd(applikationsnr, bezeichnung, parentid, aktiv) values (@anr, @bez, @appprnt, @aktiv) ----------------------------------------------------------------------------------------- -- Je Applikation die untergeordneten Applikationen/Module auslesen ----------------------------------------------------------------------------------------- execute dbo.sp_get_applstruktur_down @anr,1, @anr fetch next from yc1 into @anr, @bez, @pid, @aktiv end close yc1 deallocate yc1 end ----------------------------------------------------------------------------------------- -- Daten zurück geben und temporäre Tabelle löschen ----------------------------------------------------------------------------------------- delete from #tmpd where parentid is null --> Ohne Suchstring if @suchstring='' begin SELECT distinct dbo.Applikation.ApplikationNr, dbo.Applikation.Bezeichnung, dbo.Applikation.ParentID, dbo.Applikation.ApplikationVerantwortungNr, dbo.Applikation.ApplikationKategorieNr, dbo.Applikation.ApplikationTeamNr, dbo.Applikation.Marktbereichnr, dbo.Applikation.Version, dbo.Applikation.AlsProdukt, dbo.Applikation.NurLizenz, dbo.Applikation.PrioWiederanlauf, dbo.Applikation.Kurzbeschreibung, dbo.Applikation.Inaktivseit, dbo.Applikation.RAS, dbo.Applikation.Datenbankname, dbo.Applikation.Anzahl_Installationen, dbo.Applikation.Test_Aufwand, dbo.Applikation.Test_Arbeitsplaetze, dbo.Applikation.Test_Abhaengigkeiten, dbo.Applikation.Test_Bemerkung, dbo.Applikation.TicketXPertVerwendung, dbo.Applikation.TicketXPert_WPIAnzeigen, dbo.Applikation.TicketXPert_Preis, dbo.Applikation.TicketXPert_Preis_Einmalig, dbo.Applikation.TicketXPert_AMAnzeigen, dbo.Applikation.TicketXPert_ApplikationKritikalitaetTypNr, dbo.Applikation.TicketXPert_ApplikationSMLTypNr, dbo.Applikation.Aktiv, dbo.Applikation.Erstellt_am, dbo.Applikation.Mutiert_am, dbo.Applikation.Mutierer, dbo.Applikation.SecurityLevelNr, dbo.Applikation.RfcBoardNr, dbo.GremiumGruppierung.GremiumGruppierungNr, dbo.GremiumGruppierung.GremiumNr, dbo.GremiumGruppierung.Gruppierungsbegriff, dbo.GremiumGruppierung.Beschreibung, dbo.GremiumGruppierung.Reihenfolge, dbo.GremiumGruppierung.Aktiv AS Expr1, dbo.GremiumGruppierung.Erstellt_am AS Expr2, dbo.GremiumGruppierung.Mutiert_am AS Expr3, dbo.GremiumGruppierung.Mutierer AS Expr4, GremiumBereich_1.GremiumBereichNr, GremiumBereich_1.GremiumGruppierungNr AS Expr5, GremiumBereich_1.Bereich, GremiumBereich_1.Beschreibung AS Expr6, GremiumBereich_1.Sortierung, GremiumBereich_1.Aktiv AS Expr7, GremiumBereich_1.Erstellt_am AS Expr8, GremiumBereich_1.Mutiert_am AS Expr9, GremiumBereich_1.Mutierer AS Expr10, GremiumGruppierung_1.GremiumGruppierungNr AS Expr11, GremiumGruppierung_1.GremiumNr AS Expr12, GremiumGruppierung_1.Gruppierungsbegriff AS Expr13, GremiumGruppierung_1.Beschreibung AS Expr14, GremiumGruppierung_1.Reihenfolge AS Expr15, GremiumGruppierung_1.Aktiv AS Expr16, GremiumGruppierung_1.Erstellt_am AS Expr17, GremiumGruppierung_1.Mutiert_am AS Expr18, GremiumGruppierung_1.Mutierer AS Expr19, dbo.GremiumGruppierung.Gruppierungsbegriff AS Marktbereich, GremiumBereich_1.Bereich AS Team, GremiumGruppierung_1.Gruppierungsbegriff AS Verantwortung, dbo.GremiumBereich.Bereich AS RFCBoard FROM dbo.Applikation INNER JOIN #tmpd on #tmpd.applikationsnr = dbo.applikation.applikationnr LEFT OUTER JOIN dbo.GremiumBereich ON dbo.Applikation.RfcBoardNr = dbo.GremiumBereich.GremiumBereichNr LEFT OUTER JOIN dbo.GremiumBereich AS GremiumBereich_1 ON dbo.Applikation.ApplikationTeamNr = GremiumBereich_1.GremiumBereichNr LEFT OUTER JOIN dbo.GremiumGruppierung ON dbo.Applikation.Marktbereichnr = dbo.GremiumGruppierung.GremiumGruppierungNr LEFT OUTER JOIN dbo.GremiumGruppierung AS GremiumGruppierung_1 ON dbo.Applikation.ApplikationVerantwortungNr = GremiumGruppierung_1.GremiumGruppierungNr where dbo.applikation.securitylevelnrin (select SecurityLevelNr from dbo.Get_SecurityLevelTab(@mitarbeiternr)) order by dbo.applikation.parentid, dbo.applikation.bezeichnung --SELECT DISTINCT -- dbo.Applikation.ApplikationNr, dbo.Applikation.Bezeichnung, dbo.Applikation.ParentID, dbo.Applikation.ApplikationVerantwortungNr, -- dbo.ApplikationVerantwortung.Bezeichnung AS Verantwortung, dbo.Applikation.ApplikationKategorieNr, dbo.ApplikationKategorie.Bezeichnung AS Kategorie, -- dbo.Applikation.Marktbereichnr, dbo.Marktbereich.Bezeichnung AS Marktbereich, dbo.Applikation.Version, dbo.Applikation.AlsProdukt, dbo.Applikation.NurLizenz, -- dbo.Applikation.PrioWiederanlauf, dbo.Applikation.Kurzbeschreibung, dbo.Applikation.Inaktivseit, dbo.Applikation.RAS, dbo.Applikation.Datenbankname, -- dbo.Applikation.Anzahl_Installationen, dbo.Applikation.Test_Aufwand, dbo.Applikation.Test_Arbeitsplaetze, dbo.Applikation.Test_Abhaengigkeiten, -- dbo.Applikation.Test_Bemerkung, dbo.Applikation.TicketXPertVerwendung, dbo.Applikation.TicketXPert_WPIAnzeigen, dbo.Applikation.TicketXPert_Preis, -- dbo.Applikation.TicketXPert_Preis_Einmalig, dbo.Applikation.TicketXPert_AMAnzeigen, dbo.Applikation.TicketXPert_ApplikationKritikalitaetTypNr, -- dbo.Applikation.TicketXPert_ApplikationSMLTypNr, dbo.ApplikationSLMTyp.Bezeichnung AS SML, dbo.Applikation.Aktiv, dbo.Applikation.Erstellt_am, -- dbo.Applikation.Mutiert_am, dbo.Applikation.Mutierer, dbo.Applikation.SecurityLevelNr, dbo.applikationteam.bezeichnung as Team --FROM dbo.Applikation INNER JOIN -- #tmpd on #tmpd.applikationsnr = dbo.applikation.applikationnr inner join -- dbo.ApplikationVerantwortung ON dbo.Applikation.ApplikationVerantwortungNr = dbo.ApplikationVerantwortung.ApplikationVerantwortungNr INNER JOIN -- dbo.ApplikationKategorie ON dbo.Applikation.ApplikationKategorieNr = dbo.ApplikationKategorie.ApplikationKategorieNr INNER JOIN -- dbo.Marktbereich ON dbo.Applikation.Marktbereichnr = dbo.Marktbereich.MarktbereichNr LEFT OUTER JOIN -- dbo.ApplikationSLMTyp ON dbo.Applikation.TicketXPert_ApplikationSMLTypNr = dbo.ApplikationSLMTyp.ApplikationSLMTypNr LEFT OUTER JOIN -- dbo.ApplikationTeam ON dbo.Applikation.ApplikationTeamNr = dbo.ApplikationTeam.ApplikationTeamNr --where dbo.applikation.securitylevelnrin (select SecurityLevelNr from dbo.Get_SecurityLevelTab(@mitarbeiternr)) --order by dbo.applikation.parentid, dbo.applikation.bezeichnung --end else begin --> Mit Suchstring end else begin set @suchstring='%' + @suchstring + '%' SELECT distinct dbo.Applikation.ApplikationNr, dbo.Applikation.Bezeichnung, dbo.Applikation.ParentID, dbo.Applikation.ApplikationVerantwortungNr, dbo.Applikation.ApplikationKategorieNr, dbo.Applikation.ApplikationTeamNr, dbo.Applikation.Marktbereichnr, dbo.Applikation.Version, dbo.Applikation.AlsProdukt, dbo.Applikation.NurLizenz, dbo.Applikation.PrioWiederanlauf, dbo.Applikation.Kurzbeschreibung, dbo.Applikation.Inaktivseit, dbo.Applikation.RAS, dbo.Applikation.Datenbankname, dbo.Applikation.Anzahl_Installationen, dbo.Applikation.Test_Aufwand, dbo.Applikation.Test_Arbeitsplaetze, dbo.Applikation.Test_Abhaengigkeiten, dbo.Applikation.Test_Bemerkung, dbo.Applikation.TicketXPertVerwendung, dbo.Applikation.TicketXPert_WPIAnzeigen, dbo.Applikation.TicketXPert_Preis, dbo.Applikation.TicketXPert_Preis_Einmalig, dbo.Applikation.TicketXPert_AMAnzeigen, dbo.Applikation.TicketXPert_ApplikationKritikalitaetTypNr, dbo.Applikation.TicketXPert_ApplikationSMLTypNr, dbo.Applikation.Aktiv, dbo.Applikation.Erstellt_am, dbo.Applikation.Mutiert_am, dbo.Applikation.Mutierer, dbo.Applikation.SecurityLevelNr, dbo.Applikation.RfcBoardNr, dbo.GremiumGruppierung.GremiumGruppierungNr, dbo.GremiumGruppierung.GremiumNr, dbo.GremiumGruppierung.Gruppierungsbegriff, dbo.GremiumGruppierung.Beschreibung, dbo.GremiumGruppierung.Reihenfolge, dbo.GremiumGruppierung.Aktiv AS Expr1, dbo.GremiumGruppierung.Erstellt_am AS Expr2, dbo.GremiumGruppierung.Mutiert_am AS Expr3, dbo.GremiumGruppierung.Mutierer AS Expr4, GremiumBereich_1.GremiumBereichNr, GremiumBereich_1.GremiumGruppierungNr AS Expr5, GremiumBereich_1.Bereich, GremiumBereich_1.Beschreibung AS Expr6, GremiumBereich_1.Sortierung, GremiumBereich_1.Aktiv AS Expr7, GremiumBereich_1.Erstellt_am AS Expr8, GremiumBereich_1.Mutiert_am AS Expr9, GremiumBereich_1.Mutierer AS Expr10, GremiumGruppierung_1.GremiumGruppierungNr AS Expr11, GremiumGruppierung_1.GremiumNr AS Expr12, GremiumGruppierung_1.Gruppierungsbegriff AS Expr13, GremiumGruppierung_1.Beschreibung AS Expr14, GremiumGruppierung_1.Reihenfolge AS Expr15, GremiumGruppierung_1.Aktiv AS Expr16, GremiumGruppierung_1.Erstellt_am AS Expr17, GremiumGruppierung_1.Mutiert_am AS Expr18, GremiumGruppierung_1.Mutierer AS Expr19, dbo.GremiumGruppierung.Gruppierungsbegriff AS Marktbereich, GremiumBereich_1.Bereich AS Team, GremiumGruppierung_1.Gruppierungsbegriff AS Verantwortung, dbo.GremiumBereich.Bereich AS RFCBoard FROM dbo.Applikation INNER JOIN #tmpd on #tmpd.applikationsnr = dbo.applikation.applikationnr inner join dbo.ApplikationKontakt ON dbo.Applikation.ApplikationNr = dbo.ApplikationKontakt.Applikationnr INNER JOIN dbo.Person ON dbo.ApplikationKontakt.PersonNr = dbo.Person.PersonNr LEFT OUTER JOIN dbo.GremiumBereich ON dbo.Applikation.RfcBoardNr = dbo.GremiumBereich.GremiumBereichNr LEFT OUTER JOIN dbo.GremiumBereich AS GremiumBereich_1 ON dbo.Applikation.ApplikationTeamNr = GremiumBereich_1.GremiumBereichNr LEFT OUTER JOIN dbo.GremiumGruppierung ON dbo.Applikation.Marktbereichnr = dbo.GremiumGruppierung.GremiumGruppierungNr LEFT OUTER JOIN dbo.GremiumGruppierung AS GremiumGruppierung_1 ON dbo.Applikation.ApplikationVerantwortungNr = GremiumGruppierung_1.GremiumGruppierungNr where dbo.applikation.securitylevelnrin (select SecurityLevelNr from dbo.Get_SecurityLevelTab(@mitarbeiternr)) and (dbo.Applikation.bezeichnung like @suchstring or dbo.Applikation.kurzbeschreibung like @suchstring or dbo.person.name like @suchstring or dbo.person.vorname like @suchstring) order by dbo.applikation.parentid, dbo.applikation.bezeichnung --SELECT DISTINCT -- dbo.Applikation.ApplikationNr, dbo.Applikation.Bezeichnung, dbo.Applikation.ParentID, dbo.Applikation.ApplikationVerantwortungNr, -- dbo.ApplikationVerantwortung.Bezeichnung AS Verantwortung, dbo.Applikation.ApplikationKategorieNr, dbo.ApplikationKategorie.Bezeichnung AS Kategorie, -- dbo.Applikation.Marktbereichnr, dbo.Marktbereich.Bezeichnung AS Marktbereich, dbo.Applikation.Version, dbo.Applikation.AlsProdukt, dbo.Applikation.NurLizenz, -- dbo.Applikation.PrioWiederanlauf, dbo.Applikation.Kurzbeschreibung, dbo.Applikation.Inaktivseit, dbo.Applikation.RAS, dbo.Applikation.Datenbankname, -- dbo.Applikation.Anzahl_Installationen, dbo.Applikation.Test_Aufwand, dbo.Applikation.Test_Arbeitsplaetze, dbo.Applikation.Test_Abhaengigkeiten, -- dbo.Applikation.Test_Bemerkung, dbo.Applikation.TicketXPertVerwendung, dbo.Applikation.TicketXPert_WPIAnzeigen, dbo.Applikation.TicketXPert_Preis, -- dbo.Applikation.TicketXPert_Preis_Einmalig, dbo.Applikation.TicketXPert_AMAnzeigen, dbo.Applikation.TicketXPert_ApplikationKritikalitaetTypNr, -- dbo.Applikation.TicketXPert_ApplikationSMLTypNr, dbo.ApplikationSLMTyp.Bezeichnung AS SML, dbo.Applikation.Aktiv, dbo.Applikation.Erstellt_am, -- dbo.Applikation.Mutiert_am, dbo.Applikation.Mutierer, dbo.Applikation.SecurityLevelNr, dbo.applikationteam.bezeichnung as Team --FROM dbo.Applikation INNER JOIN -- #tmpd on #tmpd.applikationsnr = dbo.applikation.applikationnr inner join -- dbo.ApplikationVerantwortung ON dbo.Applikation.ApplikationVerantwortungNr = dbo.ApplikationVerantwortung.ApplikationVerantwortungNr INNER JOIN -- dbo.ApplikationKategorie ON dbo.Applikation.ApplikationKategorieNr = dbo.ApplikationKategorie.ApplikationKategorieNr INNER JOIN -- dbo.Marktbereich ON dbo.Applikation.Marktbereichnr = dbo.Marktbereich.MarktbereichNr LEFT OUTER JOIN -- dbo.ApplikationSLMTyp ON dbo.Applikation.TicketXPert_ApplikationSMLTypNr = dbo.ApplikationSLMTyp.ApplikationSLMTypNr LEFT OUTER JOIN -- dbo.ApplikationTeam ON dbo.Applikation.ApplikationTeamNr = dbo.ApplikationTeam.ApplikationTeamNr --where dbo.applikation.securitylevelnrin (select SecurityLevelNr from dbo.Get_SecurityLevelTab(@mitarbeiternr)) and -- (dbo.Applikation.bezeichnung like @suchstring or dbo.Applikation.kurzbeschreibung like @suchstring) --order by dbo.applikation.parentid, dbo.applikation.bezeichnung end drop table #tmpd GO