Skip to Content

Run Allocation: Percentage logic

We have a requirement where business want to have allocation on GL as well as Cost centre base.

Let me explain you the current allocation process:

1)Enter Transaction data on Operating expense sheet.

For example :

ACCOUNT COST_CENTRE AMOUNT

A CC_001 1000

B CC_002 2000

2)Enter Allocation %

For Example:

COST_CENTRE Allocation %

CC_003 30%

CC_004 30%

CC_005 40%

3)Run Allocation Logic :

*XDIM_MEMBERSET VERSION=%VERSION_SET%
*XDIM_MEMBERSET COST_CENTER=%COST_CENTER_SET%
*XDIM_MEMBERSET LEDGER=%LEDGER_SET%
*XDIM_MEMBERSET TIME=%TIME_SET%
*XDIM_MEMBERSET P_ACCOUNT=BAS(A_12)

//POOL ALL OPERATING COSTS

*WHEN COST_CENTER
*IS %COST_CENTER_SET%
*REC(FACTOR = 1,COMPANY_CODE="CO_NONE",COST_CENTER="CC_NONE",FUNCTIONAL_AREA="FA_NONE",PROFIT_CENTER="PC_NONE",SEGMENT="SEG_NONE",LINE_OF_BUSINESS="LOB_NONE", RISK_LOCATION="RL_NONE",RISK_REGION="RR_NONE",CLAIM_YEAR="CY_NONE",AUDIT_TRAIL="AT_BPC_CC_ALLOC")
*ENDWHEN

//ALLOCATE OPERATING COSTS TO COST CENTERS
*XDIM_MEMBERSET VERSION=%VERSION_SET%
*XDIM_MEMBERSET LEDGER=%LEDGER_SET%
*XDIM_MEMBERSET TIME=%TIME_SET%

*RUNALLOCATION
*FACTOR = USING
*DIM_NONAGGR P_ACCOUNT WHAT=BAS(A_12);WHERE=<<<;USING=S_ALLOC
*DIM COMPANY_CODE WHAT=CO_NONE;WHERE=>>>;
*DIM COST_CENTER WHAT=CC_NONE;WHERE=>>>;
*DIM PROFIT_CENTER WHAT=PC_NONE;WHERE=>>>;
//*DIM FUNCTIONAL_AREA WHAT=FA_NONE;WHERE=>>>;
*DIM SEGMENT WHAT=SEG_NONE;WHERE=>>>;
//*DIM LINE_OF_BUSINESS WHAT=LOB_NONE;WHERE=>>>;
*DIM RISK_LOCATION WHAT=RL_NONE;WHERE=>>>;
*DIM RISK_REGION WHAT=RR_NONE;WHERE=>>>;
*DIM CLAIM_YEAR WHAT=CY_NONE;WHERE=>>>;
*DIM LINE_OF_BUSINESS WHAT=LOB_NONE;WHERE=>>>;
*DIM AUDIT_TRAIL WHAT=AT_BPC_CC_ALLOC;WHERE=<<<;USING=AT_BPC_INPUT
*ENDALLOCATION

4)Result :

It will allocate the amounts on both A and B at the same % mentioned in COST_CENTER allocation % sheet.

For Example:

ACCOUNT COST_CENTRE AMOUNT

A CC_003 300

A CC_004 300

A CC_005 400

B CC_003 600

B CC_004 600

B CC_005 800

New requirement:

Now business wants to apply different % for different Accounts for allocation process.

1)Enter Transaction data on Operating expense sheet.

For example :

ACCOUNT COST_CENTRE AMOUNT

A CC_001 1000

B CC_002 2000

2)Enter Allocation %

For Example:

ACCOUNT COST_CENTRE Allocation %

A CC_003 30%

A CC_004 30%

A CC_005 40%

B CC_003 10%

B CC_004 60%

B CC_005 30%

3)Run Allocation Logic. (Which needs to be change)

4)Result :-

