cancel
Showing results for 
Search instead for 
Did you mean: 

How to do allocation on different percentages to different cost centers?

Former Member
0 Kudos

Hi BPC Ecperts,

I have 9 profit centers. In that i want allocate the values from 3 profit centers to remaining profit center on different percentages.

And also the allocated value should become "0".

Thanks in Advance

Gowtham

Accepted Solutions (1)

Accepted Solutions (1)

former_member186338
Active Contributor
0 Kudos

Please prepare your question in line with

Show your code.

Former Member
0 Kudos

Hi Vadim,

Here i am sending my allocation script.

*RUNALLOCATION

*FACTOR =1/4

*DIM PCTR WHAT=3101020001; WHERE=3101010001

*DIM ACCOUNT WHAT=BAS(P&L); WHERE=BAS(P&L);

*DIM CATEGORY WHAT=ABP; WHERE=ALLOCATION;

*DIM TIME WHAT=2017.01; WHERE=2017.01

*ENDALLOCATION

My requirement i want allocate some value from one profit center to different profit centers on different percentages at the same time the allocated value should become zero in source profit center.

Ex:

9 Profit centers like: A,,B,C,D,E,F,G,H,I

From this i want allocate like below:

F to A,B,C,D,E,I

and

G to A,B,C,D,E,I

and

H to A,B,C,D,E,I

F to A - 14%, B - 16%, like this remaining all

G to A - 20%, B - 15%, like this remaining all


H to A - 30%, B - 40%, like this remaining all


when i am allocating G to A it should add to F - A value

Thanks

Gowtham

former_member186338
Active Contributor
0 Kudos

"F to A - 14%, B - 16%, like this remaining all" - bold is not clear!

And you need to have some account to store percentages.

And you will need some dimension with different members for each allocation.

P.S. BPC SP is old

Former Member
0 Kudos

Thank you Vadim,

"F to A - 14%, B - 16%, like this remaining all" - bold is not clear!


It means F to A -14%, B - 16%, C - 20%, D - 10%, E - 20%, I - 20%


And you need to have some account to store percentages.

And you will need some dimension with different members for each allocation.

Can you give me a sample example for above your  two statements.

@ Is my BPC SP will support for this scenario.

Thanks

Gowtham



former_member186338
Active Contributor
0 Kudos

The examples are provided in BPC help: *RUNALLOCATION - SAP Business Planning and Consolidation, version for SAP NetWeaver - SAP Library

For percent you can create account like ALLOCSHARE and perform allocation with USING/TOTAL

Each allocation has to be stored in some different member - for example AUDITRAIL members...

"Is my BPC SP will support for this scenario" - may be some issues, upgrade recommended!

Former Member
0 Kudos

Hi Vadim,

Thank you.

As you suggested, I have created two dimensions. Like ALLOCSHARE and AUDIT TRAIL

1. ALLOCSHARE : I have maintained percentages

2. AUDITTRAIL : I have maintained Allocation as a member

written a script using of this two dimensions as below...

* RUNALLOCATIN

*DIM PCTR WHAT=3105010025; WHERE=3102020033,

*DIM ACCOUNT WHAT=BAS(P&L); WHERE=BAS(P&L);

*DIM CATEGORY WHAT=ABP; WHERE=ALLOCATION;

*DIM TIME WHAT=2010.01,2010.02,2010.03,2010.04,2010.05,2010.06,2010.07,2010.08,2010.09,2010.10,2010.11,2010.12; WHERE=2010.01,2010.02,2010.03,2010.04,2010.05,2010.06,2010.07,2010.08,2010.09,2010.10,2010.11,2010.12

*DIM ALLOCSHARE WHAT=20; WHERE=<<<

*DIM AUDITTRAIL WHAT=>>>; WHERE=ALLOCATION

*ENDALLOCATION

I want to allocate as below

F to A -14%, B - 16%, C - 20%, D - 10%, E - 20%, I - 20%


G to A -14%, B - 16%, C - 20%, D - 10%, E - 20%, I - 20%


H to A -14%, B - 16%, C - 20%, D - 10%, E - 20%, I - 20%


how to give a factor in this scenario to different profit centers in single script.



Thanks & Regards


Gowtham

