22 Working with Price Tags

This chapter describes how to use price tags in your Oracle Communications Billing and Revenue Management (BRM) system and describes how BRM uses price tags to apply special prices at purchase time.

About Price Tags

Price tags are components that let you apply special prices to products and discounts according to your specified rules.

You configure price tags in configuration objects, add them to balance impacts when creating products and discounts, and set their values at purchase time.

The rules configured in the configuration objects determine which price tags are valid for a given balance impact and which values can be used at purchase time. You cannot use price tags with chargeshares.

When you configure price tag configuration objects, you define the following:

  • The price tag name.
  • The price tag description.
  • What type of values are allowed. Can be any value, a list of values, or a range of values.
  • The values that are allowed, according to the specified type.
  • The resources you add the price tag to. For example, Free Minutes, US Dollars, or any resource.
  • The unit of measurement you can use the price tag with. For example, gigabytes, hours, amount used, or any unit.
  • The services you can use the price tag with. For example, TelcoGSM, Email, or any service.

You create the configuration objects config_price_tags.xml files and load them using the load_config utility. BRM stores price tag configuration information in the /config/price_tags storable class. See "Creating Price Tag Configuration Objects."

After configuring price tag configuration objects, you can update or delete them under certain conditions. See "Modifying Price Tag Configuration Objects."

You add price tags to products and discounts in your price list and BRM validates them against the configuration objects. You can add the price tags using:

You can use the PCM_OP_SUBSCRIPTION_GET_PRICE_TAGS opcode to get the list of price tags that are valid for a resource, unit of measure, service, or product. See "Getting Information about Price Tags" in BRM Opcode Guide for more information about this opcode.

At purchase time, you specify values for the price tags. BRM validates the values entered against those configured in the configuration objects and stores the price tag details, including associated events, date ranges, and amounts, in /offering_override_values objects. See "Overriding Charges and Discounts for a Period of Time" in BRM Opcode Guide for more information about this opcode for more information about how these objects are updated.

Creating Price Tag Configuration Objects

You create price tag configuration objects in a config_price_tags.xml files and load them using the load_config utility.

To create price tag configuration objects:

  1. Open the BRM_home/sys/data/config/config_price_tags.xml file in a text editor.

    The file contains sample price tags, but you can modify them to meet your business needs.

  2. Add a PRICE_TAGS array element for every new tag you want to create.

    Table 22-1 Elements in the PRICE_TAGS element

    Element Description
    <NAME> The name of the price tag.
    <DESCR> The description of the price tag.
    <RULE_TYPE> The type of values for the price tag:
    • ANY: Lets you enter any value as a string. This is the default.
    • LIST: Lets you specify a list of values.
    • RANGE: Lets you specify a range of values.
    <CONSTRAINTS> The valid values, in the format that corresponds to the rule:
    • If <RULE_TYPE> is set to ANY, this element is not required, and any value can be entered at purchase time.
    • If <RULE_TYPE> is set to LIST, enter a semicolon separated list of values. For example, 10;20;30.

      The default value is 0, which allows all values.

    • If <RULE_TYPE> is set to RANGE, enter the values for the bottom and top of the range, separated by a semicolon. For example, 10:30.

      The default value is 0:0, which allows all values.

    Values can be positive or negative integers or decimals.

    <RESOURCE_ID> The resource ID for the balance elements you can use the price tag with. For example, 840 for US Dollars, or 0 to add the price tag to multiple balance elements.
    <RESOURCE_UNIT> The resource unit for the balance elements that you can use the price tag with. Valid units are:
    • BYTE
    • KILOBYTE
    • MEGABYTE
    • GIGABYTE
    • DAY
    • HOUR
    • MINUTE
    • SECOND
    • AMOUNT_USED
    • FIXED_CHARGE
    • NONE (for scaled charges)
    • ANY

    The default is ANY, which lets you add the price tag to multiple types of resource unit.

    <PERMITTED> The services that you can use the price tag with. You can list multiple services, separated by a semicolon. You can use * to match multiple services, for example, /service/telco/* to use with services under telco, or * to use it with any service.

    The following sample creates several new price tags:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ObjectList
      xmlns="http://www.oracle.com/schemas/BusinessConfig"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.oracle.com/schemas/BusinessConfig ../../../xsd/config_object.xsd">
     
      <ConfigObject configName="/config/price_tags" configMode="replaceAll">
        <DESCR>Price tags configuration</DESCR>
        <NAME>price_tags</NAME>
        <PRICE_TAGS elem="0">
          <NAME>PRICE1</NAME>
          <DESCR>Dollar Override</DESCR>
          <RULE_TYPE>ANY</RULE_TYPE>
          <RESOURCE_ID>840</RESOURCE_ID>
          <RESOURCE_UNIT>NONE</RESOURCE_UNIT>
          <PERMITTED>/service/email; /service/ip</PERMITTED>    
        </PRICE_TAGS>    
        <PRICE_TAGS elem="1">
          <NAME>PRICE2</NAME>
          <DESCR>Override seconds charges</DESCR>
          <RULE_TYPE>LIST</RULE_TYPE>
          <CONSTRAINTS>10;20;30;100</CONSTRAINTS>
          <RESOURCE_ID>1000095</RESOURCE_ID>
          <RESOURCE_UNIT>MONTH</RESOURCE_UNIT>
           <PERMITTED>/service/*</PERMITTED>
        </PRICE_TAGS>
        <PRICE_TAGS elem="2">
          <NAME>PRICE3</NAME>
          <DESCR>Dollar Override</DESCR>
          <RULE_TYPE>RANGE</RULE_TYPE>
          <CONSTRAINTS>10;200</CONSTRAINTS>
          <RESOURCE_ID>840</RESOURCE_ID>
          <RESOURCE_UNIT>NONE</RESOURCE_UNIT>
          <PERMITTED>/service/telco/*</PERMITTED>
        </PRICE_TAGS>
      </ConfigObject>
    </ObjectList>
  3. Save and close the file.
  4. Edit the load_config utility's configuration file (BRM_home/apps/load_config/pin.conf) to specify how to connect to the BRM database.
  5. Load the config_price_tags.xml file into the BRM database:
    1. Switch to the BRM_home/apps/load_config directory.
    2. Run the following command:
      load_config -vM BRM_home/sys/data/config/config_price_tags.xml

    See "load_config" in BRM Developer's Guide for more information.

  6. Stop and restart the Connection Manager (CM).
  7. Verify that the price tags were loaded properly by running the following command:
    load_config -w "price_tags" config_price_tags.xml

Modifying Price Tag Configuration Objects

You can modify price tag configuration objects in a config_price_tags.xml files and load them using the load_config utility under certain conditions.

You modify price tag configuration objects the same way you create them. See "Creating Price Tag Configuration Objects."

Caution:

When you load configuration objects, the load_config utility overwrites existing instances of the /config/price_tags object. If you are updating price tags or adding new ones, you cannot load new or changed price tags only. You must load the complete set of price tags each time you run the load_config utility.

You can modify any fields of price tag configuration objects that have not been added to balance impacts of products or discounts.

For price tags that have been added to products or discounts, you can modify the following fields:

  • <DESCR>
  • <RULE_TYPE>
  • <CONSTRAINTS>

You are responsible for understanding the potential impact that modifying these fields might have on the products and discounts that the price tags have been associated with.