USP_DATAFORMTEMPLATE_ADD_EVENTTASK
The save procedure used by the add dataform template "Event Task Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@EVENTID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@OWNERID | uniqueidentifier | IN | Owner |
@NAME | nvarchar(100) | IN | Name |
@COMPLETEBYDATE | datetime | IN | Date due |
@COMMENT | nvarchar(250) | IN | Comment |
@SELECTEDEVENTID | uniqueidentifier | IN | Event |
@SELECTEDMULTILEVELEVENTID | uniqueidentifier | IN | Event |
@REMINDERS | xml | IN | Reminders |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_EVENTTASK
(
@ID uniqueidentifier = null output,
@EVENTID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@OWNERID uniqueidentifier = null,
@NAME nvarchar(100),
@COMPLETEBYDATE datetime = null,
@COMMENT nvarchar(250) = '',
@SELECTEDEVENTID uniqueidentifier = null,
@SELECTEDMULTILEVELEVENTID uniqueidentifier = null,
@REMINDERS xml = null
)
as
begin
set nocount on;
declare @CURRENTDATE datetime
if (@SELECTEDMULTILEVELEVENTID is not null and @SELECTEDMULTILEVELEVENTID <> '00000000-0000-0000-0000-000000000000') and
(@SELECTEDEVENTID is not null and @SELECTEDEVENTID <> '00000000-0000-0000-0000-000000000000')
begin
raiserror('You cannot specify both event parameters.',13,1);
end
if @EVENTID = '18506456-2c54-4cc5-8c15-79a1157d3bd1'
set @EVENTID = @SELECTEDEVENTID;
if (@SELECTEDMULTILEVELEVENTID is not null and @SELECTEDMULTILEVELEVENTID <> '00000000-0000-0000-0000-000000000000')
set @EVENTID = @SELECTEDMULTILEVELEVENTID;
IF @ID is null
set @ID = newid()
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
set @CURRENTDATE = getdate()
begin try
if exists ( select 1 from dbo.EVENTMANAGEMENTOPTIONS where EVENTID = @EVENTID and HASTASKSANDCOORDINATORS = 0)
raiserror('ERR_EVENTCANNOTHAVETASK', 13, 1);
if exists ( select top 1 *
from dbo.UFN_EVENTTASK_GETREMINDERS_FROMITEMLISTXML(@REMINDERS)
where SENDDATE > @COMPLETEBYDATE)
raiserror('ERR_EVENTTASKREMINDER_SENDDATEEXCEEDSTASKDATE', 13, 1);
insert into dbo.EVENTTASK
(ID, EVENTID, OWNERID, NAME, COMPLETEBYDATE, STATUSCODE, COMMENT, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
VALUES
(@ID, @EVENTID, @OWNERID, @NAME, @COMPLETEBYDATE, 0, @COMMENT, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
-- 'SENT' is not part of the Add's dataform definition. Set it to 0.
set @REMINDERS = (
select
ID,
NAME,
SENDDATE,
0 as SENT
from
dbo.UFN_EVENTTASK_GETREMINDERS_FROMITEMLISTXML(@REMINDERS)
for xml raw('ITEM'), type, elements, root('REMINDERS'), binary base64
);
exec dbo.USP_EVENTTASK_GETREMINDERS_ADDFROMXML @ID, @REMINDERS, @CHANGEAGENTID;
if @OWNERID is not null
begin
declare @OWNERAPPUSERID uniqueidentifier;
select
@OWNERAPPUSERID = APPUSER.ID
from
dbo.APPUSER
where
APPUSER.CONSTITUENTID = @OWNERID;
if @OWNERAPPUSERID is not null
exec dbo.USP_ALERTTYPE_SENDTOAPPUSER '6CDB7072-461C-40BF-9C20-6277D16CDA0E', @OWNERAPPUSERID, @ID, @EVENTID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0
end