USP_SYSTEMROLE_COPYRECORDOPERATIONPERMISSIONSTODATAFORM

Parameters

Parameter Parameter Type Mode Description
@NEWFEATUREID uniqueidentifier IN
@PERMISSIONEDFEATUREID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy

            create procedure dbo.USP_SYSTEMROLE_COPYRECORDOPERATIONPERMISSIONSTODATAFORM
            (
            @NEWFEATUREID uniqueidentifier,
            @PERMISSIONEDFEATUREID uniqueidentifier,
            @CHANGEAGENTID uniqueidentifier
            )
            as
            --Used for revisions
            set nocount on;

            begin try

                declare @CURRENTDATE datetime;

                set @CURRENTDATE = getdate();

                if @CHANGEAGENTID is null
                    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

                    insert into dbo.SYSTEMROLEPERM_DATAFORMINSTANCE
                    (
                    SYSTEMROLEID,
                    DATAFORMINSTANCECATALOGID,
                    GRANTORDENY,
                    ADDEDBYID,
                    CHANGEDBYID,
                    DATEADDED,
                    DATECHANGED
                    )
                    select
                    SYSTEMROLEID,
                    @NEWFEATUREID,
                    GRANTORDENY,
                    @CHANGEAGENTID,
                    @CHANGEAGENTID,
                    @CURRENTDATE,
                    @CURRENTDATE
                    from dbo.SYSTEMROLEPERM_RECORDOPERATION
                    where RECORDOPERATIONCATALOGID = @PERMISSIONEDFEATUREID
                      and not exists(select top 1 SUB.ID from dbo.SYSTEMROLEPERM_DATAFORMINSTANCE SUB
                        where SUB.DATAFORMINSTANCECATALOGID = @NEWFEATUREID  and SUB.SYSTEMROLEID = SYSTEMROLEPERM_RECORDOPERATION.SYSTEMROLEID)
                      and exists(select top 1 CAT.ID from dbo.DATAFORMINSTANCECATALOG CAT where CAT.ID = @NEWFEATUREID );
            end try
            begin catch
                exec dbo.USP_RAISE_ERROR;
            end catch