USP_SEGMENT_CREATEFROMSELECTIONS
Creates a segment and adds selections to segment.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@NAME | nvarchar(100) | INOUT | |
@DESCRIPTION | nvarchar(255) | INOUT | |
@SELECTIONS | xml | IN | |
@COUNT | int | INOUT | |
@SEGMENTATIONGENERATORID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_SEGMENT_CREATEFROMSELECTIONS
(
@ID uniqueidentifier = null output,
@NAME nvarchar(100) output,
@DESCRIPTION nvarchar(255) output,
@SELECTIONS xml,
@COUNT int output,
@SEGMENTATIONGENERATORID uniqueidentifier = null,
@CHANGEAGENTID uniqueidentifier = null
)
as
set nocount on;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getDate();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
begin try
if @SEGMENTATIONGENERATORID is not null
begin
declare @SEGMENTATIONGENERATORNAME nvarchar(150);
declare @QUERYVIEWCATALOGID uniqueidentifier;
select
@SEGMENTATIONGENERATORNAME = SEGMENTATIONGENERATOR.NAME,
@QUERYVIEWCATALOGID = SEGMENTATIONGENERATOR.QUERYVIEWCATALOGID
from
dbo.SEGMENTATIONGENERATOR
where
SEGMENTATIONGENERATOR.ID = @SEGMENTATIONGENERATORID;
set @NAME = @SEGMENTATIONGENERATORNAME + ' ' + @NAME;
set @DESCRIPTION = @DESCRIPTION + ' ' + @SEGMENTATIONGENERATORNAME;
end
select
@ID = ID
from
dbo.MKTSEGMENT
where
NAME = @NAME;
if @ID is null
begin
set @ID = newID();
insert into dbo.MKTSEGMENT
(ID, NAME, DESCRIPTION, SEGMENTTYPECODE, CODE, QUERYVIEWCATALOGID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(
@ID,
dbo.UFN_MKTSEGMENT_GETUNIQUENAME(@ID, @NAME, null),
@DESCRIPTION,
1, --Standard
'',
@QUERYVIEWCATALOGID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
exec dbo.USP_SEGMENT_GETSELECTIONS_ADDFROMXML @ID, @SELECTIONS, @CHANGEAGENTID;
end
else
begin
update dbo.MKTSEGMENT
set
DESCRIPTION = DESCRIPTION,
SEGMENTTYPECODE = 1, --Standard
CODE = '',
QUERYVIEWCATALOGID = @QUERYVIEWCATALOGID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID;
exec dbo.USP_SEGMENT_GETSELECTIONS_UPDATEFROMXML @ID, @SELECTIONS, @CHANGEAGENTID;
end
-- create the VIEW and add it to the IDSETREGISTER
exec dbo.USP_MKTSEGMENT_CREATEORUPDATEVIEW @ID, @CHANGEAGENTID;
-- get count
exec dbo.USP_SEGMENT_GETCOUNT @ID, @COUNT output;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;