USP_MKTSPONSORSHIPMAILINGPROCESS_CREATEMAILING
Creates a sponsorship effort from a sponsorship effort template.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SPONSORSHIPMAILINGTEMPLATEID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@SEGMENTATIONID | uniqueidentifier | INOUT | |
@DATETEXT | nvarchar(50) | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.[USP_MKTSPONSORSHIPMAILINGPROCESS_CREATEMAILING]
(
@SPONSORSHIPMAILINGTEMPLATEID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier,
@SEGMENTATIONID uniqueidentifier output,
@DATETEXT nvarchar(50),
@CHANGEAGENTID uniqueidentifier
)
as
set nocount on;
declare @CURRENTDATE datetime;
begin try
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
-- create the new mailing
declare @CODE nvarchar(10);
declare @CODEVALUEID uniqueidentifier;
declare @NAME nvarchar(100);
declare @DESCRIPTION nvarchar(255);
declare @SITEID uniqueidentifier;
declare @SOURCECODEID uniqueidentifier;
declare @EXCLUSIONDATETYPECODE tinyint;
declare @EXCLUSIONASOFDATE datetime;
declare @EXCLUDEDECEASED bit;
declare @EXCLUDEINACTIVE bit;
declare @EXCLUSIONS xml;
declare @USEADDRESSPROCESSING bit;
declare @ADDRESSPROCESSINGOPTIONID uniqueidentifier;
declare @NAMEFORMATPARAMETERID uniqueidentifier;
declare @ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE tinyint;
declare @ADDRESSPROCESSINGOPTIONSEASONALASOFDATE datetime;
declare @RUNACTIVATEANDEXPORT bit;
declare @RUNSEGMENTATIONSEGMENTREFRESHPROCESS bit;
declare @CACHESOURCEANALYSISRULEDATA bit;
declare @EXPORTDESCRIPTION nvarchar(255);
declare @MAILEXPORTDEFINITIONID uniqueidentifier;
declare @EMAILEXPORTDEFINITIONID uniqueidentifier;
declare @PHONEEXPORTDEFINITIONID uniqueidentifier;
declare @BASECURRENCYID uniqueidentifier;
declare @RUNMARKETINGEXCLUSIONSREPORT bit;
select
@CODE = [MKTSPONSORSHIPMAILINGTEMPLATE].[CODE],
@CODEVALUEID = [MKTSPONSORSHIPMAILINGTEMPLATE].[PARTDEFINITIONVALUESID],
@NAME = dbo.[UFN_MKTSPONSORSHIPMAILINGPROCESS_GETUNIQUENAME]([MKTSPONSORSHIPMAILINGTEMPLATE].[NAME], @DATETEXT),
@DESCRIPTION = [MKTSPONSORSHIPMAILINGTEMPLATE].[DESCRIPTION],
@SITEID = [MKTSPONSORSHIPMAILINGTEMPLATE].[SITEID],
@SOURCECODEID = [MKTSPONSORSHIPMAILINGTEMPLATE].[SOURCECODEID],
@EXCLUSIONDATETYPECODE = [BUSINESSPROCESSCOMMPREF].[DATETYPECODE],
@EXCLUSIONASOFDATE = [BUSINESSPROCESSCOMMPREF].[ASOFDATE],
@EXCLUDEDECEASED = [BUSINESSPROCESSCOMMPREF].[EXCLUDEDECEASED],
@EXCLUDEINACTIVE = [BUSINESSPROCESSCOMMPREF].[EXCLUDEINACTIVE],
@EXCLUSIONS = dbo.[UFN_BUSINESSPROCESSCOMMPREF_GETEXCLUSIONS_TOITEMLISTXML]([MKTSPONSORSHIPMAILINGPROCESS].[ID]),
@USEADDRESSPROCESSING = [MKTSPONSORSHIPMAILINGTEMPLATE].[USEADDRESSPROCESSING],
@ADDRESSPROCESSINGOPTIONID = [MKTSPONSORSHIPMAILINGTEMPLATE].[ADDRESSPROCESSINGOPTIONID],
@NAMEFORMATPARAMETERID = [MKTSPONSORSHIPMAILINGTEMPLATE].[NAMEFORMATPARAMETERID],
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE = [MKTSPONSORSHIPMAILINGTEMPLATE].[ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE],
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATE = [MKTSPONSORSHIPMAILINGTEMPLATE].[ADDRESSPROCESSINGOPTIONSEASONALASOFDATE],
@RUNACTIVATEANDEXPORT = [MKTSPONSORSHIPMAILINGTEMPLATE].[RUNACTIVATEANDEXPORT],
@RUNSEGMENTATIONSEGMENTREFRESHPROCESS = [MKTSPONSORSHIPMAILINGTEMPLATE].[RUNSEGMENTATIONSEGMENTREFRESHPROCESS],
@CACHESOURCEANALYSISRULEDATA = [MKTSPONSORSHIPMAILINGTEMPLATE].[CACHESOURCEANALYSISRULEDATA],
@EXPORTDESCRIPTION = isnull([MKTSPONSORSHIPMAILINGTEMPLATEEXPORT].[DESCRIPTION], ''),
@MAILEXPORTDEFINITIONID = [MKTSPONSORSHIPMAILINGTEMPLATEEXPORT].[MAILEXPORTDEFINITIONID],
@EMAILEXPORTDEFINITIONID = [MKTSPONSORSHIPMAILINGTEMPLATEEXPORT].[EMAILEXPORTDEFINITIONID],
@PHONEEXPORTDEFINITIONID = [MKTSPONSORSHIPMAILINGTEMPLATEEXPORT].[PHONEEXPORTDEFINITIONID],
@BASECURRENCYID = [MKTSPONSORSHIPMAILINGTEMPLATE].[BASECURRENCYID],
@RUNMARKETINGEXCLUSIONSREPORT = [MKTSPONSORSHIPMAILINGTEMPLATE].[RUNMARKETINGEXCLUSIONSREPORT]
from dbo.[MKTSPONSORSHIPMAILINGTEMPLATE]
inner join dbo.[MKTSPONSORSHIPMAILINGPROCESS] on [MKTSPONSORSHIPMAILINGPROCESS].[SPONSORSHIPMAILINGTEMPLATEID] = [MKTSPONSORSHIPMAILINGTEMPLATE].[ID]
left outer join dbo.[BUSINESSPROCESSCOMMPREF] on [BUSINESSPROCESSCOMMPREF].[BUSINESSPROCESSPARAMETERSETID] = [MKTSPONSORSHIPMAILINGPROCESS].[ID]
left outer join dbo.[MKTSPONSORSHIPMAILINGTEMPLATEEXPORT] on [MKTSPONSORSHIPMAILINGTEMPLATEEXPORT].[SPONSORSHIPMAILINGTEMPLATEID] = [MKTSPONSORSHIPMAILINGTEMPLATE].[ID]
where [MKTSPONSORSHIPMAILINGTEMPLATE].[ID] = @SPONSORSHIPMAILINGTEMPLATEID;
if @EXCLUSIONS is not null
set @EXCLUSIONS.modify('delete /EXCLUSIONS/ITEM/ID');
exec dbo.[USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTATION]
@ID = @SEGMENTATIONID output,
@CURRENTAPPUSERID = @CURRENTAPPUSERID,
@CHANGEAGENTID = @CHANGEAGENTID,
@CODE = @CODE,
@NAME = @NAME,
@DESCRIPTION = @DESCRIPTION,
@INCLUDESELECTIONS = null,
@EXCLUDESELECTIONS = null,
@EXCLUDESEGMENTATIONS = null,
@MARKETINGPLANITEMID = null,
@SOURCECODEID = @SOURCECODEID,
@ITEMLIST = null,
@MAILDATE = @CURRENTDATE,
@HOUSEHOLDINGTYPECODE = 0,
@SITEID = @SITEID,
@MAILINGTYPECODE = 3,
@EXCLUSIONDATETYPECODE = @EXCLUSIONDATETYPECODE,
@EXCLUSIONASOFDATE = @EXCLUSIONASOFDATE,
@EXCLUDEDECEASED = @EXCLUDEDECEASED,
@EXCLUDEINACTIVE = @EXCLUDEINACTIVE,
@EXCLUSIONS = @EXCLUSIONS,
@USEADDRESSPROCESSING = @USEADDRESSPROCESSING,
@ADDRESSPROCESSINGOPTIONID = @ADDRESSPROCESSINGOPTIONID,
@NAMEFORMATPARAMETERID = @NAMEFORMATPARAMETERID,
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE = @ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE,
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATE = @ADDRESSPROCESSINGOPTIONSEASONALASOFDATE,
@ACTIVATIONKPIS = null,
@USEKPISASDEFAULT = 0,
@APPEALINFORMATION = null,
@RUNACTIVATEANDEXPORT = @RUNACTIVATEANDEXPORT,
@EXPORTDESCRIPTION = @EXPORTDESCRIPTION,
@MAILEXPORTDEFINITIONID = @MAILEXPORTDEFINITIONID,
@EMAILEXPORTDEFINITIONID = @EMAILEXPORTDEFINITIONID,
@PHONEEXPORTDEFINITIONID = @PHONEEXPORTDEFINITIONID,
@HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD = 0,
@HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS = 0,
@HOUSEHOLDINGONERECORDPERHOUSEHOLD = 0,
@CODEVALUEID = @CODEVALUEID,
@RUNSEGMENTATIONSEGMENTREFRESHPROCESS = @RUNSEGMENTATIONSEGMENTREFRESHPROCESS,
@CACHESOURCEANALYSISRULEDATA = @CACHESOURCEANALYSISRULEDATA,
@BUSINESSUNITS = null,
@OVERRIDEBUSINESSUNITS = 0,
@BASECURRENCYID = @BASECURRENCYID,
@ORGANIZATIONCURRENCYEXCHANGERATEID = null,
@RUNMARKETINGEXCLUSIONSREPORT = @RUNMARKETINGEXCLUSIONSREPORT;
-- copy the universe/exclusion selection filters
insert into dbo.[MKTSEGMENTATIONFILTERSELECTION] (
[ID],
[SEGMENTATIONID],
[FILTERTYPECODE],
[SELECTIONID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
select
newid(),
@SEGMENTATIONID,
[FILTERTYPECODE],
[SELECTIONID],
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.[MKTSPONSORSHIPMAILINGTEMPLATEFILTERSELECTION]
where [SPONSORSHIPMAILINGTEMPLATEID] = @SPONSORSHIPMAILINGTEMPLATEID;
-- copy the source code parts
insert into dbo.[MKTSOURCECODEPART] (
[ID],
[SEGMENTATIONID],
[SOURCECODEITEMID],
[LISTID],
[CHANNELCODE],
[CODE],
[PARTDEFINITIONVALUESID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
select
newid(),
@SEGMENTATIONID,
[SOURCECODEITEMID],
[LISTID],
[CHANNELCODE],
[CODE],
[PARTDEFINITIONVALUESID],
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.[MKTSOURCECODEPART]
where [SPONSORSHIPMAILINGTEMPLATEID] = @SPONSORSHIPMAILINGTEMPLATEID;
-- copy the seeds
insert into dbo.[MKTSEGMENTATIONSEED] (
[ID],
[SEGMENTATIONID],
[SEEDID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
select
newid(),
@SEGMENTATIONID,
[SEEDID],
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.[MKTSPONSORSHIPMAILINGTEMPLATESEED]
where [SPONSORSHIPMAILINGTEMPLATEID] = @SPONSORSHIPMAILINGTEMPLATEID;
-- copy any ask ladder overrides
insert into dbo.[MKTSEGMENTATIONASKLADDEROVERRIDE] (
[ID],
[SEGMENTATIONID],
[ASKLADDERID],
[IDSETREGISTERID],
[SEQUENCE],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
select
newid(),
@SEGMENTATIONID,
[ASKLADDERID],
[IDSETREGISTERID],
[SEQUENCE],
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.[MKTSPONSORSHIPMAILINGTEMPLATEASKLADDEROVERRIDE]
where [SPONSORSHIPMAILINGTEMPLATEID] = @SPONSORSHIPMAILINGTEMPLATEID;
-- copy the segments via cursor
declare @TARGETSEGMENTID uniqueidentifier;
declare @SEGMENTID uniqueidentifier;
declare @PACKAGEID uniqueidentifier;
declare @PACKAGECODE nvarchar(10);
declare @PACKAGECODEVALUEID uniqueidentifier;
declare @CHANNELSOURCECODE nvarchar(10);
declare @CHANNELSOURCECODEVALUEID uniqueidentifier;
declare @RESPONSERATE decimal(5, 2);
declare @GIFTAMOUNT money;
declare @ASKLADDERID uniqueidentifier;
declare @SEQUENCE int;
declare @TESTSEGMENTCODE nvarchar(10);
declare @TESTSEGMENTCODEVALUEID uniqueidentifier;
declare @OVERRIDEADDRESSPROCESSING bit;
declare @SEGMENTUSEADDRESSPROCESSING bit;
declare @SEGMENTADDRESSPROCESSINGOPTIONID uniqueidentifier;
declare @SEGMENTNAMEFORMATPARAMETERID uniqueidentifier;
declare @SEGMENTADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE tinyint;
declare @SEGMENTADDRESSPROCESSINGOPTIONSEASONALASOFDATE datetime;
declare @EXCLUDE bit;
declare SEGMENTCURSOR cursor local fast_forward for
select
[MKTSPONSORSHIPMAILINGTEMPLATERULE].[SEGMENTID],
isnull([MKTSPONSORSHIPMAILINGTEMPLATERULE].[CODE], '') as [CODE],
[MKTSPONSORSHIPMAILINGTEMPLATERULE].[PARTDEFINITIONVALUESID] as [CODEVALUEID],
[MKTSPONSORSHIPMAILINGTEMPLATERULE].[PACKAGEID],
isnull([MKTPACKAGE].[CODE], '') as [PACKAGECODE],
[MKTPACKAGE].[PARTDEFINITIONVALUESID] as [PACKAGECODEVALUEID],
isnull([MKTPACKAGE].[CHANNELSOURCECODE], '') as [CHANNELSOURCECODE],
[MKTPACKAGE].[CHANNELPARTDEFINITIONVALUESID] as [CHANNELSOURCECODEVALUEID],
[MKTSPONSORSHIPMAILINGTEMPLATERULE].[RESPONSERATE],
[MKTSPONSORSHIPMAILINGTEMPLATERULE].[GIFTAMOUNT],
[MKTSPONSORSHIPMAILINGTEMPLATERULE].[ASKLADDERID],
[MKTSPONSORSHIPMAILINGTEMPLATERULE].[SEQUENCE],
isnull([MKTSPONSORSHIPMAILINGTEMPLATERULE].[TESTSEGMENTCODE], '') as [TESTSEGMENTCODE],
[MKTSPONSORSHIPMAILINGTEMPLATERULE].[TESTPARTDEFINITIONVALUESID] as [TESTSEGMENTCODEVALUEID],
[MKTSPONSORSHIPMAILINGTEMPLATERULE].[OVERRIDEADDRESSPROCESSING],
[MKTSPONSORSHIPMAILINGTEMPLATERULE].[USEADDRESSPROCESSING],
[MKTSPONSORSHIPMAILINGTEMPLATERULE].[ADDRESSPROCESSINGOPTIONID],
[MKTSPONSORSHIPMAILINGTEMPLATERULE].[NAMEFORMATPARAMETERID],
[MKTSPONSORSHIPMAILINGTEMPLATERULE].[ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE],
[MKTSPONSORSHIPMAILINGTEMPLATERULE].[ADDRESSPROCESSINGOPTIONSEASONALASOFDATE],
[MKTSPONSORSHIPMAILINGTEMPLATERULE].[EXCLUDE]
from dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE]
left outer join dbo.[MKTPACKAGE] on [MKTPACKAGE].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[PACKAGEID]
inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[SEGMENTID]
where [MKTSPONSORSHIPMAILINGTEMPLATERULE].[SPONSORSHIPMAILINGTEMPLATEID] = @SPONSORSHIPMAILINGTEMPLATEID
order by [MKTSPONSORSHIPMAILINGTEMPLATERULE].[SEQUENCE];
open SEGMENTCURSOR;
fetch next from SEGMENTCURSOR into @SEGMENTID, @CODE, @CODEVALUEID, @PACKAGEID, @PACKAGECODE, @PACKAGECODEVALUEID, @CHANNELSOURCECODE, @CHANNELSOURCECODEVALUEID, @RESPONSERATE, @GIFTAMOUNT, @ASKLADDERID, @SEQUENCE, @TESTSEGMENTCODE, @TESTSEGMENTCODEVALUEID, @OVERRIDEADDRESSPROCESSING, @SEGMENTUSEADDRESSPROCESSING, @SEGMENTADDRESSPROCESSINGOPTIONID, @SEGMENTNAMEFORMATPARAMETERID, @SEGMENTADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE, @SEGMENTADDRESSPROCESSINGOPTIONSEASONALASOFDATE, @EXCLUDE;
while (@@FETCH_STATUS = 0)
begin
set @TARGETSEGMENTID = null;
-- create the standard segment
exec dbo.[USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTATIONSEGMENT]
@TARGETSEGMENTID output,
@CHANGEAGENTID,
@SEGMENTATIONID,
null,
@SEGMENTID,
@CODE,
@TESTSEGMENTCODE,
@PACKAGEID,
@PACKAGECODE,
@RESPONSERATE,
@GIFTAMOUNT,
100,
0,
0,
@SEQUENCE,
@ASKLADDERID,
1,
@OVERRIDEADDRESSPROCESSING,
@SEGMENTUSEADDRESSPROCESSING,
@SEGMENTADDRESSPROCESSINGOPTIONID,
@SEGMENTADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE,
@SEGMENTADDRESSPROCESSINGOPTIONSEASONALASOFDATE,
@SEGMENTNAMEFORMATPARAMETERID,
@CODEVALUEID,
@TESTSEGMENTCODEVALUEID,
@PACKAGECODEVALUEID,
null,
@CHANNELSOURCECODE,
@CHANNELSOURCECODEVALUEID,
0,
0,
null,
null,
@EXCLUDE;
fetch next from SEGMENTCURSOR into @SEGMENTID, @CODE, @CODEVALUEID, @PACKAGEID, @PACKAGECODE, @PACKAGECODEVALUEID, @CHANNELSOURCECODE, @CHANNELSOURCECODEVALUEID, @RESPONSERATE, @GIFTAMOUNT, @ASKLADDERID, @SEQUENCE, @TESTSEGMENTCODE, @TESTSEGMENTCODEVALUEID, @OVERRIDEADDRESSPROCESSING, @SEGMENTUSEADDRESSPROCESSING, @SEGMENTADDRESSPROCESSINGOPTIONID, @SEGMENTNAMEFORMATPARAMETERID, @SEGMENTADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE, @SEGMENTADDRESSPROCESSINGOPTIONSEASONALASOFDATE, @EXCLUDE;
end;
close SEGMENTCURSOR;
deallocate SEGMENTCURSOR;
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;