USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTATIONPASSIVESEGMENTGROUP
The save procedure used by the add dataform template "Public Media Marketing Effort Segment Group Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@SEGMENTATIONID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@SEGMENTGROUPID | uniqueidentifier | IN | Segment group |
@PACKAGEID | uniqueidentifier | IN | Package |
@PACKAGECODEVALUEID | uniqueidentifier | IN | Package code value ID |
@PACKAGECODE | nvarchar(10) | IN | Package code |
@EXPOSURESTARTDATE | date | IN | Start date |
@EXPOSUREENDDATE | date | IN | End date |
@RESPONSERATE | decimal(5, 2) | IN | Response rate |
@GIFTAMOUNT | money | IN | Gift amount |
Definition
Copy
CREATE procedure dbo.[USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTATIONPASSIVESEGMENTGROUP]
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@SEGMENTATIONID uniqueidentifier,
@SEGMENTGROUPID uniqueidentifier,
@PACKAGEID uniqueidentifier,
@PACKAGECODEVALUEID uniqueidentifier = null,
@PACKAGECODE nvarchar(10) = '',
@EXPOSURESTARTDATE date = null,
@EXPOSUREENDDATE date = null,
@RESPONSERATE decimal(5,2) = 5,
@GIFTAMOUNT money
)
as
set nocount on;
declare @MAILINGTYPECODE tinyint;
declare @SEGMENTID uniqueidentifier;
declare @SEGMENTTYPECODE tinyint;
declare @SEGMENTATIONIDSEGMENTTYPECODE nvarchar(38);
declare @SEGMENTCODEVALUEID uniqueidentifier;
declare @SEGMENTCODE nvarchar(10);
declare @CHANNELSOURCECODEVALUEID uniqueidentifier;
declare @CHANNELSOURCECODE nvarchar(10);
select @MAILINGTYPECODE = [MAILINGTYPECODE] from dbo.[MKTSEGMENTATION] where [ID] = @SEGMENTATIONID;
begin try
-- check if the mailing is currently being activated
exec dbo.[USP_MKTSEGMENTATION_CHECKACTIVATION] @SEGMENTATIONID;
select
@PACKAGECODEVALUEID = [PARTDEFINITIONVALUESID],
@PACKAGECODE = case when len(@PACKAGECODE) = 0 then [CODE] else @PACKAGECODE end,
@CHANNELSOURCECODEVALUEID = [CHANNELPARTDEFINITIONVALUESID],
@CHANNELSOURCECODE = [CHANNELSOURCECODE]
from dbo.[MKTPACKAGE]
where [ID] = @PACKAGEID;
declare SEGMENTCURSOR cursor local fast_forward for
select
[MKTSEGMENT].[ID],
[MKTSEGMENT].[SEGMENTTYPECODE],
[MKTSEGMENT].[PARTDEFINITIONVALUESID],
[MKTSEGMENT].[CODE]
from dbo.[MKTGROUPSEGMENTS]
inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTGROUPSEGMENTS].[SEGMENTID]
where [MKTGROUPSEGMENTS].[SEGMENTGROUPID] = @SEGMENTGROUPID
and [MKTSEGMENT].[SEGMENTTYPECODE] in (6, 7, 8);
open SEGMENTCURSOR;
fetch next from SEGMENTCURSOR into @SEGMENTID, @SEGMENTTYPECODE, @SEGMENTCODEVALUEID, @SEGMENTCODE;
while (@@FETCH_STATUS = 0)
begin
set @ID = null;
set @SEGMENTATIONIDSEGMENTTYPECODE = convert(nvarchar(36), @SEGMENTATIONID) + '|' + convert(nvarchar(1), @SEGMENTTYPECODE);
exec dbo.[USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTATIONSEGMENTPASSIVE]
@ID = @ID output,
@CHANGEAGENTID = @CHANGEAGENTID,
@SEGMENTATIONIDSEGMENTTYPECODE = @SEGMENTATIONIDSEGMENTTYPECODE,
@SEGMENTID = @SEGMENTID,
@CODEVALUEID = @SEGMENTCODEVALUEID,
@CODE = @SEGMENTCODE,
@PACKAGEID = @PACKAGEID,
@PACKAGECODEVALUEID = @PACKAGECODEVALUEID,
@PACKAGECODE = @PACKAGECODE,
@CHANNELCODEVALUEID = @CHANNELSOURCECODEVALUEID,
@CHANNELCODE = @CHANNELSOURCECODE,
@EXPOSURESTARTDATE = @EXPOSURESTARTDATE,
@EXPOSUREENDDATE = @EXPOSUREENDDATE,
@RESPONSERATE = @RESPONSERATE,
@GIFTAMOUNT = @GIFTAMOUNT,
@ITEMLIST = null;
fetch next from SEGMENTCURSOR into @SEGMENTID, @SEGMENTTYPECODE, @SEGMENTCODEVALUEID, @SEGMENTCODE;
end
close SEGMENTCURSOR;
deallocate SEGMENTCURSOR;
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;