USP_DATAFORMTEMPLATE_EDIT_GENERATESTEPUPDATEBATCHPROCESS

The save procedure used by the edit dataform template "Generate Step Update Batch Process 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.
@NAME nvarchar(100) IN Name
@IDSETREGISTERID uniqueidentifier IN Step selection
@BATCHTEMPLATEID uniqueidentifier IN Batch template
@BATCHNUMBER nvarchar(100) IN Batch number
@OVERRIDEBATCHNUMBER bit IN Override
@DESCRIPTION nvarchar(1000) IN Description
@OWNERID uniqueidentifier IN Owner
@AUTOSAVEONROWCHANGE bit IN Enable auto save
@FIELDSTOUPDATE xml IN Updates
@OFFSET smallint IN move target dates
@MOVECODE tinyint IN Move target dates
@DATEVALUEUNITCODE tinyint IN Date value unit code

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_GENERATESTEPUPDATEBATCHPROCESS
(
  @ID uniqueidentifier,
  @CURRENTAPPUSERID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @NAME nvarchar(100),
  @IDSETREGISTERID uniqueidentifier,
  @BATCHTEMPLATEID uniqueidentifier,
  @BATCHNUMBER nvarchar(100),
  @OVERRIDEBATCHNUMBER bit,
  @DESCRIPTION nvarchar(1000),
  @OWNERID uniqueidentifier,
  @AUTOSAVEONROWCHANGE bit,
  @FIELDSTOUPDATE xml,
  @OFFSET smallint,
  @MOVECODE tinyint,
  @DATEVALUEUNITCODE tinyint
)
as

set nocount on;

if @ID is null
    set @ID = newid();

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

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

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

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

if @OWNERID is null
  set @APPUSERID = @CURRENTAPPUSERID;
else
  set @APPUSERID = @OWNERID;

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 
    ID = @ID,
    NAME = @NAME,
    IDSETREGISTERID = @IDSETREGISTERID,
    BATCHTEMPLATEID = @BATCHTEMPLATEID,
    BATCHNUMBER = @BATCHNUMBER,
    OVERRIDEBATCHNUMBER = @OVERRIDEBATCHNUMBER,
    DESCRIPTION = @DESCRIPTION,
    APPUSERID = @APPUSERID,
    AUTOSAVEONROWCHANGE = @AUTOSAVEONROWCHANGE,
    FIELDSTOUPDATE = @FIELDSTOUPDATE,
    OFFSET = @OFFSET,
    MOVECODE = @MOVECODE,
    DATEVALUEUNITCODE = @DATEVALUEUNITCODE,
    CHANGEDBYID = @CHANGEAGENTID,
    DATECHANGED = @CURRENTDATE
  where GENERATESTEPUPDATEBATCHPROCESS.ID = @ID

end try

begin catch
    exec dbo.USP_RAISE_ERROR
    return 1
end catch

return 0