USP_MKTSEGMENTATIONACTIVATEKPI_SAVEFIELD
Saves a KPI type to create for a marketing effort upon activation.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SEGMENTATIONID | uniqueidentifier | IN | |
@KPICATALOGID | uniqueidentifier | IN | |
@DEFAULT | bit | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.[USP_MKTSEGMENTATIONACTIVATEKPI_SAVEFIELD]
(
@SEGMENTATIONID uniqueidentifier,
@KPICATALOGID uniqueidentifier,
@DEFAULT bit,
@CHANGEAGENTID uniqueidentifier = null
)
as
set nocount on;
declare @MAILINGTYPECODE tinyint;
declare @CURRENTDATE datetime;
begin try
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
declare @KPISLOCKED bit = 0;
/* Get template locked kpi settings */
if exists(select top 1 1 from dbo.[MKTCOMMUNICATIONTEMPLATE] where [MKTSEGMENTATIONID] = @SEGMENTATIONID)
begin
select
@KPISLOCKED = [MKTCOMMUNICATIONTEMPLATEDEFAULT].[KPISLOCKED]
from dbo.[MKTCOMMUNICATIONTEMPLATE]
inner join dbo.[MKTCOMMUNICATIONTEMPLATEDEFAULT] on [MKTCOMMUNICATIONTEMPLATEDEFAULT].[COMMUNICATIONTEMPLATEID] = [MKTCOMMUNICATIONTEMPLATE].[ID]
where [MKTSEGMENTATIONID] = @SEGMENTATIONID;
end
/* Don't allow overwriting of locked KPIs */
if @KPISLOCKED = 0
begin
/* Insert the kpi type for the mailing */
if not exists (select top 1 1 from dbo.[MKTSEGMENTATIONACTIVATEKPI] where [SEGMENTATIONID] = @SEGMENTATIONID and [KPICATALOGID] = @KPICATALOGID)
insert into dbo.[MKTSEGMENTATIONACTIVATEKPI] (
[ID],
[SEGMENTATIONID],
[KPICATALOGID],
[ADDEDBYID],
[DATEADDED],
[CHANGEDBYID],
[DATECHANGED]
) values (
newid(),
@SEGMENTATIONID,
@KPICATALOGID,
@CHANGEAGENTID,
@CURRENTDATE,
@CHANGEAGENTID,
@CURRENTDATE
);
if @DEFAULT = 1
begin
select @MAILINGTYPECODE = [MAILINGTYPECODE] from dbo.[MKTSEGMENTATION] where [ID] = @SEGMENTATIONID;
if not exists (select top 1 1 from dbo.[MKTSEGMENTATIONACTIVATEDEFAULTKPI] where [MAILINGTYPECODE] = @MAILINGTYPECODE and [KPICATALOGID] = @KPICATALOGID)
insert into dbo.[MKTSEGMENTATIONACTIVATEDEFAULTKPI] (
[ID],
[MAILINGTYPECODE],
[KPICATALOGID],
[ADDEDBYID],
[DATEADDED],
[CHANGEDBYID],
[DATECHANGED]
) values (
newid(),
@MAILINGTYPECODE,
@KPICATALOGID,
@CHANGEAGENTID,
@CURRENTDATE,
@CHANGEAGENTID,
@CURRENTDATE
);
end
end
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;