Post Void of Bill Pay Transaction Retrieves Incorrect Customer When Transaction Sequence Is Same From More Than 1 Register

(Doc ID 2123559.1)

Last updated on APRIL 06, 2016

Applies to:

Oracle Retail Point-of-Service - Version 13.3 and later
Information in this document applies to any platform.

Symptoms

In Oracle Retail Point of Service (ORPOS), Account Number is incorrectly being retrieved during post void of Bill Pay transaction when 2 transactions from different registers have the same sequence number.


Steps to Reproduce:


Prerequisites:

1. Bill Pay integration is enabled in ORPOS.
2. Two registers are set up so that the next sequence # is the same for each.  (In examples below, registers are 128 and 129)
3. Eclipse Debugger is needed to observe runtime variables, apply breakpoint on SimulatedBillingService#reverseBillPayment(BillPayTransactionIfc transaction) method.


 

Reg 128 :

  1. Select F3 POS > F5 Transaction > F9 More > F7 Bill Pay.
  2. Enter bill# bill12345678901.  Observe in pos/config/BillPaySimulatorConfig.xml that the balanceDue is $204.88.
  3. Cash tender the minimum $100.00 and complete the transaction.  Observe in pos/config/BillPaySimulatorConfig.xml that the balanceDue is $104.88.

Reg 129:

  1. Select F3 POS > F5 Transaction > F9 More > F7 Bill Pay.
  2. Enter bill# bill99991.  Observe in pos/config/BillPaySimulatorConfig.xml that the balanceDue is $999.00.
  3. Cash tender the minimum $100.00 and complete the transaction.  Observe in pos/config/BillPaySimulatorConfig.xml that the balanceDue is $899.00.


Note: In table TR_RTL_BPAY:  two transactions have the same sequence#.


Reg 128:

  1. Post Void the Bill Pay from register 128.
  2. Observe in eclipse debugger that the BillPayTransaction.billPayInfo object has the wrong customer from register 129 but the Bill object in BillPayTransaction.billPayInfo.billsList is correct (i.e., from register 128). Note that there is no observable impact on ORPOS.  However, there may be potential problems in customizations if the wrong in memory object is constructed by base code, because if the Retailer customizes a post void receipt to extract customer info from the billPayInfo object, then the wrong customer details will be printed. In base the post void receipt does not print the customer details.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms