UFN_QUERY_GLOBALCHANGELIST

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@CURRENTAPPUSERID uniqueidentifier IN
@SITEFILTERMODE tinyint IN
@SITESSELECTED xml IN

Definition

Copy


CREATE function dbo.[UFN_QUERY_GLOBALCHANGELIST]
(
  @CURRENTAPPUSERID uniqueidentifier = null,
  @SITEFILTERMODE tinyint = 0,
  @SITESSELECTED xml = null
)
returns table
as return (
  with [ISSYSADMIN] ([ISSYSADMIN]) as (
    select [ISSYSADMIN] from dbo.[APPUSER] where [ID] = @CURRENTAPPUSERID
  )
  select
    [GLOBALCHANGE].[ID],
    [GLOBALCHANGE].[NAME],
    [GLOBALCHANGECATALOG].[DISPLAYNAME] as [TYPE],
    [GLOBALCHANGE].[LASTRUNON],
    isnull([SITE].[NAME], 'All sites') as [SITE],
    case when [OWNER].[DISPLAYNAME] = '' then [OWNER].[USERNAME] else [OWNER].[DISPLAYNAME] end as [OWNER],
    [GLOBALCHANGECATALOG].[ID] as [GLOBALCHANGECATALOGID],
    isnull([GLOBALCHANGE].[GLOBALCHANGEDATAFORMITEM], cast('' as xml)) as [DATAFORMITEM],
    [BUSINESSPROCESSINSTANCE].[OWNERID] as [OWNERID]
  from
    dbo.[GLOBALCHANGE]
    inner join dbo.[GLOBALCHANGECATALOG] on [GLOBALCHANGECATALOG].[ID] = [GLOBALCHANGE].[GLOBALCHANGECATALOGID]
    left outer join dbo.[BUSINESSPROCESSINSTANCE] on [BUSINESSPROCESSINSTANCE].[BUSINESSPROCESSPARAMETERSETID] = [GLOBALCHANGE].[ID]
    left outer join dbo.[APPUSER] as [OWNER] on [OWNER].[ID] = [BUSINESSPROCESSINSTANCE].[OWNERID]
    left outer join dbo.[SITE] on [SITE].[ID] = [BUSINESSPROCESSINSTANCE].[SITEID]
    cross apply [ISSYSADMIN]
  where (
      [ISSYSADMIN].[ISSYSADMIN] = 1
      or (
        -- check feature security

        dbo.[UFN_SECURITY_APPUSER_GRANTED_BUSINESSPROCESSINSTANCE_IN_SYSTEMROLE](@CURRENTAPPUSERID, [GLOBALCHANGE].[ID]) = 1
        -- check site security

        and (
          select
            count(1)
          from
            dbo.[UFN_SITEID_MAPFROM_GLOBALCHANGEPROCESSID]([GLOBALCHANGE].[ID]) as [GLOBALCHANGESITE]
          where
            exists (select top 1 1 from dbo.[UFN_SITESFORUSERONFEATURE](@CURRENTAPPUSERID, 'a146482f-02bc-4558-825a-6678556468df', 10) where [SITEID] = [GLOBALCHANGESITE].[SITEID] or ([SITEID] is null and [GLOBALCHANGESITE].[SITEID] is null))
        ) > 0
      )
    )
    -- apply site filter

    and (
      @SITEFILTERMODE = 0
      or
      [BUSINESSPROCESSINSTANCE].[SITEID] in (select SITEID from dbo.[UFN_SITE_BUILDDATALISTSITEFILTER](@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED))
    )
)