Credit Limit Breach Notifications Getting Generated Even If Threshold Not Configured For 100% Breach (Doc ID 1905576.1)

Last updated on JULY 28, 2017

Applies to:

Oracle Communications Billing and Revenue Management - Version 7.3.1.0.0 to 7.5.0.0.0 [Release 7.3.0 to 7.5.0]
Information in this document applies to any platform.
***Check for relevance on 2 Feb 2016***
***Check for relevance on 28/07/2017***

Symptoms

There is a xml notification generated for 100% threshold even after passing an opcode PCM_OP_BILL_SET_LIMIT_AND_CR to set a credit threshold for 80%.
The expectation is to have xml notification generated for 80% threshold instead of 100%.

Below are the steps to reproduce the issue:

Make the following changes in the following business parameters

1. Edit bus_params_multi_bal.xml to provide the following entries:  

<BalanceMonitoring>enabled</BalanceMonitoring>                 
<CreditThresholdChecking>enabledOffline</CreditThresholdChecking>

     Load it with: pin_bus_params bus_params_multi_bal

2. Edit pin_notify to add

301  0 /event/notification/threshold_below

    Load it with: load_pin_notify pin_notify

3. Edit bus_params_rating.xml, make sure it is disabled, not changed:

<BusParamsRating>
      <OverrideCreditLimit>disabled</OverrideCreditLimit>
</BusParamsRating>

    Restart the cm

4. Make the following changes in the pipeline wireless.reg file:

  PortalConfigDataModule
  {
    ModuleName = DAT_PortalConfig
    Module
    {
      ReuseOnFailure = True
    }
  }
 
  ModuleName = DAT_AccountBatch
  Module
  {
    PortalConfigDataModule = ifw.DataPool.PortalConfigDataModule
    LogEvents = True
    Connections = 8
    InitialLoading = True
    AddAliasList = False
    ReadAccountBalances = True
    Threads = 8
    UseAsRouter = False
    Listener = ifw.DataPool.Listener
  }
 
  BalanceDataModule
  {
    ModuleName = DAT_BalanceBatch
    Module
    {
      DiscountDataModule = ifw.DataPool.DiscountModelDataModule
      AccountDataModule = ifw.DataPool.CustomerData
      PortalConfigDataModule = ifw.DataPool.PortalConfigDataModule
      ListenerDataModule = ifw.DataPool.Listener
      BalanceDirectory = /opt/portal/pinxxx/7.5/ifw/multimedios/data/balance
      UseFlexibleConsumptionRule = True #Default Value = True
      LogEvents = True
      LogTransactions = True
      BalanceTrace = True
    }
  }
 
  ApolloApplyBalanceModule
  {
    ModuleName = FCT_ApplyBalance
    Module
    {
      Active = True
      DiscountDataModule = ifw.DataPool.DiscountModelDataModule
      BalanceDataModule = ifw.DataPool.BalanceDataModule
      DiscountFunctionalModule =
      Functions.Processing.FunctionPool.ApolloDiscountModule
      PortalConfigDataModule = ifw.DataPool.PortalConfigDataModule
      IgnoreEDROnDeadlock = FALSE
      NumberOfNotificationLimit = 1
      NotificationOutputDirectory = /opt/portal/pinxxxx/7.5/ifw/multimedios/data/Rating/out/notifybalancebreach
      NotificationOutputPrefix = balancebreach_
    }
  }

5. Create a Product of /service/telco/gsm/telephony which grants -2900 frees second.

6. Create a Discount that will consume the free resource.

7. Create an account with a plan containing both product and Discount.

8. Pass the opcode PCM_OP_BILL_SET_LIMIT_AND_CR to set the credit limit

> testnap
===> database 0.0.0.1 from pin.conf "userid"
nap(11470)> r PCM_OP_BILL_SET_LIMIT_AND_CR 1
nap(11470)> d 1
# number of field entries allocated 20, used 8
0 PIN_FLD_POID           POID [0] 0.0.0.1 /account 306907 0
0 PIN_FLD_SERVICE_OBJ    POID [0] 0.0.0.1 /service/telco/gsm/telephony 305723 0
0 PIN_FLD_BAL_GRP_OBJ    POID [0] 0.0.0.1 /balance_group 307163 0
0 PIN_FLD_START_T      TSTAMP [0] (1388563202) Wed Jan  1 00:00:02 2014
0 PIN_FLD_END_T        TSTAMP [0] (1388563202) Wed Jan  1 00:00:02 2014
0 PIN_FLD_PROGRAM_NAME    STR [0] "VF_OP_SUBS_CREATE"
0 PIN_FLD_DESCR           STR [0] "CREDIT LIMITS"
0 PIN_FLD_LIMIT         ARRAY [1000095] allocated 20, used 3
1     PIN_FLD_CREDIT_LIMIT DECIMAL [0] 0
1     PIN_FLD_CREDIT_FLOOR DECIMAL [0] -2900
1     PIN_FLD_CREDIT_THRESHOLDS    INT [0] 32768
nap(11470)> xop PCM_OP_BILL_SET_LIMIT_AND_CR 0 1
xop: opcode 948, flags 0
# number of field entries allocated 20, used 2
0 PIN_FLD_POID           POID [0] 0.0.0.1 /account 306907 0
0 PIN_FLD_RESULTS       ARRAY [0] allocated 20, used 3
1     PIN_FLD_SERVICE_OBJ    POID [0] 0.0.0.1 /service/telco/gsm/telephony 305723 0
1     PIN_FLD_ACCOUNT_OBJ    POID [0] 0.0.0.1 /account 306907 0
1     PIN_FLD_POID           POID [0] 0.0.0.1 /event/billing/limit 282724021920166239 0

