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;