USP_MKTSEGMENTATIONEXPORTPROCESSOUTPUTEMAIL_GETPACKAGES
Retrieves information about all of the packages associated with a marketing effort export output.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@BUSINESSPROCESSOUTPUTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.[USP_MKTSEGMENTATIONEXPORTPROCESSOUTPUTEMAIL_GETPACKAGES]
(
@BUSINESSPROCESSOUTPUTID uniqueidentifier
)
as
set nocount on;
declare @BUSINESSPROCESSSTATUSID uniqueidentifier;
declare @TABLEKEY nvarchar(50);
declare @OUTPUTTABLENAME nvarchar(255);
declare @SUMMARYTABLENAME nvarchar(255);
declare @DATATABLENAME nvarchar(255);
declare @SQL nvarchar(max);
declare @STATUS xml;
select
@BUSINESSPROCESSSTATUSID = [BUSINESSPROCESSOUTPUT].[BUSINESSPROCESSSTATUSID],
@TABLEKEY = [BUSINESSPROCESSOUTPUT].[TABLEKEY],
@OUTPUTTABLENAME = [BUSINESSPROCESSOUTPUT].[TABLENAME],
@DATATABLENAME = dbo.[UFN_MKTSEGMENTATIONACTIVATE_MAKETABLENAME]([MKTSEGMENTATIONEXPORTPROCESS].[SEGMENTATIONID])
from dbo.[BUSINESSPROCESSOUTPUT]
inner join dbo.[BUSINESSPROCESSSTATUS] on [BUSINESSPROCESSSTATUS].[ID] = [BUSINESSPROCESSOUTPUT].[BUSINESSPROCESSSTATUSID]
inner join dbo.[MKTSEGMENTATIONEXPORTPROCESS] on [MKTSEGMENTATIONEXPORTPROCESS].[ID] = [BUSINESSPROCESSSTATUS].[BUSINESSPROCESSPARAMETERSETID]
where [BUSINESSPROCESSOUTPUT].[ID] = @BUSINESSPROCESSOUTPUTID;
select @SUMMARYTABLENAME = [TABLENAME] from dbo.[BUSINESSPROCESSOUTPUT] where [TABLEKEY] = convert(nvarchar(36), @BUSINESSPROCESSSTATUSID);
set @SQL =
'declare @PACKAGES table([PACKAGEID] uniqueidentifier, [PACKAGENAME] nvarchar(100), [NETCOMMUNITYDATASOURCEID] integer, [NETCOMMUNITYTEMPLATEID] integer, [NETCOMMUNITYEMAILID] integer, [STATUSCODE] tinyint, [STATUSDATE] datetime, [STATUSMESSAGE] nvarchar(255), [EXPORTDEFINITIONID] uniqueidentifier, [EXPORTDEFINITION] nvarchar(255), [STATUSDETAIL] nvarchar(max))' + char(13);
set @SQL = @SQL +
'insert into @PACKAGES([PACKAGEID], [PACKAGENAME], [NETCOMMUNITYDATASOURCEID], [NETCOMMUNITYTEMPLATEID], [EXPORTDEFINITIONID], [EXPORTDEFINITION])' + char(13) +
'select' + char(13) +
' [MKTPACKAGE].[ID] as [PACKAGEID],' + char(13) +
' [MKTPACKAGE].[NAME] as [PACKAGENAME],' + char(13) +
' [MKTPACKAGE].[NETCOMMUNITYDATASOURCEID],' + char(13) +
' [MKTPACKAGE].[NETCOMMUNITYTEMPLATEID],' + char(13) +
' [EXPORTDEFINITION].[ID] as [EXPORTDEFINITIONID],' + char(13) +
' [EXPORTDEFINITION].[NAME] as [EXPORTDEFINITION]' + char(13) +
'from dbo.[MKTPACKAGE]' + char(13) +
'inner join dbo.[MKTEXPORTDEFINITION] on [MKTEXPORTDEFINITION].[NETCOMMUNITYDATASOURCEID] = [MKTPACKAGE].[NETCOMMUNITYDATASOURCEID]' + char(13) +
'inner join dbo.[EXPORTDEFINITION] on [EXPORTDEFINITION].[ID] = [MKTEXPORTDEFINITION].[EXPORTDEFINITIONID]' + char(13) +
'where [MKTPACKAGE].[ID] in (select distinct [PACKAGEID] from dbo.[' + @OUTPUTTABLENAME + ']);' + char(13);
set @SQL = @SQL +
'declare @STATUS xml;' + char(13) +
'select @STATUS = [STATUS] from dbo.[' + @SUMMARYTABLENAME + '] where [TABLEKEY] = ''' + @TABLEKEY + '''' + char(13) +
'update @PACKAGES set' + char(13) +
' [NETCOMMUNITYEMAILID] = T.c.value(''(NETCOMMUNITYEMAILID)[1]'', ''integer''),' + char(13) +
' [STATUSCODE] = T.c.value(''(STATUSCODE)[1]'', ''tinyint''),' + char(13) +
' [STATUSDATE] = T.c.value(''(STATUSDATE)[1]'', ''datetime''),' + char(13) +
' [STATUSMESSAGE] = T.c.value(''(STATUSMESSAGE)[1]'', ''nvarchar(255)''),' + char(13) +
' [STATUSDETAIL] = T.c.value(''(STATUSDETAIL)[1]'', ''nvarchar(max)'')' + char(13) +
'from @STATUS.nodes(''/STATUS/ITEM'') T(c)' + char(13) +
'left outer join @PACKAGES as [P] on [P].[PACKAGEID] = T.c.value(''(PACKAGEID)[1]'', ''uniqueidentifier'')' + char(13);
set @SQL = @SQL +
'if exists (select top 1 1 from @PACKAGES as [P] where [P].[STATUSCODE] is null or [P].[STATUSCODE] = 0) begin' + char(13) +
' declare @CHECKFORFULLNAME table ([QUERYVIEWCATALOGID] uniqueidentifier, [PACKAGEID] uniqueidentifier, [FULLNAMEFIELD] nvarchar(510))' + char(13);
set @SQL = @SQL +
' insert into @CHECKFORFULLNAME' + char(13) +
' select distinct' + char(13) +
' [DATA].[DONORQUERYVIEWCATALOGID],' + char(13) +
' isnull([MKTSEGMENTATIONTESTSEGMENT].[PACKAGEID], [MKTSEGMENTATIONSEGMENT].[PACKAGEID]) as [PACKAGEID],' + char(13) +
' [MKTRECORDSOURCEFIELDMAPPINGS].[FULLNAMEFIELD]' + char(13) +
' from dbo.[' + @DATATABLENAME + '] as [DATA]' + char(13) +
' inner join dbo.[MKTSEGMENTATIONSEGMENT] on [MKTSEGMENTATIONSEGMENT].[ID] = [DATA].[SEGMENTID]' + char(13) +
' left outer join dbo.[MKTSEGMENTATIONTESTSEGMENT] on [MKTSEGMENTATIONTESTSEGMENT].[ID] = [DATA].[TESTSEGMENTID]' + char(13) +
' inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID]' + char(13) +
' left outer join dbo.[MKTSEGMENTLIST] on [MKTSEGMENTLIST].[SEGMENTID] = [MKTSEGMENT].[ID]' + char(13) +
' inner join dbo.[MKTPACKAGE] on [MKTPACKAGE].[ID] = isnull([MKTSEGMENTATIONTESTSEGMENT].[PACKAGEID], [MKTSEGMENTATIONSEGMENT].[PACKAGEID])' + char(13) +
' inner join dbo.[MKTRECORDSOURCEFIELDMAPPINGS] on [MKTRECORDSOURCEFIELDMAPPINGS].[ID] = [MKTSEGMENT].[QUERYVIEWCATALOGID]' + char(13) +
' where [MKTPACKAGE].[CHANNELCODE] = 1 and [MKTPACKAGE].[NETCOMMUNITYDATASOURCEID] > 0' + char(13) +
' and ([MKTSEGMENTLIST].[TYPECODE] is null or [MKTSEGMENTLIST].[TYPECODE] <> 1)' + char(13) +
' and [DATA].[DONORQUERYVIEWCATALOGID] <> [MKTSEGMENT].[QUERYVIEWCATALOGID]' + char(13);
set @SQL = @SQL +
' update @PACKAGES set' + char(13) +
' [STATUSCODE] = 7,' + char(13) +
' [STATUSMESSAGE] = ''##FULLNAMEWARNING##''' + char(13) +
' from @PACKAGES as [PACKAGES]' + char(13) +
' inner join @CHECKFORFULLNAME as [CHECKFORFULLNAME] on [CHECKFORFULLNAME].[PACKAGEID] = [PACKAGES].[PACKAGEID]' + char(13) +
' inner join dbo.[QUERYVIEWCATALOG] on [QUERYVIEWCATALOG].[ID] = [CHECKFORFULLNAME].[QUERYVIEWCATALOGID]' + char(13) +
' where ([PACKAGES].[STATUSCODE] is null or [PACKAGES].[STATUSCODE] = 0)' + char(13) +
' and not exists (' + char(13) +
' select top 1 1' + char(13) +
' from [QUERYVIEWCATALOG].[OUTPUTDEFINITIONXML].nodes(''declare namespace QV="bb_appfx_queryview";/QueryViewOutput/QV:OutputFields/QV:OutputField'') as T(c)' + char(13) +
' where T.c.value(''(@Name)[1]'', ''nvarchar(510)'') = [CHECKFORFULLNAME].[FULLNAMEFIELD])' + char(13) +
'end' + char(13);
set @SQL = @SQL +
'select * from @PACKAGES;';
exec sp_executesql @SQL;
-- use this to get the SPWrap Code Generator to update the wrapper code:
-- 1. make the SPWRAP table's shape match that of the SQL above
-- 2. uncomment the two lines below and load the spec
-- 3. run the SPWrap Code Generator
-- 4. comment the two lines below out again and load the spec
-- make sure these lines are commented out before generating a revision for this spec!
--declare @SPWRAP table([PACKAGEID] uniqueidentifier, [PACKAGENAME] nvarchar(100), [NETCOMMUNITYDATASOURCEID] integer, [NETCOMMUNITYTEMPLATEID] integer, [NETCOMMUNITYEMAILID] integer, [STATUSCODE] tinyint, [STATUSDATE] datetime, [STATUSMESSAGE] nvarchar(255), [EXPORTDEFINITIONID] uniqueidentifier, [EXPORTDEFINITION] nvarchar(255), [STATUSDETAIL] nvarchar(max));
--select * from @SPWRAP;
return 0;