UFN_QUERY_SELECTIONS

Return

Return Type
table

Parameters

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

Definition

Copy


CREATE function dbo.[UFN_QUERY_SELECTIONS]
(
    @CURRENTAPPUSERID uniqueidentifier = null,
    @SITEFILTERMODE tinyint = 0,
    @SITESSELECTED xml = null,
    @SECURITYFEATUREID uniqueidentifier = null,
    @SECURITYFEATURETYPE tinyint = null
)

  returns @SELECTIONS table 
  (
    [ID] uniqueidentifier,
    [NAME] nvarchar(300),
    [SOURCEQUERY] nvarchar(255),
    [QUERYTYPE] nvarchar(6),
    [RECORDTYPEID] uniqueidentifier,
    [RECORDTYPE] nvarchar(50),
    [CATEGORY] nvarchar(100),
    [CATEGORYID] uniqueidentifier,
    [SELECTIONTYPE] nvarchar(10),
    [SHOWINQUERYDESIGNER] bit,
    [ISSTATIC] bit,
    [SOURCEQUERYID] uniqueidentifier,
    [ADHOCQUERYID] uniqueidentifier,
    [SMARTQUERYID] uniqueidentifier,
    [SITE] nvarchar(255),
    [DESCRIPTION] nvarchar(1024),
    [OWNERID] uniqueidentifier,
    [ACTIVE] bit,
    [CURRENTASOFDATE] datetime,
    [RECORDCOUNT] int
  )

  with execute as caller

  as

  begin


      declare @ISSYSADMIN bit;
      select @ISSYSADMIN = [ISSYSADMIN] from dbo.[APPUSER] where [ID] = @CURRENTAPPUSERID;

    insert into @SELECTIONS ([ID], [NAME], [SOURCEQUERY], [QUERYTYPE], [RECORDTYPEID], [RECORDTYPE], [CATEGORY], [CATEGORYID], [SELECTIONTYPE], [SHOWINQUERYDESIGNER], [ISSTATIC], [SOURCEQUERYID], [ADHOCQUERYID], [SMARTQUERYID], [SITE], [DESCRIPTION], [OWNERID], [ACTIVE], [CURRENTASOFDATE], [RECORDCOUNT])

        select
            IDSR.[ID],
            IDSR.[NAME],
            coalesce(AQ.[NAME], SQ.[NAME], '') as [SOURCEQUERY],
            (case 
                when (AQ.[ID] is not null) then 'Ad-hoc'
                when (SQ.[ID] is not null) then 'Smart'     
            else 
                'Other'
            end) as [QUERYTYPE],
        IDSR.[RECORDTYPEID],
            coalesce([RECORDTYPE].[NAME], '') as [RECORDTYPE],
            coalesce([QUERYCATEGORYCODE].[DESCRIPTION], '') as [CATEGORY],
        [QUERYCATEGORYCODE].[ID] as [CATEGORYID],
            (case IDSR.[STATIC] when 1 then 'Static' else 'Dynamic' end) as [SELECTIONTYPE],
            IDSR.[USEINQUERYDESIGNER] as [SHOWINQUERYDESIGNER],
            IDSR.[STATIC] as [ISSTATIC],
            isnull(AQ.[ID], SQ.[ID]) as [SOURCEQUERYID],
            AQ.[ID] as [ADHOCQUERYID],
            SQ.[ID] as [SMARTQUERYID],
        isnull([SITE].[NAME], 'All sites') as [SITE],        
            IDSR.[DESCRIPTION],
            IDSR.[OWNERID],
            IDSR.[ACTIVE],
        (case IDSR.[STATIC] when 1 then IDSR.[DATECHANGED] else null end) as [CURRENTASOFDATE],
        (case IDSR.[STATIC] when 1 then IDSR.[NUMROWS] else null end) as [RECORDCOUNT]
        from 
            dbo.[IDSETREGISTER] as IDSR
            -- Filter by installed products

            left join dbo.[SQLFUNCTIONCATALOG] on [SQLFUNCTIONCATALOG].[FUNCTIONNAME] = IDSR.[DBOBJECTNAME]
            --AD HOC QUERY JOINS

            left outer join dbo.[IDSETREGISTERADHOCQUERY] as IDSRA on IDSR.[ID] = IDSRA.[IDSETREGISTERID]
            left outer join dbo.[ADHOCQUERY] as AQ on IDSRA.[ADHOCQUERYID] = AQ.[ID]
            left outer join dbo.[QUERYVIEWCATALOG] as QVC on AQ.[QUERYVIEWCATALOGID] = QVC.[ID]
            --SMART QUERY JOINS

            left outer join dbo.[IDSETREGISTERSMARTQUERYINSTANCE] as IDSRS on IDSR.[ID] = IDSRS.[IDSETREGISTERID]
            left outer join dbo.[SMARTQUERYINSTANCE] as SQ on IDSRS.[SMARTQUERYINSTANCEID] = SQ.[ID]
            left outer join dbo.[SMARTQUERYCATALOG] as SQC on SQ.[SMARTQUERYCATALOGID] = SQC.[ID]   
            --Site join

            left outer join dbo.[SITE] on IDSR.[SITEID] = [SITE].[ID]
            left outer join dbo.[RECORDTYPE] on IDSR.[RECORDTYPEID] = [RECORDTYPE].[ID]
            left outer join dbo.[QUERYCATEGORYCODE] on coalesce(AQ.[QUERYCATEGORYCODEID], SQ.[QUERYCATEGORYCODEID]) = [QUERYCATEGORYCODE].[ID]
        where 
            ([SQLFUNCTIONCATALOG].[ID] is null or 
                dbo.[UFN_INSTALLEDPRODUCTS_OPTIONALPRODUCTSINSTALLED] (
                [SQLFUNCTIONCATALOG].[SQLFUNCTIONSPECXML].query (
                      'declare namespace common="bb_appfx_commontypes";
                      /*/common:InstalledProductList'
                )
            ) = 1)
            and not exists(select [ID] from dbo.[IMPORTSELECTIONPROCESS] where [IDSETREGISTERID] = [IDSR].[ID])
            -- note that @CURRENTAPPUSERID is optional to maintain backwards compatibility

            and ((@ISSYSADMIN = 1) or (@CURRENTAPPUSERID is null) or (dbo.[UFN_SECURITY_APPUSER_GRANTED_SELECTION_IN_SYSTEMROLE](@CURRENTAPPUSERID, IDSR.[ID]) = 1))
            and
            (
                IDSR.[SITEID] is null 
                or
                (dbo.[UFN_APPUSER_ISSYSADMIN](@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.[UFN_SITESFORUSERONFEATURE](@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where [SITEID]=[IDSR].[SITEID] or ([SITEID] is null and [IDSR].[SITEID] is null)))
            )
            and 
            (
                @SITEFILTERMODE = 0
                or 
                IDSR.[SITEID] in (select [SITEID] from dbo.[UFN_SITE_BUILDDATALISTSITEFILTER](@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED))
            )
            and IDSR.[ISSYSTEM] = 0;

        return;

    end