cancel
Showing results for 
Search instead for 
Did you mean: 

TMVL dynamic offset value

Former Member
0 Kudos

Hi experts,

I'm a beginner in SAP BPC Script Logic and İ'm trying to use the offset value in TMVL parameter from another calculated dimension .

My code is as follows bu not working for last formula : 

*SELECT(%SCENARIO%,ID,CATEGORY1,ID='Budget')                                        

*SELECT(%STARTDATE%,STARTDATE,CATEGORY1,"ID= %SCENARIO%")                      

*SELECT(%ENDDATE%,ENDDATE,CATEGORY1,"ID= %SCENARIO%")                          

*SELECT(%PERIODS%,ID,TIME1,"ID>%STARTDATE% AND ID<%ENDDATE% AND LEVEL='MONTH'")    

*SELECT(%PROMPT%,ID, ACCOUNT1,"ID='6000'")

*XDIM_MEMBERSET CATEGORY1 = %SCENARIO%

*XDIM_MEMBERSET ENTITY1 = 1000

*XDIM_MEMBERSET ACCOUNT1 = 2000                                //*********************number of  prompt date  (in month ) ACCOUNT1 = 6000

*XDIM_MEMBERSET CLIENT1 = A_MUS,B_MUS                //*********************number of  months of maturity , ACCOUNT1 = 6000

*XDIM_MEMBERSET CURRENCY1 = NA_PB

*XDIM_MEMBERSET MODUL1 = NA_MOD

*XDIM_MEMBERSET TIME1 = %STARTDATE%,%ENDDATE%,%PERIODS%

*WHEN ACCOUNT1

*IS 2000

*REC(EXPRESSION = Math.round(([ACCOUNT1].[2000]+14)/30) ,ACCOUNT1=6000)       //instead of  round up function i used this function

*ENDWHEN

*COMMIT

................................

*XDIM_MEMBERSET CATEGORY1 = %SCENARIO%

*XDIM_MEMBERSET ENTITY1 = 1000

*XDIM_MEMBERSET ACCOUNT1 = 9000                                    //******************** Endorsement,  ACCOUNT1 = 10000

*XDIM_MEMBERSET CLIENT1 = A_MUS,B_MUS

*XDIM_MEMBERSET CURRENCY1 = EUR,TRY

*XDIM_MEMBERSET MODUL1 = A_MODUL,B_MODUL,C_MODUL

*XDIM_MEMBERSET TIME1 = %STARTDATE%,%PERIODS%,%ENDDATE%

*WHEN ACCOUNT1

*IS 9000

*REC(EXPRESSION = %VALUE%*([ACCOUNT1].[13000]), ACCOUNT1 = 10000 )

*ENDWHEN

*COMMIT

*XDIM_MEMBERSET CATEGORY1 = %SCENARIO%

*XDIM_MEMBERSET ENTITY1 = 1000

*XDIM_MEMBERSET ACCOUNT1 = 10000                                 //************amount of collection, for  B_MUS  , HESAP1 = 11000

*XDIM_MEMBERSET CLIENT1 = B_MUS

*XDIM_MEMBERSET CURRENCY1 = TRY

*XDIM_MEMBERSET MODUL1 = A_MODUL, B_MODUL, C_MODUL

*XDIM_MEMBERSET TIME1=TMVL(%PROMPT%,2016.01), %PERIODS%, %ENDDATE%     

*FOR %TIME1%=TMVL(%PROMPT%,2016.01), %PERIODS%, %ENDDATE%

*WHEN CLIENT1

*IS B_MUS

*REC(FACTOR=1, ACCOUNT1 = 11000)

*ENDWHEN

*NEXT              

my target is to shift the time due to the number of months of maturity as follow :

Tahsilat tutarı :  amount of collection

  A MUSTERI : A_MUS (client A )

B MUSTERI : B_MUS (client B )

OCAK , SUBAT , .... : 2016.01,2016.02,..... ETC 

Any help ?

Thank you in Avance

Regards

Ayse

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member186338
Active Contributor
0 Kudos

Hi Ayse,

Pease prepare you question in line with

Start with simple script, only single when/endwhen

Vadim

Former Member
0 Kudos

I hope this is simpler then the old one.  :

Dimension = ACCNT                  

Members  = A1, A2, A3                                     //A1 : number of  maturity (in month)


Dimension =CLIENT

Members  = CL_A , CL_B



Dimension = TIME

Members  = 2016.01, 2016.02, ........., 2016.12


AND OTHERS : ENTITY = %ENTITY_SET%  ,                                                                                          

                                     

                                  

                          CATEGORY = %CATEGORY_SET%          



*SELECT(%MATURITY%,ID, ACCNT, "ID='A1'")






*XDIM_MEMBERSET ENTITY = %ENTITY_SET%


*XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%

*XDIM_MEMBERSET ACCOUNT = A2

*XDIM_MEMBERSET  CLIENT = CL_A


*XDIM_MEMBERSET TIME = %TIME_SET%

*FOR  %TIME%=TMVL(%MATURITY%,2016.01),.....,2016.09, 2016,10, 2016.11, 2016.12

*WHEN  CLIENT

*IS CL_A

*REC(FACTOR=1,          ACCNT=A3  )

*ENDWHEN

*NEXT

former_member186338
Active Contributor
0 Kudos

Still no explanation of what do you want to achieve!

What do you mean by SELECT(%MATURITY%...

You can't use select to read transaction data.... %MATURITY% will be equal to A1

former_member186338
Active Contributor
0 Kudos

If you want to use value stored in some account to shift by number of months then badi is the only acceptable solution, script logic is not able to perform things like this