USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTATION
The save procedure used by the add dataform template "Marketing Effort Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@CODE | nvarchar(10) | IN | Code |
@NAME | nvarchar(100) | IN | Name |
@DESCRIPTION | nvarchar(255) | IN | Description |
@INCLUDESELECTIONS | xml | IN | Universe |
@EXCLUDESELECTIONS | xml | IN | Exclusion selections |
@EXCLUDESEGMENTATIONS | xml | IN | Exclude records in these previous marketing efforts |
@MARKETINGPLANITEMID | uniqueidentifier | IN | Marketing plan item id |
@SOURCECODEID | uniqueidentifier | IN | Source code |
@ITEMLIST | xml | IN | Items |
@MAILDATE | datetime | IN | Date |
@HOUSEHOLDINGTYPECODE | tinyint | IN | Include |
@SITEID | uniqueidentifier | IN | Site |
@MAILINGTYPECODE | tinyint | IN | Marketing effort type |
@EXCLUSIONDATETYPECODE | tinyint | IN | Consider exclusions as of |
@EXCLUSIONASOFDATE | datetime | IN | Consider exclusions as of |
@EXCLUDEDECEASED | bit | IN | Exclude deceased constituents |
@EXCLUDEINACTIVE | bit | IN | Exclude inactive constituents |
@EXCLUSIONS | xml | IN | Exclusions |
@USEADDRESSPROCESSING | bit | IN | Use address processing? |
@ADDRESSPROCESSINGOPTIONID | uniqueidentifier | IN | Address processing options |
@NAMEFORMATPARAMETERID | uniqueidentifier | IN | Name format options |
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE | tinyint | IN | Consider seasonal addresses as of |
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATE | datetime | IN | Consider seasonal addresses as of |
@ACTIVATIONKPIS | xml | IN | Activation KPIs |
@USEKPISASDEFAULT | bit | IN | Use the chosen KPIs as the default for future marketing efforts |
@APPEALINFORMATION | xml | IN | Appeal information including the appeal searchlist and record source. |
@RUNACTIVATEANDEXPORT | bit | IN | Export marketing effort when activation completes |
@EXPORTDESCRIPTION | nvarchar(255) | IN | Export description |
@MAILEXPORTDEFINITIONID | uniqueidentifier | IN | Mail export definition |
@EMAILEXPORTDEFINITIONID | uniqueidentifier | IN | Email export definition |
@PHONEEXPORTDEFINITIONID | uniqueidentifier | IN | Phone export definition |
@HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD | bit | IN | Also include qualifying individuals who are not members of any household |
@HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS | bit | IN | Also include qualifying households which do not have any members |
@HOUSEHOLDINGONERECORDPERHOUSEHOLD | bit | IN | Send to one person per household |
@CODEVALUEID | uniqueidentifier | IN | Code value ID |
@RUNSEGMENTATIONSEGMENTREFRESHPROCESS | bit | IN | Refresh segment selections and filters |
@CACHESOURCEANALYSISRULEDATA | bit | IN | Capture source analysis rule data |
@BUSINESSUNITS | xml | IN | Business Units |
@OVERRIDEBUSINESSUNITS | bit | IN | Override appeal business units |
@BASECURRENCYID | uniqueidentifier | IN | Base currency ID |
@ORGANIZATIONCURRENCYEXCHANGERATEID | uniqueidentifier | IN | Currency exchange rate ID |
@RUNMARKETINGEXCLUSIONSREPORT | bit | IN | |
@DUEDATE | datetime | IN | |
@CHANNELCODE | tinyint | IN | |
@ALLOWRESERVINGFINDERNUMBERS | bit | IN | |
@ALLOWSPECIFYBUDGET | bit | IN | |
@ALLOWEXCLUDEPREVIOUSEFFORTS | bit | IN |
Definition
Copy
CREATE procedure dbo.[USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTATION]
(
@ID uniqueidentifier = null output,
@CURRENTAPPUSERID uniqueidentifier = null,
@CHANGEAGENTID uniqueidentifier = null,
@CODE nvarchar(10) = '',
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255) = '',
@INCLUDESELECTIONS xml = null,
@EXCLUDESELECTIONS xml = null,
@EXCLUDESEGMENTATIONS xml = null,
@MARKETINGPLANITEMID uniqueidentifier = null,
@SOURCECODEID uniqueidentifier = null,
@ITEMLIST xml = null,
@MAILDATE datetime = null,
@HOUSEHOLDINGTYPECODE tinyint = 0,
@SITEID uniqueidentifier = null,
@MAILINGTYPECODE tinyint = 0,
@EXCLUSIONDATETYPECODE tinyint = 0,
@EXCLUSIONASOFDATE datetime = null,
@EXCLUDEDECEASED bit = 1,
@EXCLUDEINACTIVE bit = 1,
@EXCLUSIONS xml = null,
@USEADDRESSPROCESSING bit = 0,
@ADDRESSPROCESSINGOPTIONID uniqueidentifier = null,
@NAMEFORMATPARAMETERID uniqueidentifier = null,
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE tinyint = 0,
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATE datetime = null,
@ACTIVATIONKPIS xml = null,
@USEKPISASDEFAULT bit = 0,
@APPEALINFORMATION xml = null,
@RUNACTIVATEANDEXPORT bit = 0,
@EXPORTDESCRIPTION nvarchar(255) = '',
@MAILEXPORTDEFINITIONID uniqueidentifier = null,
@EMAILEXPORTDEFINITIONID uniqueidentifier = null,
@PHONEEXPORTDEFINITIONID uniqueidentifier = null,
@HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD bit = 0,
@HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS bit = 0,
@HOUSEHOLDINGONERECORDPERHOUSEHOLD bit = 0,
@CODEVALUEID uniqueidentifier = null,
@RUNSEGMENTATIONSEGMENTREFRESHPROCESS bit = 0,
@CACHESOURCEANALYSISRULEDATA bit = 1,
@BUSINESSUNITS xml = null,
@OVERRIDEBUSINESSUNITS bit = 0,
@BASECURRENCYID uniqueidentifier = null,
@ORGANIZATIONCURRENCYEXCHANGERATEID uniqueidentifier = null,
@RUNMARKETINGEXCLUSIONSREPORT bit = 1,
@DUEDATE datetime = null,
@CHANNELCODE tinyint = 255,
@ALLOWRESERVINGFINDERNUMBERS bit = 1,
@ALLOWSPECIFYBUDGET bit = 1,
@ALLOWEXCLUDEPREVIOUSEFFORTS bit = 1
)
as
set nocount on;
declare @CURRENTDATE datetime;
declare @MARKETINGPLANSITEID uniqueidentifier;
declare @MKTSEGMENTATIONACTIVATEPROCESSID uniqueidentifier;
declare @ISBBEC bit;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
if @MARKETINGPLANITEMID is not null
begin
select @MARKETINGPLANSITEID = [SITEID]
from dbo.[MKTMARKETINGPLANITEM]
inner join dbo.[MKTMARKETINGPLAN] on [MKTMARKETINGPLAN].[ID] = [MKTMARKETINGPLANITEM].[MARKETINGPLANID]
where [MKTMARKETINGPLANITEM].[ID] = @MARKETINGPLANITEMID;
if (@MARKETINGPLANSITEID <> @SITEID or (@MARKETINGPLANSITEID is null and @SITEID is not null) or (@MARKETINGPLANSITEID is not null and @SITEID is null))
begin
raiserror('BBERR_MKTSEGMENTATION_SITEMUSTMATCHPLAN', 13, 1);
return 1;
end;
end;
begin try
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
set @CURRENTDATE = GetDate();
set @ISBBEC = (case when dbo.[UFN_INSTALLEDPRODUCTS_PRODUCTIS]('BB9873D7-F1ED-430A-8AB4-F09F47056538') = 0 then 1 else 0 end);
if @BASECURRENCYID is null
set @BASECURRENCYID = dbo.[UFN_APPUSER_GETBASECURRENCY](@CURRENTAPPUSERID);
/* Save the mailing */
insert into dbo.[MKTSEGMENTATION] (
[ID],
[NAME],
[DESCRIPTION],
[MARKETINGPLANITEMID],
[CODE],
[PARTDEFINITIONVALUESID],
[SOURCECODEID],
[MAILDATE],
[HOUSEHOLDINGTYPECODE],
[HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD],
[HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS],
[HOUSEHOLDINGONERECORDPERHOUSEHOLD],
[SITEID],
[MAILINGTYPECODE],
[USEADDRESSPROCESSING],
[ADDRESSPROCESSINGOPTIONID],
[NAMEFORMATPARAMETERID],
[ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE],
[ADDRESSPROCESSINGOPTIONSEASONALASOFDATE],
[RUNACTIVATEANDEXPORT],
[OVERRIDEBUSINESSUNITS],
[DUEDATE],
[CHANNELCODE],
[ALLOWRESERVINGFINDERNUMBERS],
[ALLOWSPECIFYBUDGET],
[ALLOWEXCLUDEPREVIOUSEFFORTS],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED],
[BASECURRENCYID],
[OWNERID]
) values (
@ID,
@NAME,
@DESCRIPTION,
@MARKETINGPLANITEMID,
@CODE,
@CODEVALUEID,
@SOURCECODEID,
@MAILDATE,
@HOUSEHOLDINGTYPECODE,
@HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD,
@HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS,
@HOUSEHOLDINGONERECORDPERHOUSEHOLD,
@SITEID,
@MAILINGTYPECODE,
@USEADDRESSPROCESSING,
case when @USEADDRESSPROCESSING = 1 then @ADDRESSPROCESSINGOPTIONID else null end,
case when @USEADDRESSPROCESSING = 1 then @NAMEFORMATPARAMETERID else null end,
case when @USEADDRESSPROCESSING = 1 then @ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE else 0 end,
case when @USEADDRESSPROCESSING = 1 then @ADDRESSPROCESSINGOPTIONSEASONALASOFDATE else null end,
@RUNACTIVATEANDEXPORT,
@OVERRIDEBUSINESSUNITS,
@DUEDATE,
@CHANNELCODE,
@ALLOWRESERVINGFINDERNUMBERS,
@ALLOWSPECIFYBUDGET,
@ALLOWEXCLUDEPREVIOUSEFFORTS,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
@BASECURRENCYID,
@CURRENTAPPUSERID
);
set @ORGANIZATIONCURRENCYID = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();
if (@ORGANIZATIONCURRENCYID != @BASECURRENCYID) and (@ORGANIZATIONCURRENCYEXCHANGERATEID is null)
set @ORGANIZATIONCURRENCYEXCHANGERATEID = dbo.[UFN_CURRENCYEXCHANGERATE_GETLATEST](@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null);
/* Create default budget info */
insert into dbo.[MKTSEGMENTATIONBUDGET] (
[ID],
[BUDGETAMOUNT],
[FIXEDCOST],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED],
[BASECURRENCYID],
[ORGANIZATIONBUDGETAMOUNT],
[ORGANIZATIONFIXEDCOST],
[ORGANIZATIONCURRENCYEXCHANGERATEID]
) values (
@ID,
0.0,
0.0,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
@BASECURRENCYID,
0.0,
0.0,
@ORGANIZATIONCURRENCYEXCHANGERATEID
);
/* Save all the filters */
exec dbo.USP_MKTSEGMENTATIONFILTERSELECTION_GETINCLUDESELECTIONS_ADDFROMXML @ID, @INCLUDESELECTIONS, @CHANGEAGENTID, @CURRENTDATE;
exec dbo.USP_MKTSEGMENTATIONFILTERSELECTION_GETEXCLUDESELECTIONS_ADDFROMXML @ID, @EXCLUDESELECTIONS, @CHANGEAGENTID, @CURRENTDATE;
exec dbo.USP_MKTSEGMENTATIONFILTERSEGMENTATION_GETEXCLUDESEGMENTATIONS_ADDFROMXML @ID, @EXCLUDESEGMENTATIONS, @CHANGEAGENTID, @CURRENTDATE;
/* save the source code information */
exec dbo.[USP_MKTSOURCECODEPART_GETITEMLIST2_UPDATEFROMXML] @ID, @ITEMLIST, @CHANGEAGENTID, @CURRENTDATE;
/* add this mailing to the PREACTIVATIONPROCESS table */
if not exists(select 1 from dbo.[MKTMAILINGPREACTIVATIONPROCESS] where [SEGMENTATIONID] = @ID)
insert into dbo.[MKTMAILINGPREACTIVATIONPROCESS] (
[ID],
[SEGMENTATIONID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
) values (
newid(),
@ID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
/* Add the mailing to the SegmentCalculationProcess table */
exec dbo.[USP_MKTSEGMENTATIONSEGMENTCALCULATEPROCESS_SAVE] @ID, @CHANGEAGENTID;
if @MAILINGTYPECODE not in (1, 4)
exec dbo.[USP_MKTSEGMENTATIONSEGMENTREFRESHPROCESS_SAVE] @ID, @CHANGEAGENTID;
/* Add the mailing to the ActivationProcess table */
exec dbo.[USP_MKTSEGMENTATIONACTIVATEPROCESS_SAVE] @ID, @CHANGEAGENTID, 1, @RUNSEGMENTATIONSEGMENTREFRESHPROCESS, @CACHESOURCEANALYSISRULEDATA, @RUNMARKETINGEXCLUSIONSREPORT;
/* Add the effort to the EffortExclusionsProcess table */
exec dbo.[USP_MKTSEGMENTATION_EFFORTEXCLUSIONSPROCESS_SAVE] @ID, @CHANGEAGENTID;
if @ISBBEC = 1
begin
/* Save the contact rules/communication preferences for the mailing activation business process */
select
@MKTSEGMENTATIONACTIVATEPROCESSID = [ID]
from dbo.[MKTSEGMENTATIONACTIVATEPROCESS]
where [SEGMENTATIONID] = @ID;
exec dbo.[USP_BUSINESSPROCESSCOMMPREF_ADD]
@CHANGEAGENTID = @CHANGEAGENTID,
@BUSINESSPROCESSCATALOGID = '22C3D75C-A956-4BFC-A5FD-4B866BAEF509',
@BUSINESSPROCESSPARAMETERSETID = @MKTSEGMENTATIONACTIVATEPROCESSID,
@EXCLUSIONDATETYPECODE = @EXCLUSIONDATETYPECODE,
@EXCLUSIONASOFDATE = @EXCLUSIONASOFDATE,
@EXCLUDEDECEASED = @EXCLUDEDECEASED,
@EXCLUDEINACTIVE = @EXCLUDEINACTIVE,
@EXCLUSIONS = @EXCLUSIONS,
@CURRENTAPPUSERID = @CURRENTAPPUSERID;
/* Save the business rules */
exec dbo.[USP_MKTSEGMENTATIONBUSINESSUNIT_GETBUSINESSUNITS_ADDFROMXML] @ID, @BUSINESSUNITS, @CHANGEAGENTID;
/* Create the address cache table */
exec dbo.[USP_MKTSEGMENTATIONSEGMENTCACHEADDRESSES_CREATETABLE] @ID;
end
/* Save KPIs */
exec dbo.[USP_MKTSEGMENTATIONACTIVATEKPI_SAVEFIELD_FROMXML]
@ID,
@ACTIVATIONKPIS,
@USEKPISASDEFAULT,
@CHANGEAGENTID,
@CURRENTAPPUSERID;
/* Save the appeal information */
exec dbo.[USP_MKTSEGMENTATIONACTIVATE_SAVEFIELD_FROMXML]
@ID,
@APPEALINFORMATION,
@CHANGEAGENTID;
/* Save the export information */
insert into dbo.[MKTSEGMENTATIONEXPORTPROCESS] (
[ID],
[SEGMENTATIONID],
[DESCRIPTION],
[MAILEXPORTDEFINITIONID],
[EMAILEXPORTDEFINITIONID],
[PHONEEXPORTDEFINITIONID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
) values (
newid(),
@ID,
@EXPORTDESCRIPTION,
@MAILEXPORTDEFINITIONID,
@EMAILEXPORTDEFINITIONID,
@PHONEEXPORTDEFINITIONID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;