USP_APPEALMAILING_SAVECHANNELOFFERCOUNTS
Aggregates current channel offer counts for the given segmentation and associates them with a run of the segmentation activate process.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SEGMENTATIONID | uniqueidentifier | IN | |
@MKTSEGMENTATIONACTIVATEPROCESSSTATUSID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.[USP_APPEALMAILING_SAVECHANNELOFFERCOUNTS]
(
@SEGMENTATIONID uniqueidentifier,
@MKTSEGMENTATIONACTIVATEPROCESSSTATUSID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null
)
as
begin
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output
declare @CURRENTDATE datetime = getdate();
declare @SEGMENTATIONDATATABLE as nvarchar(128) = dbo.[UFN_MKTSEGMENTATIONACTIVATE_MAKETABLENAME](@SEGMENTATIONID)
declare @SQL nvarchar(max);
-- Aggregate the channel offer counts and insert into table with associated status id.
set @SQL =
'insert into dbo.[APPEALMAILINGACTIVATEPROCESSOFFERCOUNT]' + char(13) +
'(' + char(13) +
' [ID],' + char(13) +
' [MKTSEGMENTATIONACTIVATEPROCESSSTATUSID],' + char(13) +
' [CHANNELCODE],' + char(13) +
' [OFFERCOUNT], ' + char(13) +
' [ADDEDBYID],' + char(13) +
' [CHANGEDBYID],' + char(13) +
' [DATEADDED],' + char(13) +
' [DATECHANGED]' + char(13) +
')' + char(13) +
'select' + char(13) +
' newid() as ID,' + char(13) +
' @MKTSEGMENTATIONACTIVATEPROCESSSTATUSID as [MKTSEGMENTATIONACTIVATEPROCESSSTATUSID],' + char(13) +
' [MKTPACKAGE].[CHANNELCODE] as [CHANNELCODE],' + char(13) +
' count([SEGMENTATIONDATA].[DONORID]) as [OFFERCOUNT],' + char(13) +
' @CHANGEAGENTID as [ADDEDBYID],' + char(13) +
' @CHANGEAGENTID as [CHANGEDBYID],' + char(13) +
' @CURRENTDATE as [DATEADDED],' + char(13) +
' @CURRENTDATE as [DATECHANGED]' + char(13) +
'from dbo.[' + @SEGMENTATIONDATATABLE + '] as [SEGMENTATIONDATA]' + char(13) +
'inner join dbo.[MKTSEGMENTATIONSEGMENT] on [MKTSEGMENTATIONSEGMENT].[ID] = [SEGMENTATIONDATA].[SEGMENTID]' + char(13) +
'inner join dbo.[MKTPACKAGE] on [MKTPACKAGE].[ID] = [MKTSEGMENTATIONSEGMENT].[PACKAGEID]' + char(13) +
'where [MKTSEGMENTATIONSEGMENT].[EXCLUDE] = 0' + char(13) +
'group by [MKTPACKAGE].[CHANNELCODE];';
exec sp_executesql @SQL, N'@MKTSEGMENTATIONACTIVATEPROCESSSTATUSID uniqueidentifier, @CHANGEAGENTID uniqueidentifier, @CURRENTDATE datetime', @MKTSEGMENTATIONACTIVATEPROCESSSTATUSID = @MKTSEGMENTATIONACTIVATEPROCESSSTATUSID, @CHANGEAGENTID = @CHANGEAGENTID, @CURRENTDATE = @CURRENTDATE;
end