USP_DATAFORMTEMPLATE_EDIT_BATCH2TEMPLATE_2

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@NAME nvarchar(60) IN
@DESCRIPTION nvarchar(1000) IN
@BATCHWORKFLOWID uniqueidentifier IN
@AUTOSAVEONROWCHANGE bit IN
@NUMBERINGSCHEMEID uniqueidentifier IN
@BATCHFIELDS xml IN
@VALIDATEBATCH bit IN
@CHECKFORDUPLICATERECORDS bit IN
@PURGEBATCH bit IN
@CREATEEXCEPTIONBATCH bit IN
@CREATECONTROLREPORT bit IN
@BATCHTYPECATALOGID uniqueidentifier IN
@IMPORTONLY bit IN
@TEMPLATEPERMISSIONS xml IN
@CUSTOMIZEPERMISSIONS xml IN
@SITEID uniqueidentifier IN
@TEMPLATEUSECODE tinyint IN
@AUTOMATCHTHRESHOLD int IN
@OVERALLMATCHTHRESHOLD int IN

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_BATCH2TEMPLATE_2
(
  @ID uniqueidentifier
  , @CHANGEAGENTID uniqueidentifier = null
  , @NAME nvarchar(60)
  , @DESCRIPTION nvarchar(1000)
  , @BATCHWORKFLOWID uniqueidentifier
  , @AUTOSAVEONROWCHANGE bit
  , @NUMBERINGSCHEMEID uniqueidentifier
  , @BATCHFIELDS xml
  , @VALIDATEBATCH bit
  , @CHECKFORDUPLICATERECORDS bit
  , @PURGEBATCH bit
  , @CREATEEXCEPTIONBATCH bit
  , @CREATECONTROLREPORT bit
  , @BATCHTYPECATALOGID uniqueidentifier
  , @IMPORTONLY bit
  , @TEMPLATEPERMISSIONS xml
  , @CUSTOMIZEPERMISSIONS xml
  , @SITEID uniqueidentifier
  , @TEMPLATEUSECODE tinyint
  , @AUTOMATCHTHRESHOLD int
  , @OVERALLMATCHTHRESHOLD int
)
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 and bt.ID <> @ID)
  raiserror('ERR_BATCHTEMPLATE_UNIQUENAME', 13, 1);    

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

declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()

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,
    IMPORTONLY  = @IMPORTONLY,
    AUTOSAVEONROWCHANGE = @AUTOSAVEONROWCHANGE,
    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_UPDATEFROMXML @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_UPDATEFROMXML @ID, @CUSTOMIZEPERMISSIONS, @CHANGEAGENTID;

end try

begin catch
    exec dbo.USP_RAISE_ERROR
    return 1
end catch

return 0