USP_DATAFORMTEMPLATE_EDIT_SYSTEMROLE_SMARTFIELDINSTANCES
The save procedure used by the edit dataform template "System Role Smart Field Instance Edit Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@SMARTFIELDINSTANCELIST | xml | IN | Smart field instances |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_SYSTEMROLE_SMARTFIELDINSTANCES
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@SMARTFIELDINSTANCELIST xml
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
begin try
update dbo.SYSTEMROLE set CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID;
set @SMARTFIELDINSTANCELIST = (
select XML.ID, QUERYVIEWCATALOG.ID QUERYVIEWCATALOGID, XML.SMARTFIELDID, XML.GRANTORDENY
from dbo.UFN_SYSTEMROLE_GETSMARTFIELDINSTANCELIST_FROMITEMLISTXML(@SMARTFIELDINSTANCELIST) XML
inner join SMARTFIELD on SMARTFIELD.ID=XML.SMARTFIELDID
inner join QUERYVIEWCATALOG on upper(QUERYVIEWCATALOG.OBJECTNAME) = dbo.UFN_SMARTFIELD_GETQUERYVIEWOBJECTNAME(SMARTFIELD.ID)
for xml raw('ITEM'),type,elements,root('SMARTFIELDINSTANCELIST'),BINARY BASE64
);
exec dbo.USP_SYSTEMROLE_GETSMARTFIELDINSTANCELIST_UPDATEFROMXML @ID, @SMARTFIELDINSTANCELIST, @CHANGEAGENTID;
if exists (select 1 from dbo.[OLAPDATASOURCESMARTFIELD])
exec dbo.[USP_OLAP_COPYSMARTFIELDQUERYVIEWPERMISSIONS] @ID;
return 0;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch;