16 Storing Customer Profile Information

Learn how to customize information stored in the Oracle Communications Billing and Revenue Management (BRM) database.

Topics in this document:

About Storing Customer Profile Information

You can collect information about your customers and store it in the database in /profile objects. In a profile object, you store marketing or other information that is relevant to your company, but is not necessarily used for accounting. A /profile storable class is a top-level class in BRM, and you can create subclasses under it for your specific needs. It contains the standard top-level object fields and a field which is a pointer to the POID of the /account object with which it is associated.

You can also use profile objects to store promotion profile data. Billing Care creates and updates /profile/acct_extrating objects for account-level promotion profiles and /profile/serv_extrating objects for service-level promotion profiles. Promotion profiles can grant discounts, special rates, or free resources.

The /account object is not used to store this marketing information because inheriting the /account object to store these fields would cause object-type collisions if a variety of enhanced services were installed on the same BRM installation.

Because /profile objects are linked to specific /account objects, any number of different /profile objects can be linked to the same /account object. However, each /profile object can be linked to only one /account object.

After you define a /profile storable class, you use the Customer FM standard opcodes and Customer FM policy opcodes to create, delete, modify, and validate profile objects.

Using Profile Objects to Collect Customer Profiles

This section describes how to use profile objects to collect customer profiles.

Defining a Profile Subclass

Use the Storable Class Editor to create /profile storable subclasses.

See "Creating Custom Fields and Storable Classes" for details on adding storable subclasses and fields to the database.

Creating a Profile Object

To create a profile object:

  1. Create an flist with a PIN_FLD_INHERITED field containing your specific profile information.

  2. Pass this flist into PCM_OP_CUST_CREATE_PROFILE.

Modifying a Profile Object

To modify a profile object:

  1. Modify the /profile object flist.

  2. Pass this flist into PCM_OP_CUST_MODIFY_PROFILE.

Deleting a Profile Object

To delete a /profile object, use PCM_OP_CUST_DELETE_PROFILE.

Validating Profile Objects

To validate /profile objects, you customize the following customer FM policy opcodes:

  • PCM_OP_CUST_POL_PREP_PROFILE

  • PCM_OP_CUST_POL_VALID_PROFILE

For more information on customizing policy opcodes, see "About System and Policy Opcodes".

Using Profile Objects for Billing Care Promotions

Billing Care uses profile objects to store the data needed for account-level and service-level promotions. The /profile/acct_extrating object stores account-level promotion profile data. The /profile/serv_extrating object stores service-level promotion profile data and includes PIN_FLD_SERVICE_OBJ to identify the service to which the promotion applies.

Promotion profile objects can contain multiple PIN_FLD_DATA_ARRAY entries. Each entry stores a promotion value and its validity period. BRM can use the values in these profile objects with promotion configuration objects and event notifications to create /event/promotion/* event subclasses, such as /event/promotion/topup, /event/promotion/purchase_product, or /event/promotion/cug.

Use these opcodes to manage promotion profile objects:
  • PCM_OP_CUST_CREATE_PROFILE to create an account-level or service-level promotion profile object.

  • PCM_OP_CUST_MODIFY_PROFILE to change profile metadata or add, update, or remove PIN_FLD_DATA_ARRAY entries.

  • PCM_OP_CUST_DELETE_PROFILE to delete a promotion profile object.

When adding a new PIN_FLD_DATA_ARRAY element during an update, pass PCM_OPFLG_ADD_ENTRY, which has a value of 32.

Example account-level promotion profile input flist:
0 PIN_FLD_POID           POID [0] 0.0.0.1 /profile/acct_extrating -1 0 
0 PIN_FLD_ACCOUNT_OBJ    POID [0] 0.0.0.1 /account 131101 0 
0 PIN_FLD_NAME           STR  [0] "HOME_REGION" 
0 PIN_FLD_INHERITED_INFO SUBSTRUCT [0] 
1     PIN_FLD_DATA_ARRAY ARRAY [0] 
2         PIN_FLD_NAME       STR    [0] "Validity Range 1" 
2         PIN_FLD_VALUE      STR    [0] "1234" 
2         PIN_FLD_VALID_FROM TSTAMP [0] (1609850614) 
2         PIN_FLD_VALID_TO   TSTAMP [0] (1610455414) 
0 PIN_FLD_PROGRAM_NAME   STR [0] "Billing Care" 
Example service-level promotion profile input flist:
0 PIN_FLD_POID           POID [0] 0.0.0.1 /profile/serv_extrating -1 0 
0 PIN_FLD_ACCOUNT_OBJ    POID [0] 0.0.0.1 /account 131101 0 
0 PIN_FLD_SERVICE_OBJ    POID [0] 0.0.0.1 /service/telco/gsm/sms 134429 0 
0 PIN_FLD_NAME           STR  [0] "HOME_REGION" 
0 PIN_FLD_INHERITED_INFO SUBSTRUCT [0] 
1     PIN_FLD_DATA_ARRAY ARRAY [0] 
2         PIN_FLD_NAME       STR    [0] "Validity Range 1" 
2         PIN_FLD_VALUE      STR    [0] "1234" 
2         PIN_FLD_VALID_FROM TSTAMP [0] (1609850614) 
2         PIN_FLD_VALID_TO   TSTAMP [0] (1610455414) 
1     PIN_FLD_EXTRATING  SUBSTRUCT [0] 
2         PIN_FLD_LABEL           STR  [0] "Official" 
2         PIN_FLD_STATUS          ENUM [0] 3 
2         PIN_FLD_REFERENCE_COUNT INT  [0] 1 
0 PIN_FLD_PROGRAM_NAME   STR [0] "Billing Care"