cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Rounding issue in BPC

vamshib01
Explorer
0 Kudos
484

Hi Experts,

I am trying to allocate a quantity from ALL_PRODUCTS to base level based on an allocation % that is calculated in different step. The allocation % is 4 decimal places and the quantity to be allocated is 5 decimal places. The output of both is more than 7 decimal places in some instances and because BPC has a limit of 7 decimal places, the output gets truncated as seen in Column F. There is a difference between Total Qty to Qty allocated. Even though in this example it is very negligible, in the grand scheme of things, it adds up to a 1000 difference thereby having to manually adjust it into a different account. Did anyone have this problem and what did you do ?

Accepted Solutions (1)

Accepted Solutions (1)

former_member186338
Active Contributor
0 Kudos

You have initial value in PS_ALLPLAN and allocated values in BAS(PS_ALL):

*XDIM_MEMBERSET PRODUCT=BAS(PS_ALL)
*XDIM_ADDMEMBERSET PRODUCT=PS_ALLPLAN
*XDIM_MEMBERSET ACCOUNTGM=Gallons
*WHEN PRODUCT
*IS PS_ALLPLAN
*REC(EXPRESSION=%VALUE%,ACCOUNTGM=DIFFACCT)
*ELSE
*REC(EXPRESSION=-%VALUE%,ACCOUNTGM=DIFFACCT) //Minus value!
*ENDWHEN

P.S.

*REC(EXPRESSION=-%VALUE%,ACCOUNTGM=DIFFACCT,PRODUCT=PS_ALLPLAN)

To have difference on single product...

Answers (1)

Answers (1)

former_member186338
Active Contributor
0 Kudos

You can add to allocation script few lines to automatically post difference to some account.

vamshib01
Explorer
0 Kudos

Below is the code I have to do the allocation. How can I add few lines to automatically post difference to some account. Can you help me?

*XDIM_MEMBERSET RPTCURRENCY=LC
*XDIM_MEMBERSET AUDITTRAIL=INPUT  
*SELECT(%ORGS_WITH_MKT%,ID,SALESORG,SALGROUP=RSC) 
*XDIM_MEMBERSET SALESORG=%ORGS_WITH_MKT%

*RUNALLOCATION
	*FACTOR = (USING/100)
	*DIM ACCOUNTGM  WHAT=Gallons            ;WHERE=<<<             ;Using=ALLOCPERCENT    ;Total=<<<
	*DIM PRODUCT    WHAT=PS_ALLPLAN         ;WHERE=BAS(PS_ALL)     ;Using=<<<             ;Total=<<<
*ENDALLOCATION