UFN_QUERY_SMARTFIELD_LISTBUILDER

Return

Return Type
table

Parameters

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

Definition

Copy


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

  returns @SMARTFIELDS table 
  (
    [ID] uniqueidentifier,
    [SMARTFIELDNAME] nvarchar(100),
    [LASTRUNON] datetime,
    [RECORDTYPEID] uniqueidentifier,
    [RECORDTYPE] nvarchar(50),
    [SMARTFIELDTYPE] nvarchar(255),
    [DATATYPE] nvarchar(50),
    [SMARTFIELDPROCEDUREID] uniqueidentifier,
    [SMARTFIELDDATAFORMITEM] xml,
    [SYSTEMFIELD] bit,
    [SITES] nvarchar(255),
    [SMARTFIELDDESCRIPTION] nvarchar(4000),
    [LASTRUNDURATION] time,
    [LASTRUNBY_USERNAME] nvarchar(255),
    [LASTRUNRESULTCOUNT] int,
    [LASTRUNSTATUS] nvarchar(25),
    [INCLUDEDINWAREHOUSE] bit,
    [ELIGIBLEFORWAREHOUSE] bit,
    [SMARTFIELDCATEGORYCODEID] uniqueidentifier,
    [SMARTFIELDCATEGORY] nvarchar(255),
    [CREATEDBY_USERNAME] nvarchar(255),
    [CREATEDON] datetime,
    [SHOWNINFUNDRAISERONTHEGO] bit
  )

  with execute as caller

  as

  begin

    insert into @SMARTFIELDS (
      [ID], 
      [SMARTFIELDNAME], 
      [LASTRUNON], 
      [RECORDTYPEID], 
      [RECORDTYPE], 
      [SMARTFIELDTYPE], 
      [DATATYPE], 
      [SMARTFIELDPROCEDUREID], 
      [SMARTFIELDDATAFORMITEM], 
      [SYSTEMFIELD], 
      [SITES], 
      [SMARTFIELDDESCRIPTION], 
      [LASTRUNDURATION], 
      [LASTRUNBY_USERNAME], 
      [LASTRUNRESULTCOUNT], 
      [LASTRUNSTATUS],
      [INCLUDEDINWAREHOUSE],
      [ELIGIBLEFORWAREHOUSE],
      [SMARTFIELDCATEGORYCODEID],
      [SMARTFIELDCATEGORY],
      [CREATEDBY_USERNAME],
      [CREATEDON],
      [SHOWNINFUNDRAISERONTHEGO]
    )
    select 
      [SMARTFIELD].[ID],
      [SMARTFIELD].[NAME],
      [SMARTFIELD].[LASTRUNON],
      [RECORDTYPE].[ID] as [RECORDTYPEID],
      [RECORDTYPE].[NAME],
      [V_INSTALLED_SMARTFIELDCATALOG].[DISPLAYNAME] as [SMARTFIELDTYPE],
      [V_INSTALLED_SMARTFIELDCATALOG].[DATATYPE],
      [V_INSTALLED_SMARTFIELDCATALOG].[ID],
      coalesce([SMARTFIELD].[SMARTFIELDDATAFORMITEM], ''),
      [SMARTFIELD].[SYSTEMFIELD],
      case 
      when [SMARTFIELD].[SITEFILTERENABLEDFORINSTANCE] = 1 
        then (select 
            substring(dbo.[UDA_BUILDLIST]([SITE].[NAME]), 0, 255) as [SITES]
            from dbo.[SMARTFIELDSITE]
            inner join dbo.[SITE] on [SMARTFIELDSITE].[SITEID] = [SITE].[ID]
            where [SMARTFIELDSITE].[SMARTFIELDID] = [SMARTFIELD].[ID])
      else ''
      end as [SITES],
      [SMARTFIELD].[DESCRIPTION],
      cast([BPS].[ENDEDON] - [BPS].[STARTEDON] as time) as [LASTRUNDURATION],
      case when [STARTEDBY].[DISPLAYNAME] = '' then [STARTEDBY].[USERNAME] else [STARTEDBY].[DISPLAYNAME] end  as [LASTRUNBY_USERNAME],
      [BPS].[NUMBERPROCESSED] as [LASTRUNRESULTCOUNT],
      isnull([BPS].[STATUS], 'Not started') as [LASTRUNSTATUS],
      case             
        when [OLAPDATASOURCESMARTFIELD].[ID] is null then 0 
        else 1 
      end [INCLUDEDINWAREHOUSE],
      case 
        when [RECORDTYPE].[NAME] in ('Constituent','Financial Transaction Line Item')
          then 1
        else 0
      end [ELIGIBLEFORWAREHOUSE],         
      [SMARTFIELD].[SMARTFIELDCATEGORYCODEID], 
      [SMARTFIELDCATEGORYCODE].[DESCRIPTION] as [SMARTFIELDCATEGORY],
      [CREATEDBY].[USERNAME] as [CREATEDBY_USERNAME],
      [SMARTFIELD].[DATEADDED] [CREATEDON],
      [SMARTFIELD].[SHOWINFUNDRAISERONTHEGO] as [SHOWNINFUNDRAISERONTHEGO]
    from dbo.[SMARTFIELD]
    inner join dbo.[V_INSTALLED_SMARTFIELDCATALOG] on [V_INSTALLED_SMARTFIELDCATALOG].[ID] = [SMARTFIELD].[SMARTFIELDCATALOGID]
    inner join dbo.[RECORDTYPE] on [RECORDTYPE].[ID] = [V_INSTALLED_SMARTFIELDCATALOG].[RECORDTYPEID]
    left join dbo.[OLAPDATASOURCESMARTFIELD] on [OLAPDATASOURCESMARTFIELD].[SMARTFIELDID] = [SMARTFIELD].[ID] and [OLAPDATASOURCESMARTFIELD].[OLAPDATASOURCEID] = '75A36279-8531-4A5F-AFD6-483FE5D26037' --BBDW

    outer apply (
        select
          top 1
          [STARTEDON], 
          [STATUS], 
          [STARTEDBYUSERID],
          [ENDEDON],
          [NUMBERPROCESSED],
          [BUSINESSPROCESSPARAMETERSETID]
        from dbo.[BUSINESSPROCESSSTATUS] 
        where [BUSINESSPROCESSCATALOGID] = '2505C856-DEB9-415E-BD7C-D2FED90622F5' and [BUSINESSPROCESSPARAMETERSETID] = [SMARTFIELD].[ID]
        order by [STARTEDON] desc
      ) as [BPS]
    left join dbo.[APPUSER] [STARTEDBY] on [STARTEDBY].[ID] = [BPS].[STARTEDBYUSERID]
    left join dbo.[CHANGEAGENT] [CREATEDBY] on [CREATEDBY].[ID] = [SMARTFIELD].[ADDEDBYID]
    left join dbo.[SMARTFIELDCATEGORYCODE] on [SMARTFIELD].[SMARTFIELDCATEGORYCODEID] = [SMARTFIELDCATEGORYCODE].[ID]
    where exists (select top 1 1
          from dbo.[UFN_SITEID_MAPFROM_SMARTFIELDID]([SMARTFIELD].[ID]) as [SMARTFIELDSITE]
          where 
          -- Don't remove smart fields because of site if they don't have site filtering.

          dbo.[V_INSTALLED_SMARTFIELDCATALOG].[HASSITEFILTER] = 0 or
          dbo.[UFN_APPUSER_ISSYSADMIN](@CURRENTAPPUSERID) = 1 or 
          exists (select 1 from dbo.[UFN_SITESFORUSERONFEATURE](@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where [SITEID] = [SMARTFIELDSITE].[SITEID] or ([SITEID] is null and [SMARTFIELDSITE].[SITEID] is null))
          )
    and (coalesce(@SITEFILTERMODE, 0) = 0 or
          exists (select top 1 1
                  from dbo.[SMARTFIELDSITE]
                  inner join dbo.[UFN_SITE_BUILDDATALISTSITEFILTER] (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) as [VALIDSITE] on [SMARTFIELDSITE].[SITEID] = [VALIDSITE].[SITEID]
                  where [SMARTFIELDSITE].[SMARTFIELDID] = [SMARTFIELD].[ID]))
    order by [SMARTFIELD].[NAME], [RECORDTYPE].[NAME];

    return;

  end