USP_DATAFORMTEMPLATE_ADD_BATCH2TEMPLATE

The save procedure used by the add dataform template "Batch Template Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@NAME nvarchar(60) IN Batch template name
@DESCRIPTION nvarchar(1000) IN Description
@BATCHWORKFLOWID uniqueidentifier IN Workflow name
@AUTOSAVEONROWCHANGE bit IN Enable auto-save
@NUMBERINGSCHEMEID uniqueidentifier IN Numbering scheme
@BATCHFIELDS xml IN Selected fields for the batch
@VALIDATEBATCH bit IN Validate batch before committing
@CHECKFORDUPLICATERECORDS bit IN Check for duplicate constituents
@PURGEBATCH bit IN Delete batch after committing
@CREATEEXCEPTIONBATCH bit IN Create exception batch
@CREATECONTROLREPORT bit IN Create control report
@BATCHTYPECATALOGID uniqueidentifier IN Select a batch type
@IMPORTONLY bit IN This template is only used for importing data
@TEMPLATEPERMISSIONS xml IN Assign batch template administrator permissions
@CUSTOMIZEPERMISSIONS xml IN Assign permissions to customize batch field options
@SITEID uniqueidentifier IN Site
@TEMPLATEUSECODE tinyint IN Template use
@AUTOMATCHTHRESHOLD int IN
@OVERALLMATCHTHRESHOLD int IN

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_BATCH2TEMPLATE
(
  @ID uniqueidentifier = null output,    
  @CHANGEAGENTID uniqueidentifier = null,
  @NAME nvarchar(60),
  @DESCRIPTION nvarchar(1000) = '',
  @BATCHWORKFLOWID uniqueidentifier,
  @AUTOSAVEONROWCHANGE bit = 0,
  @NUMBERINGSCHEMEID uniqueidentifier = null,
  @BATCHFIELDS xml = null,
  @VALIDATEBATCH bit = 0,
  @CHECKFORDUPLICATERECORDS bit = 1,
  @PURGEBATCH bit = 0,
  @CREATEEXCEPTIONBATCH bit = 1,
  @CREATECONTROLREPORT bit = 0,
  @BATCHTYPECATALOGID uniqueidentifier,
  @IMPORTONLY bit = 0,
  @TEMPLATEPERMISSIONS xml = null ,
  @CUSTOMIZEPERMISSIONS xml = null,
  @SITEID uniqueidentifier = null,
  @TEMPLATEUSECODE tinyint = 0,
  @AUTOMATCHTHRESHOLD int = 0,
  @OVERALLMATCHTHRESHOLD int = 0
)
as

set nocount on;

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

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

if exists (SELECT 1 from dbo.BATCHTEMPLATE bt
WHERE bt.NAME = @NAME)
  raiserror('ERR_BATCHTEMPLATE_UNIQUENAME', 13, 1);

declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()

declare @BATCHNUMCODE tinyint
select @BATCHNUMCODE = NUMBERINGSCHEMECODE from BATCHNUMBERINGSCHEME where ID = @NUMBERINGSCHEMEID

if @BATCHNUMCODE = 1 and @TEMPLATEUSECODE <> 1 
begin
  raiserror('ERR_BATCHTEMPLATE_NUMBERINGSCHEME', 13, 1);
end






begin try

  exec dbo.USP_BATCHTEMPLATEPROCESSOR_CREATEORUPDATE @ID output, @BATCHTYPECATALOGID, @NAME, @DESCRIPTION, @BATCHFIELDS, @BATCHWORKFLOWID, @CHANGEAGENTID, @SITEID = @SITEID;                            

  update BATCHTEMPLATE set 
    BATCHNUMBERINGSCHEMEID = @NUMBERINGSCHEMEID,
    DEFAULTVALIDATEBEFORECOMMIT = @VALIDATEBATCH,
    DEFAULTCHECKFORDUPLICATES = @CHECKFORDUPLICATERECORDS,
    DEFAULTDELETEBATCHAFTERCOMMIT = @PURGEBATCH,
    DEFAULTCREATEEXCEPTIONBATCH = @CREATEEXCEPTIONBATCH,
    DEFAULTCREATECONTROLREPORT = @CREATECONTROLREPORT,
    AUTOSAVEONROWCHANGE = @AUTOSAVEONROWCHANGE,
    IMPORTONLY  = @IMPORTONLY,
    CHANGEDBYID = @CHANGEAGENTID,
    DATECHANGED = @CURRENTDATE,
    TEMPLATEUSECODE = @TEMPLATEUSECODE,
    AUTOMATCHTHRESHOLD = @AUTOMATCHTHRESHOLD,
    OVERALLMATCHTHRESHOLD = @OVERALLMATCHTHRESHOLD
  where ID = @ID;

  declare @TTbl table (
    [GRANTORDENY] int,
    [ID] uniqueidentifier,
    [SYSTEMROLEID] uniqueidentifier);

  insert into @TTbl select 
    [GRANTORDENY],
    [ID],
    [SYSTEMROLEID] 
  from dbo.UFN_BATCHTEMPLATE_GETSYSTEMROLEPERMISSIONS_FROMITEMLISTXML(@TEMPLATEPERMISSIONS)
  where [GRANTORDENY] <> 2;

  set @TEMPLATEPERMISSIONS = (SELECT [GRANTORDENY], [ID], [SYSTEMROLEID]
      FROM @TTbl
      for xml raw('ITEM'),type,elements,root('TEMPLATEPERMISSIONS'),BINARY BASE64);

  exec dbo.USP_BATCHTEMPLATE_GETSYSTEMROLEPERMISSIONS_ADDFROMXML @ID, @TEMPLATEPERMISSIONS, @CHANGEAGENTID;

  delete from @TTbl;

  insert into @TTbl select 
    [GRANTORDENY],
    [ID],
    [SYSTEMROLEID] 
  from dbo.UFN_BATCHTEMPLATE_GETSYSTEMROLECUSTOMIZEPERMISSIONS_FROMITEMLISTXML(@CUSTOMIZEPERMISSIONS)
  where [GRANTORDENY] <> 2;

  set @CUSTOMIZEPERMISSIONS = (SELECT [GRANTORDENY], [ID], [SYSTEMROLEID]
      FROM @TTbl
      for xml raw('ITEM'),type,elements,root('CUSTOMIZEPERMISSIONS'),BINARY BASE64);    

    exec dbo.USP_BATCHTEMPLATE_GETSYSTEMROLECUSTOMIZEPERMISSIONS_ADDFROMXML @ID, @CUSTOMIZEPERMISSIONS, @CHANGEAGENTID;

end try

begin catch
    exec dbo.USP_RAISE_ERROR
    return 1
end catch

return 0