USP_MKTSEGMENTATIONTESTSEGMENT_MOVEDOWN
Executes the "Marketing Effort Test Segment: Move Down" record operation.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | Input parameter indicating the ID of the record being updated. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the update. |
Definition
Copy
CREATE procedure dbo.USP_MKTSEGMENTATIONTESTSEGMENT_MOVEDOWN
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null
)
as
set nocount on;
declare @SEGMENTATIONID uniqueidentifier;
declare @SEGMENTID uniqueidentifier;
declare @BELOWTESTSEGMENTID uniqueidentifier;
declare @SEQ int;
begin try
select
@SEGMENTATIONID = [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID],
@SEGMENTID = [MKTSEGMENTATIONTESTSEGMENT].[SEGMENTID],
@SEQ = [MKTSEGMENTATIONTESTSEGMENT].[SEQUENCE]
from dbo.[MKTSEGMENTATIONTESTSEGMENT]
inner join dbo.[MKTSEGMENTATIONSEGMENT] on [MKTSEGMENTATIONSEGMENT].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[SEGMENTID]
where [MKTSEGMENTATIONTESTSEGMENT].[ID] = @ID;
--Check if the mailing is currently being activated...
exec dbo.[USP_MKTSEGMENTATION_CHECKACTIVATION] @SEGMENTATIONID;
--Only move if not the last test segment in the segment
if @SEQ < (select max([SEQUENCE]) from dbo.[MKTSEGMENTATIONTESTSEGMENT] where [SEGMENTID] = @SEGMENTID)
begin
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
select @BELOWTESTSEGMENTID = [ID]
from dbo.[MKTSEGMENTATIONTESTSEGMENT]
where [SEGMENTID] = @SEGMENTID
and [SEQUENCE] = (@SEQ + 1);
--Test segment is being moved below another test segment, swap the 2 test segments
exec dbo.[USP_MKTSEGMENTATIONTESTSEGMENT_SWAPTESTSEGMENTS] @ID, @BELOWTESTSEGMENTID, @CHANGEAGENTID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;