Help in script logic

Hi Experts,
We are using SAP BPC 7.5 NW Version SP08. We are using a script logic that calculates the opening value of inventory(ASSTCAINVAMO) for each month except the 1st month of financial year for which the value is entered from an input schedule. The opening value of inventory of each subsequent months are calculated when the parameters for production(e.g. OSDA) are entered from a separate input schedule. The following script logic is written for the calculation:
*FOR %TIM_MEM%=%TIME_SET%
*XDIM_MEMBERSET TIME =%TIM_MEM%
*WHEN P_ACCT2
*IS "OSDA",
REC(EXPRESSION=[P_ACCT2].[ASSTCAINVAMO]+[P_ACCT2].[RDPA][P_ACCT2].[EFFA][P_ACCT2].[OSDA]-[P_ACCT2].[CONVAMUR][P_ACCT2].[RDPU][P_ACCT2].[EFFU][P_ACCT2].[OSDU]-([P_ACCT2].[SALQAMBC]+[P_ACCT2].[SALQAMM]),P_ACCT2="ASSTCAINVAMO",TIME=TIME.NEXT)
*ENDWHEN
*COMMIT
*NEXT
The loop works fine, but it seems the list of time values are not coming in proper sequence. For example, the loop is running for 2011.NOV before it iterates for 2011.OCT. So when it iterates for 2011.NOV, it is not getting the opening value for the month and consequently 2011.DEC's opening value is calculated assuming 2011.NOV's opening value to be 0. In the input schedule the months are in proper sequence.
Is there any way out so that the months come in proper sequence in the logic as well?
Thanks in advance for any help.

We had similar issue . we changed TIME members from Monthnames to numbers . i.e  changed 2011.JAN to 2011.01 . Then you get correct result  as you are expecting . Issue when using month names in combination of TMVL is that  , instead of getting 2011. MAY for TMVL(1,2011.APR) , it gets 2011.FEB . TMVL function some how takes alphabetical order instead of taking month order . Not sure if this behavior is with service pack . But never saw any thread reporting this issue .
Anyways ,you can wait for other responses  as i am too curious to know if any one faced this issue and how did they resolve.

