USP_DATAFORMTEMPLATE_EDIT_SYSTEMROLE_FEATUREPERMS3
The save procedure used by the edit dataform template "System Role Feature Permissions 3 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. |
@RECORDOPERATIONLIST | xml | IN | Record Operation Permission List |
@FORMLIST | xml | IN | Form Permission List |
@DATALISTLIST | xml | IN | Datalist Permission List |
@BUSINESSPROCESSLIST | xml | IN | Business Process Permission List |
@DASHBOARDLIST | xml | IN | Dashboard Permission List |
@SMARTQUERYLIST | xml | IN | Smart Query Permission List |
@KPILIST | xml | IN | KPI Permission List |
@QUERYVIEWLIST | xml | IN | Query View Permission List |
@REPORTLIST | xml | IN | Report Permission List |
@SYSTEMPRIVILEGELIST | xml | IN | Report Permission List |
@SEARCHLISTLIST | xml | IN | Search List Permission List |
@MAPENTITYLIST | xml | IN | Map Entity Permission List |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_SYSTEMROLE_FEATUREPERMS3(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier =null,
@RECORDOPERATIONLIST xml ,
@FORMLIST xml,
@DATALISTLIST xml,
@BUSINESSPROCESSLIST xml,
@DASHBOARDLIST xml,
@SMARTQUERYLIST xml,
@KPILIST xml,
@QUERYVIEWLIST xml,
@REPORTLIST xml,
@SYSTEMPRIVILEGELIST xml,
@SEARCHLISTLIST xml,
@MAPENTITYLIST 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;
if @RECORDOPERATIONLIST is not null
exec dbo.USP_SYSTEMROLE_GETRECORDOPLIST_UPDATEFROMXML @id, @RECORDOPERATIONLIST, @CHANGEAGENTID;
if @FORMLIST is not null
exec dbo.USP_SYSTEMROLE_GETFORMLIST_UPDATEFROMXML @id, @FORMLIST, @CHANGEAGENTID;
if @DATALISTLIST is not null
exec dbo.USP_SYSTEMROLE_GETDATALISTLIST_UPDATEFROMXML @id, @DATALISTLIST, @CHANGEAGENTID;
if @BUSINESSPROCESSLIST is not null
exec dbo.USP_SYSTEMROLE_GETBUSINESSPROCESSLIST_UPDATEFROMXML @id, @BUSINESSPROCESSLIST, @CHANGEAGENTID;
if @DASHBOARDLIST is not null
exec dbo.USP_SYSTEMROLE_GETDASHBOARDLIST_UPDATEFROMXML @id, @DASHBOARDLIST, @CHANGEAGENTID;
if @SMARTQUERYLIST is not null
exec dbo.USP_SYSTEMROLE_GETSMARTQUERYLIST_UPDATEFROMXML @id, @SMARTQUERYLIST, @CHANGEAGENTID;
if @KPILIST is not null
exec dbo.USP_SYSTEMROLE_GETKPILIST_UPDATEFROMXML @id, @KPILIST, @CHANGEAGENTID;
-- Bug 25413 - AdamBu - Smart field instance security is actually handled by granting
-- rights to their underlying query views. Preserve the smart field permissions,
-- so that they don't get overwritten by the changes to other query views.
declare @QUERYVIEWPERMS table(
GRANTORDENY bit,
ID uniqueidentifier,
QUERYVIEWCATALOGID uniqueidentifier
);
insert into @QUERYVIEWPERMS (
GRANTORDENY,
ID,
QUERYVIEWCATALOGID
)
select
[GRANTORDENY],
[ID],
[QUERYVIEWCATALOGID]
from UFN_SYSTEMROLE_GETQUERYVIEWLIST_FROMITEMLISTXML(@QUERYVIEWLIST)
union
select
[GRANTORDENY],
[ID],
[QUERYVIEWCATALOGID]
from dbo.UFN_SYSTEMROLE_GETSMARTFIELDINSTANCELIST(@ID);
set @QUERYVIEWLIST =
(
select *
from @QUERYVIEWPERMS
for xml raw('ITEM'),type,elements,root('QUERYVIEWLIST'),BINARY BASE64
);
if @QUERYVIEWLIST is null
begin
set @QUERYVIEWLIST = '<QUERYVIEWLIST></QUERYVIEWLIST>'
end
--End bug fix
if @QUERYVIEWLIST is not null
exec dbo.USP_SYSTEMROLE_GETQUERYVIEWLIST_UPDATEFROMXML @id, @QUERYVIEWLIST, @CHANGEAGENTID;
if @REPORTLIST is not null
exec dbo.USP_SYSTEMROLE_GETREPORTLIST_UPDATEFROMXML @id, @REPORTLIST, @CHANGEAGENTID;
if @SYSTEMPRIVILEGELIST is not null
exec dbo.USP_SYSTEMROLE_GETSYSTEMPRIVILEGELIST_UPDATEFROMXML @id, @SYSTEMPRIVILEGELIST, @CHANGEAGENTID;
if @SEARCHLISTLIST is not null
exec dbo.USP_SYSTEMROLE_GETSEARCHLISTLIST_UPDATEFROMXML @id, @SEARCHLISTLIST, @CHANGEAGENTID;
if @MAPENTITYLIST is not null
exec dbo.USP_SYSTEMROLE_GETMAPENTITYLIST_UPDATEFROMXML @id, @MAPENTITYLIST, @CHANGEAGENTID;
return 0;
END TRY
BEGIN CATCH
exec dbo.USP_RAISE_ERROR;
return 1;
END CATCH