Question:
Hi everybody, this is my question:
I've a year value foe a cost element, than I change it and I want to distribute (split) it montly (fiscal period).
Is it possible with standard formula or have I to use Fox ?
Thanks in advance !!!
PR
Answer:
I think it should be easy by using dist planning function.
you select two time char,, 0calmonth, ocalyear.
make entries in the 0calyear then use dist using keys and i guess it should work,,
revert back if you stil have prob
sanju
Answer:
FOX is not a good solution...
There are 4 'distribution' planning functions available and one of them will be most suitable.
I faced similar scenario in the past and I had used distribute by keys.
Answer:
here is the piece of code i developped for distribution.
the standard function results in a sender equal to zero. The FOX formula avoids this.
there is a condition to distribute data only if the sum of the 4 periods is different from the sum.
You fill the distribution keys in a BPS layout by costelement and period.
I hope it will help.
DATA TRIM TYPE 0CALQUART1.
DATA NAT TYPE 0COSTELMNT.
DATA EXER TYPE 0FISCYEAR.
DATA EXER1 TYPE 0FISCYEAR.
DATA PRIO TYPE 0PRIORITY.
DATA PROJ TYPE C_PROJET.
DATA ACT TYPE ZACTIVITE.
DATA EOBP TYPE ZEOBPART.
DATA SOCP TYPE 0PCOMP_CODE.
DATA SITE TYPE ZSITE.
DATA SSACT TYPE ZSSACT.
DATA VERS TYPE 0VERSION.
DATA EOB TYPE ZEOB2.
* Key variable
DATA KT1 TYPE F.
DATA KT2 TYPE F.
DATA KT3 TYPE F.
DATA KT4 TYPE F.
DATA TOT TYPE F.
DATA TOT1 TYPE F.
EXER = VARV(ZEXER).
VERS=VARV(ZVERSION).
EXER1=TMVL(EXER,1).
*begenning of distribution
FOREACH
TRIM,EXER,EXER1,NAT,VERS,PRIO,PROJ,ACT,EOB,EOBP,SOCP,SITE,
SSACT.
*Loading keys
KT1={ZKREPT3,1,NAT,1900,#,#,#,#,#,#,#,#,#} .
KT2={ZKREPT3,2,NAT,1900,#,#,#,#,#,#,#,#,#} .
KT3={ZKREPT3,3,NAT,1900,#,#,#,#,#,#,#,#,#} .
KT4={ZKREPT3,4,NAT,1900,#,#,#,#,#,#,#,#,#} .
*Condition on the sum
TOT=
{0AMOUNT,1,NAT,EXER,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE,
SSACT}+
{0AMOUNT,2,NAT,EXER,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE,
SSACT}+
{0AMOUNT,3,NAT,EXER,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE,
SSACT}+
{0AMOUNT,4,NAT,EXER,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE,
SSACT}.
IF
{0AMOUNT,
#,NAT,EXER,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE,SSACT}
<> TOT.
*ANNEE 1
*Trim 1
{0AMOUNT,1,NAT,EXER,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE,
SSACT}= {0AMOUNT,
#,NAT,EXER,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE,
SSACT}*KT1.
*Trim 2
{0AMOUNT,2,NAT,EXER,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE,
SSACT
} = KT2*{0AMOUNT,
#,NAT,EXER,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE,SSACT}.
*Trim 3
{0AMOUNT,3,NAT,EXER,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE,
SSACT
} = KT3*{0AMOUNT,
#,NAT,EXER,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE,SSACT}.
*Trim 4
{0AMOUNT,4,NAT,EXER,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE,
SSACT} = KT4*{0AMOUNT,
#,NAT,EXER,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE,SSACT}.
ENDIF.
*Condition année 2
TOT1=
{0AMOUNT,1,NAT,EXER1,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE
,SSACT}+
{0AMOUNT,2,NAT,EXER1,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE
,SSACT}+
{0AMOUNT,3,NAT,EXER1,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE
,SSACT}+
{0AMOUNT,4,NAT,EXER1,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE
,SSACT}.
IF
{0AMOUNT,
#,NAT,EXER1,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE,SSACT}
<> TOT1.
*Année 2 trim 1
{ 0AMOUNT,1,NAT,EXER1,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,
SITE,SSACT} = KT1*{0AMOUNT,
#,NAT,EXER1,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE,SSACT}.
*Annee 2 Trim 1
{ 0AMOUNT,2,NAT,EXER1,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,
SITE,SSACT} = KT2*{0AMOUNT,
#,NAT,EXER1,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE,SSACT}.
*Annee 2 Trim 3
{ 0AMOUNT,3,NAT,EXER1,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,
SITE,SSACT} = KT3*{0AMOUNT,
#,NAT,EXER1,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE,SSACT}.
*Annee 2 Trim 4
{ 0AMOUNT,4,NAT,EXER1,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,
SITE,SSACT} = KT4*{0AMOUNT,
#,NAT,EXER1,SOCP,PRIO,VERS,PROJ,ACT,EOB,EOBP,SITE,SSACT}.
ENDIF.
ENDFOR.
ENDFOR.
Answer:
You can either use one of the 4 distribution functions or FOX. It depends on if you are doing even split i.e. 1/12 per month, based on reference of last year's total data, or something more specific...
Hope this helps, Mary