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:
-
Create an flist with a PIN_FLD_INHERITED field containing your specific profile information.
-
Pass this flist into PCM_OP_CUST_CREATE_PROFILE.
Modifying a Profile Object
To modify a profile object:
-
Modify the /profile object flist.
-
Pass this flist into PCM_OP_CUST_MODIFY_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.
-
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.
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" 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"