USP_CREDITCARDPROCESSING_WRITERESUMEINFO

Writes resume information to the database for the credit card business process.

Parameters

Parameter Parameter Type Mode Description
@MAPPINGTABLE nvarchar(100) IN
@BBPSBATCHPROCESSID uniqueidentifier IN
@BATCHID uniqueidentifier IN
@BUSINESSPROCESSSTATUSIDENTIFIER nvarchar(36) IN
@RECORDSSUBMITTED int IN
@CHANGEAGENTID uniqueidentifier IN
@CREDITCARDPROCESSINGID uniqueidentifier IN
@ID uniqueidentifier IN
@BBPSPROCESSES xml IN

Definition

Copy


            CREATE procedure dbo.USP_CREDITCARDPROCESSING_WRITERESUMEINFO
            (
                @MAPPINGTABLE nvarchar(100),
                @BBPSBATCHPROCESSID uniqueidentifier, -- No longer used since the value is stored in its own table now

                @BATCHID uniqueidentifier,
                @BUSINESSPROCESSSTATUSIDENTIFIER nvarchar(36),
                @RECORDSSUBMITTED integer,
                @CHANGEAGENTID uniqueidentifier,
                @CREDITCARDPROCESSINGID uniqueidentifier = null,
                @ID uniqueidentifier = null,
                @BBPSPROCESSES xml = null
            )
            as
            set nocount on;

            declare @CURRENTDATE datetime;
            set @CURRENTDATE = getdate();

            -- Store the batch ID for processes that create new batches so

            -- it can be resumed

            if @CREDITCARDPROCESSINGID is not null
            begin
                if exists (    select 1 from dbo.CREDITCARDPROCESSING 
                            where
                                ID = @CREDITCARDPROCESSINGID and
                                BATCHID is null)
                    update dbo.CREDITCARDPROCESSING set
                        BATCHID = @BATCHID,
                        BATCHINSTANCESETFORRESUME = 1,
                        DATECHANGED = @CURRENTDATE,
                        CHANGEDBYID = @CHANGEAGENTID
                    where
                        ID = @CREDITCARDPROCESSINGID;
            end

            set @ID = coalesce(@ID, newid());

            insert into dbo.CREDITCARDPROCESSINGSTATE
            (
                ID,
                MAPPINGTABLE,
                BATCHID,
                BUSINESSPROCESSSTATUSIDENTIFIER,
                RECORDSSUBMITTED,
                ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
            )
            values
            (
                @ID,
                @MAPPINGTABLE
                @BATCHID
                @BUSINESSPROCESSSTATUSIDENTIFIER,
                @RECORDSSUBMITTED,
                @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
            );

            if @BBPSPROCESSES is not null
            begin
                insert into dbo.CREDITCARDPROCESSINGSTATEBBPSPROCESS
                (
                    CREDITCARDPROCESSINGSTATEID,
                    BBPSBATCHPROCESSID,
                    MERCHANTACCOUNTID,
                    PROCESSTRANSACTIONSCALLED,
                    ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
                )
                select
                    @ID,
                    T.c.value('(BBPSBATCHPROCESSID)[1]','uniqueidentifier'),
                    T.c.value('(MERCHANTACCOUNTID)[1]','uniqueidentifier'),
                    0,
                    @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
                from @BBPSPROCESSES.nodes('/BBPSPROCESSES/ITEM') T(c);
            end