My Oracle Support Banner

PCM_OP_PYMT_COLLECT Opcode Should Always Check the Ebuf Before Clearing It to Log the Error (Doc ID 2919536.1)

Last updated on JANUARY 11, 2023

Applies to:

Oracle Communications Billing and Revenue Management - Version and later
Information in this document applies to any platform.


It looks like a new function fm_pymt_gen_pymt_nevents() is added in Patch Set (PS) 7, which is setting some errors and rolling back the transaction partially on a failed payment (update to /event/billing/charge/cc to update from 100X to X and /event/billing/payment/cc is lost due to rollback). However, there is no error logged in any of the logs and the error buffer is cleared silently in the flow of pcm_op_pymt_collect.
Due to this, transaction committed with /event/billing/fee/failed_payment, but the failed payment event (/event/billing/payment/cc) and updates to /event/billing/charge/cc is lost due to earlier rollback.

The log must shows the input flists (DEBUG level) and logs an ebuf error before return as the user does not have any clue as to why the transaction is rolling back partially.
Also as a general rule of thumb, the PCM_OP_PYMT_COLLECT opcode should always check the ebuf before clearing it to log the error accordingly.

The issue can be reproduced at will with the following steps:
1. Enable below entry in Connection Manager (CM) pin.conf
- fm_bill skip_precreate_default_item 1
2.  Set the CM log level to debug
3. Create an account with a valid credit card
4. Set the card which was used in previous step to hard decline in simulator
5. Make a payment. Observe that transaction is rolled back after op_bill_rcv_payment


To view full details, sign in with your My Oracle Support account.

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

In this Document

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.