former_member186338
Active Contributor
0 Kudos

"As you suggested, I have created two dimensions. Like ALLOCSHARE and AUDIT TRAIL"

I have never suggested to create  ALLOCSHARE dimension, just a member in ACCOUNT dimension.

About AUDITTRAIL:

You have 3 allocations to the same targets.

Each allocation has to use specific AUDITTRAIL target member. Then you will have correct result with some parent AUDITTRAIL member.

Former Member
0 Kudos

Sorry Vadim,

I understood wrongly.

If i create a member in ACCOUNT dimension as ALLOCSHARE

and

In AUDITTRAIL maintained 3 member with one parent.

How can i define in script for different percentages from one profit center to different profit centers.

Just give ma a line where can i define percentages and how.

Thanks & Regards


Gowtham

former_member186338
Active Contributor
0 Kudos

Look on my sample:

BE is PCTR

STATACCT is ACCOUNT

USER22 is AUDITTRAIL

PLANTYPE is CATEGORY

PERIODS is TIME

In STATACCT the account to store percent is LIFEINSEMP

3 Allocations for:

BE =BE1000 using USER22=ASHAN

BE =BE1100 using USER22=GLOBUS

BE =BE1200 using USER22=METRO

Input data in Yellow:

Script:

*XDIM_MEMBERSET PLANTYPE=ACTUAL

*XDIM_MEMBERSET PERIODS=2007.JAN

*SELECT(%ACT%,[ID],STATACCT,[ID]=MEDINSEMP,MEDINSEMPADM,MEDINSCHILD)

*SELECT(%BES%,[ID],BE,[ID]=BE1000,BE1100,BE1200)

*SELECT(%BET%,[ID],BE,[ID]=BE1300,BE1400,BE1500,BE1600,BE1700,BE1800)

*SELECT(%U22T%,[ID],USER22,[ID]=ASHAN,GLOBUS,METRO)

*FOR %B%=%BES% AND %U%=%U22T%

*RUNALLOCATION

*FACTOR=USING/TOTAL

*DIM_NONAGGR STATACCT WHAT=%ACT%; WHERE=<<<;USING=LIFEINSEMP;TOTAL=<<<

*DIM BE WHAT=%B%; WHERE=%BET%;USING=<<<;TOTAL=<<<

*DIM USER22 WHAT=DUMMYUSER22;WHERE=%U%;USING=<<<;TOTAL=<<<

*ENDALLOCATION

*NEXT

Former Member
0 Kudos

Hi Vadim,

Thanks for brief explanation.

Here i am getting error in script log like below

RUN_LOGIC:Dimension  was not found.

I am using below dimensions

1. TS_ACCOUNT

2. TS_CATEGORY

3. TIME

4. TS_PCTR

5.TS_ENTITY

6. RPTCURRENCY

In category dimension maintaining like

1.ABP

      ALLOCATION

           ALLOCATION 1

           ALLOCATION 2

           ALLOCATION 3

because of this i will get my ABP and(PLUS "+") allocated value total.

So instead of Audit trail members I am iusing CATEGORY base level member.

I written a script like below.

*XDIM_MEMBERSET TS_CATEGORY=ABP

*XDIM_MEMBERSET TIME=2017.01

