USP_DATAFORMTEMPLATE_VIEW_MKTSEGMENTEXPRESSION
The load procedure used by the view dataform template "Segment Expression View Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@NAME | nvarchar(100) | INOUT | Name |
@SEGMENTTYPECODE | tinyint | INOUT | Segment type code |
@SEGMENTLISTID | uniqueidentifier | INOUT | List segment ID |
@TYPECODE | tinyint | INOUT | Type code |
@STATUSCODE | tinyint | INOUT | Status code |
@ISCONSOLIDATED | bit | INOUT | Is consolidated? |
@SHOWINQUERYDESIGNER | bit | INOUT | Show in query designer? |
@PARENTSEGMENTID | uniqueidentifier | INOUT | Parent segment ID |
@PARENTSEGMENTNAME | nvarchar(100) | INOUT | Parent segment name |
@DEDUPLISTS | bit | INOUT | Process list duplicates |
@SEGMENTREFRESHPROCESSID | uniqueidentifier | INOUT | Segment refresh process ID |
@SEGMENTLISTIMPORTPROCESSID | uniqueidentifier | INOUT | List segment import process ID |
@SEGMENTLISTDEDUPEPROCESSID | uniqueidentifier | INOUT | List segment dedupe process ID |
@RECORDTYPENAME | nvarchar(50) | INOUT | Record type name |
@QUERYVIEWCATALOGID | uniqueidentifier | INOUT | Query view ID |
@HASSELECTIONS | bit | INOUT | Has selections |
@HASAVAILABLEKPIS | bit | INOUT | Has available KPIs |
@ISHISTORICAL | bit | INOUT |
Definition
Copy
CREATE procedure dbo.[USP_DATAFORMTEMPLATE_VIEW_MKTSEGMENTEXPRESSION]
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@NAME nvarchar(100) = null output,
@SEGMENTTYPECODE tinyint = null output,
@SEGMENTLISTID uniqueidentifier = null output,
@TYPECODE tinyint = null output,
@STATUSCODE tinyint = null output,
@ISCONSOLIDATED bit = null output,
@SHOWINQUERYDESIGNER bit = null output,
@PARENTSEGMENTID uniqueidentifier = null output,
@PARENTSEGMENTNAME nvarchar(100) = null output,
@DEDUPLISTS bit = null output,
@SEGMENTREFRESHPROCESSID uniqueidentifier = null output,
@SEGMENTLISTIMPORTPROCESSID uniqueidentifier = null output,
@SEGMENTLISTDEDUPEPROCESSID uniqueidentifier = null output,
@RECORDTYPENAME nvarchar(50) = null output,
@QUERYVIEWCATALOGID uniqueidentifier = null output,
@HASSELECTIONS bit = null output,
@HASAVAILABLEKPIS bit = null output,
@ISHISTORICAL bit = null output
)
as
set nocount on;
set @DATALOADED = 0;
select
@DATALOADED = 1,
@NAME = [MKTSEGMENT].[NAME],
@SEGMENTTYPECODE = [MKTSEGMENT].[SEGMENTTYPECODE],
@SEGMENTLISTID = [MKTSEGMENTLIST].[ID],
@TYPECODE = [MKTSEGMENTLIST].[TYPECODE],
@STATUSCODE = [MKTSEGMENTLIST].[STATUSCODE],
@ISCONSOLIDATED = (case when [MKTSEGMENTLIST].[CONSOLIDATEDQUERYVIEWID] is null then 0 else 1 end),
@SHOWINQUERYDESIGNER = [QUERYVIEWCATALOG].[ROOTOBJECT],
@PARENTSEGMENTID = [PARENTSEGMENT].[ID],
@PARENTSEGMENTNAME = [PARENTSEGMENT].[NAME],
@DEDUPLISTS = cast((case when [MKTSEGMENTLISTDEDUPEPROCESS].[ID] is null then 0 else (case when dbo.[UFN_MKTSEGMENTLIST_DUPLICATEFIELDSEXIST]([MKTSEGMENTLIST].[ID]) = 1 then 1 else 0 end) end) as bit),
@SEGMENTREFRESHPROCESSID = [MKTSEGMENTREFRESHPROCESS].[ID],
@SEGMENTLISTIMPORTPROCESSID = [MKTSEGMENTLISTIMPORTPROCESS].[ID],
@SEGMENTLISTDEDUPEPROCESSID = [MKTSEGMENTLISTDEDUPEPROCESS].[ID],
@RECORDTYPENAME = [RECORDTYPE].[NAME],
@QUERYVIEWCATALOGID = [MKTSEGMENTLIST].[QUERYVIEWCATALOGID],
@HASSELECTIONS = (case when exists(select 1 from dbo.[MKTSEGMENTSELECTION] where [SEGMENTID] = [MKTSEGMENT].[ID]) then 1 else 0 end),
@ISHISTORICAL = [MKTSEGMENT].[ISHISTORICAL]
from dbo.[MKTSEGMENT]
left join dbo.[MKTSEGMENTLIST] on [MKTSEGMENTLIST].[ID] = [MKTSEGMENT].[CURRENTSEGMENTLISTID]
left join dbo.[MKTSEGMENTREFRESHPROCESS] on [MKTSEGMENTREFRESHPROCESS].[SEGMENTID] = [MKTSEGMENT].[ID]
left join dbo.[MKTSEGMENTLISTIMPORTPROCESS] on [MKTSEGMENTLISTIMPORTPROCESS].[SEGMENTLISTID] = [MKTSEGMENTLIST].[ID]
left join dbo.[MKTSEGMENTLISTDEDUPEPROCESS] on [MKTSEGMENTLISTDEDUPEPROCESS].[SEGMENTLISTID] = [MKTSEGMENTLIST].[ID]
left join dbo.[QUERYVIEWCATALOG] on [QUERYVIEWCATALOG].[ID] = [MKTSEGMENTLIST].[QUERYVIEWCATALOGID]
left join dbo.[MKTSEGMENT] as [PARENTSEGMENT] on [PARENTSEGMENT].[ID] = [MKTSEGMENTLIST].[PARENTSEGMENTID]
left join dbo.[RECORDTYPE] on [RECORDTYPE].[ID] = [MKTSEGMENTLIST].[IDSETRECORDTYPEID]
where [MKTSEGMENT].[ID] = @ID;
-- Check to see whether any segment KPIs will be available with the currently installed products.
declare @INSTALLED table (ID uniqueidentifier, NAME nvarchar(100));
insert into @INSTALLED exec dbo.USP_INSTALLEDPRODUCTS_GETLIST;
declare @SEGMENTRECORDID uniqueidentifier = (select ID from dbo.RECORDTYPE where NAME = 'Segment');
if exists(
select 1
from dbo.KPICATALOG
cross apply (
select KpiSpec.InstalledProduct.value('(./@ID)', 'uniqueidentifier') ID
from KPICATALOG.SPECXML.nodes('declare namespace d1p1="bb_appfx_commontypes"; declare default element namespace "bb_appfx_kpi"; /KpiSpec/d1p1:InstalledProductList/d1p1:InstalledProduct') KpiSpec (InstalledProduct)
) NEEDEDPRODUCTS
inner join @INSTALLED INS on INS.ID = NEEDEDPRODUCTS.ID
where KPICATALOG.CONTEXTRECORDTYPEID = @SEGMENTRECORDID
)
set @HASAVAILABLEKPIS = 1
return 0;