USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENT

The save procedure used by the edit dataform template "Constituent Segment Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@NAME nvarchar(100) IN Name
@DESCRIPTION nvarchar(255) IN Description
@CODE nvarchar(10) IN Code
@QUERYVIEWCATALOGID uniqueidentifier IN Records source
@SELECTIONS xml IN Selections
@GROUPS xml IN Groups

Definition

Copy


CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENT]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @NAME nvarchar(100),
  @DESCRIPTION nvarchar(255),
  @CODE nvarchar(10),
  @QUERYVIEWCATALOGID uniqueidentifier,
  @SELECTIONS xml,
  @GROUPS xml
)
as
  set nocount on;

  declare @CURRENTDATE datetime;
  declare @SEGMENTTYPECODE tinyint;

  begin try
    if @CHANGEAGENTID is null  
      exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;

    select
      @SEGMENTTYPECODE = [SEGMENTTYPECODE],
      @CURRENTDATE = getdate()
    from dbo.[MKTSEGMENT]
    where [ID] = @ID;

    /* Save the segment */
    update dbo.[MKTSEGMENT] set 
      [NAME] = @NAME,
      [DESCRIPTION] = @DESCRIPTION,
      [CODE] = @CODE,
      [QUERYVIEWCATALOGID] = @QUERYVIEWCATALOGID,
      [CHANGEDBYID] = @CHANGEAGENTID,
      [DATECHANGED] = @CURRENTDATE
    where [ID] = @ID;

    /* Save all the new selections */
    exec dbo.[USP_MKTSEGMENT_GETSELECTIONS_UPDATEFROMXML] @ID, null, @SELECTIONS, @CHANGEAGENTID, @CURRENTDATE;

    /* Save all the groups */
    exec dbo.[USP_MKTSEGMENT_GETGROUPS_UPDATEFROMXML] @ID, @GROUPS, @CHANGEAGENTID, @CURRENTDATE;

    if @SEGMENTTYPECODE <> 2 and @QUERYVIEWCATALOGID is not null
      /* Create the VIEW and add it to the IDSETREGISTER */
      exec dbo.[USP_MKTSEGMENT_CREATEORUPDATEVIEW] @ID, @CHANGEAGENTID;

    /* Update the segment with the selected code */
    exec dbo.[USP_MKTSEGMENT_UPDATECODE] @ID, @CODE, @CHANGEAGENTID, 1;
  end try

  begin catch
    exec dbo.USP_RAISE_ERROR;
    return 1;
  end catch

  return 0;