USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTATIONFROMPLAN
The save procedure used by the add dataform template "Marketing Effort From Marketing Plan 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. |
@MARKETINGPLANITEMID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@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 | Excluded previous marketing efforts |
@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 | Run activate and export upon process completion |
@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 |
@OVERRIDEBUSINESSUNITS | bit | IN | Override appeal business units |
@BUSINESSUNITS | xml | IN | Business units |
@RUNMARKETINGEXCLUSIONSREPORT | bit | IN |
Definition
Copy
CREATE procedure dbo.[USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTATIONFROMPLAN]
(
@ID uniqueidentifier = null output,
@CURRENTAPPUSERID uniqueidentifier = null,
@CHANGEAGENTID uniqueidentifier = null,
@MARKETINGPLANITEMID uniqueidentifier,
@CODE nvarchar(10) = '',
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255) = '',
@INCLUDESELECTIONS xml = null,
@EXCLUDESELECTIONS xml = null,
@EXCLUDESEGMENTATIONS xml = 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) = null,
@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,
@OVERRIDEBUSINESSUNITS bit = 0,
@BUSINESSUNITS xml = null,
@RUNMARKETINGEXCLUSIONSREPORT bit = 1
)
as
set nocount on;
declare @CURRENTDATE datetime;
declare @MKTSEGMENTATIONACTIVATEPROCESSID uniqueidentifier;
declare @BASECURRENCYID uniqueidentifier;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
declare @ORGANIZATIONCURRENCYEXCHANGERATEID uniqueidentifier;
declare @ISBBEC bit;
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);
select
@BASECURRENCYID = [BASECURRENCYID]
from dbo.[MKTMARKETINGPLANITEM]
where [ID]= @MARKETINGPLANITEMID;
/* Save the mailing */
insert into dbo.[MKTSEGMENTATION] (
[ID],
[CODE],
[PARTDEFINITIONVALUESID],
[NAME],
[DESCRIPTION],
[SITEID],
[MARKETINGPLANITEMID],
[SOURCECODEID],
[MAILDATE],
[HOUSEHOLDINGTYPECODE],
[HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD],
[HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS],
[HOUSEHOLDINGONERECORDPERHOUSEHOLD],
[MAILINGTYPECODE],
[USEADDRESSPROCESSING],
[ADDRESSPROCESSINGOPTIONID],
[NAMEFORMATPARAMETERID],
[ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE],
[ADDRESSPROCESSINGOPTIONSEASONALASOFDATE],
[RUNACTIVATEANDEXPORT],
[OVERRIDEBUSINESSUNITS],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED],
[BASECURRENCYID]
) values (
@ID,
@CODE,
@CODEVALUEID,
@NAME,
@DESCRIPTION,
@SITEID,
@MARKETINGPLANITEMID,
@SOURCECODEID,
@MAILDATE,
@HOUSEHOLDINGTYPECODE,
@HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD,
@HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS,
@HOUSEHOLDINGONERECORDPERHOUSEHOLD,
@MAILINGTYPECODE,
@USEADDRESSPROCESSING,
@ADDRESSPROCESSINGOPTIONID,
@NAMEFORMATPARAMETERID,
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE,
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATE,
@RUNACTIVATEANDEXPORT,
@OVERRIDEBUSINESSUNITS,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
@BASECURRENCYID
);
set @ORGANIZATIONCURRENCYID = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();
if (@ORGANIZATIONCURRENCYID != @BASECURRENCYID)
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
);
if @ISBBEC = 1
begin
/* Save business units */
exec dbo.USP_MKTSEGMENTATIONBUSINESSUNIT_GETBUSINESSUNITS_ADDFROMXML @ID, @BUSINESSUNITS, @CHANGEAGENTID;
end
/* Save the source code information */
exec dbo.[USP_MKTSOURCECODEPART_GETITEMLIST2_UPDATEFROMXML] @ID, @ITEMLIST, @CHANGEAGENTID, @CURRENTDATE;
/* 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;
/* 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;
/* Create the address cache table */
exec dbo.[USP_MKTSEGMENTATIONSEGMENTCACHEADDRESSES_CREATETABLE] @ID;
end
--update the name on the plan item the mailings is from
update dbo.[MKTMARKETINGPLANITEM] set
[NAME] = @NAME,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @MARKETINGPLANITEMID;
/* 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;