USP_MKTSEGMENTPASSIVE_COPY
Executes the "Public Media Segment: Copy" record operation.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | Input parameter indicating the ID of the record being updated. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the update. |
Definition
Copy
CREATE procedure dbo.[USP_MKTSEGMENTPASSIVE_COPY]
(
@ID uniqueidentifier output,
@CHANGEAGENTID uniqueidentifier
)
as
set nocount on;
declare @CURRENTDATE datetime;
declare @SOURCESEGMENTID uniqueidentifier;
declare @TARGETSEGMENTID uniqueidentifier;
declare @SEGMENTTYPECODE tinyint;
declare @UNIQUENAME nvarchar(100);
declare @DATALOADED bit;
declare @QUERYVIEWCATALOGID uniqueidentifier;
declare @NAME nvarchar(100);
declare @DESCRIPTION nvarchar(255);
declare @SITEID uniqueidentifier;
declare @SEGMENTCATEGORYCODEID uniqueidentifier;
declare @CODEVALUEID uniqueidentifier;
declare @CODE nvarchar(10);
declare @VENDORID uniqueidentifier;
declare @IMPRESSIONS integer;
declare @IMPRESSIONCALCULATIONMETHODCODE tinyint;
declare @GROUPS xml;
declare @ISINUSE bit;
declare @ALLOWCODEUPDATE bit;
declare @TSLONG bigint;
declare @PARENTMEDIAOUTLETSEGMENTID uniqueidentifier;
declare @SCHEDULESTARTTIME time(0);
declare @SCHEDULEENDTIME time(0);
declare @SCHEDULEDURATIONHOURS integer;
declare @SCHEDULEDURATIONMINUTES integer;
declare @SCHEDULEDURATIONSECONDS integer;
declare @LOCATIONCOUNTRYID uniqueidentifier;
declare @LOCATIONSTATEID uniqueidentifier;
declare @LOCATIONPOSTCODE nvarchar(12);
declare @LOCATIONCITY nvarchar(50);
declare @LOCATIONADDRESSBLOCK nvarchar(150);
declare @TEMPGROUPS table ([ID] uniqueidentifier, [SEGMENTGROUPID] uniqueidentifier, [SEGMENTGROUPSELECTED] bit);
begin try
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
set @SOURCESEGMENTID = @ID;
set @TARGETSEGMENTID = newid();
select @SEGMENTTYPECODE = [SEGMENTTYPECODE]
from dbo.[MKTSEGMENT]
where [ID] = @SOURCESEGMENTID;
if @SEGMENTTYPECODE in (6, 7, 8)
begin
if @SEGMENTTYPECODE = 6
exec dbo.[USP_DATAFORMTEMPLATE_EDITLOAD_MKTSEGMENTMEDIAOUTLET]
@SOURCESEGMENTID,
null,
@DATALOADED output,
@QUERYVIEWCATALOGID output,
@NAME output,
@DESCRIPTION output,
@SEGMENTCATEGORYCODEID output,
@CODE output, null,
@CODEVALUEID output,
@VENDORID output,
@IMPRESSIONS output,
@IMPRESSIONCALCULATIONMETHODCODE output,
@GROUPS output,
@ISINUSE output,
@ALLOWCODEUPDATE output,
null,
@TSLONG output,
@SITEID output,
null;
else if @SEGMENTTYPECODE = 7
exec dbo.[USP_DATAFORMTEMPLATE_EDITLOAD_MKTSEGMENTTIMESLOT]
@SOURCESEGMENTID,
null,
@DATALOADED output,
@QUERYVIEWCATALOGID output,
@NAME output,
@DESCRIPTION output,
@SEGMENTCATEGORYCODEID output,
@CODE output,
null,
@CODEVALUEID output,
@PARENTMEDIAOUTLETSEGMENTID output,
@SCHEDULESTARTTIME output,
@SCHEDULEENDTIME output,
@SCHEDULEDURATIONHOURS output,
@SCHEDULEDURATIONMINUTES output,
@SCHEDULEDURATIONSECONDS output,
@IMPRESSIONS output,
@IMPRESSIONCALCULATIONMETHODCODE output,
@GROUPS output,
@ISINUSE output,
@ALLOWCODEUPDATE output,
null,
@TSLONG output,
@SITEID output,
null;
else if @SEGMENTTYPECODE = 8
exec dbo.[USP_DATAFORMTEMPLATE_EDITLOAD_MKTSEGMENTMARKETINGLOCATION]
@SOURCESEGMENTID,
null,
@DATALOADED output,
@QUERYVIEWCATALOGID output,
@NAME output,
@DESCRIPTION output,
@SEGMENTCATEGORYCODEID output,
@CODE output,
null,
@CODEVALUEID output,
@VENDORID output,
@LOCATIONCOUNTRYID output,
@LOCATIONSTATEID output,
@LOCATIONPOSTCODE output,
@LOCATIONCITY output,
@LOCATIONADDRESSBLOCK output,
@IMPRESSIONS output,
@IMPRESSIONCALCULATIONMETHODCODE output,
@GROUPS output,
@ISINUSE output,
@ALLOWCODEUPDATE output,
null,
@TSLONG output,
@SITEID output,
null;
set @UNIQUENAME = dbo.[UFN_MKTSEGMENT_GETUNIQUENAME](@TARGETSEGMENTID, @NAME, null);
insert into @TEMPGROUPS
select
null,
T.c.value('(SEGMENTGROUPID)[1]', 'uniqueidentifier'),
1 --segments groups loaded have all been selected
from
@GROUPS.nodes('/GROUPS/ITEM') T(c);
select @GROUPS = (select [ID], [SEGMENTGROUPID], [SEGMENTGROUPSELECTED]
from @TEMPGROUPS
for xml raw('ITEM'), type, elements, root('GROUPS'), binary base64);
if @SEGMENTTYPECODE = 6
exec dbo.[USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTMEDIAOUTLET]
@TARGETSEGMENTID,
@CHANGEAGENTID,
@QUERYVIEWCATALOGID,
@UNIQUENAME,
@DESCRIPTION,
@SEGMENTCATEGORYCODEID,
@CODE,
@CODEVALUEID,
@VENDORID,
@IMPRESSIONS,
@IMPRESSIONCALCULATIONMETHODCODE,
@GROUPS,
@SITEID;
else if @SEGMENTTYPECODE = 7
exec dbo.[USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTTIMESLOT]
@TARGETSEGMENTID,
@CHANGEAGENTID,
@QUERYVIEWCATALOGID,
@UNIQUENAME,
@DESCRIPTION,
@SEGMENTCATEGORYCODEID,
@CODE,
@CODEVALUEID,
@PARENTMEDIAOUTLETSEGMENTID,
@SCHEDULESTARTTIME,
@SCHEDULEENDTIME,
@SCHEDULEDURATIONHOURS,
@SCHEDULEDURATIONMINUTES,
@SCHEDULEDURATIONSECONDS,
@IMPRESSIONS,
@IMPRESSIONCALCULATIONMETHODCODE,
@GROUPS,
@SITEID;
else if @SEGMENTTYPECODE = 8
exec dbo.[USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTMARKETINGLOCATION]
@TARGETSEGMENTID,
@CHANGEAGENTID,
@QUERYVIEWCATALOGID,
@UNIQUENAME,
@DESCRIPTION,
@SEGMENTCATEGORYCODEID,
@CODE,
@CODEVALUEID,
@VENDORID,
@LOCATIONCOUNTRYID,
@LOCATIONSTATEID,
@LOCATIONPOSTCODE,
@LOCATIONCITY,
@LOCATIONADDRESSBLOCK,
@IMPRESSIONS,
@IMPRESSIONCALCULATIONMETHODCODE,
@GROUPS,
@SITEID;
set @ID = @TARGETSEGMENTID;
end
else
raiserror('BBERR_MKTSEGMENTTYPE_INVALIDSEGMENTTYPE', 13, 1);
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;