USP_DATAFORMTEMPLATE_VIEW_MARKETINGSELECTIONSEARCHRESULTS

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@DATALOADED bit INOUT
@NAME nvarchar(300) INOUT
@DESCRIPTION nvarchar(1024) INOUT
@RECORDTYPE nvarchar(50) INOUT
@RECORDTYPEID uniqueidentifier INOUT
@QUERYVIEWID uniqueidentifier INOUT
@QUERYID uniqueidentifier INOUT
@QUERYTYPECODE tinyint INOUT
@QUERYTYPE nvarchar(20) INOUT
@USERCANEDIT bit INOUT
@CURRENTAPPUSERID uniqueidentifier IN

Definition

Copy

CREATE procedure dbo.[USP_DATAFORMTEMPLATE_VIEW_MARKETINGSELECTIONSEARCHRESULTS]
(
  @ID uniqueidentifier,
  @DATALOADED bit = 0 output,
  @NAME nvarchar(300) = null output,
  @DESCRIPTION nvarchar(1024) = null output,
  @RECORDTYPE nvarchar(50) = null output,
  @RECORDTYPEID uniqueidentifier = null output,
  @QUERYVIEWID uniqueidentifier = null output,
  @QUERYID uniqueidentifier = null output,
  @QUERYTYPECODE tinyint = null output,
  @QUERYTYPE nvarchar(20) = null output,
  @USERCANEDIT bit = null output,
  @CURRENTAPPUSERID uniqueidentifier = null
)
as
  set nocount on;

  declare @ISSYSADMIN bit;

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

  -- be sure to set this, in case the select returns no rows
  set @DATALOADED = 0;

  select distinct top 1
    @DATALOADED = 1,
    @NAME = [IDSETREGISTER].[NAME],
    @DESCRIPTION = [IDSETREGISTER].[DESCRIPTION],
    @RECORDTYPE = [RECORDTYPE].[NAME],
    @RECORDTYPEID = [RECORDTYPE].[ID],
    @QUERYVIEWID = coalesce([ADHOCQUERY].[QUERYVIEWCATALOGID], [SMARTQUERYINSTANCE].[SMARTQUERYCATALOGID], [MKTSEGMENTLIST].[QUERYVIEWCATALOGID]),
    @QUERYID = isnull([ADHOCQUERY].[ID], [SMARTQUERYINSTANCE].[ID]),
    @QUERYTYPECODE = (case when [ADHOCQUERY].[ID] is not null then 1 when [SMARTQUERYINSTANCE].[ID] is not null then 2 else 0 end),
    @QUERYTYPE = (case when [ADHOCQUERY].[ID] is not null then 'Ad-hoc' when [SMARTQUERYINSTANCE].[ID] is not null then 'Smart' else 'Other' end),
    @USERCANEDIT = (case
                      when @ISSYSADMIN = 1 then cast(1 as bit)
                      when [ADHOCQUERY].[ID] is not null and dbo.[UFN_SECURITY_APPUSER_GRANTED_ADHOCQUERYINSTANCEEDIT_IN_SYSTEMROLE](@CURRENTAPPUSERID, [ADHOCQUERY].[ID]) = 1 then cast(1 as bit)
                      when [SMARTQUERYINSTANCE].[ID] is not null and ([SMARTQUERYINSTANCE].[OTHERSCANMODIFY] = 1 or [SMARTQUERYINSTANCE].[OWNERID] = @CURRENTAPPUSERID) then cast(1 as bit)
                      else cast(0 as bit)
                    end)
  from dbo.[IDSETREGISTER]
  inner join dbo.[RECORDTYPE] on [RECORDTYPE].[ID] = [IDSETREGISTER].[RECORDTYPEID]
  left join dbo.[IDSETREGISTERADHOCQUERY] on [IDSETREGISTERADHOCQUERY].[IDSETREGISTERID] = [IDSETREGISTER].[ID]
  left join dbo.[ADHOCQUERY] on [ADHOCQUERY].[ID] = [IDSETREGISTERADHOCQUERY].[ADHOCQUERYID]
  left join dbo.[IDSETREGISTERSMARTQUERYINSTANCE] on [IDSETREGISTERSMARTQUERYINSTANCE].[IDSETREGISTERID] = [IDSETREGISTER].[ID]
  left join dbo.[SMARTQUERYINSTANCE] on [SMARTQUERYINSTANCE].[ID] = [IDSETREGISTERSMARTQUERYINSTANCE].[SMARTQUERYINSTANCEID]
  left join dbo.[MKTSEGMENTLIST] as [MKTSEGMENTLIST] on [MKTSEGMENTLIST].[STANDARDIDSETID] = [IDSETREGISTER].[ID] or [MKTSEGMENTLIST].[DUPLICATEIDSETID] = [IDSETREGISTER].[ID]
  left join dbo.[QUERYVIEWCATALOG] on [QUERYVIEWCATALOG].[ID] = [ADHOCQUERY].[QUERYVIEWCATALOGID]
  where [IDSETREGISTER].[ID] = @ID
  and [IDSETREGISTER].[STATIC] = 1
  and [IDSETREGISTER].[ISSYSTEM] = 0
  and [IDSETREGISTER].[ACTIVE] = 1
  and ([QUERYVIEWCATALOG].[ID] is null or [QUERYVIEWCATALOG].[ROOTOBJECT] = 1);

  return 0;