*SELECT(%ACT%,[ID],TS_ACCOUNT,[ID]=BAS(P&L)

*SELECT(%TS_PCTRS%,[ID],TS_PCTR,[ID]=3105010025)

*SELECT(%TS_PCTRT%,[ID],TS_PCTR,[ID]=3102010033,3102020033,3103010033,3103020133,3104010033)

*SELECT(%TS_CATEGORY%,[ID],ALLOCATION,[ID]=ALLOCATION1)

*FOR %B%=%TS_PCTRS% AND %U%=%ALLOCATION1%

*RUNALLOCATION

*FACTOR=USING/TOTAL

*DIM_NONAGGR TS_ACCOUNT WHAT=%ACT%; WHERE=<<<;USING=ALLOCSHARE;TOTAL=<<<

*DIM TS_PCTR WHAT=%TS_PCTR%; WHERE=%TS_PCTR%;USING=<<<;TOTAL=<<<

*DIM TS_CATEGORY WHAT=ABP;WHERE=%ALLOCATION1%;USING=<<<;TOTAL=<<<

*ENDALLOCATION

*NEXT

I am requesting you please tell me is this script right or any modification required...

NOTE: I am not able understand some point in script.

*SELECT(%ACT%,[ID],STATACCT,[ID]=MEDINSEMP,MEDINSEMPADM,MEDINSCHILD)

*SELECT(%BES%,[ID],BE,[ID]=BE1000,BE1100,BE1200)

*SELECT(%BET%,[ID],BE,[ID]=BE1300,BE1400,BE1500,BE1600,BE1700,BE1800)

*SELECT(%U22T%,[ID],USER22,[ID]=ASHAN,GLOBUS,METRO)

*FOR %B%=%BES% AND %U%=%U22T%

*RUNALLOCATION

*FACTOR=USING/TOTAL

*DIM_NONAGGR STATACCT WHAT=%ACT%; WHERE=<<<;USING=LIFEINSEMP;TOTAL=<<<

*DIM BE WHAT=%B%; WHERE=%BET%;USING=<<<;TOTAL=<<<

*DIM USER22 WHAT=DUMMYUSER22;WHERE=%U%;USING=<<<;TOTAL=<<<

*ENDALLOCATION

*NEXT

Thanks

Gowtham

former_member186338
Active Contributor
0 Kudos

Sorry, I have provided you the working script! You have to reproduce it using your dimension names...

Search notes about DIM_NONAGGR

Read help about SELECT

Former Member
0 Kudos

Hi Vadim,

Thanks for your reply.

I think i am disturbing you. Please help on this.

I have reproduced a script with using of your script. I am getting error like below

RUN_LOGIC:Member "" not exist

I have gone through your script and i understood which is highlighted by me in your script.

And also i read about select function.

Please i need small clarification

What is %B% and %U%.

Can i maintain this in separate property like how we maintain BES, BET and ACT.

Thanks

Gowtham

Former Member
0 Kudos

HI Vadim,

Please find my script.

*XDIM_MEMBERSET TS_CATEGORY=ABP

*XDIM_MEMBERSET TIME=2017.01

*SELECT(%ACT%,[ID],TS_ACCOUNT,[ID]=BAS(P&L))

*SELECT(%BES%,[ID],TS_PCTR,[ID]=310102,310501,310601)

*SELECT(%BET%,[ID],TS_PCTR,[ID]=310101,310201,310202,310301,310302,310401)

*SELECT(%ATT%,[ID],TS_CATEGORY,[ID]=ALLOC1,ALLOC2,ALLOC3)

*FOR %B%=%BES% AND %U%=%ATT%

*RUNALLOCATION

*FACTOR =USING/TOTAL

*DIM_NONAGGR TS_ACCOUNT WHAT=%ACT%; WHERE=<<<; USING=ALLOCSHARE; TOTAL=<<<

*DIM TS_PCTR WHAT=%B%; WHERE=%BET%; USING=<<<; TOTAL=<<<

*DIM TS_CATEGORY WHAT=ALLOCATION; WHERE=%U%; USING=<<<; TOTAL=<<<

*ENDALLOCATION

*NEXT

Thanks

Gowtham

former_member186338
Active Contributor
0 Kudos

Sorry, but you have to read basic information about script logic!

First - help!

Then may be

"What is %B% and %U%." - read help for *FOR

%BES% is a list of members, you can get it by property or other way...

former_member186338
Active Contributor
0 Kudos

"*SELECT(%ACT%,[ID],TS_ACCOUNT,[ID]=BAS(P&L))" - incorrect syntax, BAS can't be used inside SELECT

Use:

*DIM_NONAGGR TS_ACCOUNT WHAT=BAS(P&L); WHERE=<<<; USING=ALLOCSHARE; TOTAL=<<<

Former Member
0 Kudos

Hi Vadim,

Thank you.

Script is running successfully and but it is not showing any results.

IN package details : Records succeeded to write back 0

*XDIM_MEMBERSET TS_CATEGORY= ABP

*XDIM_MEMBERSET TIME= 2017.01

*SELECT(%ACT%,[ID],TS_ACCOUNT,[ID]= 44000833)

*SELECT(%BES%,[ID],TS_PCTR,[ID]= 6105010025)

*SELECT(%BET%,[ID],TS_PCTR,[ID]= 6102010033,6102020033,6103010033,6103020133,6104010033)

*SELECT(%SHR%,[ID],TS_AUDITTRAIL,[ID]=SHARE 1,SHARE 2,SHARE 3)

*FOR %BES%=6105010025 AND %SHR%=SHARE 1,SHARE 2,SHARE 3

*RUNALLOCATION

*FACTOR =USING/TOTAL

*DIM_NONAGGR TS_ACCOUNT WHAT=BAS(P&L); WHERE=<<<; USING=ALLOCSHARE; TOTAL=<<<

*DIM TS_PCTR WHAT=%BES%; WHERE=%BET%; USING=<<<; TOTAL=<<<

*DIM TS_AUDITTRAIL WHAT= SHARING; WHERE=%SHR%; USING=<<<; TOTAL=<<<

*ENDALLOCATION

*NEXT

Thanks

Gowtham

former_member186338
Active Contributor
0 Kudos

First - never use ID's with spaces inside like "SHARE 1"

Second - you have to check that you have data!

Look on my report with data.

Also, FOR variables are incorrect!

Look here:

*XDIM_MEMBERSET TS_CATEGORY= ABP

*XDIM_MEMBERSET TIME= 2017.01

*SELECT(%BES%,[ID],TS_PCTR,[ID]= 6105010025,xxxx,xxxx) //has to be 3 members!

*SELECT(%BET%,[ID],TS_PCTR,[ID]= 6102010033,6102020033,6103010033,6103020133,6104010033)

*SELECT(%SHR%,[ID],TS_AUDITTRAIL,[ID]=SHARE1,SHARE2,SHARE3) //use members without space!

*FOR %B%=%BES% AND %S%=%SHR%  //loop 3 times!

*RUNALLOCATION

*FACTOR =USING/TOTAL

*DIM_NONAGGR TS_ACCOUNT WHAT=BAS(P&L); WHERE=<<<; USING=ALLOCSHARE; TOTAL=<<<

*DIM TS_PCTR WHAT=%B%; WHERE=%BET%; USING=<<<; TOTAL=<<<

*DIM TS_AUDITTRAIL WHAT=SHARING; WHERE=%S%; USING=<<<; TOTAL=<<<

*ENDALLOCATION

*NEXT

Answers (1)

Answers (1)

Former Member
0 Kudos

Thanks Vadim,

It is working fine. Thanks a lot.

Thanks

Gowtham

Former Member
0 Kudos

Hi Vadim,

I have another requirement in same report. When i am allocating some value from one profit center to another profit center. The source profit center value should become ZERO.

When i am giving WHAT and WHERE same value in TS_AUDITTRAIL dimension. It is working fine.

But i need the report as your report only.

Is there any way to get this one.

Thanks

Gowtham

former_member186338
Active Contributor
0 Kudos

After the allocation code add code to clear (after *NEXT):

*XDIM_MEMBERSET TS_PCTR=%BES%

*XDIM_MEMBERSET TS_ACCOUNT=BAS(P&L)

*RUNALLOCATION

*FACTOR =0

*DIM TS_AUDITTRAIL WHAT=SHARING; WHERE=<<<

*ENDALLOCATION

P.S. If some answers are helpful - mark as helpful

Former Member
0 Kudos

Hi Vadim,

Thank you very much for your inputs.

Allocation is working working fine when i am executing for one profit center to different profit center. But it is not working properly  while allocating 3 profit centers to remaining profit centers at a time. It is giving wrong values.

Below i have attached the report please help me in this.

In this report it is calculating second profit center to remaining profit centers only.

1st and 3rd profit centers are not allocating.

Profit Center Dimension : BES = Source,BET = Target

*XDIM_MEMBERSET TS_CATEGORY= ABP

*XDIM_MEMBERSET TIME= 2017.01

*SELECT(%ACT%,[ID],TS_ACCOUNT,[ID]=31300024,31300031,31300041,31300054,40090001,40090002,40110001,40110002,40110003,40110004,40110132,40110133,40110134,44000001,44000002,44000006,44000007,44000008,44000009,44000010,44000019,44000025,44000305,44000308,44000816)

*SELECT(%BES%,[ID],TS_PCTR,[ID]=3105010002,3106010104,3101020001)

*SELECT(%BET%,[ID],TS_PCTR,[ID]=3101010003,3102010005,3102020007,3103010008,3103020110,3104010013)

*SELECT(%CAT%,[ID],CATEGORY,[ID]=ALLOC1,ALLOC2,ALLOC3)

*FOR %ALL%=%BES% AND %ALT%=%ATT%

*FOR %ALL%=%BES% AND %ALT%=%ATT%

*FOR %ALL%=%BES% AND %ALT%=%ATT%

*RUNALLOCATION

*FACTOR =USING/TOTAL

*DIM_NONAGGR TS_ACCOUNT WHAT=%ACT%; WHERE=<<<; USING=ALLOCSHARE; TOTAL=<<<

*DIM TS_PCTR WHAT=%BES%; WHERE=%BET%; USING=<<<; TOTAL=<<<

*DIM TS_CATEGORY WHAT=ABP; WHERE=%ATT%; USING=<<<; TOTAL=<<<

*ENDALLOCATION

*NEXT

*NEXT

*NEXT

Thanks

Gowtham

former_member186338
Active Contributor
0 Kudos

Sorry, but what do you mean by this code:

*FOR %ALL%=%BES% AND %ALT%=%ATT%

*FOR %ALL%=%BES% AND %ALT%=%ATT%

*FOR %ALL%=%BES% AND %ALT%=%ATT%


????


Only single *FOR %ALL%=%BES% AND %ALT%=%CAT% required!


And the following lines are incorrect:


*DIM TS_PCTR WHAT=%BES%; WHERE=%BET%; USING=<<<; TOTAL=<<<

*DIM TS_CATEGORY WHAT=ABP; WHERE=%ATT%; USING=<<<; TOTAL=<<<


Has to be


*DIM TS_PCTR WHAT=%ALL%; WHERE=%BET%; USING=<<<; TOTAL=<<<

*DIM TS_CATEGORY WHAT=ABP; WHERE=%ALT%; USING=<<<; TOTAL=<<<

Former Member
0 Kudos

Thank you sooo much Vadim,

It is working fine for all profit centers at a time.

Can we get any error or warning if we are not allocating 100%.

Thanks

Gowtham

former_member186338
Active Contributor
0 Kudos

"Can we get any error or warning if we are not allocating 100%" - you can't get any warning, but with USING/TOTAL you always allocate 100% if at least one ALLOCSHARE has some value

former_member186338
Active Contributor
0 Kudos

And if you don't clear the original value you can always compare result with the report like in my post...

Former Member
0 Kudos

Thank you vadim...Thanks a lot...

Regards

Gowtham

Former Member
0 Kudos

Hi Vadim,

When i am allocating one profit centre to different profit centres i want to allocate different cost centre to single cost centre. While doing values are overwriting. But i want add those values. How can i achieve this requirement?

Ex:


  *SELECT(%BES%,[ID],TS_PCTR,[ID]=3105010002,3105010025,)

  *SELECT(%BET%,[ID],TS_PCTR,[ID]=3102010033,3102020033,3103020233)


Thanks


Gowtham


former_member186338
Active Contributor
0 Kudos

Sorry, but not clear:

"i want to allocate different cost centre to single cost centre." profit or cost centers???

What is the cost center dimension??

Former Member
0 Kudos

Hi Vadim,

I am maintaining profit centers and  cost centers in same dimension. Profit centers as parent and cost centers as base members.

As your report i am getting results fine.

I have a profit center like BE100 in that i have cost centers as below.

BE100100,

BE100102,

BE100103.

I want to allocate from BE100100 and BE100103 to below cost center

BE1300033.

I have taken this for example from your report.

Here BE1300 is another profit center.

If still it is not clear than i will send a screen shot.

Thanks

Gowtham

former_member186338
Active Contributor
0 Kudos

Not clear, and better to open a new discussion with clear screenshots etc...!

"While doing values are overwriting." in my code each profit center is allocating to separate member of other dimension (CATEGORY). Nothing to overwrite!