USP_DATAFORMTEMPLATE_EDIT_GENERATESTEPUPDATEBATCHPREPROCESS

The save procedure used by the edit dataform template "Generate Step Update Batch Preprocess Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@IDSETREGISTERID uniqueidentifier IN Step selection
@FIELDSTOUPDATE xml IN Updates
@OFFSET smallint IN move target dates
@MOVECODE tinyint IN Move target dates
@DATEVALUEUNITCODE tinyint IN Date value unit code
@BATCHNUMBER nvarchar(100) IN Batch number
@OVERRIDEBATCHNUMBER bit IN Override

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_GENERATESTEPUPDATEBATCHPREPROCESS
(
  @ID uniqueidentifier,
  @CURRENTAPPUSERID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @IDSETREGISTERID uniqueidentifier,
  @FIELDSTOUPDATE xml,
  @OFFSET smallint,
  @MOVECODE tinyint,
  @DATEVALUEUNITCODE tinyint,
  @BATCHNUMBER nvarchar(100),
  @OVERRIDEBATCHNUMBER bit
)
as

  set nocount on;

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

  declare @CURRENTDATE datetime
  set @CURRENTDATE = getdate()

  declare @BATCHTEMPLATEID uniqueidentifier;
  declare @USENUMBERINGSCHEME bit;
  declare @BATCHNUMBERINGSCHEMEID uniqueidentifier;
  declare @BATCHWORKFLOWSTATEID uniqueidentifier;

  select @BATCHTEMPLATEID = BATCHTEMPLATEID from dbo.GENERATESTEPUPDATEBATCHPROCESS where ID = @ID;

  if (@OVERRIDEBATCHNUMBER = 0 or @BATCHNUMBER is null or len(@BATCHNUMBER) = 0)
    set @USENUMBERINGSCHEME = 1;

  if (@USENUMBERINGSCHEME = 1)
  begin
    select 
      @BATCHNUMBERINGSCHEMEID = BATCHNUMBERINGSCHEMEID
    from dbo.BATCHTEMPLATE
    where ID = @BATCHTEMPLATEID

    if @BATCHNUMBERINGSCHEMEID is null
      raiserror('ERR_NUMBERINGSCHEME_NOTDEFINED', 13, 1);
  end
  else
  begin
    if dbo.UFN_SECURITY_APPUSER_GRANTED_CHANGEBATCHNUMBER(@CURRENTAPPUSERID, @BATCHTEMPLATEID) = 0
      raiserror('ERR_CANNOTCUSTOMIZE_NUMBER', 13, 1);
    if (select count(1) from dbo.BATCH where BATCHNUMBER = @BATCHNUMBER and BATCHTEMPLATEID = @BATCHTEMPLATEID) > 0
      raiserror('ERR_DUPLICATE_NUMBER', 13, 1);
  end

  select @BATCHWORKFLOWSTATEID = BATCHWORKFLOWSTATE.ID 
  from dbo.BATCHTEMPLATE 
  inner join dbo.BATCHWORKFLOW on BATCHTEMPLATE.BATCHWORKFLOWID = BATCHWORKFLOW.ID
  inner join dbo.BATCHWORKFLOWSTATE on BATCHWORKFLOW.ID = BATCHWORKFLOWSTATE.BATCHWORKFLOWID
  where BATCHTEMPLATE.ID = @BATCHTEMPLATEID
  and ISINITIALSTATE = 1;

  if @BATCHWORKFLOWSTATEID is null
    raiserror('ERR_INVALIDWORKFLOW_DEFINED', 13, 1);

  begin try
    update dbo.GENERATESTEPUPDATEBATCHPROCESS set
      IDSETREGISTERID = @IDSETREGISTERID,
      FIELDSTOUPDATE = @FIELDSTOUPDATE,
      OFFSET = @OFFSET,
      MOVECODE = @MOVECODE,
      DATEVALUEUNITCODE = @DATEVALUEUNITCODE,
      CHANGEDBYID = @CHANGEAGENTID,
      DATECHANGED = @CURRENTDATE,
      BATCHNUMBER = @BATCHNUMBER,
      OVERRIDEBATCHNUMBER = @OVERRIDEBATCHNUMBER
    where ID = @ID

  end try
  begin catch
    exec dbo.USP_RAISE_ERROR
    return 1
  end catch

return 0;