USP_GENERALPURPOSEEMAIL_ADDTOQUEUE

Adds a general purpose email request to the queue.

Parameters

Parameter Parameter Type Mode Description
@QUEUEID uniqueidentifier INOUT
@UNIQUEIDFIELDNAME nvarchar(128) IN
@EMAILADDRESSFIELDNAME nvarchar(128) IN
@EMAILDISPLAYNAMEFIELDNAME nvarchar(128) IN
@MERGETOKEN nvarchar(3) IN
@STATUSID uniqueidentifier INOUT
@MERGESQLVIEWID uniqueidentifier IN
@MERGEDATASET xml IN
@EMAILHEADER xml IN
@CONTENTTEXT nvarchar(max) IN
@CONTENTHTML nvarchar(max) IN
@THREADID uniqueidentifier IN
@SOURCEID int IN
@RETRYNUMBER int IN
@MAXRETRYNUMBER int IN
@PROCESSAFTERDATE datetime IN
@PRIORITY int IN
@CATEGORY int IN
@CHANGEAGENTID uniqueidentifier IN
@CONSUMERSTARTDATE datetime IN
@CONSUMERENDDATE datetime IN

Definition

Copy


      CREATE procedure dbo.USP_GENERALPURPOSEEMAIL_ADDTOQUEUE
      (
          @QUEUEID uniqueidentifier = null output,
        @UNIQUEIDFIELDNAME nvarchar(128) = null,
        @EMAILADDRESSFIELDNAME nvarchar(128) = null,
        @EMAILDISPLAYNAMEFIELDNAME nvarchar(128) = null,
        @MERGETOKEN nvarchar(3) = null
        @STATUSID uniqueidentifier = null output,
          @MERGESQLVIEWID uniqueidentifier,
        @MERGEDATASET xml,
          @EMAILHEADER xml,
          @CONTENTTEXT nvarchar(max),
          @CONTENTHTML nvarchar(max),
          @THREADID uniqueidentifier,
          @SOURCEID integer,
          @RETRYNUMBER int = 0,
          @MAXRETRYNUMBER int = 3,
          @PROCESSAFTERDATE datetime,
          @PRIORITY int = 5,
        @CATEGORY int,
          @CHANGEAGENTID uniqueidentifier = null,
        @CONSUMERSTARTDATE datetime,
        @CONSUMERENDDATE datetime
      )
      as

      set nocount on;

      begin
          if @QUEUEID is null
              set @QUEUEID = newid();

        if @STATUSID is null
          set @STATUSID = newid();

          if @CHANGEAGENTID is null
              exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

        begin tran INSERTEMAILJOB
            begin try
                insert into dbo.EMAILQUEUEGENERALPURPOSE 
                (
                    ID,
                    MERGESQLVIEWID,
              MERGEDATASET,
                    EMAILHEADER,
                    CONTENTTEXT,
                    CONTENTHTML,
                    THREADID,
                    SOURCE,
                    RETRYNUMBER,
                    MAXRETRYNUMBER,
                    PROCESSAFTERDATE,
              CATEGORY,
                    DATEADDEDTOQUEUE,
              EXTERNALJOBIDENTITY            
                )
                values
                (
                    @QUEUEID,
                    @MERGESQLVIEWID,
              @MERGEDATASET,
                    @EMAILHEADER,
                    @CONTENTTEXT,
                    @CONTENTHTML,
                    @THREADID,
                    @SOURCEID,
                    @RETRYNUMBER,
                    @MAXRETRYNUMBER,
                    @PROCESSAFTERDATE,
              @CATEGORY,
                    getdate(),
              '00000000-0000-0000-0000-000000000000'
                );
            end try
            begin catch
            if @@trancount > 0
              rollback tran INSERTEMAILJOB
                exec dbo.USP_RAISE_ERROR
                return 1
            end catch

            begin try
              insert into dbo.EMAILSTATUSGENERALPURPOSE
                  (
              ID,
                      EMAILQUEUEGENERALPURPOSEID,
                      STATUS,
              EMAILHEADER,
                      RETRYNUMBER,
              EXTERNALJOBIDENTITY,
              UNIQUEIDFIELDNAME,
              EMAILADDRESSFIELDNAME,
              EMAILDISPLAYNAMEFIELDNAME,  
              MERGETOKEN,
              PRIORITY,
                      ADDEDBYID,
                      CHANGEDBYID,
              CONSUMERSTARTDATE,
              CONSUMERENDDATE,
              PROCESSAFTERDATE
                  )
                  values
                  (
              @STATUSID,
                      @QUEUEID,
                      15,
              @EMAILHEADER,
                      0,
              '00000000-0000-0000-0000-000000000000',
              @UNIQUEIDFIELDNAME,
              @EMAILADDRESSFIELDNAME,
              @EMAILDISPLAYNAMEFIELDNAME,
              @MERGETOKEN,
              @PRIORITY,
                      @CHANGEAGENTID,
                      @CHANGEAGENTID,
              @CONSUMERSTARTDATE,
              @CONSUMERENDDATE,
              @PROCESSAFTERDATE
                  );      
            end try
            begin catch
                if @@trancount > 0
              rollback tran INSERTEMAILJOB
                exec dbo.USP_RAISE_ERROR
                return 2
            end catch
        if @@trancount > 0
            commit tran INSERTEMAILJOB        
          return 0;

      end