USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENTATIONPASSIVE_1
USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENTATIONPASSIVE_1
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@NAME | nvarchar(100) | IN | |
@DESCRIPTION | nvarchar(255) | IN | |
@SITEID | uniqueidentifier | IN | |
@MAILDATE | datetime | IN | |
@SOURCECODEID | uniqueidentifier | IN | |
@CODEVALUEID | uniqueidentifier | IN | |
@CODE | nvarchar(10) | IN | |
@ITEMLIST | xml | IN | |
@ACTIVATIONKPIS | xml | IN | |
@USEKPISASDEFAULT | bit | IN |
Definition
Copy
CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENTATIONPASSIVE_1]
(
@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,
@USEKPISASDEFAULT bit
)
as
set nocount on;
declare @CURRENTDATE datetime;
declare @OLDSOURCECODEID uniqueidentifier;
declare @CURRENTSITEID uniqueidentifier;
declare @ACTIVE bit;
declare @SEGMENTATIONACTIVATEPROCESSID uniqueidentifier;
begin try
select
@ACTIVE = [MKTSEGMENTATION].[ACTIVE],
@OLDSOURCECODEID = [MKTSEGMENTATION].[SOURCECODEID],
@CURRENTDATE = getdate()
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;
update dbo.[MKTSEGMENTATION] set
[NAME] = @NAME,
[DESCRIPTION] = @DESCRIPTION,
[SITEID] = @SITEID,
[MAILDATE] = @MAILDATE,
[SOURCECODEID] = @SOURCECODEID,
[PARTDEFINITIONVALUESID] = @CODEVALUEID,
[CODE] = @CODE,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @ID;
-- save the sourcecode parts (only for non-activated mailings)
if @ACTIVE = 0
exec dbo.[USP_MKTSOURCECODEPART_GETITEMLIST_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
exec dbo.[USP_MKTSEGMENTATIONACTIVATEKPI_SAVEFIELD_FROMXML] @ID, @ACTIVATIONKPIS, @USEKPISASDEFAULT, @CHANGEAGENTID, @CURRENTAPPUSERID;
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;