USP_DATALIST_DATABASECLEANUPGLOBALCHANGES
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@GLOBALCHANGECATALOGID | nvarchar(73) | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@SECURITYFEATUREID | uniqueidentifier | IN | |
@SECURITYFEATURETYPE | tinyint | IN |
Definition
Copy
CREATE procedure dbo.[USP_DATALIST_DATABASECLEANUPGLOBALCHANGES]
(
@GLOBALCHANGECATALOGID nvarchar(73),
@CURRENTAPPUSERID uniqueidentifier,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = null
)
as begin
set nocount on;
declare @GLOBALCHANGECATALOGIDS table ([ID] uniqueidentifier);
if charindex('|', @GLOBALCHANGECATALOGID) > 0 begin
insert into @GLOBALCHANGECATALOGIDS values (convert(uniqueidentifier, left(@GLOBALCHANGECATALOGID, 36)));
insert into @GLOBALCHANGECATALOGIDS values (convert(uniqueidentifier, right(@GLOBALCHANGECATALOGID, 36)));
end else
insert into @GLOBALCHANGECATALOGIDS values (convert(uniqueidentifier, @GLOBALCHANGECATALOGID));
with xmlnamespaces ('bb_appfx_dataforms' as dfi)
select
[GLOBALCHANGE].[ID],
[GLOBALCHANGE].[NAME],
[GLOBALCHANGECATALOG].[DISPLAYNAME] as [TYPE],
isnull([IDSETREGISTER].[NAME], '') as [SELECTION],
[GLOBALCHANGE].[LASTRUNON],
case when [GLOBALCHANGE].[LASTRUNON] is null then 0 else 1 end as [ENABLERESET]
from dbo.[GLOBALCHANGE]
inner join dbo.[GLOBALCHANGECATALOG] on [GLOBALCHANGECATALOG].[ID] = [GLOBALCHANGE].[GLOBALCHANGECATALOGID]
left outer join dbo.[IDSETREGISTER] on [IDSETREGISTER].[ID] = [GLOBALCHANGE].[GLOBALCHANGEDATAFORMITEM].value('data(/dfi:DataFormItem/dfi:Values/dfi:fv[@ID="SELECTIONID"]/dfi:Value)[1]', 'uniqueidentifier')
where [GLOBALCHANGE].[GLOBALCHANGECATALOGID] in (select [ID] from @GLOBALCHANGECATALOGIDS)
and dbo.[UFN_SECURITY_APPUSER_GRANTED_BUSINESSPROCESSINSTANCE_IN_SYSTEMROLE](@CURRENTAPPUSERID, [GLOBALCHANGE].[ID]) = 1
and (select count(*) from dbo.[UFN_SITEID_MAPFROM_GLOBALCHANGEPROCESSID]([GLOBALCHANGE].[ID]) as [GLOBALCHANGEPROCESSSITE] where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[GLOBALCHANGEPROCESSSITE].[SITEID] or (SITEID is null and [GLOBALCHANGEPROCESSSITE].[SITEID] is null)))) > 0
order by [GLOBALCHANGE].[NAME];
end