USP_DATAFORMTEMPLATE_ADD_REGISTRANTBATCH
The save procedure used by the add dataform template "RegistrantBatchTemplate Add Data 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. |
@BATCHNUMBER | nvarchar(100) | IN | Batch number |
@DESCRIPTION | nvarchar(1000) | IN | Description |
@OWNERID | uniqueidentifier | IN | Owner |
@PROJECTEDNUMBEROFRECORDS | int | IN | Projected # |
@PROJECTEDTOTALAMOUNT | money | IN | Projected amount |
@BATCHTEMPLATEID | uniqueidentifier | IN | Batch template |
@ORIGINATINGBATCHID | uniqueidentifier | IN | Originating Batch Id |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@CREATECUSTOMBATCH | bit | IN | Create custom batch |
@FORMDEFINITIONXML | xml | IN | |
@AUTOSAVEONROWCHANGE | bit | IN | Enable auto-save |
@OVERRIDEBATCHNUMBER | bit | IN | Override |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_REGISTRANTBATCH
(
@ID uniqueidentifier = null output
, @CURRENTAPPUSERID uniqueidentifier
, @BATCHNUMBER nvarchar(100) = ''
, @DESCRIPTION nvarchar(1000) = ''
, @OWNERID uniqueidentifier = null
, @PROJECTEDNUMBEROFRECORDS int = 0
, @PROJECTEDTOTALAMOUNT money = 0
, @BATCHTEMPLATEID uniqueidentifier = 'EEA94C9B-E963-403F-92F8-CC4E85745FFA'
, @ORIGINATINGBATCHID uniqueidentifier = null
, @CHANGEAGENTID uniqueidentifier = null
, @CREATECUSTOMBATCH bit = null
, @FORMDEFINITIONXML xml = null
, @AUTOSAVEONROWCHANGE bit = 0
, @OVERRIDEBATCHNUMBER bit = 0
)
as
set nocount on;
declare @TEMPLATEID uniqueidentifier;
declare @NAME nvarchar(100);
declare @BATCHWORKFLOWSTATEID uniqueidentifier;
declare @BATCHWORKFLOWID uniqueidentifier;
declare @BATCHTYPECATALOGID uniqueidentifier;
declare @BATCHNUMBERINGSCHEMEID uniqueidentifier;
declare @CHANGEDATE datetime;
declare @USENUMBERINGSCHEME bit;
set @CHANGEDATE = getdate();
set @USENUMBERINGSCHEME = 0;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @CREATECUSTOMBATCH = null
set @CREATECUSTOMBATCH = 0;
if (@OVERRIDEBATCHNUMBER = 0 and (@BATCHNUMBER is null or len(@BATCHNUMBER) = 0))
set @USENUMBERINGSCHEME = 1;
if (@USENUMBERINGSCHEME = 1)
begin
-- find the batch number from the workflow
select
@BATCHTYPECATALOGID = BATCHTEMPLATE.BATCHTYPECATALOGID,
@BATCHWORKFLOWID = BATCHTEMPLATE.BATCHWORKFLOWID,
@BATCHNUMBERINGSCHEMEID = BATCHTEMPLATE.BATCHNUMBERINGSCHEMEID
from
dbo.BATCHTEMPLATE
where
BATCHTEMPLATE.ID = @BATCHTEMPLATEID;
if @BATCHNUMBERINGSCHEMEID is null
raiserror('ERR_NUMBERINGSCHEME_NOTDEFINED', 13, 1);
exec dbo.USP_BATCHNUMBERINGSCHEME_GETNEXTBATCHNUMBER_ATOMIC @ID = @BATCHNUMBERINGSCHEMEID
, @BATCHTEMPLATEID = @BATCHTEMPLATEID
, @BATCHNUMBER = @BATCHNUMBER output
, @CHANGEAGENTID = @CHANGEAGENTID;
end
else
begin
if dbo.UFN_SECURITY_APPUSER_GRANTED_CHANGEBATCHNUMBER(@CURRENTAPPUSERID, @BATCHTEMPLATEID) = 0
raiserror('ERR_CANNOTCUSTOMIZE_NUMBER', 13, 1);
end
if @CREATECUSTOMBATCH = 1
begin
declare @HASSECURITY bit;
select @HASSECURITY = dbo.UFN_SECURITY_APPUSER_GRANTED_BATCHTEMPLATECUSTOMIZE(@CURRENTAPPUSERID, @BATCHTEMPLATEID);
if @HASSECURITY = 0
begin
raiserror('ERR_CANNOTCUSTOMIZE_BATCH', 13, 1);
end;
set @TEMPLATEID = newID();
-- This might have been set up above when getting the next batch number.
if (@BATCHTYPECATALOGID is null)
select @BATCHTYPECATALOGID = BATCHTEMPLATE.BATCHTYPECATALOGID, @BATCHWORKFLOWID = BATCHTEMPLATE.BATCHWORKFLOWID from dbo.BATCHTEMPLATE where BATCHTEMPLATE.ID = @BATCHTEMPLATEID;
set @NAME = @BATCHNUMBER;
if exists(select top 1 NAME from dbo.BATCHTEMPLATE where NAME = @NAME)
begin
--make name unique?
set @NAME = @NAME + ' ' + cast(getDate() as nvarchar(15));
end;
exec dbo.USP_BATCHTEMPLATEPROCESSOR_CREATEORUPDATE @TEMPLATEID output, @BATCHTYPECATALOGID, @NAME, '', @FORMDEFINITIONXML, @BATCHWORKFLOWID, @CHANGEAGENTID, @CREATECUSTOMBATCH;
-- copy new features from template to custom
exec dbo.USP_BATCHTEMPLATE_SETDEFAULTSFORCUSTOM @ID = @TEMPLATEID, @ORIGINALID = @BATCHTEMPLATEID;
set @BATCHTEMPLATEID = @TEMPLATEID;
end;
else
begin
declare @TEMPLATE_FORMDEFINITIONXML xml;
select @TEMPLATE_FORMDEFINITIONXML = BATCHTEMPLATE.FORMDEFINITIONXML, @BATCHWORKFLOWID = BATCHTEMPLATE.BATCHWORKFLOWID from dbo.BATCHTEMPLATE where BATCHTEMPLATE.ID = @BATCHTEMPLATEID;
if @FORMDEFINITIONXML is null
set @FORMDEFINITIONXML = @TEMPLATE_FORMDEFINITIONXML;
end;
if @ID is null
set @ID = newid();
begin try
declare @APPUSERID uniqueidentifier;
if @OWNERID is null
set @APPUSERID = @CURRENTAPPUSERID;
else
set @APPUSERID = @OWNERID;
if @BATCHWORKFLOWID is not null
begin
select
@BATCHWORKFLOWSTATEID = ID
from dbo.BATCHWORKFLOWSTATE
where
BATCHWORKFLOWID = @BATCHWORKFLOWID
and ISINITIALSTATE = 1;
end;
else
set @BATCHWORKFLOWSTATEID = null;
if @BATCHWORKFLOWSTATEID is null
begin
raiserror('ERR_INVALIDWORKFLOW_DEFINED', 13, 1);
end;
--need to create new dataforms if necessary
declare @CREATEEXCEPTIONBATCH bit ;
declare @PURGEBATCH bit ;
declare @CREATECONTROLREPORT bit;
declare @VALIDATEBATCH bit;
declare @CHECKFORDUPLICATERECORDS bit;
select
@CREATEEXCEPTIONBATCH = BATCHTEMPLATE.DEFAULTCREATEEXCEPTIONBATCH,
@CREATECONTROLREPORT = BATCHTEMPLATE.DEFAULTCREATECONTROLREPORT,
@VALIDATEBATCH = BATCHTEMPLATE.DEFAULTVALIDATEBEFORECOMMIT,
@PURGEBATCH = BATCHTEMPLATE.DEFAULTDELETEBATCHAFTERCOMMIT,
@CHECKFORDUPLICATERECORDS = BATCHTEMPLATE.DEFAULTCHECKFORDUPLICATES
from
dbo.BATCHTEMPLATE
where
BATCHTEMPLATE.ID = @BATCHTEMPLATEID;
insert into dbo.BATCH (
ID
, BATCHNUMBER
, DESCRIPTION
, PROJECTEDNUMBEROFRECORDS
, PROJECTEDTOTALAMOUNT
, BATCHTEMPLATEID
, APPUSERID
, BATCHWORKFLOWSTATEID
, ORIGINATINGBATCHID
, FORMDEFINITIONXML
, AUTOSAVEONROWCHANGE
, VALIDATEBATCH
, CHECKFORDUPLICATERECORDS
, CREATEEXCEPTIONBATCH
, PURGEBATCH
, CREATECONTROLREPORT
, ADDEDBYID
, CHANGEDBYID
, DATEADDED
, DATECHANGED
)
values (
@ID
, @BATCHNUMBER
, @DESCRIPTION
, coalesce(@PROJECTEDNUMBEROFRECORDS, 0)
, @PROJECTEDTOTALAMOUNT
, @BATCHTEMPLATEID
, @APPUSERID
, @BATCHWORKFLOWSTATEID
, @ORIGINATINGBATCHID
, @FORMDEFINITIONXML
, coalesce(@AUTOSAVEONROWCHANGE, 0)
, @VALIDATEBATCH
, @CHECKFORDUPLICATERECORDS
, @CREATEEXCEPTIONBATCH
, @PURGEBATCH
, @CREATECONTROLREPORT
, @CHANGEAGENTID
, @CHANGEAGENTID
, @CHANGEDATE
, @CHANGEDATE
);
if @BATCHWORKFLOWSTATEID is not null
insert into dbo.BATCHWORKFLOWSTATUS (
BATCHID
, APPUSERID
, BATCHWORKFLOWSTATEID
, ADDEDBYID
, CHANGEDBYID
, DATEADDED
, DATECHANGED
, APPUSERNAME
)
values (
@ID
, @APPUSERID
, @BATCHWORKFLOWSTATEID
, @CHANGEAGENTID
, @CHANGEAGENTID
, @CHANGEDATE
, @CHANGEDATE
, COALESCE(dbo.UFN_APPUSER_GETNAME(@APPUSERID),'')
);
exec dbo.USP_BATCHASSIGNEDALERT_SEND null, @ID;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;