USP_QUERYVIEW_GETIDSETS

Retrieves id set information for a given query view type.

Parameters

Parameter Parameter Type Mode Description
@OBJECTNAME nvarchar(128) IN
@APPUSERID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_QUERYVIEW_GETIDSETS
(
  @OBJECTNAME nvarchar(128),
  @APPUSERID uniqueidentifier = null
)
with execute as caller
as
  set nocount on;

  declare @RECORDTYPEID uniqueidentifier;
  declare @MARTKEY nvarchar(255);
  select @RECORDTYPEID = RECORDTYPEID, @MARTKEY = MARTKEY from QUERYVIEWCATALOG where OBJECTNAME = @OBJECTNAME;

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

  if @MARTKEY is null 
  begin
    select     
      IDSETREGISTER.ID, 
      IDSETREGISTER.NAME, 
      IDSETREGISTER.DESCRIPTION, 
      IDSETREGISTER.DBOBJECTNAME,     
      IDSETREGISTER.OBJECTTYPE, 
      IDSETREGISTERADHOCQUERY.ADHOCQUERYID, 
      ADHOCQUERY.QUERYVIEWCATALOGID,      
      case 
        when IMPORTSELECTIONPROCESSCATEGORYCODE.DESCRIPTION is not null then
          IMPORTSELECTIONPROCESSCATEGORYCODE.DESCRIPTION
        when ADHOCQUERYCATEGORYCODE.DESCRIPTION is null then 
          SMARTQUERYINSTANCECATEGORYCODE.DESCRIPTION
        else ADHOCQUERYCATEGORYCODE.DESCRIPTION
      end as CATEGORY
    from dbo.IDSETREGISTER
    left join dbo.SQLFUNCTIONCATALOG on SQLFUNCTIONCATALOG.FUNCTIONNAME = IDSETREGISTER.DBOBJECTNAME
    left join dbo.IDSETREGISTERADHOCQUERY on IDSETREGISTERADHOCQUERY.IDSETREGISTERID = IDSETREGISTER.ID
    left join dbo.IMPORTSELECTIONPROCESS on IMPORTSELECTIONPROCESS.IDSETREGISTERID = IDSETREGISTER.ID
    left join dbo.ADHOCQUERY on IDSETREGISTERADHOCQUERY.ADHOCQUERYID = ADHOCQUERY.ID
    left join dbo.IDSETREGISTERSMARTQUERYINSTANCE on IDSETREGISTERSMARTQUERYINSTANCE.IDSETREGISTERID = IDSETREGISTER.ID
    left join dbo.SMARTQUERYINSTANCE on IDSETREGISTERSMARTQUERYINSTANCE.SMARTQUERYINSTANCEID = SMARTQUERYINSTANCE.ID
    left join dbo.QUERYCATEGORYCODE as IMPORTSELECTIONPROCESSCATEGORYCODE on IMPORTSELECTIONPROCESS.QUERYCATEGORYCODEID = IMPORTSELECTIONPROCESSCATEGORYCODE.ID
    left join dbo.QUERYCATEGORYCODE as ADHOCQUERYCATEGORYCODE on ADHOCQUERY.QUERYCATEGORYCODEID = ADHOCQUERYCATEGORYCODE.ID
    left join dbo.QUERYCATEGORYCODE as SMARTQUERYINSTANCECATEGORYCODE on SMARTQUERYINSTANCE.QUERYCATEGORYCODEID = SMARTQUERYINSTANCECATEGORYCODE.ID
    where (SQLFUNCTIONCATALOG.ID is null
        or dbo.UFN_INSTALLEDPRODUCTS_OPTIONALPRODUCTSINSTALLED (
            SQLFUNCTIONCATALOG.SQLFUNCTIONSPECXML.query (
                'declare namespace common="bb_appfx_commontypes";
                /*/common:InstalledProductList'
            )
          ) = 1)
    and IDSETREGISTER.USEINQUERYDESIGNER = 1 
    and IDSETREGISTER.RECORDTYPEID = @RECORDTYPEID
    and (@APPUSERID is null or @ISSYSADMIN = 1 or
          ((IDSETREGISTER.SITEID is null or IDSETREGISTER.SITEID in (select SITEID from dbo.UFN_SITESFORUSER(@APPUSERID)))
          and (dbo.UFN_SECURITY_APPUSER_GRANTED_SELECTION_IN_SYSTEMROLE(@APPUSERID, IDSETREGISTER.ID) = 1)));    
  end
  else
  begin

    declare @INCLUDESELECTIONS bit = (select INCLUDESELECTIONS from OLAPDATASOURCE where MARTKEY = @MARTKEY)

    select     
      IDSETREGISTER.ID, 
      IDSETREGISTER.NAME, 
      IDSETREGISTER.DESCRIPTION, 
      IDSETREGISTER.DBOBJECTNAME,     
      IDSETREGISTER.OBJECTTYPE, 
      IDSETREGISTERADHOCQUERY.ADHOCQUERYID, 
      ADHOCQUERY.QUERYVIEWCATALOGID,
      case 
        when IMPORTSELECTIONPROCESSCATEGORYCODE.DESCRIPTION is not null then
          IMPORTSELECTIONPROCESSCATEGORYCODE.DESCRIPTION
        when ADHOCQUERYCATEGORYCODE.DESCRIPTION is null then 
          SMARTQUERYINSTANCECATEGORYCODE.DESCRIPTION
        else ADHOCQUERYCATEGORYCODE.DESCRIPTION
      end as CATEGORY
    from dbo.IDSETREGISTER    
    left join dbo.IDSETREGISTERADHOCQUERY on IDSETREGISTERADHOCQUERY.IDSETREGISTERID = IDSETREGISTER.ID
    left join dbo.ADHOCQUERY on IDSETREGISTERADHOCQUERY.ADHOCQUERYID = ADHOCQUERY.ID
    left join dbo.QUERYCATEGORYCODE as ADHOCQUERYCATEGORYCODE on ADHOCQUERY.QUERYCATEGORYCODEID = ADHOCQUERYCATEGORYCODE.ID
    left join dbo.QUERYVIEWCATALOG on QUERYVIEWCATALOG.ID = ADHOCQUERY.QUERYVIEWCATALOGID
    left join dbo.SQLFUNCTIONCATALOG on SQLFUNCTIONCATALOG.FUNCTIONNAME = IDSETREGISTER.DBOBJECTNAME
    left join dbo.IMPORTSELECTIONPROCESS on IMPORTSELECTIONPROCESS.IDSETREGISTERID = IDSETREGISTER.ID
    left join dbo.QUERYCATEGORYCODE as IMPORTSELECTIONPROCESSCATEGORYCODE on IMPORTSELECTIONPROCESS.QUERYCATEGORYCODEID = IMPORTSELECTIONPROCESSCATEGORYCODE.ID
    left join dbo.IDSETREGISTERMERGE on IDSETREGISTERMERGE.IDSETREGISTERID = IDSETREGISTER.ID
    left join dbo.IDSETREGISTER as MERGESETREGISTER on IDSETREGISTERMERGE.SELECTION1ID = MERGESETREGISTER.ID
    left join dbo.IDSETREGISTERADHOCQUERY as MERGESETREGISTERQUERY on MERGESETREGISTERQUERY.IDSETREGISTERID = MERGESETREGISTER.ID
    left join dbo.ADHOCQUERY as MERGEQUERY on MERGESETREGISTERQUERY.ADHOCQUERYID = MERGEQUERY.ID
    left join dbo.QUERYVIEWCATALOG as MERGEQUERYVIEWCATALOG on MERGEQUERYVIEWCATALOG.ID = MERGEQUERY.QUERYVIEWCATALOGID
    left join dbo.IDSETREGISTERSMARTQUERYINSTANCE on IDSETREGISTERSMARTQUERYINSTANCE.IDSETREGISTERID = IDSETREGISTER.ID
    left join dbo.SMARTQUERYINSTANCE on IDSETREGISTERSMARTQUERYINSTANCE.SMARTQUERYINSTANCEID = SMARTQUERYINSTANCE.ID
    left join dbo.QUERYCATEGORYCODE as SMARTQUERYINSTANCECATEGORYCODE on SMARTQUERYINSTANCE.QUERYCATEGORYCODEID = SMARTQUERYINSTANCECATEGORYCODE.ID
    left join dbo.SMARTQUERYCATALOG on SMARTQUERYCATALOG.ID = SMARTQUERYINSTANCE.SMARTQUERYCATALOGID    

    where 
      (SQLFUNCTIONCATALOG.ID is null
          or dbo.UFN_INSTALLEDPRODUCTS_OPTIONALPRODUCTSINSTALLED (
              SQLFUNCTIONCATALOG.SQLFUNCTIONSPECXML.query (
                  'declare namespace common="bb_appfx_commontypes";
                  /*/common:InstalledProductList'
              )
            ) = 1)
      and IDSETREGISTER.USEINQUERYDESIGNER = 1 
      and (IDSETREGISTER.STATIC = 1 or IDSETREGISTERMERGE.IDSETREGISTERID is not null)
      and IDSETREGISTER.RECORDTYPEID = @RECORDTYPEID
      and (@APPUSERID is null or @ISSYSADMIN = 1 or
          ((IDSETREGISTER.SITEID is null or IDSETREGISTER.SITEID in (select SITEID from dbo.UFN_SITESFORUSER(@APPUSERID)))
          and (dbo.UFN_SECURITY_APPUSER_GRANTED_SELECTION_IN_SYSTEMROLE(@APPUSERID, IDSETREGISTER.ID) = 1)))
      and (IDSETREGISTERADHOCQUERY.ID is not null or IMPORTSELECTIONPROCESS.ID is not null or IDSETREGISTERMERGE.IDSETREGISTERID is not null or IDSETREGISTERSMARTQUERYINSTANCE.IDSETREGISTERID is not null)
      and (@INCLUDESELECTIONS = 1 or (QUERYVIEWCATALOG.MARTKEY = @MARTKEY or MERGEQUERYVIEWCATALOG.MARTKEY = @MARTKEY or SMARTQUERYCATALOG.MARTKEY = @MARTKEY));

end