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;