USP_DATAFORMTEMPLATE_ADD_MKTSEGMENT
The save procedure used by the add dataform template "Constituent Segment Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@QUERYVIEWCATALOGID | uniqueidentifier | IN | Record source |
@NAME | nvarchar(100) | IN | Name |
@DESCRIPTION | nvarchar(255) | IN | Description |
@CODE | nvarchar(10) | IN | Code |
@SELECTIONS | xml | IN | Selections |
@GROUPS | xml | IN | Groups |
@SEGMENTTYPECODE | tinyint | IN | Segment type code |
@SEGMENTCATEGORYCODEID | uniqueidentifier | IN | Category |
@CODEVALUEID | uniqueidentifier | IN | Code value ID |
@SITEID | uniqueidentifier | IN | Site |
Definition
Copy
CREATE procedure dbo.[USP_DATAFORMTEMPLATE_ADD_MKTSEGMENT]
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@QUERYVIEWCATALOGID uniqueidentifier = null,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255) = '',
@CODE nvarchar(10) = '',
@SELECTIONS xml = null,
@GROUPS xml = null,
@SEGMENTTYPECODE tinyint = 1,
@SEGMENTCATEGORYCODEID uniqueidentifier = null,
@CODEVALUEID uniqueidentifier = null,
@SITEID uniqueidentifier = null
)
as
set nocount on;
declare @CURRENTDATE datetime;
declare @SEGMENTFAMILYTYPECODE tinyint;
begin try
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
-- save the segment
insert into dbo.[MKTSEGMENT] (
[ID],
[NAME],
[DESCRIPTION],
[SITEID],
[SEGMENTTYPECODE],
[SEGMENTCATEGORYCODEID],
[CODE],
[QUERYVIEWCATALOGID],
[PARTDEFINITIONVALUESID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
) values (
@ID,
@NAME,
@DESCRIPTION,
@SITEID,
@SEGMENTTYPECODE,
@SEGMENTCATEGORYCODEID,
@CODE,
@QUERYVIEWCATALOGID,
@CODEVALUEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
select
@SEGMENTFAMILYTYPECODE = [SEGMENTFAMILYTYPECODE]
from dbo.[MKTSEGMENT]
where [ID] = @ID;
if @SEGMENTFAMILYTYPECODE = 1 and @SEGMENTTYPECODE <> 2 and @QUERYVIEWCATALOGID is not null
/* Insert a parameter set for the refresh process for this segment */
insert into dbo.[MKTSEGMENTREFRESHPROCESS] (
[ID],
[SEGMENTID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
) values (
newid(),
@ID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
-- save all the selections
exec dbo.[USP_MKTSEGMENT_GETSELECTIONS_ADDFROMXML] @ID, null, @SELECTIONS, @CHANGEAGENTID, @CURRENTDATE;
-- save all the groups
exec dbo.[USP_MKTSEGMENT_GETGROUPS_ADDFROMXML] @ID, @GROUPS, @CHANGEAGENTID, @CURRENTDATE;
if @SEGMENTFAMILYTYPECODE = 1 and @SEGMENTTYPECODE <> 2 and @QUERYVIEWCATALOGID is not null
-- create the VIEW and add it to the IDSETREGISTER
exec dbo.[USP_MKTSEGMENT_CREATEORUPDATEVIEW] @ID, @CHANGEAGENTID;
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;