Similar Messages

  • Help in script logic - problem in FOR loop

    Hi Experts,
    We are using BPC 7.5 SP08. I have written a FOR loop in script logic default.lgf which is as follows:
    *FOR %TIM_MEM%=%TIME_SET%
    *XDIM_MEMBERSET TIME =%TIM_MEM%
    *WHEN P_ACCT2
    *IS "OSDU"
    REC(EXPRESSION=[P_ACCT2].[ASSTCAINVURO][P_ACCT2].[COGSUPRVIPSA]/[P_ACCT2].[ASSTUPRVTAQTY],P_ACCT2="COGSUIPSAO")
    *ENDWHEN
    *COMMIT
    *NEXT
    As per my requirement, all this members: [ASSTCAINVURO], [COGSUPRVIPSA], [ASSTUPRVTAQTY] exists for months September to next year's August. But in my input schedule, the months are from August to next year's July(which is the company's fiscal year). Consequently the loop runs for month August to next year's July while I need to run the loop 1 month late(i.e. September to next year's August). This was achieved earlier by hard-coding the time members which we cannot afford as this requires to update these hard-coded member IDs every year.
    We have also tried using the "NEXT" property of TIME dimension as follows:
    *XDIM_MEMBERSET TIME =%TIM_MEM%.NEXT
    but %TIM_MEM%.NEXT doesn't get the month in 'NEXT'.
    Please suggest if there is any way out to solve this problem.
    Thanks in advance.

    Hi Appu,
    Even if you restrict the scope using the XDIM statement, your script will just run the number of times as per the for loop. Actually, in reality, the same calculation is happening again and again, in your code; since your calculation is not based on the time member.
    To use the for loop effectively, you need to incorporate the time member in your calculation.
    Please look at the below sample code:
    *XDIM_MEMBERSET TIME = %TIME_SET%
    *FOR %TIM_MEM%=%TIME_SET%
       *WHEN P_ACCT2
       *IS "OSDU"
          *REC(EXPRESSION=<CALCULATION>,P_ACCT2="COGSUIPSAO")
       *ENDWHEN
    *NEXT
    And in your calculation, you can use statements like
    ([P_ACCT2].[ASSTCAINVURO],TMVL(1, [TIME].[%TIM_MEM%]))
    This will ensure that everytime (as per the for loop), the calculation works on separate set of data.
    Hope you got the idea.

  • Help with Script Logic

    Hi All
    I am trying to write the following script
    *INCLUDE ..\finance\system_constants.lgl
    *XDIM_MEMBERSET RATE=AVG,END
    *SELECT(%IP_Currencies%, "[ID]", "INPUTCURRENCYDIM", "[MD] = 'D' OR [MD]= 'M'") )
    *XDIM_MEMBERSET INPUTCURRENCY= %IP_Currencies%
    *XDIM_MEMBER RATESRC=RATEINPUT
    *WHEN INPUTCURRENCY.MD
    *IS "D"
    *REC(EXPRESSION=ROUND(1/%VALUE%,6),RATESRC="RATECALC")
    *ELSE
    *REC(RATESRC="RATECALC")
    *ENDWHEN
    *CLEAR_DESTINATION
    *DESTINATION RATESRC=RATECALC
    My LGX file looks like this.
    *XDIM_MEMBERSET RATE=AVG,END
    *XDIM_MEMBERSET INPUTCURRENCY= DZD,USD,ARS,AUD,ATS,BSD,BBD,BEF,BMD,BRL,GBP,BGN,CAD,CLP,CNY,CYP,CZK,DKK,XCD,EGP,EUR,FJD,FIM,FRF,DEM,XAU,GRD,HKD,HUF,ISK,INR,IDR,IEP,ILS,ITL,JMD,JPY,JOD,LBP,LUF,MYR,MXN,NZD,NOK,NLG,PKR,PHP,XPT,PLN,PTE,ROL,RUR,SAR,XAG,SGD,SKK,ZAR,KRW,ESP,XDR,SDD,SEK,CHF,TWD,THB,TTD,TRL,VEB,ZMK
    *XDIM_MEMBER RATESRC=RATEINPUT
    *WHEN INPUTCURRENCY.MD
    *IS "D"
    *REC(EXPRESSION=ROUND(1/%VALUE%,6),RATESRC="RATECALC")
    *ELSE
    *REC(RATESRC="RATECALC")
    *ENDWHEN
    *CLEAR_DESTINATION
    *DESTINATION RATESRC=RATECALC
    It gets validated fine and it also runs successfully through DPM. But the problem i am facing is that the above script is only running and posting data for USD  in RATECALC where as I have lot many currencies listed in "INPUTCURRENCYDIM". It does not execute for any other currency except for USD. I want to run it for all the currencies.
    Please suggest.
    Diksha.
    Edited by: Diksha Chopra on Jun 3, 2010 9:23 PM

    Hi Diksha,
    Please check in your inputcurrency dimension, how many members are there with the property MD as D?
    I would suggest you to change your scritp to
    *INCLUDE ..\finance\system_constants.lgl
    *XDIM_MEMBERSET RATE=AVG,END
    *XDIM_MEMBER RATESRC=RATEINPUT
    *WHEN INPUTCURRENCY.MD
    *IS "D"
       *REC(EXPRESSION=ROUND(1/%VALUE%,6),RATESRC="RATECALC")
    *IS "M"
       *REC(RATESRC="RATECALC")
    *ENDWHEN
    *COMMIT
    *CLEAR_DESTINATION
    *DESTINATION RATESRC=RATECALC
    Hope this helps.

  • Script Logic Syntax Help

    Hello,
    Like for example I have two dimension like P_ACCT ve PRODUCT.
    In P_ACCT dimension I have two members like ACCOUNT1 and ACCOUNT2, and in PRODUCT dimension I have a one members called PER_1100.
    I want to update PRODUCT.PER_1100 with ACCOUNT1 / ACCOUNT2 * 100 value. 
    Example =
    ACCOUNT1 = 50
    ACCOUNT2 = 200
    PRODUCT.PER_1100 = ACCOUNT1 / ACCOUNT2 * 100 = 50 / 200 * 100 = 25
    I wrote a script like below but it doesn't work.
    *WHEN P_ACCT
    *IS ACCOUNT1
        *REC(FACTOR=[P_ACCT].[ACCOUNT2]*0.01,PRODUCT="PER_1100")
    *ENDWHEN
    *COMMIT
    Regards,
    Burak

    Hello,
    I didn't face any problem about this script logic. It works fine. You can use it. I developed this script.
    *WHEN P_ACCT
    *IS KFNETCIRO
        *WHEN PRODUCT
        *IS TOT_BUD_10
        *REC(EXPRESSION=%VALUE%*0.01*([P_ACCT].[KFORANLAR],[PRODUCT].[NC_1101]),P_ACCT="KFNETCIRO",PRODUCT="1101")
        *REC(EXPRESSION=%VALUE%*0.01*([P_ACCT].[KFORANLAR],[PRODUCT].[NC_1102]),P_ACCT="KFNETCIRO",PRODUCT="1102")
        *REC(EXPRESSION=%VALUE%*0.01*([P_ACCT].[KFORANLAR],[PRODUCT].[NC_1103]),P_ACCT="KFNETCIRO",PRODUCT="1103")
        *REC(EXPRESSION=%VALUE%*0.01*([P_ACCT].[KFORANLAR],[PRODUCT].[NC_1104]),P_ACCT="KFNETCIRO",PRODUCT="1104")
        *REC(EXPRESSION=%VALUE%*0.01*([P_ACCT].[KFORANLAR],[PRODUCT].[NC_1105]),P_ACCT="KFNETCIRO",PRODUCT="1105")
        *REC(EXPRESSION=%VALUE%*0.01*([P_ACCT].[KFORANLAR],[PRODUCT].[NC_1106]),P_ACCT="KFNETCIRO",PRODUCT="1106")
        *REC(EXPRESSION=%VALUE%*0.01*([P_ACCT].[KFORANLAR],[PRODUCT].[NC_1107]),P_ACCT="KFNETCIRO",PRODUCT="1107")
        *REC(EXPRESSION=%VALUE%*0.01*([P_ACCT].[KFORANLAR],[PRODUCT].[NC_1108]),P_ACCT="KFNETCIRO",PRODUCT="1108")
        *REC(EXPRESSION=%VALUE%*0.01*([P_ACCT].[KFORANLAR],[PRODUCT].[NC_1109]),P_ACCT="KFNETCIRO",PRODUCT="1109")
        *REC(EXPRESSION=%VALUE%*0.01*([P_ACCT].[KFORANLAR],[PRODUCT].[NC_9900]),P_ACCT="KFNETCIRO",PRODUCT="9900")
        *ENDWHEN
    *ENDWHEN
    *COMMIT
    [#KFBRUTKAR] = [KFNETCIRO] - [KFSMM]
    [#KFURBRKAR] = [KFNETCIRO] - [KFSMM] - [KFISKARTA]
    [#KFMAGBRKAR] = [KFNETCIRO] - [KFSMM] - [KFISKARTA] - [KFAMBALAJ]
    *COMMIT
    I hope it helps to you.
    Regards,
    Burak

  • SQL functions in Script Logic

    I want to build a script logic but the dimensions that I am testing do not have the fields I want in the format I want. In my case I would like to test the "Start" property in the Employee dimension. The property represents the employee start date but is a var char in the format dd.mm.yyyy rather thna a date field. I want to test whether it is five years prior to the date being processed.
    My time dimension has a year property and a monthnum property. Each of these are varchar. I can write SQL that would convert these to a date and compare them with the start property on the employee dimension.
    Can I  do iinsert SQL functions in the When statement. An example would be
    *When convert(datetime, substring(employee.start,4,2) + '/' + substring(employee.start,1,2) + '/' + substring(employee.start,7,4))
    Can I use  SQL functions in the Is statement? An example would be
    *Is <DateAdd(YY,-5 , convert(datetime, Time.Monthnum + '/01/'' + time.year)
    Finally when I use such techniques and look at the log by using "show log" in the logic debugger I see no reference to the SQL I used. It is as if the generated SQL has not made use of my functions. Instead all I seee are the extract statements from the three fact tables. Is this normal? Is there a way to see what SQL is really being generated and run?
    At the moment it seems my only option is to make changes, try running it and hope I get an output. If no records are written I can't be sure whether it is because embedding SQL function is not supported or because I have made some other error.

    No, the "BPC SQL" script logic doesn't allow for this extensive use of real SQL within the scripting syntax. As a concept, it's best to think of "BPC SQL" script logic as, "this unique BPC logic syntax will generate real SQL code when it's executed."
    There's very little real SQL that you can use within the syntax itself, and definitely not within the WHEN or IF statements.  Nothing like cast, convert, substring, etc. (Except you CAN use these, a little bit, in a *SELECT statement. But I don't see how that will solve your current problem.)
    Plus, when you consider how the logic engine processes a set of data, it's helpful to think of it in terms of selects & reading through a recordset. So in that regard, a SQL background can be helpful, in understanding the concepts. (Sort of helpful, except when it confuses you, or frustrates you since you don't have all the power you want.)
    Anyway, to solve your problem, you might be able to restate the problem, and then use something like this code, which is valid syntax:
    *WHEN TIME.TIMEID
    *IS >= VERSION.FirstPlanMonthTimeID
    In this case, FirstPlanMonthTimeID is set up in the version dimension as, for example, 20090400 (representing 2009.APR). This timeID is set by BPC automatically when processing the time dimension, and I need to ensure that my Version property value is set to match it.
    A key point is that in BPC fact tables, the time dimension is stored as TIMEID (not ID, unlike all the other dimensions), and can be used for comparative evaluation in script logic WHEN/IF. The comparison property needs to be stored as an 8-digit integer value. If your time dimension has days in it (along with months), check the TIMEID after processing, and you should see the pattern for assigning values to TIMEID for days and months, etc.
    Normally, TIMEID is assigned pretty sensible and stable values. If it doesn't meet your logic requirements, you can create another property (be careful of USERTIMEID, since that has a specific purpose in the system which I've never fully understood) and assign that whatever (integer) values make sense.

  • How to use the current view in script logic - %DIMENSIONNAME_SET% not work

    Hello,
    I have the requirement to use the values from the current view in the script logic. User would like to use the members which were selected from the current view in the calculation.
    We are using SAP BPC 7.0 SP06
    I have prepared the following scrpit:
    *XDIM_MEMBERSET TIME=$YEARS001$.NA
    *XDIM_MEMBERSET ACCOUNT=BAS(PLVEH_EXP)
    *SELECT(%CBU%,ID,BUSINESSAREA,[ID]='%BUSINESSAREA_SET%'")
    *SELECT(%CIO%,ID,INTERNALORDER,[ID]='%INTERNALORDER_SET%'")
    *RUNALLOCATION
    *FACTOR=USING
    *DIM BUSINESSAREA WHAT=BANA;WHERE=%CBU%;USING=<<<
    *DIM INTERNALORDER WHAT=IONA;WHERE=%CIO%;USING=<<<
    *DIM INDICATORS WHAT=INVEHPRI;WHERE=INPXQ;USING=INVEHQUA
    *ENDALLOCATION
    I have read in the sdn that it is possible to get the current values using %DIMENSIONNAME_SET% variable and use it but it returns all the members that were selected in the datapackage.
    I would like to know if there is any special consideration regarging the use of variable or if there is another way to solve it.
    Thanks in advance.

    Hi,
    If you want the code to be executed for the current view selected, you can place the code in Default logic which executes the logic for what ever current view values you send the data through Input schedule.
    The key word you have mentined is for script running through Data Manager which gets the value selected through user promt.
    Hope this helps,
    Regards,
    G.Vijaya Kumar.

  • FOR loop in script logic

    Dear Gurus,
    This is the logic I am working with:
    *FOR %MONTH% = 2008.FEB,2008.MAR,2008.APR,2008.MAY,2008.JUN,2008.JUL,2008.AUG,2008.SEP
    //CHECK IF THE VALUE OF THE ACCUMULATED DEPRECIATION IS GREATER THAN THE CAPITALIZED ASSET VALUE//
    [ACCOUNT].[#AccumDepr] = (([ACCOUNT].[AccumDepr]+[ACCOUNT].[Depreciation])>[ACCOUNT].[EQUIPMENT1]? [ACCOUNT].[EQUIPMENT1] : ([ACCOUNT].[AccumDepr]+[ACCOUNT].[Depreciation]))
    *NEXT
    I am trying to execute the above script logic, but the system is throwing an error that says 
    "Duplicate formula found:  [ACCOUNT].[#AccumDepr] = (([ACCOUNT].[AccumDepr]+......."
    Any idea why this is happening?
    Also, could you please suggest a better way of writing the above code?
    Thanks,
    Vijay.

    As a testing scenario, I have calculated the depreciation in a different part of the same logic.  Here it is:
    //This logic calculates the accumulated depreciation amount for the time period specified in the logic
    //NOTE:  This logic is not very dynamic and is only valid for the accounts specified in the logic
    //A FUTURE ENHANCEMENT TO THIS LOGIC WOULD BE TO MAKE THE "LIFE" OF THE ASSET A $DATAMANAGER VARIABLE$
    //AND WRITE A CUSTOM SCRIPT LOGIC
    //BEGIN SCRIPT LOGIC FILE//
    //CONSTANTS
    *XDIM_MEMBERSET CATEGORY=ACTUAL
    *XDIM_MEMBERSET ACCOUNT=Depreciation,AccumDepr,NBV_EQUIPMENT1,EQUIPMENT1
    *XDIM_MEMBERSET ENTITY=STORE1
    *XDIM_MEMBERSET TIME=2008.JAN,2008.FEB,2008.MAR,2008.APR,2008.MAY,2008.JUN,2008.JUL,2008.AUG,2008.SEP
    //BEGIN: POPULATE NET BOOK VALUE FROM CAPITALIZED ASSET VALUE //
    *WHEN ACCOUNT
    *IS EQUIPMENT1
         *WHEN TIME
         *IS 2008.JAN
              *REC(FACTOR=1,ACCOUNT="NBV_EQUIPMENT1")
         *ENDWHEN
    *ENDWHEN
    *COMMIT
    //END: POPULATE NET BOOK VALUE FROM CAPITALIZED ASSET VALUE   //
    //BEGIN: CALCULATE DEPRECIATION //
    *WHEN ACCOUNT
    *IS EQUIPMENT1
         *REC(EXPRESSION=(%VALUE%/6),ACCOUNT="Depreciation")
    *ENDWHEN
    *COMMIT
    //END: CALCULATE DEPRECIATION   //
    //BEGIN: CALCULATE ACCUMULATED DEPRECIATION AND NET BOOK VALUE //
    *FOR %MONTH% = 2008.FEB,2008.MAR,2008.APR,2008.MAY,2008.JUN,2008.JUL,2008.AUG,2008.SEP
    //CHECK IF THE VALUE OF THE ACCUMULATED DEPRECIATION IS GREATER THAN THE CAPITALIZED ASSET VALUE//
    *WHEN CATEGORY
    *IS ACTUAL
    *REC(EXPRESSION=IIF((([ACCOUNT].[AccumDepr] + [ACCOUNT].[Depreciation])>[ACCOUNT].[EQUIPMENT1]), [ACCOUNT].[EQUIPMENT1], [ACCOUNT].[AccumDepr]+[ACCOUNT].[Depreciation]))
    *ENDWHEN
    *NEXT
    //*FOR %MONTH% = 2008.FEB,2008.MAR,2008.APR,2008.MAY,2008.JUN,2008.JUL,2008.AUG,2008.SEP
    //CHECK IF THE NET BOOK VALUE OF THE ASSET IS LESS THAN ZERO//
    //*[ACCOUNT].[#NBV_EQUIPMENT1] = (([ACCOUNT].[NBV_EQUIPMENT1]-[ACCOUNT].[Depreciation])>0? ([ACCOUNT].[NBV_EQUIPMENT1]-[ACCOUNT].[Depreciation]) : 0)
    //*NEXT
    *COMMIT
    //END: CALCULATE ACCUMULATED DEPRECIATION AND NET BOOK VALUE   //
    //END SCRIPT LOGIC FILE//
    Please let me know if there is a better way to write this code.
    Thanks for all your help.

  • Raise an ERROR message from Script logic

    Hi All
    Here i have developed a custom copy funtion im not using standard copy functionality.
    I am trying to copy from working version to another version ex: V01 to V02. I have scoped these two versoins in script logic.
    But when user runs DM package for a different version other than v01 and v02 then user has to get the error message.
    Can i achive this by including some code in the script logic. i dont want to use the security options on user level.
    is there any function to raise error??
    Please suggest thanks in advance.
    Regards
    AK

    Hi AK,
    As I understood from your question, you want to copy always from V01 to V02. No other versions will be used other than these 2. So, it will be better to have them hardcoded in your script logic, instead of keeping error messages for the user. Anyways, you dont want the user to enter anything other than V01 and V02.
    Hope this helps.

  • Validate my script logic: reference erro LOOKUP is not defined

    Dear all,
    i want write one script logic. It use LOOKUP using FOR/NEXT.
    But when i check stament in my script logic: messesage erro: reference erro LOOKUP is not defined.Can you help me?
    My script logic
    *XDIM_MEMBERSET ACCOUNT=BS221
    *XDIM_ADDMEMBERSET CATEGORY = Actual
    *XDIM_ADDMEMBERSET ENTITY = CSO
    *SELECT(%TIME%,"[ID]",TIME,"[ID]>=2006.01 AND [ID]<=2006.02")
    *XDIM_MEMBERSET TIME = %TIME%
    *LOOKUP Rates
    *DIM  CATEGORY ="Actual"
    *DIM R_ACCOUNT ="AVG"
    *DIM R_ENTITY ="Global"
    *DIM INPUTCURRENCY="USD"
    *DIM MEASURES ="PERIODIC"
    *FOR %T% = %TIME%
    *DIM RATE_%T%: TIME =%T%  
    *NEXT
    *ENDLOOKUP
    *WHEN ACCOUNT
    *IS "BS221"
    *FOR %T1% = %TIME%
    *REC(EXPRESSION=LOOKUP(RATE_%T1%),TIME=%T%)
    *NEXT
    *ENDWHEN
    *COMMIT
    Thanks,
    Hungth

    Dear Vadim,
    I want test LOOKUP statement using FOR/NEX, then get value per member for member in LOOKUP.
    in excel add-in of Rates Model:
    Actual - Actual
    Average Rate
    Global Entity
    2006.01 - Jan 2006
    31
    2006.02 - Feb 2006
    30
    2006.03 - Mar 2006
    30
    2006.Q1 - Q1 2006
    30
    I want run my script logic above to get value from Rates Model ( 2006.01: 31, 2006.02 : 30, 2006.03: 30 ) to current model , to calculate in crurrent model.
    BS221 - Long Term Debt
    2006.01 - Jan 2006
    2006.02 - Feb 2006
    2006.03 - Mar 2006
    Actual - Actual
    31
    30
    30
    How i can write my script logic? My script logic statements is correct??
    Thanks,
    hungth

  • Lookup Script Logic

    Dear Freinds,
    I am trying to write script logic for learning LOOKUP fuction of script logic and written the below code in BPC 7.5 NW its not working. Please let me know my mistake .
    *XDIM_MEMBERSET TIME =2009.APR
    *XDIM_MEMBERSET P_ACCT=CE0004010
    *XDIM_MEMBERSET CATEGORY=ACTUAL
    *LOOKUP RATE
    *DIM TIME="2009.APR"
    *DIM CATEGORY="ACTUAL"
    *DIM R_ACCT="AVG"
    *DIM R_ENTITY="GLOBAL"
    *DIM RATEEUR:INPUTCURRENCY="INR"
    *DIM MEASURES="PERIODIC"
    *ENDLOOKUP
    *WHEN P_ACCT
    *IS "CE0004010"
    *REC(EXPRESSION=%VALUE%/LOOKUP(RATEEUR), RPTCURRENCY="INR")
    *ENDWHEN

    below is the UJTK log but I am not getting result. Please help me .
    LOG:
    FILE:\ROOT\WEBFOLDERS\BPC_Demo \ADMINAPP\MGT_CONSO\TEST.LGF
    USER:PARAGONDNS\BPC_CON
    APPSET:BPC_Demo
    APPLICATION:MGT_CONSO
    [INFO] GET_DIM_LIST(): I_APPL_ID="MGT_CONSO", #dimensions=8
    CATEGORY,MEASURES,P_ACCT,P_ACTIVITY,P_CC,P_DATASRC,RPTCURRENCY,TIME
    #dim_memberset=3
    TIME:2009.APR,1 in total.
    P_ACCT:CE0004010,1 in total.
    CATEGORY:ACTUAL,1 in total.
    REC :%VALUE%/LOOKUP(RATEEUR)
    CALCULATION BEGIN:
    QUERY PROCESSING DATA
    QUERY TIME : 1535.45 ms. 2  RECORDS QUERIED OUT.
    QUERY REFERENCE DATA
    QUERY LOOKUP DATA FROM APPLICATION: RATE
    QUERY TIME : 416.49 ms. 1  RECORDS QUERIED OUT.
    CALCULATION TIME IN TOTAL :123.38 ms.
    1  RECORDS ARE GENERATED.
    CALCULATION END.
    SCRIPT RUNNING TIME IN TOTAL:2.42 s.

  • Clarification required in Script Logic

    Hi All,
    I had written a Script logic which copies the data from one dimension member of entity to another entity.
    The script that we used is pasted here for reference:
    "//Logic for Revenue Transfer for one account to account
    *XDIM_MEMBERSET CATEGORY = BUDGET
    *XDIM_MEMBERSET P_ACCT = REV000003, REV000007, REV000008
    *XDIM_MEMBERSET P_ACTIVITY = P_ACTIVITY_NONE
    *XDIM_MEMBERSET P_DATASRC = U
    *XDIM_MEMBERSET ENTITY = U_RCL_INP, U_MFG_INP, U_FSI_INP, U_ECS_INP, U_KS_INP, U_INDIA_INP, U_BIZP_INP, U_SI_INP
    *XDIM_MEMBERSET INTCO = I_U_RCL, I_U_MFG, I_U_FSI, I_U_ECS, I_U_KS, I_U_INDIA, I_U_BIZP, I_U_SI
    //Revenue Transfer from P_ACCT REV000003 to P_ACCT REV000004
    *WHEN P_ACCT
    *IS "REV000003"
    *REC(FACTOR=1,P_ACCT=REV000004 ,INTCO=ENTITY.INTCO,ENTITY=INTCO.ENTITY)
    //Revenue Transfer from P_ACCT REV000007 to P_ACCT REV000012
    *IS "REV000007"
    *REC(FACTOR=1,P_ACCT=REV000012 ,INTCO=ENTITY.INTCO,ENTITY=INTCO.ENTITY)
    //Revenue Transfer from P_ACCT REV000008 to P_ACCT REV000009
    *IS "REV000008"
    *REC(FACTOR=1,P_ACCT=REV000009 ,INTCO=ENTITY.INTCO,ENTITY=INTCO.ENTITY)
    *ENDWHEN"
    The above script logic is not working if the user doesnt have access to the other entity to which data is copied into.
    However, as per our business requirement, we need to restrict the access to the users to thier respective entites.
    Hence, i would be glad to know, How can I overcome this limitation, or, how can I bypass the authorization through script logic??
    Let me know incase you require any further information about the issue.
    Thanks in Advance
    Regards,
    Chandra

    Hi Nilanjan,
    As Anurodh said, The command *IGNORE_SECURITY is not recognised in the BPC NW. I tried, but is not validated.
    Anurodh,
    Thanks for the link. Seems it is helpful.
    Regards,
    Chandra

  • An error in Script Logic

    Hi Experts,
    I have a problem with one of the FXTranslation logicu2019s in one of my report can u please help me on that.
    The logic works fine for 2 reports out of 3, for the 3rd report I donu2019t know why itu2019s not doing the translation to USD. As far as the design of the report goes the 2 reports for which translation works fine comprises of 2 logics one for percentage allocation and other for translation from LC to USD, whereas the 3rd report needs only translation but doesnu2019t need the allocation logic to be run.
    The conversion for the 3rd report happens if I comment out the allocation logic. Both these logics are mapped to Default.LGF file. I am unable to figure out what could be the error.
    Below is the Script Logic for Aloocation and Translation:
    //Budget Allocation
    *SELECT(%CURR%,"[ID]","RPTCURRENCY","[CURRENCY_TYPE]='L' OR [CURRENCY_TYPE]='R'")
    *XDIM_MEMBERSET RPTCURRENCY=%CURR%
    *RUNALLOCATION
    *FACTOR=USING/1
    *DIM ACCOUNTB WHAT=[IS_ALLOC]='Y'; WHERE=<<<; USING=ALLOCPER
    *DIM PRODUCTM WHAT=NOPRODUCT; WHERE<>NOPRODUCT; USING=<<<
    *ENDALLOCATION
    *COMMIT
    // Currency Translation
    *SELECT(%REPORTING_CURRENCIES%, "[ID]", "RPTCURRENCY", "[REPORTING] = 'Y'")
    *SELECT(%FX_RATES%, "[ID]", "RATE", "[GROUP] = 'FX RATE'")
    // Load the rates from the RATE cube
    *LOOKUP RATE
                *DIM CATEGORY="BUDGET"
         *DIM RATEENTITY="GLOBAL"
         *DIM RATE=ACCOUNTB.RATETYPE
         *DIM SOURCECURR:INPUTCURRENCY=LEGALENTITY.CURRENCY
         *FOR %CURR%=%REPORTING_CURRENCIES%
              *DIM %CURR%:INPUTCURRENCY="%CURR%"
         *NEXT
    *ENDLOOKUP
    //  define the translation rule
    *WHEN ACCOUNTB.RATETYPE
    *IS "NOTRANS"
         // skip
    *IS %FX_RATES%
               // translate
         *FOR %CURR%=%REPORTING_CURRENCIES%
              *REC(FACTOR=LOOKUP(%CURR%)/LOOKUP(SOURCECURR),RPTCURRENCY="%CURR%")
         *NEXT
    *IS "COPYLC"
         // take as is
         *FOR %CURR%=%REPORTING_CURRENCIES%
              *REC(RPTCURRENCY="%CURR%")
         *NEXT
    *ENDWHEN
    *COMMIT
    // Default
    // FX Translation
    *include FXTranslation.lgf
    // Budget Allocation
    *include BudgetAllocation.lgf

    Hi Naresh,
    One thing that helped me solve the problem was I needed to use different set of Dimension members/property in the Logic i.e What, Where and Using to trigger off the Curency Translation.
    But please make sure that you use try to understand a unique dimension (member/property) used and use that to trigger off the translation or anything for that matter. My other two translations were working fine as the parameters i used were unique for them whereas the remaining one needed alteration in the logic only in the parameters used in What, Where and Using, so had to add one more set of Translation Logic for this exclusively.
    Another point you need to check in your Rate Application is whether you have your Reporting Currency as value 1, say for eg USD is your reporting currency then the value in Rate Application for USD must be 1, if u by mistake cleared of this value when using the Clear Data Manager Package so the multiplication with 0 results in no conversion.
    These were the two points that helped me solve my issue. I hope it helps.
    Rgds,
    Rizwan
    Edited by: Rizwan Mustaffa on Jul 13, 2009 12:09 PM

  • Handling Ranges in Script Logic

    Hi Experts
    Is it possible to put logic to check a range of values in Script Logic.
    For example, if I need to check if the value in Quantity Account is between 200 and 800, then only some Quantity Discount is calculated against this.
    What command should one use for this
    Any input would be very helpful.
    Regards
    Krishnendu

    Hi Krishnendu,
    I believe that you can use MDX or a BADI to do this. Using MDX, for example, the following should write 100 to the QUANT_DISC account in the event that QUANTITY is greater than 200 and less than 800:
    [ACCOUNT].[QUANT_DISC] = IFF(([ACCOUNT].[QUANTITY]) > 200,IIF(([ACCOUNT].[QUANTITY])<800,100,0),0)
    This is just example MDX code - you'll have to adapt and test yourself. I suggest using the script logic tester to speed the process. Performance may be less than ideal, and you can certainly implement this in a BADI in that event.
    It would be nice if it were possible to do this using WHEN/IS statements in script logic, but at present conditional logic based on measure values is not supported in that context.
    Ethan

  • What is " " in script logic

    Dear experts,
    In script logic, there are "<<<" and ">>>" signs. Does anyone know their meanings and how to use them?
    I appreciate you'r help.
    Regards,
    Simon

    Hi,
    Pls chk this;
    https://websmp108.sap-ag.de/~form/sapnet?_SHORTKEY=01200252310000085368&_SCENARIO=01100035870000000112&_OBJECT=011000358700001123512008E
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/80ffae4b-99d5-2a10-4e9f-96149969aabb
    Regards
    CSM Reddy

  • Syntax in script logic

    Hi Friends,
    I have input schedule in below format.
    Product   Rate/2011.INP  Packing/2011.INP QTY/2011.APR AMOUNT/2011.APR QTY/2011.MAY AMOUNT/2011.MAY
    PM         3                 3              3               27            4         36
    PN        5            2          2          20     3  30
    Here Amount= Rate*Packing*QTY. Pls correct below script logic and make it generic for all months.
    *XDIMMEMBERSET TIME=2011.APR,2011.MAY,2011.INP
    *XDIMMEMBERSET ACCT=QTY,RATE,PACK,AMOUNT
    *WHEN ACCT
    *IS QTY
    *WHEN TIME
    *IS 2011.APR,2011.MAY,2011.INP
    *REC(EXPRESSION=%VALUE% * ([ACCT].[RATE],[TIME].[2011.INP])
                             * ([ACCT].[PACK],[TIME].[2011.INP]),
                                 [ACCT]=AMOUNT,[TIME].[2011.APR])
    *ENDWHEN
    *ENDWHEN
    *COMMIT
    Thanks,
    Naresh

    Hi,
    You can simply write this using MDX formula,
    [ACCT].[#AMOUNT]=[ACCT].[PACK]*([ACCT].[RATE],[TIME].[2011.INP])*([ACCT].[QTY],[TIME].[2011.INP])
    Run this code with required months from DM package it gets executed for defined time periods.
    Hope this helps,
    Regards,
    G.Vijaya Kumar

Maybe you are looking for

  • Error while running SAP installation of IDES 4.7  (SAPVIEW.log)

    Dear Support, I am installing IDES 4.7 version in Windows 2003 with Oracle 9.2. Central instance is successfully completed. At the Database Instance creation, in the step DATABASE LOAD status is - R3load jobs: running 2 waiting 0 exceptions occur and

  • How to update my Q10 OS version from 10.2.0 to 10.2.1 ? who can help me?

    i bought my q10 from hong kong china ,but now i am living beijing chian,the sim is china unicon, now my os version is 10.2.0.1791 . how can i update to 10,2.1?I hope to get help. thanks

  • How to save the structure of a formatted text in adf faces output component

    Hi all please help me. I need to display my formatted text (with line breaks) in the jsf page. How can i do this. If i use OutputText all my line break ("\n") are ignored, the same effect with OutputFormatted component. I have tried to substitute lin

  • Image control in infopath 2010

    hello and sorry for my english. with infopath 2007 I could use the "Picture Control" to load inside the xml a reference to an image present in the system's resources. when the user is entering data, clicking on the "Picture Control" show a dialog box

  • Saving tabs in firefox 4

    Dear Firefox Technicians; I upgraded to Firefox 4 and when I closed the program, there is no prompt to save the current tabs. In fact, I lost a number of projects that I was searching on this situational change. Is there a way that Firefox 4 could ha