USP_DATALIST_GETPAGES
Returns a list of pages available to the current user that contain the given data list
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@DATALISTID | uniqueidentifier | IN | |
@APPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_GETPAGES
(
@DATALISTID uniqueidentifier,
@APPUSERID uniqueidentifier
)
as
begin
set nocount on;
declare @IsSysAdmin bit;
select @IsSysAdmin = ISSYSADMIN
from dbo.APPUSER
where ID = @APPUSERID;
declare @RecordTypeID uniqueidentifier;
select @RecordTypeID = RECORDTYPEID from dbo.DATALISTCATALOG where ID = @DATALISTID;
with cte_pages (ID, PAGEDEFINITIONSPEC, EXPRESSIONDATAFORMID) as
(select p.ID, p.PAGEDEFINITIONSPEC,
p.[PAGEDEFINITIONSPEC].value('declare namespace bbspec="bb_appfx_pagedefinition";/bbspec:PageDefinitionSpec[1]/@ExpressionDataFormID','nvarchar(36)') AS [EXPRESSIONDATAFORMID]
from dbo.pagedefinitioncatalog p
where (@RecordTypeID is null or @RECORDTYPEID = p.CONTEXTRECORDTYPEID)
and exists ((select T.c.value('@ID', 'uniqueidentifier')
from PAGEDEFINITIONSPEC.nodes('declare namespace ns="bb_appfx_pagedefinition"; //ns:DataList') as T(c)
where T.c.value('@ID', 'uniqueidentifier') = @DATALISTID))
)
select ID, PAGEDEFINITIONSPEC
from cte_pages
where (EXPRESSIONDATAFORMID = '00000000-0000-0000-0000-000000000000')
or (@IsSysAdmin = 1)
or ((select top 1 GRANTORDENY
from dbo.V_SECURITY_SYSTEMROLEASSIGNMENT_USER_FORM
where APPUSERID = @APPUSERID
and DATAFORMINSTANCECATALOGID=EXPRESSIONDATAFORMID
order by GRANTORDENY ASC) = 1);
return 0;
end