USP_BATCHDECEASEDFINDER_DELETEBATCH

Executes the "DeceasedRecordFinder Batch: Delete" record operation.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN Input parameter indicating the ID of the record being deleted.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the delete.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.

Definition

Copy


                    CREATE procedure dbo.USP_BATCHDECEASEDFINDER_DELETEBATCH
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier,
                        @CURRENTAPPUSERID uniqueidentifier = null
                    )
                    as
                        set nocount on;

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

                            declare @CONTEXTCACHE varbinary(128);
                            set @CONTEXTCACHE = CONTEXT_INFO();
                            declare @LOCKNAME nvarchar(36);
                            set @LOCKNAME = upper(cast(@ID as nvarchar(36)));
                            declare @RESULT int;

                            exec @RESULT = sp_getapplock @RESOURCE=@LOCKNAME, @LOCKMODE='Exclusive', @LOCKOWNER='Session', @LOCKTIMEOUT=0;

                            if @RESULT = 0
                            begin
                                if @CHANGEAGENTID is null
                                    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

                                set CONTEXT_INFO @CHANGEAGENTID;

                                if @CURRENTAPPUSERID is not null
                                begin
                                    declare @GRANTED bit;
                                    select @GRANTED=dbo.UFN_SECURITY_APPUSER_GRANTED_BATCHOWNER(@CURRENTAPPUSERID, @ID);
                                    if @GRANTED = 0
                                        raiserror('You do not have permission to delete this batch.', 13, 1);
                                end;

                                delete from dbo.BATCHDECEASEDFINDER where BATCHID = @ID;

                                exec sp_releaseapplock @Resource=@lockName, @LockOwner='Session';

                                if not @contextCache is null
                                    set CONTEXT_INFO @contextCache
                            end;
                            else
                                raiserror('This batch is in use and cannot be deleted.', 13, 1);
                        end try
                        begin catch
                            exec dbo.USP_RAISE_ERROR;
                            return 1;
                        end catch

                        return 0;