USP_RECORDOPERATION_ACKNOWLEDGEMENTPROCESSCLEARRESULTS

Executes the "Acknowledgement Process: Clear Results" record operation.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN Input parameter indicating the ID of the record being updated.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the update.

Definition

Copy


CREATE procedure dbo.[USP_RECORDOPERATION_ACKNOWLEDGEMENTPROCESSCLEARRESULTS]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null
)
as
  set nocount on;

  declare @BUSINESSPROCESSOUTPUTID uniqueidentifier;
  declare @CURRENTDATE datetime = getdate();

  begin try
    if @CHANGEAGENTID is null
      exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;

    --Clear the dates on the revenue letter records for this process...

    update dbo.[REVENUELETTER] set
      [PROCESSDATE] = null,
      [ACKNOWLEDGEDATE] = null,
      [ACKNOWLEDGEMENTPROCESSSTATUSID] = null,
      [CHANGEDBYID] = @CHANGEAGENTID,
      [DATECHANGED] = @CURRENTDATE
    where [ACKNOWLEDGEMENTPROCESSSTATUSID] = @ID;

    select
      @BUSINESSPROCESSOUTPUTID = [ID]
    from dbo.[BUSINESSPROCESSOUTPUT]
    where [BUSINESSPROCESSSTATUSID] = @ID
    and [TABLEKEY] = 'OUTPUT';

    if @BUSINESSPROCESSOUTPUTID is not null
      begin
        --Remove the output table since the results are invalid now and it can't be accessed anymore (this will drop the table too)...

        exec dbo.[USP_BUSINESSPROCESSOUTPUT_DELETEBYID_WITHCHANGEAGENTID] @BUSINESSPROCESSOUTPUTID, @CHANGEAGENTID;
      end

    --Remove the "acknowledged" date from this status row...

    exec dbo.[USP_BUSINESSPROCESSSTATUS_EXT_DELETEBYID_WITHCHANGEAGENTID] @ID, @CHANGEAGENTID;

    --Update the business process status row to show that results have been cleared...

    update dbo.[BUSINESSPROCESSSTATUS] set 
      [STATUSCODE] = 3,
      [CHANGEDBYID] = @CHANGEAGENTID,
      [DATECHANGED] = @CURRENTDATE
    where [ID] = @ID;
  end try

  begin catch
    exec dbo.[USP_RAISE_ERROR];
    return 1;
  end catch

  return 0;