USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENTATIONPASSIVE_2
The save procedure used by the edit dataform template "Public Media Marketing Effort Edit Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@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. |
@NAME | nvarchar(100) | IN | Name |
@DESCRIPTION | nvarchar(255) | IN | Description |
@SITEID | uniqueidentifier | IN | Site |
@MAILDATE | datetime | IN | Date |
@SOURCECODEID | uniqueidentifier | IN | Source code |
@CODEVALUEID | uniqueidentifier | IN | Code value ID |
@CODE | nvarchar(10) | IN | Code |
@ITEMLIST | xml | IN | Items |
@ACTIVATIONKPIS | xml | IN | Activation KPIs |
@USEKPISASDEFAULT | bit | IN | Use the chosen KPIs as the default for future marketing efforts |
@APPEALINFORMATION | xml | IN | Appeal information |
Definition
Copy
CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENTATIONPASSIVE_2]
(
@ID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255),
@SITEID uniqueidentifier,
@MAILDATE datetime,
@SOURCECODEID uniqueidentifier,
@CODEVALUEID uniqueidentifier,
@CODE nvarchar(10),
@ITEMLIST xml,
@ACTIVATIONKPIS xml, -- obsolete
@USEKPISASDEFAULT bit, -- obsolete
@APPEALINFORMATION xml
)
as
set nocount on;
declare @CURRENTDATE datetime;
declare @OLDSOURCECODEID uniqueidentifier;
declare @CURRENTSITEID uniqueidentifier;
declare @ACTIVE bit;
declare @SEGMENTATIONACTIVATEPROCESSID uniqueidentifier;
declare @BASECURRENCYID uniqueidentifier;
begin try
select
@ACTIVE = [MKTSEGMENTATION].[ACTIVE],
@OLDSOURCECODEID = [MKTSEGMENTATION].[SOURCECODEID],
@CURRENTDATE = getdate(),
@BASECURRENCYID = [BASECURRENCYID]
from dbo.[MKTSEGMENTATION]
where [MKTSEGMENTATION].[ID] = @ID;
if @ACTIVE = 0
-- check if the mailing is currently being activated
exec dbo.[USP_MKTSEGMENTATION_CHECKACTIVATION] @ID;
if @CHANGEAGENTID is null exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
/* Get basecurrencyid from enterprise appeal. Since public media efforts are activated upon creation, we need
to set the base currency based on the appeal. */
select
@BASECURRENCYID = [APPEAL].[BASECURRENCYID]
from @APPEALINFORMATION.nodes('/APPEALINFORMATION/ITEM') T(c)
inner join dbo.[APPEAL] on [APPEAL].[ID] = T.c.value('(APPEALSYSTEMID)[1]','uniqueidentifier')
where (dbo.[UFN_MKTRECORDSOURCE_VALIDFORBBEC](T.c.value('(RECORDSOURCEID)[1]','uniqueidentifier')) = 1);
update dbo.[MKTSEGMENTATION] set
[NAME] = @NAME,
[DESCRIPTION] = @DESCRIPTION,
[SITEID] = @SITEID,
[MAILDATE] = @MAILDATE,
[SOURCECODEID] = @SOURCECODEID,
[PARTDEFINITIONVALUESID] = @CODEVALUEID,
[CODE] = @CODE,
[BASECURRENCYID] = @BASECURRENCYID,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @ID;
-- save the source code parts (only for non-activated mailings)
if @ACTIVE = 0
exec dbo.[USP_MKTSOURCECODEPART_GETITEMLIST2_UPDATEFROMXML] @ID, @ITEMLIST, @CHANGEAGENTID, @CURRENTDATE;
-- update any segment codes in this mailing with their base segment codes
if isnull(cast(@OLDSOURCECODEID as varchar(36)), '') <> isnull(cast(@SOURCECODEID as varchar(36)), '')
update dbo.[MKTSEGMENTATIONSEGMENT] set
[CODE] = (case when @SOURCECODEID is null then '' else [MKTSEGMENT].[CODE] end),
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
from dbo.[MKTSEGMENTATIONSEGMENT] as [MKTSEGMENTATIONSEGMENT]
inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID]
where [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID] = @ID;
-- save KPIs
if @ACTIVE = 0
exec dbo.[USP_MKTSEGMENTATIONACTIVATEKPI_SAVEFIELD_FROMXML] @ID, @ACTIVATIONKPIS, @USEKPISASDEFAULT, @CHANGEAGENTID, @CURRENTAPPUSERID;
-- save the appeal information
exec dbo.[USP_MKTSEGMENTATIONACTIVATE_SAVEFIELD_FROMXML] @ID, @APPEALINFORMATION, @CHANGEAGENTID;
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;