13 Known Problems

The Oracle Communications Billing and Revenue Management (BRM) Patch Sets include several known problems and workarounds.

Topics in this document:

Known Problems in BRM

This section describes known problems and workarounds for BRM 12.0 patch sets.

A/R Actions between Billing and Invoicing Not Captured in Invoice

The invoicing process does not pick up the details of any A/R action that occurs between the time when a bill is generated and when the invoice for that bill is produced.

Workaround: Run billing and invoicing as an atomic operation without other A/R actions in between. For more information, see BRM Configuring and Running Billing.

Bill Now Generates Two Audit Objects for Nonpaying Child Items

When you run Bill Now on an account, selecting items corresponding to a nonpaying child bill unit, two audit objects are created: one audit object with an amount of 0 as revenue for the account that owns the paying parent bill unit and another audit object for the account that owns the nonpaying child bill unit.

Currently, there is no workaround.

Cannot Install BRM Reports and BRM Invoices in the Same Home Directory as Oracle Analytics Server

When you try to install the BRM Reports and BRM Invoices components in the same home directory as Oracle Analytics Server, the installation fails.

Workaround: Install BRM Reports and BRM Invoices in a different Oracle home directory than Oracle Analytics Server, then copy the BRM_Reports and BRM_Invoices directories as follows:

  1. Install the BRM Reports and BRM Invoices components in one location as described in "Installing Individual BRM Components." For example, use the following installation location:
    $PIN_HOME/opt/portal
  2. Install Oracle Fusion Middleware and Oracle Analytics Server in a separate location from BRM Reports and BRM Invoices. For example, use the following installation location:
    $PIN_HOME/Oracle/Middleware/Oracle_Home
  3. Create the necessary database schemas and configure Oracle Analytics Publisher as described in "Creating the Database Schemas" and "Configuring Oracle Analytics Server Domain with the Configuration Assistant" in Oracle Analytics Installing and Configuring Oracle Analytics Server.
  4. Copy the BRM_Reports and BRM_Invoices directories from the location where you installed them. For example:
    $PIN_HOME/opt/portal/user_projects/domains/bi/bidata/components/bipublisher/repository/Reports
  5. Paste the BRM_Reports and BRM_Invoices directories to the new location in the Oracle Fusion Middleware and Oracle Analytics Server directory structure. For example:
    $PIN_HOME/Oracle/Middleware/Oracle_Home/user_projects/domains/bi/bidata/components/bipublisher/repository/Reports

BRM Server and Client OUI Installers Not Localized in Russian

Localized versions of BRM server and client applications, such as Pricing Design Center and Pipeline Configuration Center, are available in Russian. However, their Oracle Universal Installers (OUI) are not localized in Russian.

Currently, there is no workaround.

For information about localized client applications, see "Using Localized Client Applications" in BRM Developer's Guide.

Default Invoices Do Not Display Custom Events and Items

The default BI Publisher invoice templates shipped with BRM do not display data from custom /event and /item objects.

Workaround: If you create custom /event or /item objects, you must also customize the BI Publisher invoice templates to display your custom data. For more information, see the discussion about customizing invoices in BRM Designing and Generating Invoices.

Error When Configuring or Modifying Security Policies for Web Services Manager for JAX-WS

If you have configured security policies for Web Services Manager for JAX-WS or if you have modified the security policies, the request sent by the client to the server fails and the following error message appears:

