USP_TRANSACTIONALEMAIL_ADDTOQUEUE

Adds a transactional email request to the queue.

Parameters

Parameter Parameter Type Mode Description
@QUEUEID uniqueidentifier INOUT
@STATUSID uniqueidentifier INOUT
@UNIQUEIDFIELDNAME nvarchar(128) IN
@EMAILADDRESSFIELDNAME nvarchar(128) IN
@EMAILDISPLAYNAMEFIELDNAME nvarchar(128) IN
@MERGETOKEN nvarchar(3) IN
@RECIPIENTDATA xml IN
@EMAILHEADER xml IN
@CONTENTTEXT nvarchar(max) IN
@CONTENTHTML nvarchar(max) IN
@THREADID uniqueidentifier IN
@SOURCEID int IN
@RETRYNUMBER int IN
@CHANGEAGENTID uniqueidentifier IN
@CONSUMERSTARTDATE datetime IN
@CONSUMERENDDATE datetime IN
@RECIPIENTADDRESS nvarchar(255) IN

Definition

Copy


      CREATE procedure dbo.USP_TRANSACTIONALEMAIL_ADDTOQUEUE
      (
          @QUEUEID uniqueidentifier = null output,
        @STATUSID uniqueidentifier = null output,
        @UNIQUEIDFIELDNAME nvarchar(128),
        @EMAILADDRESSFIELDNAME nvarchar(128),
        @EMAILDISPLAYNAMEFIELDNAME nvarchar(128),
        @MERGETOKEN nvarchar(3),
          @RECIPIENTDATA xml,
          @EMAILHEADER xml,
          @CONTENTTEXT nvarchar(max),
          @CONTENTHTML nvarchar(max),
          @THREADID uniqueidentifier,
          @SOURCEID integer,
          @RETRYNUMBER int = 0,
          @CHANGEAGENTID uniqueidentifier = null,
        @CONSUMERSTARTDATE datetime,
        @CONSUMERENDDATE datetime,
        @RECIPIENTADDRESS nvarchar(255) = null
      )
      as
      begin
      set nocount on;

      begin tran INSERTEMAILJOB  
        begin try

            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;

        insert into dbo.EMAILQUEUETRANSACTIONAL 
        (
          ID,
          RECIPIENTDATA,
          EMAILHEADER,
          CONTENTTEXT,
          CONTENTHTML,
          THREADID,
          SOURCE,
          RETRYNUMBER,
          DATEADDEDTOQUEUE
        )
        values
        (
          @QUEUEID,
          @RECIPIENTDATA,
          @EMAILHEADER,
          @CONTENTTEXT,
          @CONTENTHTML,
          @THREADID,
          @SOURCEID,
          @RETRYNUMBER,
          getdate()
        );
          end try

          begin catch
        if @@trancount > 0
          rollback tran INSERTEMAILJOB
              exec dbo.USP_RAISE_ERROR
              return 1
          end catch

          begin try    
              insert into dbo.EMAILSTATUSTRANSACTIONAL
              (
          ID,
                  EMAILQUEUETRANSACTIONALID,
                  STATUS,
          EMAILHEADER,
          EXTERNALJOBIDENTITY,
                  RETRYNUMBER,
          ADDEDBYID,
                  CHANGEDBYID,
          UNIQUEIDFIELDNAME,
          EMAILADDRESSFIELDNAME,
          EMAILDISPLAYNAMEFIELDNAME,
          MERGETOKEN,
          CONSUMERSTARTDATE,
          CONSUMERENDDATE,
          RECIPIENTADDRESS
              )
              values
              (
          @STATUSID,
                  @QUEUEID,
                  15,
          @EMAILHEADER,
          '00000000-0000-0000-0000-000000000000',
                  0,
          @CHANGEAGENTID,
          @CHANGEAGENTID,
          @UNIQUEIDFIELDNAME,
          @EMAILADDRESSFIELDNAME,
          @EMAILDISPLAYNAMEFIELDNAME,
          @MERGETOKEN,
          @CONSUMERSTARTDATE,
          @CONSUMERENDDATE,
          @RECIPIENTADDRESS
              );      
          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