This chapter describes how to create and edit an Oracle Communications Billing and Revenue Management (BRM) price list by using the XML Pricing Interface.
Before reading this chapter, read "About Creating a Price List".
You create and modify price lists by using the following:
Pricing Center: Pricing Center is a GUI application that provides on-screen wizards to help you create your price list. You create and modify the price list and retrieve and save it to the database all directly in Pricing Center. For more information, see Pricing Center Help.
XML Pricing Interface: The XML Pricing Interface consists of the "loadpricelist" utility. You create price lists directly in an XML editor or text editor and then use the utility to load, retrieve, and delete the price list from the BRM database. For information on creating price lists with the XML Pricing Interface, see "About the XML Pricing Interface".
The XML Pricing Interface is a command-line utility called loadpricelist that you can use to download, edit, and load price lists.
Important:
The XML price list must follow the format detailed in the XML SchemaDefinition (XSD) file price_list.xsd. By default, the price_list.xsd file is installed in BRM_Home/PricingCenter and/or BRM_Home/setup/scripts.You can use the loadpricelist utility to download and load an entire price list or a partial price list. When you download a price list from the database, the utility writes the price list information you specify into an XML file. If you specify to download to an existing price list file, the utility overwrites the entire XML file.
When you load a price list from an XML file into the database, the utility modifies only those objects that have changed:
If an object has changed, the utility updates the object's attributes in the database.
If an object does not exist in the database, the utility creates the database object.
If an object has not changed and is already in the database, the utility does not modify the database object.
Before you use the XML Pricing Interface, you must configure the following:
Include the loadpricelist.jar, xerces.jar, pcm.jar, and pcmext.jar files in your CLASSPATH. The xerces.jar, pcm.jar, and pcmext.jar files are located in the C:\Program Files\Common Files\Portal Software directory and subdirectories by default.
Tip:
Instead of including the JAR files in your CLASSPATH, you can include them in the loadpricelist file.Include the location of the Infranet.properties file in your CLASSPATH.
The default Infranet.properties file is in the \common directory. To put the Infranet.properties file in the local directory with the loadpricelist utility, add ./ (period-slash) to the beginning of the Infranet.properties CLASSPATH.
Ensures that the Infranet.properties file specifies the correct login information for the BRM database you want to connect to.
Note:
You might need to change this information if, for example, you want to download a price list from one BRM database, modify it, and load it to a different BRM database.Install Pricing Center or copy the price_list.xsd file to your system. You can find the price_list.xsd file on any BRM server in either the BRM_Home/PricingCenter directory or the BRM_Home/setup/scripts directory.
To start the XML Pricing Interface, at the command prompt, enter loadpricelist followed by an interactive or non-interactive command.
To get help for the XML Pricing Interface:
Start the XML Pricing Interface, if necessary.
Enter help at the command prompt and press Enter.
You can work in interactive and non-interactive mode in the XML Pricing Interface.
In interactive mode, you issue a command for each action. For a list of commands that can be used in this mode, see "Syntax: Interactive Mode".
In non-interactive mode, you can use special commands that batch several related actions together so the system performs them automatically. For a list of parameters that can be used in this mode, see "Syntax: Non-Interactive Mode".
You receive a confirmation message when the XML Pricing Interface carries out a command successfully. If you do not receive a confirmation message, look in the utility log file (javapcm.log) to find any errors. The log file is either in the directory where the utility was started or in a directory specified in the Infranet.properties file.
Note:
If an error occurs during a command, none of the command is carried out even if the error was only caused by part of the operation.You create price lists in an XML editor or text editor and then load it into the BRM database by using the "loadpricelist" utility.
To create a price list:
Plan your price list. You should know in advance how you will set up your rates, products, deals, and plans. Ensure that the following pricing objects and data have been created in the BRM database:
services
events
resources
currency exchange rates
G/L IDs
tax codes and tax suppliers
ratable usage metrics (RUMs)
product-level provisioning categories
zones
For information on planning your price list, see "About Creating a Price List".
Create an XML file, such as price_list.xml, in a text editor or XML editor.
Enter your price list information. Ensure that your price list follows the structure defined in the price_list.xsd file.
Note:
You can view sample XML price list files in the BRM_Home\PricingCenter\Sample_Price_Plans directory.Save and close the file.
Ensure that any billable events in your price list are also included in the pin_event_map file. Otherwise, they will not be rated. See "Mapping Event Types to Services".
Load the price list into the BRM database. See "Loading a Price List into the Database with the XML Pricing Interface".
BRM can begin using the price list after it is committed to the database.
To modify an existing price list file:
Retrieve the existing price list file. The method you use depends on the file's location:
The XML Pricing Interface: Your price list file is saved in XML format. You can open it directly in an XML editor or text editor.
The BRM database: You must download the price list to your system and write the information to an XML file. See "Downloading Price Lists from the Database with the XML Pricing Interface".
Open the XML price list file in a text editor or XML editor.
Edit your price list file. Ensure that it follows the structure defined in the price_list.xsd file. By default, price_list.xsd is located in BRM_Home/PricingCenter.
Note:
You can view sample XML price list files in the BRM_Home\PricingCenter\Sample_Price_Plans directory.Save and close the file.
Ensure that any billable events in your price list are also included in the pin_event_map file. Otherwise, they will not be rated. See "Mapping Event Types to Services".
Load the price list into the BRM database. See "Loading a Price List into the Database with the XML Pricing Interface".
BRM can begin using the price list after it is committed to the database.
You can use the loadpricelist utility to move a price list from one database to another (for example, from a test database to a production database). You move the price list by downloading it from a source BRM database and then loading it into a destination BRM database.
To move a price list from one database to another:
Download the price list from the source database. See "Downloading Price Lists from the Database with the XML Pricing Interface".
If necessary, edit the XML file in a text editor or XML editor.
Load the price list into the destination BRM database. See "Loading a Price List into the Database with the XML Pricing Interface".
You can download either the entire price list or just a subset of the price list from the BRM database into an XML file that can be edited.
Note:
Price lists are stored in the database in flist format. The utility converts the file into XML format as part of the download process.To download a full price list:
Ensure that the Infranet.properties file in your CLASSPATH has the correct login information for the BRM database you want to download price list information from. See "Setting global options" in BRM Developer's Guide.
Retrieve the price list from the BRM database and write it to an XML file.
Interactive mode
loadpricelist retrieve write [PriceListFile]
where PriceListFile specifies the name and location of the file to which to extract the data.
Caution:
You can retrieve only one price list at a time. If you retrieve another price list when one is already in internal memory, the existing internal flist is overwritten.Non-interactive mode
loadpricelist [-f] -r PriceListFile
where PriceListFile specifies the name and location of the file to which to extract the data.
Your price list is written to the specified XML file. You can now edit it directly in an XML editor.
You can write specific pricing objects, such as /product, /discount, or /sponsorship objects, rather than the entire price list to the XML price list file.
To download a subset of the price list:
Ensure that the Infranet.properties file in your CLASSPATH has the correct login information for the BRM database you want to connect to.
Specify the pricing objects to retrieve according to their service type, modification time, or object type, and write them to a specified XML file.
Interactive mode
loadpricelist retrieve [-s ServiceType][-t ModifiedTime][product][discount][sponsorship] write PriceListFile
where:
-s ServiceType specifies to retrieve the specified service type. You can list multiple service types by using a comma (,) as a delimiter.
Note:
Do not use this parameter with the sponsorship parameter.-t ModifiedTime retrieves objects that were modified after the specified timestamp.
The time is specified in the ISO-8601 format: YYYY-MM-DDThh:mm:ssTZD, with the server's local time zone as the default. For example:
-t 1997-07-16T19:20:30+01:00
product specifies to retrieve only the /product objects from the database.
discount specifies to retrieve only the /discount objects from the database.
sponsorship specifies to retrieve only the /sponsorship objects from the database.
PriceListFile specifies the name and location of the file to which to extract the data.
Non-interactive mode
loadpricelist [-f] -r PriceListFile [-P][-D][-S][-s ServiceType][-t ModifiedTime]
where:
f specifies to execute the command without prompting for a confirmation.
PriceListFile specifies the name and location of the file to which to extract the data.
-P specifies to retrieve only the /product objects from the database.
-D specifies to retrieve only the /discount objects from the database.
-S specifies to retrieve only the /sponsorship objects from the database.
-s ServiceType retrieves objects based on the specified service type. You can list multiple service types by using a comma (,) as a delimiter.
Note:
Do not use this parameter with the -S parameter.-t ModifiedTime retrieves objects that were modified after the specified timestamp.
The time is specified in the ISO-8601 format: YYYY-MM-DDThh:mm:ssTZD, with the server's local time zone as the default. For example:
-t 1997-07-16T19:20:30+01:00
If you have a large price list, downloading it by using loadpricelist can require more than the available system memory. In this situation, you should configure loadpricelist to retrieve and write pricelists in batches. When configured this way, loadpricelist performs a step search and writes the results into multiple XML files based on the batch size you specify.
You use the infranet.batchsize entry in the loadpricelist Infranet.properties file to configure the batch size. The batch size is expressed as the number of pricing objects per batch. For example, the following entry configures loadpricelist to retrieve and write pricing objects in batches of 500.
infranet.batchsize=500
When a batch size is configured, loadpricelist creates files based on the file name you specify in the command and on the type of pricing object, incrementing the name appropriately for each file created. For example, if the batch size is set to 500 and there are 1900 pricing objects in the database, then loadpricelist creates four XML files, the first three with 500 pricing objects and one with the remaining 400 objects.
When retrieving pricing objects in batches, you cannot choose which type of pricing object to retrieve; for example, only products, or only discounts. The -P, -D, -S, -s, and -t parameters are ignored.
In this scenario, this command:
loadpricelist -rf MyPriceList
results in the following four files being created (along with others for the other pricing objects in the database):
MyPriceList_product_1.xml
MyPriceList_product_2.xml
MyPriceList_product_3.xml
MyPriceList_product_4.xml
File naming follows the same pattern for all object types. For example, file names for /discount objects would start with MyPriceList_discount_1.xml and increment from there.
The batchsize entry is not included in the loadpricelist file by default. To set the batch size:
Open the Infranet.properties file for loadpricelist in a text editor.
The default Infranet.properties file is in the \common directory, but may be located in the local directory with the loadpricelist utility.
Add the batchsize entry to the file using the following syntax:
infranet.batchsize=batch_size
where batch_size represents the number of pricing objects to include in each batch.
Save and close the file.
After your price list is complete, you load it into the BRM database. The XML Pricing Interface automatically converts the XML price list into flist format when it is loaded into the database.
Important:
The price list file must be in the same directory as the price_list.xsd file. If they are not in the same directory, edit the noNamespaceSchemaLocation entry in the price list file to include the full path to price_list.xsd. By default, price_list.xsd is in the BRM_Home\PricingCenter directory. For example, if the XSD file is located in C:\pricelists, change the entry to: xsi:noNamespaceSchemaLocation="C:\pricelists\price_list.xsd"To load a price list:
Ensure that the XML price list file is complete and follows the guidelines specified in the XSD file.
Ensure that the Infranet.properties file in your CLASSPATH has the correct login information for the BRM database you want to connect to.
Commit the price list XML file to the BRM database.
Interactive mode
loadpricelist read PriceListFile commit
where PriceListFile specifies the name and location of the file to load into the database.
Non-interactive mode
loadpricelist [-f] -c PriceListFile
where:
f specifies to execute the command without prompting for a confirmation.
PriceListFile specifies the name and location of the file to load into the database.
You can purge the following from the BRM database:
All price list objects. See "Purging the Entire Price List from the BRM Database".
A subset of the price list, based on the object type. See "Deleting a Subset of the Price List from the BRM Database".
A specific price list object. See "Deleting Pricing Objects from the BRM Database".
All dependency or transition objects. See "Purging Dependency or Transition Objects from the BRM Database".
To purge the entire price list from the database:
Ensure that the Infranet.properties file has the correct login information for the BRM database.
Purge the price list from the BRM database:
Interactive mode
loadpricelist purge
Non-interactive mode
loadpricelist [-f] -p
where f specifies to execute the command without prompting for a confirmation.
Important:
To delete a subset of price list data from the BRM database, you must use interactive mode.To delete a subset of the price list:
Ensure that the Infranet.properties file has the correct login information for the BRM database.
Start loadpricelist in interactive mode and read PriceListFile into internal memory.
loadpricelist read PriceListFile
Specify the pricing data to delete:
delete [planlist[new|addon] | plan | bestpricing | deal | product | discount | sponsorship]
where:
planlist [new|addon] specifies to delete the plan list information from the BRM database. You can optionally specify to delete only the new plan lists or the addon plan lists.
plan specifies to delete only the /bestpricing objects from the BRM database.
deal specifies to delete only the /deal objects from the BRM database.
product specifies to delete only the /product objects from the BRM database.
discount specifies to delete only the /discount objects from the BRM database.
sponsorship specifies to delete only the /sponsorship objects from the BRM database.
Important:
To delete individual pricing objects from the BRM database, you must use interactive mode.To delete pricing objects:
Ensure that the Infranet.properties file has the correct login information for the BRM database.
Start loadpricelist in interactive mode and read PriceListFile into internal memory.
loadpricelist read PriceListFile
Specify the pricing object to delete.
delete PriceObject
where PriceObject specifies the pricing object to delete.
Important:
To delete only dependency or transition objects from the BRM database, you must use interactive mode.To delete dependency or transition objects:
Ensure that the Infranet.properties file has the correct login information for the BRM database.
Specify the objects to delete.
To delete only the dependency objects, enter:
loadpricelist delete dependency
To delete only the transition objects, enter:
loadpricelist delete transition