My Oracle Support Banner

PCM_OP_SUBSCRIPTION_SET_DISCOUNTINFO Results in Wrong Cycle Item Assignment (Doc ID 2803619.1)

Last updated on MARCH 08, 2023

Applies to:

Oracle Communications Billing and Revenue Management - Version 7.5.0.22.0 and later
Information in this document applies to any platform.

Symptoms

In the below scenario, calling PCM_OP_SUBSCRIPTION_SET_DISCOUNTINFO results in assigning the event generated to an old item from previous bill cycle.

Scenario:

  1. Pricing configuration

    CFA=Cycle Forward Arrear
    in pricing center, create a CFA product p1 for /service/ip , impact 24.62, purchase and cancel proration "charge based on usage"
    in pricing center, create a CFA product p2 for /service/ip , impact 28.91, purchase and cancel proration "charge based on usage"
    in pricing center, create a CFA discount d1 for /service/ip , discount validity is 'PRORATE', discount model that gives a fixed discount of -24.62
    in pricing center, create a CFA discount d2 for /service/ip , discount validity is 'PRORATE', discount model that gives a percentage discount, say -14.48%
    in pricing center, create a deal D1 with p1 and d1
    in pricing center, create a deal D2 with p2 and d2

     

  2. Server configuration

    • business parameter "sequential_cycle_discounting"= 1
    • cm pin.conf "config_billing_delay"=1
    • cm pin.conf "#- fm_bill config_billing_cycle 0"
    • FCT_Discount: DiscountMoreThanPossible = False

  3. 1 JAN: create account, purchase discount d1 purchase product p1
  4. check events generated

    select e.poid_id0, ebi.amount, e.poid_type,ebi.impact_type,ebi.item_obj_id0
    from event_t e, event_bal_impacts_t ebi
    where ebi.obj_id0=e.poid_id0 and ebi.obj_id0 in (select poid_id0 from event_t where account_obj_id0= 1100087) order by e.created_t;

    327707241636493701  24.62 /event/billing/product/fee/cycle/cycle_forward_arrear 1 840 1110405
    327707241636493701 -24.62 /event/billing/product/fee/cycle/cycle_forward_arrear 128 840 1110405

     

  5. 1 FEB: purchase product p2 with offset

    PCM_OP_SUBSCRIPTION_PURCHASE_DEAL input flist
    # number of field entries allocated 20, used 5
    0 PIN_FLD_POID POID [0] 0.0.0.1 /account 1113307 0
    0 PIN_FLD_SERVICE_OBJ POID [0] 0.0.0.1 /service/ip 1112027 0
    0 PIN_FLD_PROGRAM_NAME STR [0] "TEST"
    0 PIN_FLD_START_T TSTAMP [0] (0) <null>
    0 PIN_FLD_DEAL_INFO SUBSTRUCT [0] allocated 20, used 5
    1 PIN_FLD_PRODUCTS ARRAY [0] allocated 20, used 14
    2 PIN_FLD_QUANTITY DECIMAL [0] 1
    2 PIN_FLD_PURCHASE_START_UNIT INT [0] 2
    2 PIN_FLD_PRODUCT_OBJ POID [0] 0.0.0.1 /product 556257 0
    2 PIN_FLD_STATUS ENUM [0] 1
    2 PIN_FLD_PURCHASE_START_T TSTAMP [0] (0) <null>
    2 PIN_FLD_USAGE_START_T TSTAMP [0] (0) <null>
    2 PIN_FLD_CYCLE_START_T TSTAMP [0] (0) <null>
    2 PIN_FLD_USAGE_START_UNIT INT [0] 2
    2 PIN_FLD_CYCLE_START_UNIT INT [0] 2
    2 PIN_FLD_CYCLE_START_OFFSET INT [0] 525623
    2 PIN_FLD_CYCLE_END_T TSTAMP [0] (0) <null>
    2 PIN_FLD_CYCLE_END_OFFSET INT [0] 3
    2 PIN_FLD_USAGE_START_OFFSET INT [0] 0
    2 PIN_FLD_PURCHASE_START_OFFSET INT [0] 0
    1 PIN_FLD_NAME STR [0] ""
    1 PIN_FLD_POID POID [0] 0.0.0.1 /deal -1 0
    1 PIN_FLD_END_T TSTAMP [0] (0) <null>
    1 PIN_FLD_START_T TSTAMP [0] (0) <null>

    check events gnerated:

    328252599403864742  24.62 /event/billing/product/fee/cycle/cycle_forward_arrear 1 1109158
    328252599403864742 -24.62 /event/billing/product/fee/cycle/cycle_forward_arrear 128 1109158

  6. purchase discount d2 with offset


    PCM_OP_SUBSCRIPTION_PURCHASE_DEAL input flist
    # number of field entries allocated 20, used 5
    0 PIN_FLD_POID POID [0] 0.0.0.1 /account 1113307 0
    0 PIN_FLD_SERVICE_OBJ POID [0] 0.0.0.1 /service/ip 1112027 0
    0 PIN_FLD_PROGRAM_NAME STR [0] "TEST"
    0 PIN_FLD_START_T TSTAMP [0] (0) <null>
    0 PIN_FLD_DEAL_INFO SUBSTRUCT [0] allocated 20, used 5
    1 PIN_FLD_DISCOUNTS ARRAY [0] allocated 20, used 14
    2 PIN_FLD_QUANTITY DECIMAL [0] 1
    2 PIN_FLD_PURCHASE_START_UNIT INT [0] 2
    2 PIN_FLD_DISCOUNT_OBJ POID [0] 0.0.0.1 /discount 559938 0
    2 PIN_FLD_STATUS ENUM [0] 1
    2 PIN_FLD_PURCHASE_START_T TSTAMP [0] (0) <null>
    2 PIN_FLD_USAGE_START_T TSTAMP [0] (0) <null>
    2 PIN_FLD_CYCLE_START_T TSTAMP [0] (0) <null>
    2 PIN_FLD_USAGE_START_UNIT INT [0] 0
    2 PIN_FLD_CYCLE_START_UNIT INT [0] 2
    2 PIN_FLD_CYCLE_START_OFFSET INT [0] 525623
    2 PIN_FLD_USAGE_START_OFFSET INT [0] 0
    2 PIN_FLD_CYCLE_END_T TSTAMP [0] (0) <null>
    2 PIN_FLD_CYCLE_END_OFFSET INT [0] 3
    2 PIN_FLD_PURCHASE_START_OFFSET INT [0] 0
    1 PIN_FLD_NAME STR [0] ""
    1 PIN_FLD_POID POID [0] 0.0.0.1 /deal -1 0
    1 PIN_FLD_END_T TSTAMP [0] (0) <null>
    1 PIN_FLD_START_T TSTAMP [0] (0) <null>

  7. cancel p1


    PCM_OP_SUBSCRIPTION_CANCEL_PRODUCT input flist
    # number of field entries allocated 20, used 5
    0 PIN_FLD_POID POID [0] 0.0.0.1 /account 1113307 16
    0 PIN_FLD_SERVICE_OBJ POID [0] 0.0.0.1 /service/ip 1112027 10
    0 PIN_FLD_PRODUCTS ARRAY [1] allocated 20, used 3
    1 PIN_FLD_QUANTITY DECIMAL [0] 1
    1 PIN_FLD_OFFERING_OBJ POID [0] 0.0.0.1 /purchased_product 1113733 3
    1 PIN_FLD_PRODUCT_OBJ POID [0] 0.0.0.1 /product 553185 0
    0 PIN_FLD_PROGRAM_NAME STR [0] " CANCEL PRODUCT"

    check events generated:

    328252599403860247 -24.62 /event/billing/product/fee/cycle/cycle_forward_arrear 1 1109158
    328252599403860247 24.62 /event/billing/product/fee/cycle/cycle_forward_arrear 128 1109158

     

  8. set start date for product p2

    PCM_OP_SUBSCRIPTION_SET_PRODINFO input flist
    # number of field entries allocated 20, used 4
    0 PIN_FLD_POID POID [0] 0.0.0.1 /account 1113307 0
    0 PIN_FLD_SERVICE_OBJ POID [0] 0.0.0.1 /service/ip 1112027 0
    0 PIN_FLD_PRODUCTS ARRAY [0] allocated 20, used 3
    1 PIN_FLD_CYCLE_START_T TSTAMP [0] (1612209688) Mon Feb 1 12:01:28 2021
    1 PIN_FLD_OFFERING_OBJ POID [0] 0.0.0.1 /purchased_product 1109670 0
    1 PIN_FLD_PRODUCT_OBJ POID [0] 0.0.0.1 /product 556257 0
    0 PIN_FLD_PROGRAM_NAME STR [0] "TEST"

    check events generated:

    328252599403869499 28.91 /event/billing/product/fee/cycle/cycle_forward_arrear 1 1109158
    328252599403869499 -24.62 /event/billing/product/fee/cycle/cycle_forward_arrear 128 1109158

     

  9. set start date for discount d2


    PCM_OP_SUBSCRIPTION_SET_DISCOUNTINFO input flist
    # number of field entries allocated 20, used 4
    0 PIN_FLD_POID POID [0] 0.0.0.1 /account 1113307 0
    0 PIN_FLD_SERVICE_OBJ POID [0] 0.0.0.1 /service/ip 1112027 0
    0 PIN_FLD_DISCOUNTS ARRAY [0] allocated 20, used 3
    1 PIN_FLD_CYCLE_START_T TSTAMP [0] (1612209792) Mon Feb 1 12:03:12 2021
    1 PIN_FLD_OFFERING_OBJ POID [0] 0.0.0.1 /purchased_discount 1106119 0
    1 PIN_FLD_DISCOUNT_OBJ POID [0] 0.0.0.1 /discount 559938 0
    0 PIN_FLD_PROGRAM_NAME STR [0] "TEST"

    check events generated:

    328252599403868166 24.62 /event/billing/product/fee/cycle/cycle_forward_arrear 128 1110405
    328252599403869190 -24.62 /event/billing/product/fee/cycle/cycle_forward_arrear 128 1110405
    328252599403869190 -4.19 /event/billing/product/fee/cycle/cycle_forward_arrear 128 1110405

     

  10. Issue is: see the item poid 1110405, this is from Jan cycle. Expected is 1109158.

 

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Cause
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.