USP_DATAFORMTEMPLATE_EDIT_SYSTEMROLE_CONSTIT_SECURITY_RINGFENCE

The save procedure used by the edit dataform template "System Role Constituent Security Group 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.
@CONSTIT_SECURITY_RINGFENCEID uniqueidentifier IN Group
@RECORDSECURITYMODE bit IN Record Security Mode

Definition

Copy


                    create procedure dbo.USP_DATAFORMTEMPLATE_EDIT_SYSTEMROLE_CONSTIT_SECURITY_RINGFENCE
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @CONSTIT_SECURITY_RINGFENCEID uniqueidentifier,
                        @RECORDSECURITYMODE bit 
                    ) as
                        set nocount on;

                        declare @CURRENTDATE datetime;
                        set @CURRENTDATE = getdate();

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


                        IF @CONSTIT_SECURITY_RINGFENCEID IS NOT NULL SET @RECORDSECURITYMODE =0;

                        begin try

                            update dbo.SYSTEMROLE SET RECORDSECURITYMODE=@RECORDSECURITYMODE, CHANGEDBYID=@CHANGEAGENTID WHERE ID= @ID;

                            if (select [ID] from dbo.[SYSTEMROLE_CONSTIT_SECURITY_ATTRIBUTE] where [ID] = @ID) is not null begin
                                if @CONSTIT_SECURITY_RINGFENCEID is not null begin
                                    update
                                        dbo.[SYSTEMROLE_CONSTIT_SECURITY_ATTRIBUTE]
                                    set
                                        [CONSTIT_SECURITY_ATTRIBUTEID] = @CONSTIT_SECURITY_RINGFENCEID,
                                        [CHANGEDBYID] = @CHANGEAGENTID,
                                        [DATECHANGED] = @CURRENTDATE
                                    where
                                        [ID] = @ID;
                                end
                                else begin
                                    exec dbo.USP_SYSTEMROLE_CONSTIT_SECURITY_ATTRIBUTE_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID;
                                end
                            end
                            else begin
                                if @CONSTIT_SECURITY_RINGFENCEID is not null begin
                                    insert into dbo.[SYSTEMROLE_CONSTIT_SECURITY_ATTRIBUTE]
                                    (
                                        [ID],
                                        [CONSTIT_SECURITY_ATTRIBUTEID],
                                        [ADDEDBYID],
                                        [CHANGEDBYID],
                                        [DATEADDED],
                                        [DATECHANGED]
                                    )
                                    values
                                    (
                                        @ID,
                                        @CONSTIT_SECURITY_RINGFENCEID,
                                        @CHANGEAGENTID,
                                        @CHANGEAGENTID,
                                        @CURRENTDATE,
                                        @CURRENTDATE
                                    );                                        
                                end
                            end
                        end try
                        begin catch
                            exec dbo.USP_RAISE_ERROR;
                            return 1;
                        end catch

                        return 0;