USP_DATAFORMTEMPLATE_ADD_BATCHTEMPLATECOPY
The save procedure used by the add dataform template "Batch Template Copy Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@BATCHTEMPLATEID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@NAME | nvarchar(60) | IN | Batch template name |
@DESCRIPTION | nvarchar(1000) | IN | Description |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_BATCHTEMPLATECOPY
(
@ID uniqueidentifier output,
@BATCHTEMPLATEID uniqueidentifier,
@NAME nvarchar(60),
@DESCRIPTION nvarchar(1000) = '',
@CHANGEAGENTID uniqueidentifier = null
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @ID is null
set @ID = newid();
-- Get existing batch design
declare @BATCHFIELDS xml;
declare @BATCHWORKFLOWID uniqueidentifier;
declare @BATCHTYPECATALOGID uniqueidentifier;
declare @SITEID uniqueidentifier;
declare @AUTOSAVEONROWCHANGE bit ;
declare @NUMBERINGSCHEMEID uniqueidentifier ;
declare @VALIDATEBATCH bit ;
declare @CHECKFORDUPLICATERECORDS bit ;
declare @PURGEBATCH bit ;
declare @CREATEEXCEPTIONBATCH bit;
declare @CREATECONTROLREPORT bit ;
declare @CREATEOUTPUTIDSET bit ;
declare @TEMPLATEUSECODE tinyint ;
declare @TEMPLATEPERMISSIONS xml ;
declare @CUSTOMIZEPERMISSIONS xml ;
declare @AUTOMATCHTHRESHOLD int ;
declare @OVERALLMATCHTHRESHOLD int ;
select
@BATCHFIELDS = BATCHTEMPLATE.FORMDEFINITIONXML,
@BATCHWORKFLOWID = BATCHWORKFLOWID,
@BATCHTYPECATALOGID = BATCHTEMPLATE.BATCHTYPECATALOGID,
@SITEID = BATCHTEMPLATE.SITEID,
@NUMBERINGSCHEMEID = BATCHNUMBERINGSCHEMEID ,
@VALIDATEBATCH = DEFAULTVALIDATEBEFORECOMMIT ,
@CHECKFORDUPLICATERECORDS = DEFAULTCHECKFORDUPLICATES ,
@PURGEBATCH = DEFAULTDELETEBATCHAFTERCOMMIT ,
@CREATEEXCEPTIONBATCH = DEFAULTCREATEEXCEPTIONBATCH ,
@CREATECONTROLREPORT = DEFAULTCREATECONTROLREPORT ,
@CREATEOUTPUTIDSET = DEFAULTCREATEOUTPUTSELECTION ,
@AUTOSAVEONROWCHANGE = AUTOSAVEONROWCHANGE ,
@TEMPLATEUSECODE = TEMPLATEUSECODE ,
@AUTOMATCHTHRESHOLD = AUTOMATCHTHRESHOLD ,
@OVERALLMATCHTHRESHOLD = OVERALLMATCHTHRESHOLD
from
dbo.BATCHTEMPLATE
inner join dbo.BATCHTYPECATALOG ON BATCHTYPECATALOG.ID = BATCHTEMPLATE.BATCHTYPECATALOGID
where BATCHTEMPLATE.ID = @BATCHTEMPLATEID
begin try
-- Create batch design
exec dbo.USP_BATCHTEMPLATEPROCESSOR_CREATEORUPDATE @ID output, @BATCHTYPECATALOGID, @NAME, @DESCRIPTION, @BATCHFIELDS, @BATCHWORKFLOWID, @CHANGEAGENTID, @SITEID = @SITEID;
-- copy permissions
set @TEMPLATEPERMISSIONS = (select [GRANTORDENY], NEWID() as [ID], [NAME], [SYSTEMROLEID]
from dbo.[UFN_BATCHTEMPLATE_GETSYSTEMROLEPERMISSIONS](@BATCHTEMPLATEID)
where GRANTORDENY <> 2
order by NAME
for xml raw('ITEM'),type,elements,root('TEMPLATEPERMISSIONS'),BINARY BASE64)
set @CUSTOMIZEPERMISSIONS = (select [GRANTORDENY], NEWID() as [ID], [NAME], [SYSTEMROLEID]
from dbo.[UFN_BATCHTEMPLATE_GETSYSTEMROLECUSTOMIZEPERMISSIONS](@BATCHTEMPLATEID)
where GRANTORDENY <> 2
order by NAME
for xml raw('ITEM'),type,elements,root('CUSTOMIZEPERMISSIONS'),BINARY BASE64)
exec dbo.USP_BATCHTEMPLATE_GETSYSTEMROLEPERMISSIONS_ADDFROMXML @ID, @TEMPLATEPERMISSIONS, @CHANGEAGENTID;
exec dbo.USP_BATCHTEMPLATE_GETSYSTEMROLECUSTOMIZEPERMISSIONS_ADDFROMXML @ID, @CUSTOMIZEPERMISSIONS, @CHANGEAGENTID;
--- new fields
update BATCHTEMPLATE set
BATCHNUMBERINGSCHEMEID = @NUMBERINGSCHEMEID,
DEFAULTVALIDATEBEFORECOMMIT = @VALIDATEBATCH,
DEFAULTCHECKFORDUPLICATES = @CHECKFORDUPLICATERECORDS,
DEFAULTDELETEBATCHAFTERCOMMIT = @PURGEBATCH,
DEFAULTCREATEEXCEPTIONBATCH = @CREATEEXCEPTIONBATCH,
DEFAULTCREATECONTROLREPORT = @CREATECONTROLREPORT,
DEFAULTCREATEOUTPUTSELECTION = @CREATEOUTPUTIDSET,
AUTOSAVEONROWCHANGE = @AUTOSAVEONROWCHANGE,
TEMPLATEUSECODE = @TEMPLATEUSECODE,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE,
AUTOMATCHTHRESHOLD = @AUTOMATCHTHRESHOLD,
OVERALLMATCHTHRESHOLD = @OVERALLMATCHTHRESHOLD
where ID = @ID;
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;