headers:[{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security] are not understood

Workaround: If your client caches service WSDLs, refresh the WSDLs before sending the requests to the server.

Event Browser Displays Data Internal to BRM in the Event Description

For usage events that were rated by Oracle Communications Elastic Charging Engine (ECE), Event Browser displays data internal to BRM in the event description.

Currently, there is no workaround.

Invoices Do Not Display Charge Sharing Details Separately

The balances associated with charge sharing are not split into original charges and sponsored/shared charges in the invoices. The total balances are correct and include any effect of charge sharing.

Currently, there is no workaround.

Invoices Might Display Wrong Discount Amount

Invoices might display the wrong discount amount for accounts with nonpaying bill units in a discount sharing group.

Currently, there is no workaround.

pin_inv_accts Fails for Migrated Accounts if Business Intelligence Publisher Invoicing Integration Is Enabled

If Oracle Business Intelligence Publisher (BI Publisher) invoicing integration is enabled, the pin_inv_accts utility fails for migrated accounts and an error is logged in the cm.pinlog file.

Workaround: Do the following before migrating the accounts:

  1. Open the BRM_home/sys/amt/data/create_generate_amt_metadata.sql file in a text editor.

  2. Search for the following lines:

    ELSIF (column_r.column_name LIKE '%POID_LIST') THEN
     --
    -- operation: rewrite the POID_DB reference in %_POID_LIST fields
    -- (i.e. account_t.next_item_poid_list, account_t.item_poid_list)
    -- while preserving the null value
    --
    -- assumption: POID_DB reference is starts at character position 1 and the format is 0.0.0.x
    --
    -- call custom Java stored procedure convert_poid_list()
    --
    select_column_list := select_column_list||
    ', convert_poid_list('||column_r.column_name||', #)';
    dbms_output.put_line('replace list reference with dest_db_id');
    
  3. Add the following lines after the ELSIF condition you searched for in step 2:

     ELSIF (column_r.column_name LIKE '%OBJ_LIST') THEN
     select_column_list := select_column_list||
     ', convert_poid_list('||column_r.column_name||', #)';
    dbms_output.put_line('replace list reference with dest_db_id');
    
  4. Save and close the file.

  5. Run the pin_amt_install.pl script.

  6. Stop and start the Data Manager (DM) and Connection Manager (CM) services.

  7. Start migrating the accounts.

Refund Is Incorrectly Calculated When Remaining Charge Discount Canceled

On canceling a remaining charge discount on a cycle forward arrears event, the refund amount is calculated incorrectly.

Currently, there is no workaround.

RE Loader Daemon Fails to Process Files Under Load

The RE Loader daemon fails and throws the following error message when processing a large number of Pipeline Manager output files:

The infranet.rel.password key is missing from the properties file.

This occurs because, under load, RE Loader fails to read the database password from the Oracle wallet.

Workaround: In the BRM_home/apps/pin_rel/Infranet.properties file, set this entry to the password for connecting to the BRM database. The password can be in plain text or encrypted in OZT format.

infranet.rel.password = Password

See BRM Loading Rated Events.

Sample Prepaid Service Life Cycle Does Not Support Provisioning of Telco Services

The sample prepaid service life cycle does not support provisioning of telco services.

Workaround: Enable the sample prepaid service life cycle to support the provisioning of telco services by adding the following state transition to that life cycle before associating the life cycle with a telco service type:

  • From state: Preactive (ID 101)

  • To state: Suspended (ID 107)

For information about adding state transitions to service life cycles, see the discussion about managing service life cycles in BRM Managing Customers.

The SLM Feature Does Not Support Account Billing Relationships

The SLM feature does not support the following account relationships, which enable customers to pay other customers' bills:

  • Parent/nonpaying child hierarchies

  • Owner/member charge sharing or discount sharing

  • Owner/member sponsorship

If a service involved in such a relationship uses a custom life cycle, the SLM feature does not consider the condition of the parent/owner account when an event occurs that triggers a service state change in a child/member account.

For example, Service A uses the sample prepaid service life cycle. For that service, a parent account has a credit limit of 100 euros and its nonpaying child account has a credit limit of 0 euros. In both the parent and the child, the state of Service A is Active. After an account adjustment of 2 euros is applied to the child account, however, the state of Service A in the child account changes to Recharge Only, even though the parent account's available credit limit is still 100 euros.

Therefore, service types involved in account billing relationships must use the default service life cycle (Active, Inactive, Closed). They cannot use custom service life cycles.

Workaround: Customize the PCM_OP_BAL_POL_CHECK_LIFECYCLE_STATE policy opcode to consider the condition of parent/owner accounts when a service state change is triggered in child/member accounts.

See the discussion about managing service life cycles in BRM Managing Customers for more information.

Settlement Taxes Might Be Incorrectly Calculated

If you adjust only the tax amount in an event (by calling the PCM_OP_AR_EVENT_ADJUSTMENT opcode with the PIN_EVENT_ADJ_TAX_ONLY flag) and then dispute the item containing the event, the settlement tax is not calculated correctly; therefore the total due amount of the item is incorrect. The settlement is calculated correctly only when the denied amount is 0. This occurs with both real-time and deferred taxation.

Currently, there is no workaround.

stop_eai_js Does Not Work

When you run stop_eai_js, the script does not work and the following error message appears:

stop_eai_js: ERROR: no pid file.

Workaround: Do the following:

  1. Open the BRM_home/bin/ stop_eai_js file in a text editor.

  2. Search for the following entry:

    LOGDIR=$PIN_LOG/dm_eai
    
  3. Change this entry to:

    LOGDIR=$PIN_LOG/eai_js
    
  4. Save and close the file.

Summary Invoices Do Not Show Real-Time Discount and Tax Details for Items

Summary invoices display data related to charges at the item level. Details of real-time taxes or real-time discounts are not displayed separately on summary invoices. The charges for the billable items include this data.

Workaround: To view these details on invoices, generate the invoices in one of the following ways:

  • Use the detailed format.

  • Customize the item assignment configuration to aggregate the discounts and taxes into their own separate items.

The invoices will contain separate lines for the discounts and taxes. For more information, see BRM Designing and Generating Invoices.

Tax Not Recalculated after Rerating

When you rerate the bill amount after rerating the changes, the tax amount is not recalculated.

Workaround: manually adjust the tax amount.

Error When Creating a New Data Sequence for BRM

While upgrading from 12.0 Patch Set 3 to Patch Set 8, you may get the following error while creating a new data sequence for BRM:
Error: Unable to update the Portal Base database.
Exiting from the install without finishing successfully.
Please check for errors in
and then rerun this program.
EBUF: errno=<PIN_ERR_DUPLICATE:10> location=<PIN_ERRLOC_DM:4> 
class= field num=<PIN_FLD_POID:7,16> recid= reserved=

This occurs because one of the upgrade files, new_data_sequence_for_ext_id_12PS5.source, creates sequence number 320, which is a predefined sequence number in BRM.

Workaround: In the new_data_sequence_for_ext_id_12PS5.source file, locate the following line:
0 PIN_FLD_POID POID [0] $PIN_CONF_DB_NO /data/sequence 320 0

Replace the number 320 with a unique sequence number other than 320.

Known Problems in Business Operations Center

There are no known problems in Business Operations Center 12.0 patch sets.

Known Problems in Billing Care

This section describes known problems and workarounds for Business Operations Center 12.0 patch sets.

Duplicate Login Request When Using Single Sign-On

When Single Sign-On (SSO) with Oracle Identity and Access Management Lifecycle Management is implemented for your Billing Care environment, users are redirected to the Billing Care login screen after authenticating in the SSO login screen.

Workaround: On each Oracle Platform Security Services (OPSS) JRF-enabled domain where Billing Care is deployed:

  1. Comment out the <variable-definition> and <module-override> entries in the Middleware_home/setup/Plan.xml file as shown below, where Middleware_home is the WebLogic home directory on the OES Client domain host of the user who installed Billing Care.

    <?xml version='1.0' encoding='UTF-8'?>
    <deployment-plan xmlns="http://xmlns.domain.com/weblogic/deployment-plan" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.domain.com/weblogic/deployment-plan http://xmlns.domain.com/weblogic/deployment-plan/1.0/deployment-plan.xsd" global-variables="false">
        <application-name>BillingCare.war</application-name>
        <!--<variable-definition>
            <variable>
                <name>CONFIG_SSL_REDIRECT</name>
                <value>CONFIDENTIAL</value>
            </variable>
        </variable-definition>
        <module-override>
            <module-name>BillingCare.war</module-name>
            <module-type>war</module-type>
            <module-descriptor external="true">
                <root-element>web-app</root-element>
                <uri>WEB-INF/web.xml</uri>
                <variable-assignment>
                    <name>CONFIG_SSL_REDIRECT</name>
                    <xpath>/web-app/security-constraint/user-data-constraint/transport-guarantee</xpath>
                </variable-assignment>
            </module-descriptor>
        </module-override> -->
    </deployment-plan>
    
  2. Restart the domain.

Firefox and Internet Explorer Fail to Connect Securely to Billing Care

The Plan.xml file deployed by the Billing Care Oracle Universal Installer enables mandatory use of an SSL-enabled port when connecting with all browsers. Firefox and Internet Explorer may fail to connect to Billing Care, producing a secure connection failure error.

Workaround: For Firefox, no workaround exists. For Internet Explorer, start a Command Prompt session with administrative rights, and run the following command before launching Internet Explorer:

certutil -setreg chain\EnableWeakSignatureFlags 8

Known Problems in PDC

This section describes known problems and workarounds for PDC 12.0 patch sets.

PDC Search Functionality Not Working As Expected

Basic Search

When you perform a basic search in the PDC user interface, clicking a search result does not open it.

Workaround: Double-click a search result to open it.

Advanced Search

If you are using Internet Explorer 11 on Windows 10, the search results do not appear as expected when you perform an Advanced search in the PDC user interface.

Workaround: Use Mozilla Firefox on Windows 10 or use Internet Explorer 11 on Windows 8.1 to perform Advanced search in the PDC user interface.

Migrating Pricing Data Fails in a PDC System with BRE and RRE

When the zone result validity period set in a zone model exceeds the validity period set for the associated rate plan, migration fails with an validation error.

Workaround: Modify the zone result validity in BRM to ensure that the zone result validity overlaps or falls within the associated rate plan validity.

Adding Balance Groups and Setting Credit Limits in a Package Displays Exceptions

Setting Credit Limits Exception

In the Balance Groups section of the Create Package page, when you set the credit limit for a balance element and save it, the changes are saved successfully but PDC displays an exception.

Workaround: Navigate to any other section in the Create Package page and save the changes to avoid exceptions.

Adding Balance Groups Exception

When you add another balance group immediately after setting the credit limit for a balance element, the balance group is created successfully but PDC displays an exception instead of displaying the newly created balance group.

Workaround: Click the existing balance group to view the newly created balance group.

Migration Fails Even When the Migration Process is Enabled to Skip Errors

During migration, when a critical error is encountered while migrating a discount filter or a discount trigger, migration fails with errors even when the migration process is enabled to skip errors and continue migration.

Workaround: Manually fix the errors encountered during migration and restart the migration process.

You Are Not Warned to Save Your Changes

After modifying a setup or pricing component, you are not warned that you have unsaved changes when you do the following:

  • Close the tab

  • Log out of PDC

If you perform any of the above actions before saving your changes, the changes are lost.

Workaround: Save your changes before closing a tab or logging out of PDC.

Known Problems in PCC

There are no known problems in PCC 12.0 patch sets.

Known Problems in BRM Cloud Native Deployment

This section describes known problems and workarounds for BRM cloud native deployment 12.0 patch sets.

Invoicing Formatter Uses Incorrect XSLT Processor

In BRM cloud native 12.0 Patch Set 4, the invoice formatter Pod uses an incorrect XSLT parser and engine.

Workaround: Set the following keys in your oc-cn-helm-chart/templates/configmap_infranet_properties_formatter.yaml file:

infranet.pxslt.parser=javax.xml.parsers.SAXParser 
infranet.pxslt.engine=com.portal.pxslt.PXSLTEngineXdkImpl

Missing Subscriber State Configuration Files

In the BRM cloud native package, these subscriber state configuration files are missing from the Connection Manager (cm) Pod:

  • pin_slm_business_profile.xml

  • config_lifecycle_states.xml

  • config_service_state_map.xml

  • config_service_state_map.xsd

  • config_lifecycle_states.xsd

  • config_lifecycle_states.xsl

Currently, there is no workaround.

syncPDC May Fail After Upgrade to PDC Cloud Native 12.0 Patch Set 3

After upgrading your Pricing Design Center (PDC) cloud native deployment from 12.0 Patch Set 2 to 12.0 Patch Set 3, the syncPDC utility may fail due to mismatched events.

Workaround: Enter this SQL*Plus command to drop the duplicate events from the CONFIG_PERMITTED_EVENTS_T table:

SQL> select EVENT_TYPE from CONFIG_PERMITTED_EVENTS_T where EVENT_TYPE NOT in (select name from dd_objects_t);

Error When Upgrading ECE from BRM 12.0 Patch Set 6 to Patch Set 8

When upgrading ECE from BRM 12.0 Patch Set 6 (12.0.0.6.0) to Patch Set 8, you may get the following error:
cdrgateway pod is in crashloopbackoff due to incompatibility between BRM 12.0 PS6 and Kubernetes 1.25

This is because the ece-cdrgatewayservice.yaml file does not contain the publishNotReadyAddresses entry.

To fix this, manually add the publishNotReadyAddresses: true entry to the oc-cn-ece-helm-chart/ templates/ece-cdrgatewayservice.yaml file and rerun the upgrade script:
clusterIP: None
selector:   
    application: cdrgateway
publishNotReadyAddresses: true

Known Problems in BRM REST Services Manager

This section describes known problems and workarounds for BRM REST Services Manager 12.0 patch sets.

Must Use Payment Methods that Are Already Associated with Bill Units

When creating a payment using the extended payment object in the BRM REST Services Manager API, you must use the payment method that is associated with the bill unit to which the payment will be allocated.

If you use a payment method that is not associated with the bill unit, one of the following will happen:

  • If the payment method in the request is the same type (credit card, debit card, direct debit, or invoice) as the one associated with the bill unit, the payment will be processed using the payment method associated with the bill unit, not the one on the request.
  • If the specified payment method is a different type than the one associated with the bill unit, the payment will fail.

Workaround: Before submitting a payment, determine which bill unit the payment will be allocated to, and identify the payment method associated with the bill unit by submitting a GET request to the following endpoint:

https://hostname:port/brm/accountManagement/v4/billingCycleSpecification/id?@type=
        billingCycleSpecificationOracle&fields=paymentProfile
Where:
  • hostname is the URL for the BRM REST Services Manager server.
  • port is the port for the BRM REST Services Manager server.
  • id is the ID of the bill unit you want to find the payment method for.
  • Including fields=paymentProfile retrieves values for the relevant fields only, so you can quickly find the information you need. Values for other fields will be null.

The following is an example of the response in JSON format, with the payment method ID in bold:

{
    "id": "0.0.0.1+-billinfo+110189",
    "href": "https://host:port/brm/accountManagement/v4/billingCycleSpecification/0.0.0.1+-billinfo+110189",
    "billingDateShift": null,
    "billingPeriod": null,
    "chargeDateOffset": null,
    "creditDateOffset": null,
    "description": null,
    "frequency": null,
    "mailingDateOffset": null,
    "name": null,
    "paymentDueDateOffset": null,
    "validFor": null,
    "@baseType": "BillingCycleSpecification",
    "@schemaLocation": null,
    "@type": "BillingCycleSpecificationOracle",
   "status": null,
    "remainingAmount": null,
    "billingAccount": null,
    "paymentProfile": {
        "id": "0.0.0.1+-payinfo-invoice+109165",
        "href": null,
        "name": "Invoice Payment",
        "@baseType": null,
        "@schemaLocation": null,
        "@type": null,
        "@referredType": null
    },
    "accountingType": null
}

In this example, you would use 0.0.0.1+-payinfo-invoice+109165 as the value for the id property of the PaymentMethodRefOrValue object in the create payment message.

Cannot Allocate Payments to Bills of Different Bill Units

You cannot allocate payments to bills belonging to different bill units (billing cycle specifications) in a single request using the BRM REST Services Manager API. If you try, the allocation will fail.

In the body for POST paymentAllocation requests, you must specify only bills belonging to the same bill unit.

You can find out what bill unit a bill belongs to by submitting a GET request against the following endpoint:

https://host:port/brm/customerBillManagement/v4/customerBill/id?@type=CustomerBillOracle&fields=billingCycleSpecification.id
Where:
  • hostname is the URL for the BRM REST Services Manager server.
  • port is the port for the BRM REST Services Manager server.
  • id is the ID of the bill you want to find the bill unit for.
  • Including fields=billingCycleSpecification.id retrieves values for the relevant fields only so you can quickly find the information you need. Values for other fields will be null.

The following is an example of an excerpt from the response in JSON format, with the bill ID and the bill unit ID in bold:

{
    "id": "0.0.0.1+-bill+101",
    ...
    "billingCycleSpecification": {
        "name": null,
        "id": "0.0.0.1+-billinfo+133587",
        "Status": null,
        "href": "https://host:port/brm/accountManagement/v4/billingCycleSpecification/0.0.0.1+-billinfo+133587",
        "accountingType": null,
        "@type": "PartyBillingCycleSpecificationOracle",
        "@baseType": "PartyBillingCycleSpecification",
        "@schemaLocation": null
    },
   ...
}

Workaround: To allocate partial payments to bills belonging to two separate bill units, use two separate requests. For example, if the total amount for payment 109 is $50, you could submit the following as the POST request body to allocate half to bill 101:

{
    "bill": [
        {
            "id": “0.0.0.1+-bill+101",
            "allocatedAmount": {
                "unit": USD,
                "value": 25
            }
    ],
    "paymentId": "0.0.0.1+-item-payment+109"
}

Then you would submit the following request separately to allocate the other half to bill 102:

{
    "bill": [
        {
            "id": “0.0.0.1+-bill+102",
            "allocatedAmount": {
                "unit": USD,
                "value": 25
            }
    ],
    "paymentId": "0.0.0.1+-item-payment+109"
}