USP_DATALIST_SMARTFIELD
Returns a list of smart fields.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SITEFILTERMODE | tinyint | IN | Sites |
@SITESSELECTED | xml | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@SECURITYFEATUREID | uniqueidentifier | IN | Input parameter indicating the ID of the feature to use for site security checking. |
@SECURITYFEATURETYPE | tinyint | IN | Input parameter indicating the type of the feature to use for site security checking. |
Definition
Copy
CREATE procedure dbo.[USP_DATALIST_SMARTFIELD]
(
@SITEFILTERMODE tinyint = 0,
@SITESSELECTED xml = null,
@CURRENTAPPUSERID uniqueidentifier = null,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = 0
)
as
set nocount on;
select
[SMARTFIELD].[ID],
[SMARTFIELD].[NAME],
[SMARTFIELD].[LASTRUNON],
[RECORDTYPE].[NAME],
[V_INSTALLED_SMARTFIELDCATALOG].[DISPLAYNAME],
[V_INSTALLED_SMARTFIELDCATALOG].[DATATYPE],
[V_INSTALLED_SMARTFIELDCATALOG].[ID],
coalesce([SMARTFIELD].[SMARTFIELDDATAFORMITEM], ''),
[SMARTFIELD].[SYSTEMFIELD],
case
when [SMARTFIELD].[SITEFILTERENABLEDFORINSTANCE] = 1
then (select
dbo.[UDA_BUILDLIST]([SITE].[NAME]) 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]
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]
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.
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];