Incorrect USC_Map Filtering By Validation Dates (Doc ID 2024661.1)

Last updated on AUGUST 09, 2015

Applies to:

Oracle Communications Billing and Revenue Management - Version 7.5.0.0.0 to 7.5.0.0.0 [Release 7.5.0]
Information in this document applies to any platform.

Goal

During regression testing of the solution for the patch 20699395, issue with date validation has been discovered.
Problem with validation date in format "DAYHH:MM" (e.g. FRI20:00) has been found.
It seems that in cases when CDR is created on the same weekday as is configured in IFW_USC_MAP valid_to column, iRule (IRL_UsageType_USC.irl) validation fails on condition isValidTimeStamp, which is defined in iScript ISC_USC_Map_functions.isc.

Value of variable week_time_to_str should be retrieved only from valid_to variable, but not from variable time_to.

====
edr_time_str = strSubstr(dateToStr(edrTimeStamp),8,6);
...
week_time_to_str = strSubstr(valid_to,3,2);  
week_time_to_str = week_time_to_str + strSubstr(time_to,6,2);  
week_time_to_str = week_time_to_str + "00";
...
...
...
if ((d == toDay) and (strToLong(edr_time_str) > strToLong(week_time_to_str)))
{
  return(false);
}
====

Following scenario fails, because week_time_to_str will be always lower than edr_time_str, since strSubstr(time_to,6,2) returns empty string which is after that appended with "00". Therefore "time_to" should be replaced with "valid_to".

Scenario:
ifw_usc_map valid_from = MON10:00
ifw_usc_map valid_to   = FRI20:00
EDRs start_time        = 20150109060000 ( FRIDAY 06:00 )

Based on above code snippet, strToLong(week_time_to_str) = 2000 and strToLong(edr_time_str)=60000.

Can the script be corrected for the same?
Therefore the condition is met, which means that false is returned and the EDR is not rated.

Solution

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