USP_MKTSEGMENTATIONEXPORTPROCESS_GETRECORDSOURCES
Retrieves information about the record sources of the segments in a marketing effort to be exported using a particular export definition.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SEGMENTATIONID | uniqueidentifier | IN | |
@EXPORTDEFINITIONID | uniqueidentifier | IN | |
@PREVIEWDEFAULTMAILEXPORTDEFINITION | bit | IN | |
@PREVIEWDEFAULTEMAILEXPORTDEFINITION | bit | IN | |
@PREVIEWDEFAULTPHONEEXPORTDEFINITION | bit | IN |
Definition
Copy
CREATE procedure dbo.[USP_MKTSEGMENTATIONEXPORTPROCESS_GETRECORDSOURCES]
(
@SEGMENTATIONID uniqueidentifier,
@EXPORTDEFINITIONID uniqueidentifier,
@PREVIEWDEFAULTMAILEXPORTDEFINITION bit = 0,
@PREVIEWDEFAULTEMAILEXPORTDEFINITION bit = 0,
@PREVIEWDEFAULTPHONEEXPORTDEFINITION bit = 0
)
as
set nocount on;
with [RECORDSOURCES] ([RECORDSOURCEID]) as
(
select
[MKTSEGMENT].[QUERYVIEWCATALOGID] as [RECORDSOURCEID]
from dbo.[MKTSEGMENTATIONSEGMENT]
inner join dbo.[MKTSEGMENTATIONEXPORTPROCESS] on [MKTSEGMENTATIONEXPORTPROCESS].[SEGMENTATIONID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID]
inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID]
left outer join dbo.[MKTSEGMENTLIST] on [MKTSEGMENTLIST].[ID] = [MKTSEGMENT].[CURRENTSEGMENTLISTID]
inner join dbo.[MKTPACKAGE] on [MKTPACKAGE].[ID] = [MKTSEGMENTATIONSEGMENT].[PACKAGEID]
left outer join dbo.[LETTERCODE] as [MAILEXPORTDEFINITION] on [MAILEXPORTDEFINITION].[ID] = [MKTPACKAGE].[LETTERCODEID]
left outer join dbo.[MKTEXPORTDEFINITION] on ([MKTEXPORTDEFINITION].[NETCOMMUNITYDATASOURCEID] = [MKTPACKAGE].[NETCOMMUNITYDATASOURCEID] and [MKTPACKAGE].[NETCOMMUNITYDATASOURCEID] > 0)
left outer join dbo.[EXPORTDEFINITION] as [EMAILEXPORTDEFINITION] on [EMAILEXPORTDEFINITION].[ID] = [MKTEXPORTDEFINITION].[EXPORTDEFINITIONID]
where [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID] = @SEGMENTATIONID
and [MKTSEGMENTATIONSEGMENT].[EXCLUDE] = 0
and ([MKTSEGMENTLIST].[TYPECODE] is null or [MKTSEGMENTLIST].[TYPECODE] <> 1) -- exclude vendor-managed segments
and case [MKTPACKAGE].[CHANNELCODE]
when 0 then case when @PREVIEWDEFAULTMAILEXPORTDEFINITION = 1 then @EXPORTDEFINITIONID
else coalesce([MAILEXPORTDEFINITION].[EXPORTDEFINITIONID], [MKTPACKAGE].[EXPORTDEFINITIONID], [MKTSEGMENTATIONEXPORTPROCESS].[MAILEXPORTDEFINITIONID]) end
when 1 then case when @PREVIEWDEFAULTEMAILEXPORTDEFINITION = 1 then @EXPORTDEFINITIONID
else coalesce([EMAILEXPORTDEFINITION].[ID], [MKTPACKAGE].[EXPORTDEFINITIONID], [MKTSEGMENTATIONEXPORTPROCESS].[EMAILEXPORTDEFINITIONID]) end
when 2 then case when @PREVIEWDEFAULTPHONEEXPORTDEFINITION = 1 then @EXPORTDEFINITIONID
else coalesce([MKTPACKAGE].[EXPORTDEFINITIONID], [MKTSEGMENTATIONEXPORTPROCESS].[PHONEEXPORTDEFINITIONID]) end
end = @EXPORTDEFINITIONID
union
select
[MKTSEGMENT].[QUERYVIEWCATALOGID] as [RECORDSOURCEID]
from dbo.[MKTSEGMENTATIONSEGMENT]
inner join dbo.[MKTSEGMENTATIONTESTSEGMENT] on [MKTSEGMENTATIONTESTSEGMENT].[SEGMENTID] = [MKTSEGMENTATIONSEGMENT].[ID]
inner join dbo.[MKTSEGMENTATIONEXPORTPROCESS] on [MKTSEGMENTATIONEXPORTPROCESS].[SEGMENTATIONID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID]
inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID]
left outer join dbo.[MKTSEGMENTLIST] on [MKTSEGMENTLIST].[ID] = [MKTSEGMENT].[CURRENTSEGMENTLISTID]
inner join dbo.[MKTPACKAGE] on [MKTPACKAGE].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[PACKAGEID]
left outer join dbo.[LETTERCODE] as [MAILEXPORTDEFINITION] on [MAILEXPORTDEFINITION].[ID] = [MKTPACKAGE].[LETTERCODEID]
left outer join dbo.[MKTEXPORTDEFINITION] on ([MKTEXPORTDEFINITION].[NETCOMMUNITYDATASOURCEID] = [MKTPACKAGE].[NETCOMMUNITYDATASOURCEID] and [MKTPACKAGE].[NETCOMMUNITYDATASOURCEID] > 0)
left outer join dbo.[EXPORTDEFINITION] as [EMAILEXPORTDEFINITION] on [EMAILEXPORTDEFINITION].[ID] = [MKTEXPORTDEFINITION].[EXPORTDEFINITIONID]
where [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID] = @SEGMENTATIONID
and [MKTSEGMENTATIONSEGMENT].[EXCLUDE] = 0
and ([MKTSEGMENTLIST].[TYPECODE] is null or [MKTSEGMENTLIST].[TYPECODE] <> 1) -- exclude vendor-managed segments
and case [MKTPACKAGE].[CHANNELCODE]
when 0 then case when @PREVIEWDEFAULTMAILEXPORTDEFINITION = 1 then @EXPORTDEFINITIONID
else coalesce([MAILEXPORTDEFINITION].[EXPORTDEFINITIONID], [MKTPACKAGE].[EXPORTDEFINITIONID], [MKTSEGMENTATIONEXPORTPROCESS].[MAILEXPORTDEFINITIONID]) end
when 1 then case when @PREVIEWDEFAULTEMAILEXPORTDEFINITION = 1 then @EXPORTDEFINITIONID
else coalesce([EMAILEXPORTDEFINITION].[ID], [MKTPACKAGE].[EXPORTDEFINITIONID], [MKTSEGMENTATIONEXPORTPROCESS].[EMAILEXPORTDEFINITIONID]) end
when 2 then case when @PREVIEWDEFAULTPHONEEXPORTDEFINITION = 1 then @EXPORTDEFINITIONID
else coalesce([MKTPACKAGE].[EXPORTDEFINITIONID], [MKTSEGMENTATIONEXPORTPROCESS].[PHONEEXPORTDEFINITIONID]) end
end = @EXPORTDEFINITIONID
),
[RECORDSOURCES_WITH_SEQUENCE] ([RECORDSOURCEID], [SEQUENCE]) as
(
select
[RECORDSOURCES].[RECORDSOURCEID],
min([MKTSEGMENTATIONSEGMENT].[SEQUENCE])
from dbo.[MKTSEGMENTATIONSEGMENT]
inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID]
inner join [RECORDSOURCES] on [RECORDSOURCES].[RECORDSOURCEID] = [MKTSEGMENT].[QUERYVIEWCATALOGID]
where [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID] = @SEGMENTATIONID
group by [RECORDSOURCES].[RECORDSOURCEID]
)
select
[RS].[RECORDSOURCEID],
[QUERYVIEWCATALOG].[DISPLAYNAME] as [RECORDSOURCENAME],
dbo.[UFN_MKTRECORDSOURCE_VALIDFORBBEC]([RS].[RECORDSOURCEID]) as [RECORDSOURCEISBBEC],
[QUERYVIEWCATALOG].[OBJECTNAME] as [RECORDSOURCEOBJECTNAME],
[QUERYVIEWCATALOG].[PRIMARYKEYTYPENAME] as [RECORDSOURCEPRIMARYKEYTYPENAME],
isnull([CONSOLIDATEDQUERYVIEWCATALOG].[OBJECTNAME], '') as [CONSOLIDATEDOBJECTNAME],
[QUERYVIEWCATALOG].[QUERYVIEWSPEC] as [RECORDSOURCEQUERYVIEWXML],
isnull([CONSOLIDATEDQUERYVIEWCATALOG].[QUERYVIEWSPEC], '') as [CONSOLIDATEDQUERYVIEWXML]
from [RECORDSOURCES_WITH_SEQUENCE] as [RS]
inner join dbo.[MKTRECORDSOURCE] on [MKTRECORDSOURCE].[ID] = [RS].[RECORDSOURCEID]
inner join dbo.[QUERYVIEWCATALOG] on [QUERYVIEWCATALOG].[ID] = [MKTRECORDSOURCE].[ID]
left outer join dbo.[MKTCONSOLIDATEDQUERYVIEWSPEC] on [MKTCONSOLIDATEDQUERYVIEWSPEC].[ID] = [RS].[RECORDSOURCEID]
left outer join dbo.[QUERYVIEWCATALOG] as [CONSOLIDATEDQUERYVIEWCATALOG] on [CONSOLIDATEDQUERYVIEWCATALOG].[ID] = [MKTCONSOLIDATEDQUERYVIEWSPEC].[CONSOLIDATEDQUERYVIEWCATALOGID]
order by [RS].[SEQUENCE];
return 0;