Saturday, March 26, 2011

BRM - GL (General Ledger)








Billed and unbilled usage fees

Billed and unbilled purchase and cancellation fees
If a purchase or cancel event occurs after the billing date but before the G/L reporting date, BRM G/L reports the revenue as unbilled.

Cycle arrears and Forward Arrears
1.     Billed cycle arrears fees

2.     Billed and unbilled cycle forward arrears fees







Sample Ledger Report








Wednesday, March 23, 2011

DD Objects/Fields queries in BRM

This is a simple but very useful search to find the table name for a storable class in BRM. It is many times a difficult job specially in highly customized environments. Execute the following query by connecting to the BRM database :

SQL> select dof.SM_ITEM_NAME from dd_objects_t do,dd_objects_fields_t dofwhere do.OBJ_ID0=dof.OBJ_ID0 and do.NAME like '<CLASSNAME>' and dof.SM_ITEM_NAME not like ':%' and dof.SM_ITEM_NAME not like 'au_%'

 
Replace the <CLASSNAME> with the exact class for which you want to search the table, e.g.

SQL> select dof.SM_ITEM_NAMEfrom dd_objects_t do,dd_objects_fields_t dof where do.OBJ_ID0=dof.OBJ_ID0 and do.NAME like '/service' and dof.SM_ITEM_NAME not like ':%' and dof.SM_ITEM_NAME not like 'au_%'

Similarly, we can search the storable class name from the table name. Use the following query :

SQL> select dof.SM_ITEM_NAME,do.name from dd_objects_t do,dd_objects_fields_t dof where do.OBJ_ID0=dof.OBJ_ID0 and dof.SM_ITEM_NAME like 'account_t'


Following query can be used to find the storable classes where a BRM field is used:



select do.name from dd_objects_t do,dd_objects_fields_t dof where dof.field_name ='<FIELD_NAME>' and do.obj_id0=dof.obj_id0;


e.g.,


select do.name from dd_objects_t do,dd_objects_fields_t dof where dof.field_name ='PIN_FLD_ITEM_NO' and do.obj_id0=dof.obj_id0;

Thursday, March 10, 2011

Adding new element in a storable class

To add a new element in a storable class, you need to use PCM_OP_WRITE_FLDS with the PCM_OPFLG_ADD_ENTRY as flag. Provide the element in the input flist with the new element id and execute PCM_OP_WRITE_FLDS with the flist. e.g., using testnap

testnap>r << xx 1
0 PIN_FLD_POID           POID [0] 0.0.0.1 /some_class 1111
0 NEW_ARRAY_NAME ARRAY [10]
1   ARRAY_FIELD1   STR [0] "VALUE1"
1   ARRAY_FIELD2   STR [0] "VALUE2"
...
...
...
xx
testnap>xop PCM_OP_WRITE_FLDS 32 1
0 PIN_FLD_POID           POID [0] 0.0.0.1 /some_class 1111

For your reference, the value of PCM_OPFLG_ADD_ENTRY is 0x20 (hexadecimal) which is equal to 32 in decimal.

Wednesday, March 2, 2011

Billing Applications vs Billing Opcodes

Here is a rare mapping between the Billing Applications and Billing Opcodes :


Billing ApplicationsBilling Opcodes
pin_deferred_act PCM_OP_ACT_SCHEDULE_EXECUTE
pin_bill_accts PCM_OP_BILL_MAKE_BILL
pin_cycle_fees PCM_OP_SUBSCRIPTION_CYCLE_FORWARD
PCM_OP_SUBSCRIPTION_PURCHASE_FEES
PCM_OP_SUBSCRIPTION_CANCEL_PRODUCT
pin_collectPCM_OP_PYMT_COLLECT
PCM_OP_PYMT_CHARGE_CC 
PCM_OP_PYMT_CHARGE_DD
pin_refund PCM_OP_PYMT_COLLECT
PCM_OP_PYMT_CHARGE_CC 
PCM_OP_PYMT_CHARGE_DD
pin_deposit PCM_OP_PYMT_COLLECT
PCM_OP_PYMT_CHARGE_CC 
PCM_OP_PYMT_CHARGE_DD
pin_inv_acctsPCM_OP_INV_MAKE_INVOICE
PCM_OP_INV_VIEW_INVOICE
 PCM_OP_INV_POL_FORMAT_VIEW_INVOICE 

Migrating PDC data from one system to another

Given System “A” with BRM and PDC and System “B” with BRM and PDC, following is the process for moving new or changed pricing data from ...