USP_DATAFORMTEMPLATE_EDIT_DEFAULTDESCRIPTION
The save procedure used by the edit dataform template "Default Description Edit Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@DEFAULTDESCRIPTION | xml | IN | Default account descriptions |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_DEFAULTDESCRIPTION
(
@CHANGEAGENTID uniqueidentifier = null,
@DEFAULTDESCRIPTION xml
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
declare @COUNT tinyint
set @COUNT = (select count(1) from dbo.UFN_DEFAULTDESCRIPTION_FROMITEMLISTXML(@DEFAULTDESCRIPTION))
if @COUNT = 0
begin
raiserror('ERR_DEFAULTDESCRIPTION_ATLEASTONEREQUIRED',13,1)
return 1
end
declare @DUPLICATEID uniqueidentifier
select top 1 @DUPLICATEID = ID
from dbo.UFN_DEFAULTDESCRIPTION_FROMITEMLISTXML(@DEFAULTDESCRIPTION)
group by ID
having count(ID) > 1
if @DUPLICATEID is not null
begin
declare @ERRORMESSAGE nvarchar(max)
select @ERRORMESSAGE = DESCRIPTION + ' is selected more than once.' from dbo.PDACCOUNTSTRUCTURE where ID = @DUPLICATEID
raiserror(@ERRORMESSAGE, 13, 1)
return 1
end
if ((select sum(DEFAULTDESCRIPTIONLENGTH) from dbo.UFN_DEFAULTDESCRIPTION_FROMITEMLISTXML(@DEFAULTDESCRIPTION)) + @COUNT - 1) > 400
begin
raiserror('ERR_DEFAULTDESCRIPTION_MAXLENGTHEXCEEDED',13,1)
return 1
end
exec dbo.USP_DEFAULTDESCRIPTION_UPDATEFROMXML @DEFAULTDESCRIPTION, @CHANGEAGENTID, @CURRENTDATE;
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;