USP_DATAFORMTEMPLATE_ADD_BATCHTEMPLATE

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

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@NAME nvarchar(60) IN Name
@DESCRIPTION nvarchar(1000) IN Description
@BATCHFIELDS xml IN Batch fields
@BATCHTYPECATALOGID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@TEMPLATEPERMISSIONS xml IN
@BATCHWORKFLOWID uniqueidentifier IN Workflow
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@CUSTOMIZEPERMISSIONS xml IN
@SITEID uniqueidentifier IN Site

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_BATCHTEMPLATE
(
    @ID uniqueidentifier = null output,                        
    @NAME nvarchar(60),
    @DESCRIPTION nvarchar(1000) = '',
    @BATCHFIELDS xml,                        
    @BATCHTYPECATALOGID uniqueidentifier,                        
    @TEMPLATEPERMISSIONS xml = null,                        
    @BATCHWORKFLOWID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @CUSTOMIZEPERMISSIONS xml = null,
    @SITEID uniqueidentifier = null
)
as

set nocount on;

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

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

  -- since numbering schemes are required now on templates, we need to pull one off of the workflow, if it exists. This

  -- helps maintain backward compatibility.


  if @BATCHWORKFLOWID is not null
  begin
    -- workflow is required, so we really don't need this check

    declare @NUMBERINGSCHEMEID uniqueidentifier = null;
    declare @CURRENTDATE datetime;
    set @CURRENTDATE = getdate();

    select 
      @NUMBERINGSCHEMEID = BATCHNUMBERINGSCHEMEID
    from dbo.BATCHWORKFLOW
    where 
      ID = @BATCHWORKFLOWID;

    if @NUMBERINGSCHEMEID is null
    begin
      -- autocreate a numbering scheme since none was provided via the old or new way.

      exec dbo.USP_DATAFORMTEMPLATE_ADD_BATCH2NUMBERINGSCHEME @ID = @NUMBERINGSCHEMEID, @CHANGEAGENTID = @CHANGEAGENTID, @NAME = @NAME
    end

    update dbo.BATCHTEMPLATE set
      BATCHNUMBERINGSCHEMEID = @NUMBERINGSCHEMEID
      , DATECHANGED = @CURRENTDATE
      , CHANGEDBYID = @CHANGEAGENTID
    where ID = @ID;

  end

    exec dbo.USP_BATCHTEMPLATE_GETSYSTEMROLEPERMISSIONS_ADDFROMXML @ID, @TEMPLATEPERMISSIONS, @CHANGEAGENTID;
    exec dbo.USP_BATCHTEMPLATE_GETSYSTEMROLECUSTOMIZEPERMISSIONS_ADDFROMXML @ID, @CUSTOMIZEPERMISSIONS, @CHANGEAGENTID;
end try
begin catch
    exec dbo.USP_RAISE_ERROR
    return 1
end catch

return 0