USP_DATAFORMTEMPLATE_ADD_GENERATESTEPUPDATEBATCHPROCESS

The save procedure used by the add dataform template "Generate Step Update Batch Process Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@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
@DESCRIPTION nvarchar(1000) IN Description
@IDSETREGISTERID uniqueidentifier IN Step selection
@BATCHTEMPLATEID uniqueidentifier IN Batch template
@BATCHNUMBER nvarchar(100) IN Batch number
@OVERRIDEBATCHNUMBER bit IN Override
@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_ADD_GENERATESTEPUPDATEBATCHPROCESS
(
  @ID uniqueidentifier = null output,
  @CURRENTAPPUSERID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @NAME nvarchar(100),
  @DESCRIPTION nvarchar(1000) = '',
  @IDSETREGISTERID uniqueidentifier,
  @BATCHTEMPLATEID uniqueidentifier,
  @BATCHNUMBER nvarchar(100) = '',
  @OVERRIDEBATCHNUMBER bit = 0,
  @OWNERID uniqueidentifier = null,
  @AUTOSAVEONROWCHANGE bit = 0,
  @FIELDSTOUPDATE xml = null,
  @OFFSET smallint = 0,
  @MOVECODE tinyint = 0,
  @DATEVALUEUNITCODE tinyint = 0
)
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
  insert into dbo.GENERATESTEPUPDATEBATCHPROCESS
    (ID, NAME, IDSETREGISTERID, BATCHTEMPLATEID, BATCHNUMBER, OVERRIDEBATCHNUMBER, DESCRIPTION, APPUSERID, AUTOSAVEONROWCHANGE, 
     FIELDSTOUPDATE, OFFSET, MOVECODE, DATEVALUEUNITCODE,
     ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
    values
    (@ID, @NAME, @IDSETREGISTERID, @BATCHTEMPLATEID, @BATCHNUMBER, @OVERRIDEBATCHNUMBER, @DESCRIPTION, @APPUSERID, @AUTOSAVEONROWCHANGE,  
     @FIELDSTOUPDATE, @OFFSET, @MOVECODE, @DATEVALUEUNITCODE,
     @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)

    exec dbo.USP_BUSINESSPROCESSINSTANCE_ADD @CHANGEAGENTID = @CHANGEAGENTID
      @BUSINESSPROCESSCATALOGID = 'd6aa3069-2c4a-4492-bb40-85e50c948ab9'
      @BUSINESSPROCESSPARAMETERSETID = @ID
      @OWNERID = @CURRENTAPPUSERID;

end try

begin catch
    exec dbo.USP_RAISE_ERROR
    return 1
end catch

return 0