USP_DATAFORMTEMPLATE_EDIT_MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE_DRAGDROPINSERT
The save procedure used by the edit dataform template "Marketing Acknowledgement Template Rule Drag and Drop Edit Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@RULES | xml | IN | Rules |
@RULESEQUENCE | int | IN | Rule Sequence |
Definition
Copy
CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE_DRAGDROPINSERT]
(
@ID uniqueidentifier, /* Required. The acknowledgement mailing template ID. */
@CHANGEAGENTID uniqueidentifier = null, /* Optional. The user ID that is making the change. */
@RULES xml, /* Optional. Rule IDs to insert at the specified rule sequence. */
@RULESEQUENCE int /* Required. The sequence to insert the rules at. */
)
as
set nocount on;
declare @CURRENTDATE datetime;
declare @SELECTEDTABLE table ([RULEID] uniqueidentifier, [CURRENTSEQ] int);
declare @RULESTABLE table ([RULEID] uniqueidentifier, [CURRENTSEQ] int, [NEWSEQ] int IDENTITY (1,1));
begin try
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
if @RULES is not null
begin
--Put the rule IDs into a temp table...
insert into @SELECTEDTABLE ([RULEID])
select T.c.value('(ID)[1]','uniqueidentifier')
from @RULES.nodes('/RULES/ITEM') T(c);
--Update the @SELECTEDTABLE with the current sequences...
update @SELECTEDTABLE set
[CURRENTSEQ] = (select [SEQUENCE] from dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE] where [ID] = [S].[RULEID])
from @SELECTEDTABLE as [S];
--Insert into the @RULESTABLE any rules with a sequence less than or equal to the insert point (RULESEQUENCE)...
insert into @RULESTABLE ([RULEID], [CURRENTSEQ])
select [ID], [SEQUENCE]
from dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE]
where [ACKNOWLEDGEMENTMAILINGTEMPLATEID] = @ID
and [SEQUENCE] < @RULESEQUENCE
and [SEQUENCE] not in (select [CURRENTSEQ] from @SELECTEDTABLE)
order by [SEQUENCE];
--Copy over the selected rules...
insert into @RULESTABLE ([RULEID], [CURRENTSEQ])
select [RULEID], [CURRENTSEQ]
from @SELECTEDTABLE
order by [CURRENTSEQ];
-- insert the remaining rules...
insert into @RULESTABLE ([RULEID], [CURRENTSEQ])
select [ID], [SEQUENCE]
from dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE]
where [ACKNOWLEDGEMENTMAILINGTEMPLATEID] = @ID
and [SEQUENCE] >= @RULESEQUENCE
and [SEQUENCE] not in (select [CURRENTSEQ] from @SELECTEDTABLE)
order by [SEQUENCE];
--Update the acknowledgement mailing template rule table...
update dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE] set
[SEQUENCE] = [R].[NEWSEQ],
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
from dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE] as [TEMPLATERULES]
inner join @RULESTABLE as [R] on [R].[RULEID] = [TEMPLATERULES].[ID];
end
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;