9. Pass a CDR for 2320 units
    Expected Result:     A xml notification to be generated in /pinhome/pinxxxx/opt/ifw/data/out/notifybalancebreach
    Actual Result:         A xml notification generated for 80% threshold
    Pass.

10. Pass another CDR for 600 units
      Expected Result: No xml notification to be generated
      Actual Result: A xml notification to be generated in /pinhome/pinxxxx/opt/ifw/data/out/notifybalancebreach

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<EventNotification
     xmlns="http://www.portal.com/PortalXMLSchema"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.portal.com/PortalXMLSchema
EventNotificationThreshold.xsd">
  <POID>0.0.0.1 /account 359135 0</POID>
<EVENT>
  <POID>0.0.0.1 /event/notification/threshold -1 0</POID>
  <NAME> Credit Threshold Notification </NAME>
  <ACCOUNT_OBJ>0.0.0.1 /account 359135 0</ACCOUNT_OBJ>
  <PROGRAM_NAME> Load Notification Event </PROGRAM_NAME>
  <START_T>1389721380</START_T>
  <END_T>1389722080</END_T>
  <WHEN_T>1404467521</WHEN_T>
  <TIMEZONE_ID>+0100</TIMEZONE_ID>
  <INHERITED_INFO>
     <BALANCES elem="1">
      <AMOUNT>720</AMOUNT>
      <RESOURCE_ID>1000095</RESOURCE_ID>
      <CURRENT_BAL>-740</CURRENT_BAL>
      <BAL_GRP_OBJ>0.0.0.1 /balance_group 359391 0</BAL_GRP_OBJ>
      <CREDIT_FLOOR>-2900</CREDIT_FLOOR>
      <CREDIT_LIMIT>0</CREDIT_LIMIT>
      <CREDIT_THRESHOLDS>32768</CREDIT_THRESHOLDS>
      <CREDIT_THRESHOLDS_FIXED></CREDIT_THRESHOLDS_FIXED>
      <EVENT_TYPE>/event/delayed/session/telco/gsm</EVENT_TYPE>
      <CALLING_NUMBER>0049100091</CALLING_NUMBER>
      <CALLED_NUMBER>004941067600</CALLED_NUMBER>
    </BALANCES>
    <THRESHOLDS elem="0">
      <CREDIT_THRESHOLDS>80</CREDIT_THRESHOLDS>
      <ALERT_TYPE>2</ALERT_TYPE>
      <REASON>1</REASON>
      <INFO>2</INFO>
    </THRESHOLDS>
  </INHERITED_INFO>
</EVENT>

 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<EventNotification
     xmlns="http://www.portal.com/PortalXMLSchema"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.portal.com/PortalXMLSchema
EventNotificationThreshold.xsd">
  <POID>0.0.0.1 /account 359135 0</POID>
<EVENT>
  <POID>0.0.0.1 /event/notification/threshold -1 0</POID>
  <NAME> Credit Threshold Notification </NAME>
  <ACCOUNT_OBJ>0.0.0.1 /account 359135 0</ACCOUNT_OBJ>
  <PROGRAM_NAME> Load Notification Event </PROGRAM_NAME>
  <START_T>1389721380</START_T>
  <END_T>1389722080</END_T>
  <WHEN_T>1404467666</WHEN_T>
  <TIMEZONE_ID>+0100</TIMEZONE_ID>
  <INHERITED_INFO>
     <BALANCES elem="1">
      <AMOUNT>20</AMOUNT>
      <RESOURCE_ID>1000095</RESOURCE_ID>
      <CURRENT_BAL>-20</CURRENT_BAL>
      <BAL_GRP_OBJ>0.0.0.1 /balance_group 359391 0</BAL_GRP_OBJ>
      <CREDIT_FLOOR>-2900</CREDIT_FLOOR>
      <CREDIT_LIMIT>0</CREDIT_LIMIT>
      <CREDIT_THRESHOLDS>32768</CREDIT_THRESHOLDS>
      <CREDIT_THRESHOLDS_FIXED></CREDIT_THRESHOLDS_FIXED>
      <EVENT_TYPE>/event/delayed/session/telco/gsm</EVENT_TYPE>
      <CALLING_NUMBER>0049100091</    
<CREDIT_THRESHOLDS>100</CREDIT_THRESHOLDS>
      <ALERT_TYPE>1</ALERT_TYPE>
      <REASON>1</REASON>
      <INFO>2</INFO>
    </THRESHOLDS>
  </INHERITED_INFO>
</EVENT>

</EventNotification>

 

 

Changes

 

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