It will allocate the amounts on both A and B at the different % mentioned in COST_CENTER allocation % sheet.

For Example:

ACCOUNT COST_CENTRE AMOUNT

A CC_003 300

A CC_004 300

A CC_005 400

B CC_003 200

B CC_004 1200

B CC_005 600

Issues :

I am not able to understand what should be the changes I need to apply in RUN ALLOCATION script logic to be able to meet the requirements.

Thanks in advance.

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

4 Answers

  • Aug 25, 2017 at 07:17 AM

    Hi Floks,

    I tried changing this script by giving the account as user selection below is my code, But still no luck can anyone help me.?

    *WHEN COST_CENTER
    *IS %COST_CENTER_SET%
    *REC(FACTOR = 1,COMPANY_CODE="CO_NONE",COST_CENTER="CC_NONE",FUNCTIONAL_AREA="FA_NONE",PROFIT_CENTER="PC_NONE",SEGMENT="SEG_NONE",LINE_OF_BUSINESS="LOB_NONE", RISK_LOCATION="RL_NONE",RISK_REGION="RR_NONE",CLAIM_YEAR="CY_NONE",AUDIT_TRAIL="AT_BPC_CC_ALLOC")
    *ENDWHEN
    *COMMIT
    //ALLOCATE OPERATING COSTS TO COST CENTERS
    *XDIM_MEMBERSET VERSION=%VERSION_SET%
    *XDIM_MEMBERSET LEDGER=%LEDGER_SET%
    *XDIM_MEMBERSET TIME=%TIME_SET%
    *XDIM_MEMBERSET P_ACCOUNT=%P_ACCOUNT_SET%
    //Run Allocation
    *RUNALLOCATION
    *FACTOR = USING
    *DIM P_ACCOUNT WHAT=%P_ACCOUNT_SET%;WHERE=<<<; USING=S_ALLOC //Line added
    *DIM COMPANY_CODE WHAT=CO_NONE;WHERE=>>>;
    *DIM COST_CENTER WHAT=CC_NONE;WHERE=>>>;
    *DIM PROFIT_CENTER WHAT=PC_NONE;WHERE=>>>;
    *DIM SEGMENT WHAT=SEG_NONE;WHERE=>>>;
    *DIM RISK_LOCATION WHAT=RL_NONE;WHERE=>>>;
    *DIM RISK_REGION WHAT=RR_NONE;WHERE=>>>;
    *DIM CLAIM_YEAR WHAT=CY_NONE;WHERE=>>>;
    *DIM LINE_OF_BUSINESS WHAT=LOB_NONE;WHERE=>>>;
    *DIM AUDIT_TRAIL WHAT=AT_BPC_CC_ALLOC;WHERE=<<<;USING=AT_BPC_INPUT
    *ENDALLOCATION

    Regards,

    Toufq

    Add comment
    10|10000 characters needed characters exceeded

  • Aug 22, 2017 at 02:23 PM

    Hi Mohammed.

    With a very little understanding, I think you need to change the USING parameter on the account dimension... try the next code:

    *DIM_NONAGGR P_ACCOUNT WHAT=BAS(A_12);WHERE=<<<;USING=<<<

    Best regards,

    Joaquín.

    Add comment
    10|10000 characters needed characters exceeded

  • Aug 23, 2017 at 11:35 AM

    Sorry, but what do you mean by the following syntax:

    *FACTOR = USING
    //*DIM P_ACCOUNT WHAT=BAS(A_12);WHERE=>>>; //This Need to be changed.
    *DIM COMPANY_CODE WHAT=CO_NONE;WHERE=>>>;
    *DIM COST_CENTER WHAT=CC_NONE;WHERE=>>>;

    Please read at least help for RUNALLOCATION

    Add comment
    10|10000 characters needed characters exceeded

  • Aug 23, 2017 at 05:43 AM

    Hi Joaquin,

    The above script is validating fine, But allocation is not happing.

    And I tried another method by changing the Non-Aggregate value through prompt, so that user can select the account from this also no luck.

    Can you please help me on this.

    Here is my script:

    *XDIM_MEMBERSET VERSION=%VERSION_SET%
    *XDIM_MEMBERSET COST_CENTER=%COST_CENTER_SET%
    *XDIM_MEMBERSET LEDGER=%LEDGER_SET%
    *XDIM_MEMBERSET TIME=%TIME_SET%
    //*XDIM_MEMBERSET P_ACCOUNT= BAS(A_12)
    *XDIM_MEMBERSET P_ACCOUNT=%P_ACCOUNT_SET%

    //POOL ALL OPERATING COSTS

    *WHEN COST_CENTER
    *IS %COST_CENTER_SET%
    *REC(FACTOR = 1,COMPANY_CODE="CO_NONE",COST_CENTER="CC_NONE",FUNCTIONAL_AREA="FA_NONE",PROFIT_CENTER="PC_NONE",SEGMENT="SEG_NONE",LINE_OF_BUSINESS="LOB_NONE", RISK_LOCATION="RL_NONE",RISK_REGION="RR_NONE",CLAIM_YEAR="CY_NONE",AUDIT_TRAIL="AT_BPC_CC_ALLOC")
    *ENDWHEN

    //ALLOCATE OPERATING COSTS TO COST CENTERS
    *XDIM_MEMBERSET VERSION=%VERSION_SET%
    *XDIM_MEMBERSET LEDGER=%LEDGER_SET%
    *XDIM_MEMBERSET TIME=%TIME_SET%
    *XDIM_MEMBERSET P_ACCOUNT=%P_ACCOUNT_SET%

    *RUNALLOCATION
    *FACTOR = USING
    *DIM COMPANY_CODE WHAT=CO_NONE;WHERE=>>>;
    *DIM COST_CENTER WHAT=CC_NONE;WHERE=>>>;
    *DIM PROFIT_CENTER WHAT=PC_NONE;WHERE=>>>;
    *DIM SEGMENT WHAT=SEG_NONE;WHERE=>>>;
    *DIM RISK_LOCATION WHAT=RL_NONE;WHERE=>>>;
    *DIM RISK_REGION WHAT=RR_NONE;WHERE=>>>;
    *DIM CLAIM_YEAR WHAT=CY_NONE;WHERE=>>>;
    *DIM LINE_OF_BUSINESS WHAT=LOB_NONE;WHERE=>>>;
    *DIM AUDIT_TRAIL WHAT=AT_BPC_CC_ALLOC;WHERE=<<<;USING=AT_BPC_INPUT
    *ENDALLOCATION

    //OFFSET ALLOCATION
    *XDIM_MEMBERSET VERSION=%VERSION_SET%
    *XDIM_MEMBERSET LEDGER=%LEDGER_SET%
    *XDIM_MEMBERSET TIME=%TIME_SET%
    *XDIM_MEMBERSET P_ACCOUNT=%P_ACCOUNT_SET%

    *RUNALLOCATION
    *FACTOR = -1
    This is Changed.
    *DIM COST_CENTER WHAT = %COST_CENTER_SET% ;WHERE = <<<
    *DIM COMPANY_CODE WHAT <> CO_NONE ;WHERE = <<<
    *DIM SEGMENT WHAT <> SEG_NONE ; WHERE = <<<
    *DIM PROFIT_CENTER WHAT <> PC_NONE ; WHERE = <<<
    *DIM AUDIT_TRAIL WHAT = AT_BW_GL_SOURCE,AT_BPC_INPUT,AT_BPC_CALC ;WHERE = AT_BPC_CC_ALLOC
    *ENDALLOCATION

    Regards,

    Toufiq

    Add comment
    10|10000 characters needed characters exceeded

    • Vadim Kalinin Mohammed Toufiq Qureshi

      I have already posted the sample of the incorrect lines!

      Do you understand the meaning of ">>>" operator? Explained in help Sample 1.

      Do you understand that each line need to have the same number of parameters?