USP_MKTSEGMENTATIONTESTSEGMENT_MOVEUP
Executes the "Marketing Effort Test Segment: Move Up" 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_MOVEUP
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null
)
as
set nocount on;
declare @SEGMENTATIONID uniqueidentifier;
declare @SEGMENTID uniqueidentifier;
declare @ABOVETESTSEGMENTID 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 first test segment in the segment
if @SEQ > 1
begin
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
select @ABOVETESTSEGMENTID = [ID]
from dbo.[MKTSEGMENTATIONTESTSEGMENT]
where [SEGMENTID] = @SEGMENTID
and [SEQUENCE] = (@SEQ - 1);
--Test segment is being moved above another test segment, swap the 2 test segments
exec dbo.[USP_MKTSEGMENTATIONTESTSEGMENT_SWAPTESTSEGMENTS] @ABOVETESTSEGMENTID, @ID, @CHANGEAGENTID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;