USP_DATAFORMTEMPLATE_EDIT_RECOGNITIONPROGRAM
The save procedure used by the edit dataform template "Recognition Program Edit Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@NAME | nvarchar(100) | IN | Name |
@DESCRIPTION | nvarchar(255) | IN | Description |
@SITEID | uniqueidentifier | IN | Site |
@EXPIRESONCODE | tinyint | IN | Expiration date |
@BACKDATEMEMBERSHIPS | bit | IN | Set expiration to end of following year when starting after cutoff day |
@CUTOFFDATEFORYEAR | char(4) | IN | Cutoff date |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_RECOGNITIONPROGRAM (
@ID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255),
@SITEID uniqueidentifier,
@EXPIRESONCODE tinyint,
@BACKDATEMEMBERSHIPS bit,
@CUTOFFDATEFORYEAR char(4)
)
as
set nocount on;
if @SITEID is null
begin
if dbo.UFN_SITEREQUIREDFORUSER(@CURRENTAPPUSERID) = 1
begin
raiserror('Site is required.',13,1)
return
end
end
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
declare @OLDNAME nvarchar(100);
select @OLDNAME = NAME from dbo.RECOGNITIONPROGRAM where ID = @ID;
if @OLDNAME <> @NAME
begin
declare @QUERYNAME nvarchar(255);
select @QUERYNAME = 'V_QUERY_RECOGNITION_' + upper(REPLACE(CONVERT(nvarchar(36), @ID), '-', ''))
declare @ADHOCNAME nvarchar(255);
select @ADHOCNAME = dbo.[UFN_ADHOCQUERY_FIELDISINUSEBY](@QUERYNAME, '')
if len(@ADHOCNAME) > 0
begin
raiserror('Cannot modify the name value. The generated query is used by an ad hoc query as a filter or output field.', 13, 1);
return 1;
end
-- This set of conditions is used to check if the recognition program is used by an export definition.
declare @EXPORTDEFINITIONNAME nvarchar(128);
select @EXPORTDEFINITIONNAME = dbo.[UFN_EXPORTDEFINITION_FIELDISINUSEBY](@QUERYNAME);
if len(@EXPORTDEFINITIONNAME) > 0
begin
raiserror('BBERR_VALIDATE_USEDBYEXPORTDEFINITION', 13, 1);
return 1;
end
end
update dbo.RECOGNITIONPROGRAM set
NAME = @NAME,
DESCRIPTION = @DESCRIPTION,
SITEID = @SITEID,
EXPIRESONCODE = @EXPIRESONCODE,
BACKDATEMEMBERSHIPS = @BACKDATEMEMBERSHIPS,
CUTOFFDATEFORYEAR = @CUTOFFDATEFORYEAR,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID;
if @OLDNAME <> @NAME
begin
declare @QUERYID uniqueidentifier;
select @QUERYID = ID from dbo.QUERYVIEWCATALOG where OBJECTNAME = @QUERYNAME;
delete from dbo.QUERYVIEWRELATIONSHIP where ROOTQUERYVIEWID = @QUERYID;
delete from dbo.QUERYVIEWRELATIONSHIP where RELATEDQUERYVIEWID = @QUERYID;
delete from dbo.QUERYVIEWCATALOG where ID = @QUERYID;
exec dbo.USP_RECOGNITIONPROGRAM_CREATEQUERY @ID, @NAME, @CHANGEAGENTID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;