USP_MKTEXPORTDEFINITION_SAVE

Saves an export definition.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CHANGEAGENTID uniqueidentifier IN
@NAME nvarchar(100) IN
@MAILINGTYPECODE tinyint IN
@POSTALEXPORT bit IN
@POSTALTEMPLATEID uniqueidentifier IN
@PREVIEWDATALISTCATALOGID uniqueidentifier IN
@NETCOMMUNITYDATASOURCEID int IN
@SEGMENTATIONID uniqueidentifier IN
@CHANGEDBYCULTURE nvarchar(30) IN
@ISSYSTEM bit IN

Definition

Copy


CREATE procedure dbo.[USP_MKTEXPORTDEFINITION_SAVE]
(
  @ID uniqueidentifier = null output,
  @CHANGEAGENTID uniqueidentifier = null,
  @NAME nvarchar(100),
  @MAILINGTYPECODE tinyint,
  @POSTALEXPORT bit,
  @POSTALTEMPLATEID uniqueidentifier = null,
  @PREVIEWDATALISTCATALOGID uniqueidentifier = null,
  @NETCOMMUNITYDATASOURCEID integer = null,
  @SEGMENTATIONID uniqueidentifier = null,
  @CHANGEDBYCULTURE nvarchar(30) = null,
  @ISSYSTEM bit = 0
)
as
  set nocount on;

  declare @CURRENTDATE datetime;

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

    set @CURRENTDATE = getdate();

    if @ID is null
        set @ID = newID();

    /* save the export definition */
    if not exists(select [ID] from dbo.[MKTEXPORTDEFINITION] where [ID] = @ID)
      begin
        insert into dbo.[MKTEXPORTDEFINITION] (
          [ID],
          [NAME],
          [MAILINGTYPECODE],
          [POSTALEXPORT],
          [POSTALTEMPLATEID],
          [PREVIEWDATALISTCATALOGID],
          [NETCOMMUNITYDATASOURCEID],
          [CHANGEDBYCULTURE],
          [ISSYSTEM],
          [ADDEDBYID],
          [CHANGEDBYID],
          [DATEADDED],
          [DATECHANGED]
        ) values (
          @ID,
          @NAME,
          @MAILINGTYPECODE,
          @POSTALEXPORT,
          @POSTALTEMPLATEID,
          @PREVIEWDATALISTCATALOGID,
          @NETCOMMUNITYDATASOURCEID,
          @CHANGEDBYCULTURE,
          @ISSYSTEM,
          @CHANGEAGENTID,
          @CHANGEAGENTID,
          @CURRENTDATE,
          @CURRENTDATE
        );
      end
    else
      begin
        /* update the export definition - note TYPECODE cannot be changed on an existing export definition */
        update
          dbo.[MKTEXPORTDEFINITION]
        set
          [NAME] = @NAME,
          [POSTALEXPORT] = @POSTALEXPORT,
          [POSTALTEMPLATEID] = @POSTALTEMPLATEID,
          [PREVIEWDATALISTCATALOGID] = @PREVIEWDATALISTCATALOGID,
          [NETCOMMUNITYDATASOURCEID] = @NETCOMMUNITYDATASOURCEID,
          [CHANGEDBYCULTURE] = @CHANGEDBYCULTURE,
          [ISSYSTEM] = @ISSYSTEM,
          [CHANGEDBYID] = @CHANGEAGENTID,
          [DATECHANGED] = @CURRENTDATE
        where [ID] = @ID;

        /* delete all the old output fields so we can save the updated ones after this */
        delete from dbo.[MKTEXPORTDEFINITIONOUTPUTFIELD]
        where [EXPORTDEFINITIONID] = @ID
        and (@SEGMENTATIONID is null 
        or [QUERYVIEWCATALOGID] in (select [ID] from dbo.[UFN_MKTEXPORTDEFINITION_GETSPECIALQUERYVIEWIDS]())
        or [QUERYVIEWCATALOGID] in 
        (
          select
            case when @MAILINGTYPECODE = 0 -- Appeal

                 then isnull([MKTCONSOLIDATEDQUERYVIEWSPEC].[CONSOLIDATEDQUERYVIEWCATALOGID], [RS].[QUERYVIEWCATALOGID])
                 -- else is valid for Acknowledgement, Membership Mailings

                 else [RS].[QUERYVIEWCATALOGID] 
            end
          from dbo.[UFN_MKTSEGMENTATION_GETDISTINCTRECORDSOURCES](@SEGMENTATIONID) [RS]
          left outer join dbo.[MKTCONSOLIDATEDQUERYVIEWSPEC] on [MKTCONSOLIDATEDQUERYVIEWSPEC].[ID] = [RS].[QUERYVIEWCATALOGID]
        )
        or (@MAILINGTYPECODE = 1 and [QUERYVIEWCATALOGID] in 
        (
          select 
            [GRS].[QUERYVIEWCATALOGID]
          from dbo.[UFN_MKTSEGMENTATION_GETDISTINCTRECORDSOURCES](@SEGMENTATIONID) [RS]
          inner join dbo.[MKTGIFTRECORDSOURCE] [GRS] on [GRS].[ID] = [RS].[QUERYVIEWCATALOGID]
        ))
        or (@MAILINGTYPECODE = 2 and [QUERYVIEWCATALOGID] in 
        (
          select 
            [MRS].[QUERYVIEWCATALOGID]
          from dbo.[UFN_MKTSEGMENTATION_GETDISTINCTRECORDSOURCES](@SEGMENTATIONID) [RS]
          inner join dbo.[MKTMEMBERSHIPRECORDSOURCE] [MRS] on [MRS].[ID] = [RS].[QUERYVIEWCATALOGID]
        ))
        or (@MAILINGTYPECODE = 3 and [QUERYVIEWCATALOGID] in 
        (
  select 
            [SRS].[QUERYVIEWCATALOGID]
          from dbo.[UFN_MKTSEGMENTATION_GETDISTINCTRECORDSOURCES](@SEGMENTATIONID) [RS]
          inner join dbo.[MKTSPONSORSHIPRECORDSOURCE] [SRS] on [SRS].[ID] = [RS].[QUERYVIEWCATALOGID]
        )));
      end
  end try

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

  return 0;