This chapter describes how to set up your environments and run the PDC migration utility to migrate the Oracle Communications Billing and Revenue Management (BRM) pricing data to a Oracle Communications Pricing Design Center (PDC) system that supports the real-time rating engine (RRE) and the batch rating engine (BRE).
Pricing data migration should be performed by experienced pricing administrators.
You should have a basic understanding of the following:
Creating product offerings. See the discussion about creating product offerings in PDC User's Guide.
Configuring setup components. See the discussion about configuring setup components in PDC User's Guide.
To use the migration utility, you must also understand the following:
Database administration tasks
Extensible Markup Language (XML) programming
XML schema definition (XSD)
To minimize impact and risks to your production systems, Oracle recommends to perform the initial migration on a development test system and then import the migrated data to your production systems.
If you are using Pricing Center to create and manage your price lists and using the real-time rating engine and the batch rating engine for usage rating, the pricing data is stored in the BRM database. If you want to use the PDC application to create and manage the price lists, you must first install PDC with RRE and BRE and migrate the pricing data from the BRM database into the PDC database. After you migrate the data, the pricing data is stored in the PDC database and used by the real-time and batch rating engines for usage rating.
You use the command-line utility, MigrateBRMPricing, to migrate the BRM pricing data into the PDC database.
Note:
The migration of branded data is not supported.The migration utility migrates both real-time and batch pricing data. The BRM pricing data consists of configuration objects and pricing objects. Because the pricing objects reference configuration objects, you must migrate the configuration objects prior to migrating the pricing objects. To do this, you run the migration twice: first to migrate the configuration objects and then to migrate the pricing objects.
The configuration objects include data such as event objects, service objects, impact categories, and zone models.
The pricing objects consist of the following:
Products and all objects referenced by a product, including rateplans, price model selectors, Access Point Name (APN) selectors, price models, time models, usage scenario (USC) groups.
Discounts and all objects referenced by discounts, including discount models, discount model selectors, discount rules, triggers, and filters.
Chargeshares and all objects referenced by a chargeshare.
Subscriptions objects, including deals, plans, and plan lists.
If the pricing analysis reports contain a large number of messages, you can consider migrating pricing objects by category. If you decide to migrate the pricing objects by category, you must migrate them in the following order:
Products and all objects referenced in the products
Discounts and all the objects referenced in the discounts
Chargeshares
Subscription objects
If you migrate pricing objects by category, each migration process must be completed first before starting the next. For example, the products migration process must be completed, that means all products and related objects are analyzed, transformed, and available in the PDC database, before you start the discounts migration process and so on.
See "MigrateBRMPricing" for the utility's syntax and parameters.
Note:
The BRM term for an object sometimes differs from the PDC term for the same object. See the mapping BRM to PDC terminology table in PDC User's Guide for more information.Migration of the BRM pricing data is performed in two phases:
Important:
In the Solaris environment, ensure that the locale is set to en_US.UTF-8 before running the migration utility.Data analysis: In this phase, the migration utility extracts and analyzes the BRM pricing data. The analysis shows errors that need to be fixed before the data can be migrated.
Data migration: In this phase, the migration utility adjusts, transforms and migrates the BRM pricing data to the PDC database.
You must perform the migration process twice. First you analyze and migrate configuration objects, such as event objects, service objects, impact categories, and zone models. Then, you analyze and migrate pricing objects, such as products and discounts.
The data analysis phase is the first phase of the migration of the BRM pricing data.
The following procedure describes how the BRM pricing data is processed in this phase:
The migration utility extracts the BRM pricing data from the BRM database and saves the data in XML files.
The migration utility analyzes the data to determine if the configurations are supported in PDC and whether any configurations need to be adjusted prior to the migration.
The migration utility generates analysis reports that provide the list of the data configurations that will be adjusted by the utility during the migration process and any configurations that you would need to adjust manually.
You need to review the analysis reports and resolve any pricing data configuration errors in the BRM database. If you make updates to the pricing data in the BRM database, you must restart the migration process to extract the latest objects from the BRM database and perform the data analysis again.
When you restart the migration process, the analysis reports are also re-generated for the latest data.
Figure 2-1 shows the data analysis phase:
Figure 2-1 Data Analysis Phase for Migrating BRM Pricing Data to PDC With RRE and BRE
The migration utility can adjust most BRM pricing configurations. Adjustments to the BRM pricing data configurations may result in existing BRM objects being updated or new BRM objects being created. In some cases, the migration utility may require additional information from you before it can adjust the data. But, there are some configurations that it cannot adjust and for those cases, you may need to change the configurations manually before continuing with the migration.
The data analysis phase is complete when there are no data configurations errors in the analysis reports.
The data migration phase is the second phase of the migration process. You must resume the migration process after the analysis phase is complete to start the data migration.
The following procedure describes how the data is processed in the data migration phase:
The migration utility adjusts the BRM pricing data in the XML files, if necessary, to enable transformation to the PDC data model.
The migration utility transforms the BRM pricing data to PDC components and saves them in XML files.
The migration utility loads the PDC components into the PDC database.
The migration utility loads any new and updated BRM objects (resulting from the data adjustments) into the BRM database.
The migration utility generates the migration report with information about the BRM objects that were successfully migrated to the PDC database.
The migration utility generates the process report with information about the BRM objects that were created or updated in the BRM database.
For more information about the migration utility reports, see "About Migration Reports".
Figure 2-2 shows the data migration phase:
Figure 2-2 Data Migration Phase for Migrating BRM Pricing Data to PDC With RRE and BRE
For more information on setting up and migrating the BRM pricing data to PDC with the real-time rating engine and the batch rating engine, see "Performing Migration of BRM Pricing Data to PDC With RRE and BRE".
The following steps guide you to set up and run migration on the development system and then import the changes to the production databases:
Create a backup of the BRM production database.
Setup the development system to run the initial migration of the pricing data.
See "Setting Up the BRM Development System" for more information.
Migrate the BRM configuration and pricing objects.
See "Migrating the BRM Pricing Data to PDC With RRE and BRE".
Restart the BRM and PDC systems.
Test the migrated data.
Import the migrated data to the production systems.
See "Importing the Migrated Data to the Production Systems".
Oracle recommends that you perform a full backup of your BRM production database prior to running the migration.
Performing a full backup allows you to restore your production database to its original state in the event of any data corruption or data loss. Back up both the database definition and all the database contents.
Use the backup to restore the database on a test system to ensure the backup is valid.
See your database software documentation for more information on performing full database backups.
Setting up the BRM development system includes setting up a BRM system with BRM pricing data and installing a PDC system.
Perform the following tasks to setup your development system:
Review the system requirements for installing the PDC and BRM systems.
See the discussion about Pricing Design Center system requirements in PDC Installation and System Administration Guide.
Perform the following pre-installation tasks for PDC:
Installing and configuring the Oracle Database
Installing and configuring Oracle WebLogic Server
Installing and configuring BRM
See the discussion about Pricing Design Center pre-Installation tasks in PDC Installation and System Administration Guide.
Install the complete PDC software.
Important:
Before you install PDC, ensure that the PDC database does not have any existing pricing data.When you install BRM Integration Pack, ensure that you select one of the following migration options:
Migrate RRE and BRE pricing data to PDC
See the discussion about installing Pricing Design Center complete software in PDC Installation and System Administration Guide for more information.
Copy the BRM pricing data from the production database to the development system.
You can copy the BRM pricing data in one of two ways:
Use the BRM load utilities, loadpricelist and LoadIfwConfig, to export the pricing data from your BRM production database and load it into the BRM development database.
See the discussion about pricing utilities in BRM Setting up Pricing and Rating for information about running these utilities.
Note:
Keep a record of the following information as you create the BRM database. This information is used later to configure the MigrateBRMPricing utility.User login and password for the BRM database
Name of the machine on which BRM database is created
IP address of the machine on which BRM database is created
Port number assigned to the BRM database
Service Name or SID for the BRM database
Restore the database from the BRM database backup.
See your database software documentation for more information about database restore.
Ensure BRM_Integration_Pack_Home/apps/bin is in your PATH environment variable, where BRM_Integration_Pack_Home is the directory in which you installed BRM Integration Pack.
(Optional) Configure the MigrateBRMPricing utility. See "Configuring the Migration Utility" for more information.
Ensure all users of the migration utility are added to the Migration Admin group.
The users of the migration utility must belong to the Migration Admin group, which is created during the PDC installation. You can add additional users to this group by using the WebLogic Administration Console.
Ensure that the BRM loadpricelist and LoadIfwConfig utilities are configured correctly and can connect to the BRM database.
The migration utility uses the BRM load utilities to extract the pricing data from the BRM database to XML files.
See the discussion about pricing utilities in BRM Setting Up Pricing and Rating for more information.
(Optional) If your BRM data consists of pipeline services that are mapped to multiple events in the Pipeline Manager IFW_REF_MAP database table, then you must add REF_PARAM combination key to the IFW_REF_MAP entry in IFW_Home/tools/XmlLoader/LoadIfwConfig.xsd file.
<xs:element name="IFW_REF_MAP" type="TableType_IFW_REF_MAP" minOccurs="0" maxOccurs="unbounded">
<xs:key name="IFW_REF_MAP_PrimaryKey_1">
<xs:selector xpath="IFW_REF_MAP"/>
<xs:field xpath="@ID"/>
<xs:field xpath="@REF_OBJ"/>
<xs:field xpath="@REF_PARAM"/>
</xs:key>
</xs:element>
Obtain the Java Keystore password.
The migration configuration file contains the information that you provided during PDC installation. You can edit this file if you want to change the information that you provided.
To configure the migration utility:
Make a copy of the BRM_Integration_Pack_Home/apps/migration/MigrateConfiguration.xml file, where BRM_Integration_Pack_Home is the directory in which you installed BRM Integration Pack.
Open the copy in a text editor.
Edit the file based on your requirements.
Table 2-1 lists the elements in MigrateConfiguration.xml and the syntax and description for each element.
Table 2-1 Elements in the MigrateConfiguration.xml File
Element | Syntax | Description |
---|---|---|
xrefDatabase |
<xrefDatabase> <connectionInfo> <login>CrossRefUserName</login> <hostName>CrossRefHostName</hostName> <port>CrossRefPort</port> <password>CrossRefPassword</password> <serviceName>CrossRefServiceName</serviceName> </connectionInfo> </xrefDatabase> |
Contains the details about the transformation cross-reference database, where:
|
migrationDatabase |
<migrationDatabase> <connectionInfo> <login>MigrationUserName</login> <hostName>MigrationHostName</hostName> <port>MigrationPort</port> <password>MigrationPassword</password> <serviceName>MigrationServiceName</serviceName> </connectionInfo> </MigrationDatabase> |
Contains the details about the migration cross-reference database, where:
By default, the connection information in the <migrateDatabase> elements is same as the connection information in the <xrefDatabase> elements. However, during BRM Integration Pack installation, the Installer allows you specify a migration cross-reference database that is different from the transformation cross-reference database. In that case, the connection information in the <migrateDatabase> elements and the <xrefDatabase> elements may differ. |
migrationSource |
<migrationSource> <deploymentType>MigrationSourcetype</deploymentType> <pricingServer> SourcePDCPricingServer </pricingServer> <brmConfiguration> SourceBRMConfiguration </brmConfiguration> </migrationSource> |
Contains the details about the migration source system.
|
pricingServer |
<migrationSource> <pricingServer> <connectionInfo> <hostName>SourcePricingServerHostName</hostName> <port>SourcePricingServerPort</port> <adminUser>SourceAdminUserName</adminUser> <adminPassword>SourceAdminUserPassword</adminPassword> <pdcUser>SourcePDCUser</pdcUser> <pdcPassword>SourcePDCUserPassword</pdcPassword> <pdcSSL>SourceSSLOption</pdcSSL> </connectionInfo> </pricingServer> </migrationSource> |
Contains the source PDC server information, where:
|
brmConfiguration |
<migrationSource> <brmConfiguration> <brand>BrandOption</brand> <skipBREMigration>SkipOption</skipBREMigration> <fieldSelection>EventFieldInfo</fieldSelection> <breConfig> <containerDesc> <param> <paramname>EDRField</paramname> <paramvalue>EDRFieldValue</paramvalue> </param> </containerDesc> <eventExtension> <param> <paramname>BREEvent</paramname> <paramvalue>ExtensionBlockName</paramvalue> </param> </eventExtension> <serviceExtension> <param> <paramname>BREService</paramname> <paramvalue>ExtensionBlockName</paramvalue> </param> </serviceExtension> <defaultValue> <param> <paramname>SERVICE_CLASS</paramname> <paramvalue>DefaultServiceClass</paramvalue> </param> </defaultValue> </breConfig> </brmConfiguration> /<migrationSource> |
Contain the details about the source BRM system configuration.
|
fieldSelection |
<fieldSelection> <targetEngine>TargetRatingEngine</targetEngine> <eventFields> <eventName>EventName</eventName> <fullyQualifiedName>EventFieldName</fullyQualifiedName> </eventFields> </fieldSelection> |
Contains the information about the target rating engine and the BRM event fields provided as input to the target rating engine for usage rating. <targetEngine> element specifies the target rating engine used for usage rating, where: TargetRatingEngine is one of the following:
<eventFields> element specifies the fields that are provided as input to TargetRatingEngine, where:
Note: Each <fieldSelection> element can have multiple <eventFields> elements but only one <targetEngine> element. To support multiple target rating engines, add the <fieldSelection> element for each target rating engine. Similarly, each <eventFields> element can have multiple <fullyQualifiedName> elements but only one <eventName> element. To rate multiple events, add the <eventFields> element for each event. |
migrationTarget |
<migrationTarget> <deploymentType>MigrationTargettype</deploymentType> <pricingServer> TargetPDCPricingServer </pricingServer> <brmConfiguration> TargetBRMConfiguration </brmConfiguration> </migrationTarget> |
Contains the details about the migration target system.
|
pricingServer |
<migrationTarget> <pricingServer> <connectionInfo> <hostName>TargetPricingServerHostName</hostName> <port>TargetPricingServerPort</port> <adminUser>TargetAdminUserName</adminUser> <adminPassword>TargetAdminUserPassword</adminPassword> <pdcUser>TargetPDCUser</pdcUser> <pdcPassword>TargetPDCUserPassword</pdcPassword> <pdcSSL>TargetSSLOption</pdcSSL> </connectionInfo> </pricingServer> </migrationTarget> |
Contains the target PDC server information, where:
|
brmConfiguration |
<migrationTarget> <brmConfiguration> <loadConfigDir>LoadConfigData</loadConfigDir> <loadPriceListDir>LoadPriceData</loadPriceListDir> <loadIfwConfigDir>LoadPipelineConfigData<loadIfwConfigDir> </brmConfiguration </migrationTarget> |
Contain the details about the target BRM system configuration, where:
|
logFile |
<logFile>MigrationLogFileLocation</logFile>
|
Specifies the directory that stores MigrateBRMPricing log files, where MigrationLogFileLocation is the complete path and the name of the log file. |
reportFile |
<reportFile>ReportFileLocation</reportFile>
|
Specifies the directory where MigrateBRMPricing stores the reports generated during the migration process, where ReportFileLocation is the complete path to the directory. |
brmExtractedXML |
<brmExtractedXML>BRMExtractedXML</brmExtractedXML>
|
Specifies the directory where MigrateBRMPricing stores the XML files containing the pricing data extracted from the BRM database, where BRMExtractedXML is the complete path to the directory. |
pdcExtractedXML |
<pdcExtractedXML>PDCExtractedXML</pdcExtractedXML>
|
Specifies the directory where MigrateBRMPricing stores the XML files containing the pricing data extracted from the PDC database, where PDCExtractedXML is the complete path to the directory. |
brmXML |
<brmXML>BRMDataFile</brmXML>
|
Specifies the directory where MigrateBRMPricing creates the XML files containing the BRM data that needs to be updated or created in the BRM database, where BRMDataFile is the complete path to the directory. |
pdcXML |
<pdcXML>PDCDataFile</pdcXML>
|
Specifies the directory where MigrateBRMPricing creates the XML files containing the extracted BRM data in PDC format, where PDCDataFile is the complete path to the directory. |
userInputXML |
<userInputXML>UserInputXML</userInputXML>
|
Specifies the directory that contains the XML user input files that you provide for data adjustments, where UserInputXML is the complete path to the directory. |
xrefSQL |
<xrefSQL>XrefData</xrefSQL>
|
Specifies the directory where MigrateBRMPricing creates the files containing the migration and transformation cross-reference data in sql format, where XrefData is the complete path to the directory. |
selectiveMigration |
<selectiveMigration> <useBatch>MigrationOption</useBatch> <batchName>BatchFileName</batchName></selectiveMigration> |
Contain the details for selective migration, where:
|
Save and close the file.
When you migrate pricing data from the BRM database to the PDC database, you must migrate the configuration objects and then migrate the pricing objects.
To migrate the pricing data from the BRM database to the PDC database:
Migrate the configuration objects. See "Migrating Configuration Objects".
Migrate the pricing objects. See "Migrating Pricing Objects".
To migrate the configuration objects:
Ensure that the BRM and PDC databases are running.
Go to the BRM_Integration_Pack_Home/apps/migration directory.
Run the following command, which starts the data analysis phase:
MigrateBRMPricing -config -analyze
Enter the password when prompted.
Review the configuration analysis report and fix any data configuration errors that are reported (see "Fixing Errors Found in the Analysis Phase").
In step 5, if you made changes to the data in the BRM database, run the following command, which restarts the data analysis phase:
MigrateBRMPricing -config -analyze -restart
Repeat steps 5 and 6 until there are no errors in the configuration analysis report.
Run the following command, which starts the data migration phase:
MigrateBRMPricing -resume
Note:
MigrateBRMPricing will not proceed with the transformation and migration of the configuration objects to the PDC database if there are any critical or user input errors in the configuration analysis report.Review the migration report and verify that all the configuration objects were migrated to the PDC database successfully.
Using the target PDC application, verify that you are able to view, create, and modify configuration objects without any errors.
To migrate pricing objects, do one of the following:
(Recommended) Migrate all pricing objects in one migration process. See "Migrating All Pricing Objects".
Migrate pricing objects by category. See "Migrating Pricing Objects by Category".
To migrate all pricing objects:
In the PDC application, ensure that the configuration objects are available.
Ensure that the BRM and PDC databases are running.
Go to the BRM_Integration_Pack_Home/apps/migration directory.
Run the following command, which starts the data analysis phase for all pricing objects:
MigrateBRMPricing -pricing -analyze
Enter the password when prompted.
Review the pricing analysis reports (product, discount, sponsorship and subscription analysis reports) and fix any data configuration errors that are reported (see "Fixing Errors Found in the Analysis Phase").
Do one of the following:
If you fixed any configuration object errors reported in the pricing analysis reports, restart the migration by running the configuration migration process and then rerunning the pricing migration process. See "Migrating the BRM Pricing Data to PDC With RRE and BRE".
If you fixed pricing objects errors (only pricing objects errors reported in the pricing analysis report), restart the pricing data analysis phase by running the following command:
MigrateBRMPricing -pricing -analyze -restart
Repeat steps 6 and 7 until there are no errors in the pricing analysis reports.
Run the following command, which starts the data migration phase:
MigrateBRMPricing -resume
Note:
MigrateBRMPricing will not proceed with the transformation and migration of the pricing objects to the PDC database if there are any critical or user input errors in the pricing analysis reports.Review the migration report and verify that all pricing objects were migrated to PDC successfully.
Make corrections to PDC data, if needed. See "Changes Required After Migration".
Using the PDC application, verify that you are able to create and modify pricing objects without any errors.
Migrating Pricing Objects by Category
When you migrate pricing objects by category, the migration of all the objects in each category must be completed before starting the next.
To migrate pricing objects by category:
In the PDC application, ensure that the configuration objects are available.
Ensure that the BRM and PDC databases are running.
Go to the BRM_Integration_Pack_Home/apps/migration directory.
Run the following command, which starts the data analysis phase for products and all objects referenced by a product:
MigrateBRMPricing -product -analyze
Enter the password when prompted.
Review the product analysis report and fix any data configuration errors that are reported (see "Fixing Errors Found in the Analysis Phase").
Do one of the following:
If you fixed any configuration object errors reported in the product analysis report, restart the migration by running the configuration migration process and then rerunning the pricing migration process. See "Migrating the BRM Pricing Data to PDC With RRE and BRE".
If you fixed pricing objects errors (only pricing objects errors reported in the product analysis report), restart the data analysis phase for products by running the following command:
MigrateBRMPricing -product -analyze -restart
Repeat steps 6 and 7 until there are no errors in the product analysis report.
Run the following command, which starts the data migration phase for products:
MigrateBRMPricing -resume
Note:
MigrateBRMPricing will not proceed with the transformation and migration of the pricing objects to the PDC database if there are any critical or user input errors in the analysis reports.Review the migration report and verify that the products and objects referenced by a product were migrated to PDC successfully.
Make corrections to PDC data, if needed. See "Changes Required After Migration".
Using the PDC application, verify that you are able to create and modify products without any errors.
Run the following command, which starts the data analysis phase for discounts and all objects referenced by a discount:
MigrateBRMPricing -discount -analyze
Enter the password when prompted.
Review the discount analysis report and fix any data configuration errors that are reported.
Do one of the following:
If you fixed any configuration object errors reported in the discount analysis report, restart the migration by running the configuration migration process and then rerunning the pricing migration process. See "Migrating the BRM Pricing Data to PDC With RRE and BRE".
If you fixed pricing objects errors (only pricing objects errors reported in the discount analysis report), restart the data analysis phase for discounts by running the following command:
MigrateBRMPricing -discount -analyze -restart
Repeat steps 15 and 16 until there are no errors in the discount analysis report.
Run the following command, which starts the data migration phase for discounts:
MigrateBRMPricing -resume
Review the migration report and verify that the discounts and all objects referenced by a discount were migrated to PDC successfully.
Make corrections to PDC data, if needed. See "Changes Required After Migration".
Using the PDC application, verify that you are able to create and modify discounts without any errors.
Run the following command, which starts the data analysis phase for chargeshares and all objects referenced by a chargeshare:
MigrateBRMPricing -sponsorship -analyze
Enter the password when prompted.
Review the sponsorship analysis report and fix any data configuration errors that are reported.
Do one of the following:
If you fixed any configuration object errors reported in the sponsorship analysis report, restart the migration by running the configuration migration process and then rerunning the pricing migration process. See "Migrating the BRM Pricing Data to PDC With RRE and BRE".
If you fixed pricing objects errors (only pricing objects errors reported in the sponsorship analysis report), restart the data analysis phase for chargeshares by running the following command:
MigrateBRMPricing -sponsorship -analyze -restart
Repeat steps 24 and 25 until there are no errors in the sponsorship analysis report.
Run the following command, which starts the data migration phase for chargeshares:
MigrateBRMPricing -resume
Review the migration report and verify that the chargeshares and all objects referenced by a chargeshare were migrated to PDC successfully.
Make corrections to PDC data, if needed. See "Changes Required After Migration".
Using the PDC application, verify that you are able to create and modify chargeshares without any errors.
Run the following command, which starts the data analysis phase for subscription objects:
MigrateBRMPricing -subscription -analyze
Enter the password when prompted.
Review the subscription analysis report and fix any data configuration errors that are reported.
Do one of the following:
If you fixed any configuration object errors reported in the subscription analysis report, restart the migration by running the configuration migration process and then rerunning the pricing migration process. See "Migrating the BRM Pricing Data to PDC With RRE and BRE".
If you fixed pricing objects errors (only pricing objects errors reported in the subscription analysis report), restart the data analysis phase for subscription objects by running the following command:
MigrateBRMPricing -subscription -analyze -restart
Repeat steps 33 and 34 until there are no errors in the subscription analysis report.
Run the following command, which starts the data migration phase for subscription objects:
MigrateBRMPricing -resume
Review the migration report and verify that all subscription objects were migrated to PDC successfully.
Make corrections to PDC data, if needed. See "Changes Required After Migration".
Using the PDC application, verify that you are able to create and modify subscription objects without any errors.
The following sections describe how to provide required user input and how to fix some of the common critical errors reported in the migration analysis reports.
The migration utility may require you to provide additional information prior to migrating resources and discount and chargeshare configurations. The analysis reports list these objects marked as User Input Required with a description of the information that is required. You provide the input in an XML file.
To provide the input:
Make a copy of the predefined XML templates in the BRM_Integration_Pack_Home/apps/xml directory in the BRM_Integration_Pack_Home/apps/xml/userinput directory, where BRM_Integration_Pack_Home is the directory in which the PDC software is installed.
Update the XML file content with the required information.
Ensure that the XML input file conforms to the XML schema definition in the BRM_Integration_Pack_Home/apps/xsd directory.
If you have a non-currency resource that is used in batch rating, you will need to map the resource name to the resource Id defined in the BRM server so that the resource can be mapped to the BEID definition.
The following is the XML that you would provide to map the resource LOYALTY to resource Id 1000019.
<?xml version="1.0" encoding="UTF-8" ?> <Resource> <BalanceElement type="0"> <BREResourceName>LOYALTY</BREResourceName> <BEIDCode>LOY</BEIDCode> <ResId>1000019</ResId> </BalanceElement> </Resource>
If you use an expression as a filter criteria in the discount and chargeshare detail, you will need to list the values in the expression individually.
Example 1
If you use the expression Peak* with Peak1, Peak2, and Peak3 for time model and 21* with 2155557 and 2155558 for resource Id in the discount detail, you will need to provide these values individually. Following is an example of the XML file that you would provide:
<Filters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="\oracle\communications\brm\pdc\migration\pricing\impl\bre\userinputxml\BreFilter_UserInput.xsd"> <Filter master="M1" rank="1"> <TimeModel> <name>Peak1</name> <name>Peak2</name> <name>Peak3</name> </TimeModel> <ResID> <id>2155557</id> <id>2155558</id> </ResID> </Filter> </Filters>
Alternatively, you can correct the expression in the discount detail itself. If you change the discount detail configuration, you will need to restart the migration utility.
Example 2
If you specify an expression in the rate plan field, such as !(Rate1|Rate2|Rate3), you will need to provide the XML that specifies the rate plans that should apply rather than those that should be excluded. This is because the NOT operator is not supported in PDC.
The following are some common BRM configurations that require manual changes prior to migrating the data to the PDC data model. These configurations will be listed in the migration analysis reports and the report will also specify exactly where the issues reside in your data. They are listed here for your reference and to provide more details on how to resolve them.
The following changes are required prior to migration:
In PDC, the balance impact in charge does not contain impact categories. If you migrate a BRM rate plan selector with multiple rules which result in the same rate plan but with different impact categories, the migration utility reports an error. If you migrate a rate plan selector with multiple rules that result in the same rate plan with the same impact category, this rate plan selector is migrated as long as the impact category is specified in the rateplan.
Recommended Action
For the rate plan selector which has multiple rules that result in the same rate plan with different impact categories, create a separate rate plan for each impact category. In each newly created rate plan, inspect the rate objects and remove any balance impacts that specify impact categories not applicable to that rate plan.
Example 1
Table 2-2 shows a rate plan selector with multiple rules that result in the same rate plan (rate plan A) with different impact categories:
Rule | Rule Expression | Rate Plan | Impact Category Used in Rate Plan Selector |
---|---|---|---|
Rule 1 |
Attribute values |
Rate plan A |
IC1 |
Rule 2 |
Attribute values |
Rate plan A |
IC2 |
Rule 3 |
Attribute values |
Rate plan A |
* |
Rule 4 |
Attribute values |
Rate plan A |
default |
Table 2-3 shows the rate objects in rate plan A.
Rate Object | Impact Category Used in Rate Object | Balance Impact |
---|---|---|
Rate Object 1 |
IC1 |
$1.00 |
IC2 |
$2.00 |
|
* |
$5.00 |
|
default |
$0.50 |
|
Rate Object 2 |
IC1 |
$1.50 |
* |
$6.00 |
|
Rate Object 3 |
IC1 |
$1.75 |
default |
$0.50 |
|
Rate Object 4 |
default |
$0.50 |
Solution
Make the changes shown in Table 2-4 to the rate objects:
Rule | Rule Expression | Rate Plan | Impact Category Used in Rate Plan Selector |
---|---|---|---|
Rule 1 |
Attribute values |
Rateplan A_IC1 |
IC1 |
Rule 2 |
Attribute values |
Rateplan A_IC2 |
IC2 |
Rule 3 |
Attribute values |
Rateplan A_* |
* |
Rule 4 |
Attribute values |
Rateplan A_default |
default |
Table 2-5 shows the rate objects in rate plan A_IC1.
Rate Object | Impact Category Used in Rate Object | Balance Impact |
---|---|---|
Rate Object 1 |
IC1 |
$1.00 |
IC1 (previously *) |
$5.00 |
|
Rate Object 2 |
IC1 |
$1.50 |
IC1 (previously *) |
$5.00 |
|
Rate Object 3 |
IC1 |
$0.50 |
Rate Object 4 |
IC1 (previously default) |
$1.00 |
Table 2-6 shows the rate objects in rate plan A_IC2.
Rate Object | Impact Category Used in Rate Object | Balance Impact |
---|---|---|
Rate Object 1 |
IC2 |
$2.00 |
IC2 (previously *) |
$5.00 |
|
Rate Object 2 |
IC2 (previously *) |
$6.00 |
Rate Object 3 |
IC2 (previously default) |
$0.50 |
Rate Object 4 |
IC2 (previously default) |
$1.00 |
Table 2-7 shows the rate objects in rate plan A_IC3.
Rate Object | Impact Category Used in Rate Object | Balance Impact |
---|---|---|
Rate Object 1 |
* |
$5.00 |
Rate Object 2 |
* |
$6.00 |
Rate Object 3 |
* (previously default) |
$0.50 |
Rate Object 4 |
* (previously default) |
$0.50 |
Table 2-8 shows the rate objects in rate plan A_default.
Impact categories defined for zoning can be flagged as derived, which means that they can only be used in USC and APN selectors. BRM allows derived impact categories to be used in a zone model, but PDC does not. If you migrate a BRM zone model with an impact category of type derived, the migration utility reports an error.
Recommended Action
If a derived impact category is used in a zone model, change the type from 1 (derived) to 0.
Example
The impact category, Brazil, which is associated with the zone item, San Jose to Brazil, is defined as derived and is used in a zone model.
Solution
Update the IFW_IMPACT_CAT table using the following SQL statement:
UPDATE IFW_IMPACT_CAT SET TYPE=0 WHERE Impact_Category LIKE 'Brazil';
In PDC, a zone item in a zone model does not specify a service code. In BRM, if two zone items in a zone model differ by only the service code, then the migrated zone items will give a unique constraint error in PDC because they will be identical.
Recommended Action
Modify the zone items that differ only by service code to make them unique or remove the duplicate item.
Example
Origin | Destination | Valid From | Service | Zone Impact Category |
---|---|---|---|---|
123 | 456 | 1999-01-01 | SMS1 | IC1 |
123 | 456 | 1999-01-01 | SMS2 | IC2 |
Solution
Modify the ValidFrom field in the IFW_STANDARD_ZONE table to a unique value (for example, 02-JAN-99 in the above example), to make the combination unique without using the service code.
In PDC, an extended service class does not inherit the event mapping of the parent class, and all events to be used with the extended service class must be explicitly mapped. In BRM, an extended service class inherits the event mapping of the parent class. If you migrate a BRM pricing object with a service-event combination that is not available in the service-event mapping, the migration utility reports an error.
Recommended Action
Ensure that all extended service classes have mappings for all the events used in pricing objects that reference them.
Example
The service-event map (pin_event_map file) contains these mappings:
/service/ip :/event/session ... :/event/session/dialup ... /service/ip/gprs :/event/session/gprs/master :/event/session/gprs/subsession ...
A product exists that applies to /service/ip/gprs and /event/session. The migration utility will report an error because /event/session is not mapped to /service/ip/gprs.
Solution
Map /service/ip/gprs to /event/session.
/service/ip :/event/session ...
:/event/session/dialup ...
/service/ip/gprs :/event/session/gprs/master
:/event/session/gprs/subsession ...
:/event/session
In BRM, Pricing Center allows to add a service to a plan and to add a deal to that service which applies to a parent class of the service. PDC does not allow this configuration, and the migration utility reports an error if such a plan is migrated.
Recommended Action
Change the service in the plan to match the service referenced in the deal.
Example
Plan A applies to /service/telco/gsm/voice and contains:
Deal 1, which applies to /service/telco.
Deal 2, which applies to /service/telco/gsm.
Solution
The plan should be changed to have the following service/deal combination:
/service/telco
Deal 1
/service/telco/gsm
Deal 2
PDC does not support BRM rate plans with more than one date tier with overlapping date ranges. This type of configuration is typically used to first consume an included balance, such as Anytime Minutes and after the balance is exhausted, to charge for the remaining usage.
Recommended Action
Re-configure the product to contain only a usage charge and configure a discount to credit the charge and debit the available balance.
Example
A rate plan for voice calls has two date tiers:
Consume Minutes, with a validity period that starts immediately and never ends.
Charges for call, with a validity period that starts immediately and never ends.
Solution
Re-configure the product by doing the following:
Create a discount based on the user scenario for consumption.
Remove the consumption tier from the product.
Do one of the following:
Purchase the new or modified deal in BRM.
PDC requires the basis for quantity brackets in a fold to be specified as Resource Balance and the resource to be a non-currency resource. If you migrate a BRM fold which has basis for quantity bracket configured with anything other than Resource Balance or the resource is a currency resource, the migration utility reports an error.
Recommended Action
Correct the fold configuration to use Resource Balance as the basis for quantity brackets and specify a non-currency resource.
Examples
The basis for quantity discount bracket is Continuous or Rate Dependent.
The basis is Resource Balance but the resource is a currency resource.
Solution
Review the business scenario and ensure that your fold configuration is implemented correctly. You can only fold a non-currency resource and the basis for quantity brackets in a fold must be Resource Balance.
PDC does not support the character "=" in a pricing object name. The migration utility will report an error if such objects are migrated.
Recommended Action
Change the pricing object name to not contain the "=" character.
The migration utility is not aware of any custom fields that you may have created in the BRM database.
For example, the migration utility reports the following error while converting the event storable class to XML if the event storable class has custom fields:
SEVERE: Error while run migration! oracle.communications.brm.pdc.migration.MigrationException: Got a non zero exit status from the command: /home/pin/7.5/bin/storableclasstoxml -r /home/pin/opt/oracle/11.2.0.3/apps/migration/xml/extract/Event.xml -o /event/*. Check if the BRM is up and running.
Recommended Action
Make custom fields available to applications. Refer to the discussion about making custom fields available to your applications for Java application in BRM Developer's Guide.
Important:
After creating the JAR file, restart the Connection Manager (CM) before running the migration utility.The following changes are required after migration:
In PDC, pricing using multiple RUMs is implemented with a single charge that contains separate charge trees for each RUM. In BRM, pricing using multiple RUMs is implemented with separate rate plans or rate plan selectors for each RUM.
For BRM rate plan selectors with multiple RUMs, the migration utility does not do a complete migration of the rate plan selectors. The rate plan selector is migrated to one charge selector with one rule mapped to a single charge and the charge will contain multiple charge trees, one for each RUM.
Recommended Action
After migration, re-configure the charge selector in PDC by defining rules where each rule results in a charge that contains a charge tree for each RUM.
When configuring a credit balance impact in PDC, only positive values are accepted in the PDC UI and the value is stored as a negative value, which is the convention for credits. Therefore, the value in the PDC UI has a different sign from the corresponding value in the database.
In Pricing Center, when a non-currency balance element is impacted with a positive value, as in a counter, it will get migrated as follows:
If Grantable flag is not checked in the balance impact, it will be migrated to a debit in PDC.
If Grantable flag is checked, it will be migrated to a credit with a positive value in PDC. Because PDC reverses the sign of a credit amount, the migrated credit will be initially displayed as a negative value, but when Save is clicked, the negative sign will be removed, because negative values are not accepted in the UI. Consequently, the value in the database will become a negative value. This changes the initial configuration and would likely result in pricing errors.
Recommended Action After migration, change the balance element to a counter. If the balance element is tagged as a counter, the database value will not be changed and PDC will display this balance impact as an increase of the counter using the actual amount stored in the database.
Example
Given the following balance impact in Pricing Center:
Impact: "Dollars Spent" Impact: "Dollars Spent" Id: 1500001 Amount: 0.40 per minute Grantable: Yes
After migration, the balance impact in PDC is:
Credit: "Dollars Spent" Id: 1500001 Amount: 0.40 per minute
Without changing the balance element to a counter, if this balance impact is displayed in PDC and saved, it will be stored as:
Credit: "Dollars Spent" Amount: -0.40 per minute Id: 1500001
After changing the balance element to be a counter, if this balance impact is displayed in PDC, it will be displayed and saved as:
Increase: "Dollars Spent" Id: 1500001 Amount: 0.40 per minute
Solution:
Update the BalanceElement table using the following SQL statement.
UPDATE BalanceElement SET Counter=1 WHERE NumericCode=1500001;
In BRM, a product can have multiple real-time rate plans, one rate plan per currency or one pipeline rate plan with multiple currencies. These product configurations are migrated in different ways.
BRM Real-Time Rate Plans
If you migrate a BRM product with multiple real-time rate plans per currency, it is migrated as one charge offer with one charge that has multiple branches, one for each currency charge. This will not be displayed in the PDC application.
Recommended Action
After migration, if you want to change a price in the migrated charge offer, you can edit the XML for the charge offer, change prices for the appropriate currencies, and then import the charge offer without viewing it in a changeset in the PDC application. The changeset will be stored in PDC and published to BRM.
BRM Pipeline Rate Plans
If you migrate a BRM product with a pipeline rate plan with multiple currencies, it is migrated as one charge offer with one charge that has multiple currencies. The currencies that are not specified for the rate plan are displayed as read-only in the PDC application.
Recommended Action
After migration, if you want, you can edit the charge and remove the currencies which are read-only and create duplicate charge offers with one charge per currency. For more information about configuring pricing for a charge, see the discussion about specifying charge details and configuring pricing in charges in PDC User's Guide.
Errors during the data migration can occur for various reasons, such as:
Database connection problems
Permission to write files
The XML data does not comply with the XSD
If you encounter these types of errors, look in the migration utility's log file, which is located in the log file directory specified in the BRM_Integration_Pack_Home/apps/migration/MigrateConfiguration.xml configuration file, for the specific details.
Resolving Java Heap Space Error
The migration utility is a Java process that runs on the Java Virtual Machine (JVM). While running the utility, you may receive "java.lang.OutOfMemoryError: Java heap space” error message on the WebLogic Managed Server. This occurs when the JVM runs out of heap space that it uses to run the utility.
The Java heap space size for the migration utility is set to 512 megabytes initial heap space and 4096 megabytes maximum heap space. In most cases, these default settings are sufficient. However, if you receive the Java heap space error, you may want to adjust the heap space sizes by adjusting the JVM parameters -Xms<size> and Xms<size>, where -Xms<size> specifies the initial heap space and -Xmx<size> specifies the maximum heap space.
To set the Java heap space size:
Open the BRM_Integration_Pack_Home/apps/migration/MigrateBRMPricing shell script in a text editor.
Search for the following line:
${JAVA_HOME}/bin/java -Xms512m -Xmx4096m -XX:CompileThreshold=8000 -XX:PermSize=128m -XX:MaxPermSize=1024m -cp ${clp} ${jvmopts} oracle.communications.brm.pdc.migration.Migrator $*
Change 512m and 4096m to appropriate heap sizes.
For example:
${JAVA_HOME}/bin/java -Xms768m -Xmx4352m -XX:CompileThreshold=8000 -XX:PermSize=128m -XX:MaxPermSize=1024m -cp ${clp} ${jvmopts} oracle.communications.brm.pdc.migration.Migrator $*
Update the Java heap space settings on the WebLogic Server. See the Oracle WebLogic Server documentation for more information.
For more information about Java heap space sizing guidelines, refer to the JVM documentation.
After the migration is complete, restart all the BRM and PDC system components, including Pipeline Manager, WebLogic server, and the batch rating engine and real-time rating engine transformation engines.
Restarting the systems clears the data that is cached in the system memory during the migration.
After migration is complete, test the migrated data before moving the data to the production systems.
For example:
Using the PDC application, verify that you are able to create and modify pricing and configuration objects without any errors.
Generate some usage events in BRM, then perform rating and billing of the events using the pricing data from before the migration and after.
Compare the rating and billing results and verify that the results are the same.
After you have successfully completed the migration of the configuration and pricing objects on the development system, you can import the changes to your production system.
Important:
To import changes from the development system to the production system, it is required that the BRM database on the production system must have exactly the same pricing data configurations as in the BRM database on the development system prior to the original migration.To import the data to the production system:
Ensure that the PDC production system is a new installation of PDC. The PDC database cannot have any existing data.
Do one of the following:
If you are migrating the BRM pricing data to PDC, do the following:
Ensure that the BRM production database contains exactly the same configuration and pricing objects as in the BRM database on the development system prior to the original migration.
Propagate any updates that you made to the BRM data in the development system during the original migration to the BRM production system.
Propagate any updates that you made to the BRM data in the development system during the original migration to the BRM production system.
If you are migrating the BRM pricing data to PDC, ensure that the BRM production database contains exactly the same configuration and pricing objects as in the BRM database on the development system prior to the original migration.
If you are migrating the PDC pricing data to PDC, ensure that the PDC production database contains exactly the same configuration and pricing objects as in the PDC database on the development system prior to the original migration.
Propagate any updates that you made to the BRM data in the development system during the original migration to the BRM production system.
Setup and configure the loadpricelist and LoadIfwConfig utilities to connect to the BRM and Pipeline Manager production databases:
On the development system, create a directory for the loadpricelist utility for each BRM production database.
For example, load_price_list_hostname, where hostname is the name of the BRM production database server.
Copy the contents from the loadpricelist directory installed on the production system.
Ensure that the loadpricelist utility can connect to the BRM production database.
Create a directory for the LoadIfwConfig utility for each Pipeline Manager production database.
For example, LoadIfwConfig_hostname, where hostname is the name of the Pipeline Manager production database server.
Copy the contents from the LoadIfwConfig directory installed on the production system (the default directory is XmlLoader).
Ensure that the LoadIfwConfig utility can connect to the Pipeline Manager production database.
Update the migration utility's configuration file with the connection information for the PDC and BRM production systems where you want to import the changes:
On the development system, go to the BRM_Integration_Pack_Home/apps/migration directory.
Copy the MigrationConfiguration.xml file and rename it Hostname_MigrationConfiguration.xml, where Hostname identifies the target PDC system.
Edit Hostname_MigrateConfiguration.xml to reference the target production systems.
Search for the pricingServer element:
<pricingServer> <connectionInfo> <hostName>PricingServerHostName</hostName> <port>PricingServerPort</port> <adminUser>AdminUserName</adminUser> <pdcUser>PDCUser</pdcUser> </connectionInfo> </pricingServer>
Edit the connectionInfo within the pricingServer element to reference the PDC production system.
Search for the xrefDatabase element.
<xrefDatabase> <connectionInfo> <login>CrossRefUserName</login> <hostName>CrossRefHostName</hostName> <port>CrossRefPort</port> <serviceName>CrossRefServiceName</serviceName> </connectionInfo> </xrefDatabase>
Edit the connectionInfo within the xrefDatabase element to reference the PDC transformation database.
Search for the targetBRM element.
Edit the loadPriceListDir within the targetBRM element to reference the directory where loadpricelist utility will be run to update the BRM system.
(Only if Pipeline data was migrated by the original migration) Edit the loadIfwConfigDir within the targetBRM element to reference the directory where LoadIfwConfig utility will be run to update the Pipeline database.
Run the following command, which starts the import of the changes to PDC and BRM production systems:
MigrateBRMPricing -retarget -properties Hostname_MigrateConfiguration.xml
If the retarget migration process stops, run the following command, which restarts the process:
MigrateBRMPricing -retarget -restart -properties Hostname_MigrateConfiguration.xml
When the retarget migration process is complete, a status report is generated in the report directory location specified in the BRM_Integration_Pack_Home/apps/migration/MigrateConfiguration.xml configuration file. The status report file name includes the target PDC system host name and port number. For example, StatusReport_Retarget_hostname_portnumber.html.
Remove the XML files generated during migration (Optionally, you can store them in a secure location if you need them for future use).
On the development system, open the BRM_Integration_Pack_Home/apps/migration/MigrateConfiguration.xml file.
Search for the brmExtractedXML element:
<brmExtractedXML>BRMExtractedXML</brmExtractedXML>
Remove the XML files in the directory location specified by BRMExtractedXML.
Search for the brmXML element:
<brmXML>BRMDataFile</brmXML>
Remove the XML files in the directory location specified by BRMDataFile.
Search for the pdcXML element:
<pdcXML>PDCDataFile</pdcXML>
Remove the XML files in the directory location specified by PDCDataFile.
After the BRM pricing data has been successfully migrated to PDC, you use the PDC application to modify the pricing data or create new pricing configurations. PDC transforms the data into the BRM pricing data model and then loads the data into the BRM database.
Modifications to the configuration objects which are mastered in BRM must be done in BRM and then synchronized with PDC by using SyncPDC utility.
Note:
Ensure that /event/realtimeDiscount does not exist in BRM during migration.See the discussion about synchronizing setup components in PDC User's Guide for more information.