USP_SYSTEMROLE_COPYDATAFORMPERMISSIONSTOBATCH

Copies role permissions from a data form to a batch.

Parameters

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

Definition

Copy


create procedure dbo.USP_SYSTEMROLE_COPYDATAFORMPERMISSIONSTOBATCH
(
    @NEWFEATUREID uniqueidentifier,
    @PERMISSIONEDFEATUREID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier
)
as

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_BATCHTYPE
    (
        SYSTEMROLEID,
        BATCHTYPECATALOGID,
        GRANTORDENY,
        ADDEDBYID,
        CHANGEDBYID,
        DATEADDED,
        DATECHANGED
    )
    select
        SYSTEMROLEID,
        @NEWFEATUREID,
        GRANTORDENY,
        @CHANGEAGENTID,
        @CHANGEAGENTID,
        @CURRENTDATE,
        @CURRENTDATE
    from 
        dbo.SYSTEMROLEPERM_DATAFORMINSTANCE
    where 
        DATAFORMINSTANCECATALOGID = @PERMISSIONEDFEATUREID
        and not exists(
            select 
                top 1 SUB.ID 
            from 
                dbo.SYSTEMROLEPERM_BATCHTYPE SUB
            where 
                SUB.BATCHTYPECATALOGID =@NEWFEATUREID  
                and SUB.SYSTEMROLEID = SYSTEMROLEPERM_DATAFORMINSTANCE.SYSTEMROLEID)
        and exists(
            select 
                top 1 CAT.ID 
            from 
                BATCHTYPECATALOG CAT 
            where 
                CAT.ID = @NEWFEATUREID );

end try

begin catch
    exec dbo.USP_RAISE_ERROR;
end catch