Use Counter in Script Logic

Hi guys, I have code in default logic which starts its run if one of several accounts data has been sent. However, when I send data for 2 accounts from *WHEN/IS condition, this script logic runs 2 times and result doubles, while I need it to work only once. Here is a code:
*WHEN P_ACCT
*IS "PAC10064", "PAC10065", "PAC10066", "PAC10067"
*REC(EXPRESSION=[P_ACCT].[PAC10064] + [P_ACCT].[PAC10065] + [P_ACCT].[PAC10066] + [P_ACCT].[PAC10067], P_ACCT="PAC10068")
*ENDWHEN
*COMMIT
Is there any option to put Counter in BPC Logic, like in VBA where I can put code like this
Y=0
*WHEN P_ACCT
*IS *
IF Y=0
*do calculation
Y=Y+1
END IF
ENDWHEN
Looking for help. Thank You.

Nilanjan,
1. Is there any option to generate intersection within %VALUE% with something else but not with so many *WHEN/ENDWHEN? The reason why I'm asking is that we have 300 calculations to develop and hadle in Script Logic and this will be quite a toughcode to maintain for client afterwards
2. And another question: with 2 *SELECT statements we get 2 pools of Accounts, which we need divide ( SUM(Pool1)/SUM(Pool2) ). What I need to write in EXPRESSION and is there any chance to avoid FOR/NEXT in this case?
*SELECT(%ACCOUNT1%, "[ID]", P_ACCT, "[SUBFUNC_ID]='SUB09'" AND "[TYPE]='u0417u0430u0442u0440u0430u0442u044B'" AND "[CALC]='N'")
*SELECT(%ACCOUNT2%, "[ID]", P_ACCT, "[SUBFUNC_ID]='SUB07'" AND "[TYPE]='u0417u0430u0442u0440u0430u0442u044B'" AND "[CALC]='N'")
*SELECT(%COSTCENTER%, "[ID]", COSTCENTER, "[TYPE_ID]<>'TP11'" AND "[CALC]='N'")
*XDIM_MEMBERSET COSTCENTER=%COSTCENTER%
*WHEN P_ACCT
*IS *
*DESTINATION_APP = KPI
*SKIP_DIM = COSTCENTER_SEND
*ADD_DIM AGGREGAT = AGR2, WORKSHOP_LINE = WSL2, STOCK_CATEGORY = STC2, PARTNER = PRN2, RESOURCE_TYPE = RTT2, SALE_PROJECT = SLP2
*REC(EXPRESSION=................, COSTCENTER="CCN2", P_ACCT="PAC30318")
*ENDWHEN

Similar Messages

  • Having issue using TMVL in script logic

    Hello experts,
    We need to replicate the behaviour of the copy opening Bal through script logic.
    Below is my code:
    where user selects only entity when he runs package,time is derived from property.
    // Year from version property
    *SELECT(%YEAR%,"[YEAR]","Z_VERSION","[ID]='BUD'")
    // Months
    *SELECT(%MONTHS%,"[ID]","Z_TIME","[YEAR]=%YEAR% AND LEVEL='MONTH'")
    *XDIM_MEMBERSET Z_TIME=%MONTHS%   (for ex:My first month is 2009.jan(ope month)
       *WHEN ACCT
               *IS CHC          
            *REC(FACTOR=1, ACCT="CHC",Z_TIME=TMVL(1,%MONTHS%))  ( for ex:2009.feb,nxt month)
        *ENDWHEN
    When i run the above logic in debugger TMVL doesn't show next month.
    If i hardcode time in my xdimmemberset to (*XDIM_MEMBERSET Z_TIME=2009.JAN) and change my TMVL in my REC statement to TMVL(1,2009.JAN)).Logic works fine.
    Please tell me how can we pass dynamic variables to TMVL.
    *REC(FACTOR=1, ACCT="CHC",Z_TIME=TMVL(1,%MONTHS%))
    Thanks

    copying closing bal of prev month to nxt month.
    for ex:
    Account     jan 2009    Feb 2009    Mar 2009
    HC_PLAN     10.00      11.00      21.00
    CHC          10.00      11.00        11
    TI                     1.00                      1.00
    TO                      2.00      1.00          2.00
    AP                      3.00                       3.00
    RT                       4.00                        4.00
    My logic needs to copy values from HC_PLAN (parent) to CHC. I have written ope_bal logic in MS version.
    In NW i cannot use next (i am using TMVL),calc_dummy_org,calc_each_period.
    Please tell me how can i get values from a parent (HC_PLAN).
    Is Calculate_Difference is supported in BPC7.5NW?
    Below is my updated code
    *SELECT(%Year%,"[YEAR]","Z_Version","[ID]='ACTUAL'")
    *SELECT(%Months%,"[ID]","Z_Time","[YEAR]=%Year% AND [LEVEL] = 'MONTH'")
    *XDIM_MEMBERSET Z_TIME=%Months%
    *XDIM_MEMBERSET EB_ACCT = CHC,TI,TO,AP,RT
    *WHEN EB_ACCT
               *IS CHC,TI,TO,AP,RT         
                      *FOR %MonthCopy% = %Months%
                           *REC(FACTOR=1,EB_ACCT="CHC",Z_TIME=TMVL(1,%MonthCopy%))
                        *NEXT
                 *ENDWHEN

  • Using variables in script logic.

    Hi,
    I still haven't figured out how to assign a userdefined variable in a script.
    My case is that I in my script commits data several times, after every commit I need to do a new *XDIM_MEMBERSET. Every time the *xdim_memberset is exactly the same.
    Example - what I do now.
    *XDIM_MEMBERSET ACCOUNT="REVENUE"
    *XDIM_MEMBERSET VERSION="90"
    *rec
    *commit
    *XDIM_MEMBERSET ACCOUNT="REVENUE"
    *XDIM_MEMBERSET VERSION="90"
    *rec
    *commit
    Etc.
    It would be much easier, if I the beginning of each script for Account and Version defined a variable, and then having every *xdim_memberset use the variable. Then I only need to change the definition of the variable in the beginning of each script.
    Example - what I want to achieve.
    //Definition of constant variables.
    %ACCOUNT_VARIABLE%= "ACCOUNT = REVENUE"
    %VERSION__VARIABLE% = "VERSION=90"
    *XDIM_MEMBERSET %ACCOUNT_VARIABLE%
    *XDIM_MEMBERSET VERSION=%VERSION__VARIABLE%
    *rec
    *commit
    *XDIM_MEMBERSET %ACCOUNT_VARIABLE%
    +*XDIM_MEMBERSET VERSION=%VERSION__VARIABLE%
    *rec
    *commit
    I've looked at the *SELECT and *MEMBERSET - but can't really get the syntax to work.....
    Thank you,
    Joergen
    Edited by: Jørgen Dalby Andersen on Dec 30, 2011 7:58 AM

    Hi,
    when I use *XDIM_MEMBERSET ACCOUNT AS %TEST% = BAS(REVENUE) - it work fine.
    BUT ! after my first commit, it seems like the variable value is lost. And the *Xdim_memberset takes all.....
    Fortunately enough, *select still contains the variable value after *commit.
    Thanks,
    Joergen
    *Correction !
    It actually works, it still contains the variable value after commit !!
    Edited by: Jørgen Dalby Andersen on Dec 30, 2011 1:33 PM

  • Line numbers in Script Logic editor

    Hi everybody,
    when using the default Script Logic editor in BPC NW I can not see any Line Numbers (or Column Numbers) in the edited script.
    When an error is detected by the system after validating the script, the error message sometimes refers to a certain Line Number where the error occured.
    Is there a better way than manually counting the lines from the top (which can be quite a task when editing, say 500 lines) ?
    Do I miss something here or are you all using alternative editors ?
    Please give me some input.
    Regards.
    Wolfgang

    Hi Nilanjan,
    thanks for the quick answer.
    That would mean that I always need to switch from BPC frontend Script Editor into BW and start a transacion and program there. I would have hoped, that simole line numbers would be a standard feature in the BPC frontend editor itself. Nevertheless...
    Best regards.
    Wolfgang

  • Script Logic choice SQL or MDX in NW release?

    Hi experts,
    I have encountered some opposite arguments in forum. Please can you clarify NW release script logic choice should be as MS release?
    In [Script Logic BPC MS (SQL) vs. NW (ABAP); Tim Klem states
    - "Write the logic using BPC SQL script logic syntax (not MDX) for performance reasons" but this opinion based on MS version. How about NW release is it really smarter to select SQL Script rather than MDX.
    There is another statement in [Re: BPC 7 NW; Deppak mentions that:
    - "In BPC 5.1 the script formula approach suggests to use SQL based logic instead of MDX.
    Whereas in Teched,08, I learnt that MDX & ABAP (using BADIs) would be used for it. Thats why I am slightly confused...."
    But second statement is far beyond NW relase date and I am sure this is not true but I would like you to confirm that.
    If you were a project responsible and want that all scripts will be held in one language, what would you choose??
    Thanks in advance,
    ergin ozturk

    Hi Ergin,
    I can understand your approach not to use ABAP hence you miss the skills witin your project team.
    However, you (or you client) has chosen the NetWeaver version for whatever reason. I'm sure a thorough decisions process has lead to this decision. In choosing the NetWeaver version with SAP BI you will sooner or later come to the point that you will have to use ABAP if you like it or not. Especially when you start using further capabilities within NetWeaver and the BI solutions. So from my point of view ABAP knowledge is an essential skill you need in a project based on SAP NetWeaver anyway.
    Additionally I heared some statements that MDX is causing some performance issues on the NetWeaver version. This may have been fixed in the meantime with some SPs.
    As the SQL within the NetWeaver verison does not have the full functionality than it has in MS Version SQL is not an option for me.
    I do also not see the cost impact hence someone need to do the support anyway. In case of MDX you need an MDX developer, in case of ABAP and ABAP developer. Or a technical BPC consultant able to do the development (which I would recommend you should have in your project team anyway).
    So coming back to your original question, I would recommend to do as much as possible using ABAP BADIs.
    Cheers,
    Steffen

  • Referring to SQL comment table in Script Logic

    Dear all,
      If i have the following combination of dimensions, i.e. "DimA, DimB and DimC", and they will point to a comment in the comment table in SQL, how do i grab the [Comment] from the comment table to be used in my script logic.
      I was adviced to use *select statement, but i can't seem to get it to work.
      Any help is much appreciated.
    Cheers,
    Lip Chean

    Hi,
    *Select allows you to retrieve a list of elements from a dimension or table and save it in a user-defined variable for later use anywhere else in the logic.
    For example, with this instruction:
    *SELECT(%REPORTING_CURRENCIES%, u201CIDu201D, u201CCURRENCYu201D, u201C[GROUP] = 'REP'u201D)
    In this case, you retrieve the ID of all members in the CURRENCY dimension where the property GROUP has the value REP. Running this example fills the variable %REPORTING_CURRENCIES% with the list of reporting currencies defined in the current application.
    Important information
    xxx The SELECT statement generates a SQL query, and NOT an MDX query. This implies that it can be executed against any SQL table existing in the application set database, and not just against the properties of a dimension in the cube. The prefix "mbr" is automatically added to any name entered in the table parameter. Otherwise, the name of the table is taken as is. If
    you want to select a list of elements from a dimension using an MDX query use *MEMBERSET statement.
    xxx In case any parameter contains embedded commas the entire parameter must be enclosed in an extra set of double quotes.
    xxx The *SELECT statement is executed at the time the logic is validated, and the expanded result is written in the LGX file. This means that if the related dimension is modified, it may be necessary to re-validate the logic.
    xxx Statements returning no members do not necessarily cause the validation of the logic to fail. In this case a warning is entered in the validation log.
    xxx These instructions are not specific to a given logic section, but they can be written once anywhere in the logic and used across multiple commit sections.
    Hope this helps.
    Badrish

  • Can we calculate difference of  dimension properties values in script logic

    HI
    I have 3 products, whose manufacturing process starting perod and end periods are different for three products. Now I want
    to distribute total  manufactuing cost to those periods only for each product.  how will write script logic  for this senario.
    My system is BPC nw7.5
    Mahi

    Hi,
    So, you want to find the difference between the dates and distribute the cost among them. I dont think this will be feasible using script logic. My suggestion would be use BADI. Script logic cannot do manipulation on the properties. BADI will be much easier. In addition to this, you need to think what should be the destination of the result. Every record is going to generate few records (depending on the number of months).
    Hope this helps.

  • Question on script logic

    Have a property for the category dimension, u201CFX_SOURCE_CATEGORYu201D.  The values for this property is another category dimension member.  For example FCST01_P_FR have property value as FCST01 and FCST02_P_FR have property value as FCST02 and so on.
    Using a dynamic script logic, want to copy the data in FCST01 to FCST01_P_FR if I choose FCST01_P_R in the selection while running the script.  Simiarly FCST02 to FCST02_P_FR if I choose FCST01_P_R in the selection while running the script. 
    Again the script should dynamic to get the data from category property value member and write to the category member that is chosen during the script run.
    I tried the following scripts and it is not working
    Script 1:
    *WHEN RPTCURRENCY
    *IS LC
    *WHEN ACCOUNT
    *IS BAS(EXPENSES)
    *WHEN CATEGORY
    *IS CATEGORY.FX_SOURCE_CATEGORY
         *REC(FACTOR=1)
         *ENDWHEN
    *ENDWHEN
    *ENDWHEN
    *COMMIT
    Script 2:
    *WHEN RPTCURRENCY
    *IS LC
    *WHEN ACCOUNT
    *IS BAS(EXPENSES)
         *REC(EXPRESSION = ([CATEGORY].[CATEGORY.FX_SOURCE_CATEGORY]))
         *ENDWHEN
    *ENDWHEN
    *ENDWHEN
    *COMMIT
    Edited by: Al Sathappan on Oct 11, 2011 9:03 PM
    Edited by: Al Sathappan on Oct 11, 2011 9:04 PM
    Edited by: Al Sathappan on Oct 11, 2011 9:04 PM
    Edited by: Al Sathappan on Oct 11, 2011 9:07 PM

    You have data in FCST01. It means that this member will appear in WHEN-ENWHEN loop. You have to define property of THIS member like "FX_TARGET_CATEGORY" and assign this property value FCST01_P_FR.
    Then you will have simple REC:
    *REC(EXPRESSION=%VALUE%, CATEGORY=[CATEGORY].[FX_TARGET_CATEGORY])

  • Script Logic: Using a property in MDX *REC statement (BPC NW)

    Hi,
    Is it possible to use a Property in an MDX statement without using  *LOOKUP() function? I have script successfully working but it takes 15 minutes to execute and would like to speed it up.
    I understand that [DIMENSION].[MEMBER].Property is not valid syntax, and do not believe NW has any other functions to resolve the issue, except *LOOKUP which takes a long time.
    Specific Example is below:
    I have a piece of script that successfully splits JV Expense by customers. A Profit Share planning driver determines the percentage that each customer is entitled to. Typically this will be 100%, but could be 50% between two customers.
    The PROFIT SHARE planning drivers records, and PARTNER_INCOME transactional records are below:
    ACCOUNT
    ENTITY
    PARTNER
    SIGNED DATA
    PROFIT_SHARE
    UK_001
    PARTNER_A
    0.5
    PROFIT_SHARE
    UK_001
    PARTNER_B
    0.5
    PROFIT_SHARE
    UK_002_PLANNING_DRIVERS
    PARTNER_B
    1.00
    PARTNER_INCOME
    UK_001
    NO_PARTNER
    $5,000
    PARTNER_INCOME
    UK_002
    NO_PARTNER
    $5,000
    UK_001 has two partners that are each entitled to 50% of the $5,000 NET PROFIT.
    For UK_002, one one single Partner is entitled to 100% of the $5,000 NET PROFIT.
    Using script logic, you can scope the Profit Share account (PROFIT_SHARE) - , and use a *REC statement to multiply this by the driver. It would look like:
    *XDIM_MEMBERSET ACCOUNT = PROFIT_SHARE
    *WHEN ACCOUNT
    IS *
    *REC (EXPRESSION = %VALUE% * ([ACCOUNT].[PROFIT_SHARE],[PARTNER].[NO_PARTNER]), ACCOUNT = PARTNER_PROFIT_SHARE)
    *ENDWHEN
    This wouldn't be a problem if the Planning Driver is always stored on the same Entity that the Income is stored on, but for UK_002, the planning driver is stored on another Entity - which is stored in a the PLAN_DRIVER_REF property of the entity. It should use UK_002_PLAN_DRIVERS
    ID (Entity)
    PLAN_DRIVER_REF
    UK_001
    UK_002
    UK_002_PLAN_DRIVERS
    UK_002_PLANNING_DRIVERS
    In this scenario, we need to switch out the Entity used in the MDX, however I do not believe you can use a property in MDX - can anyone confirm?
    I have currently implemented the *LOOKUP functionality to loop through, changing each *LOOKUP partner for each loop.
    Lookup:
    *LOOKUP PLANNING_JV_US
    *FOR %LOOP_ASLS% = %ASL_LOOKUP_LOOP_VARIABLE%        
      *DIM LOOK_%LOOP_PARTNERS%:ACCOUNT = "PROFIT_SHARE"
      *DIM LOOK_%LOOP_PARTNERS%:PARTNER= %LOOP_PARTNERS%
    *NEXT
    *DIM ENTITY = ENTITY.PLAN_DRIVER_REF                   //   Use PLAN_DRIVER_REF Property of Entity
    *ENDLOOKUP
    Scope and *REC:
    *XDIM_MEMBERSET ACCOUNT = PROFIT_SHARE
    *WHEN ACCOUNT
    IS *
    *FOR %LOOP_PARTNERS% = %PARTNER_LOOKUP_LOOP_VARIABLE%      // 1000 Partners
    *REC(EXPRESSION = %VALUE% * LOOKUP(LOOK_%LOOP_PARTNERS%), PARTNER= %LOOP_PARTNERS%, ACCOUNT = TCOJVSHAR_CALC, AUDIT_ID = PP_EXPENSE_BY_PARTNER)
    *NEXT
    *ENDWHEN
    The problem with the above, is that because the Lookup is being generated for every single Partner, there are significant numbers of loops.
    Does anyone know of another way this can be implemented in Script Logic? Otherwise we'll need to explore BAdI route.
    Thanks,
    Nick

    Hi Nick,
    Use property in LOOKUP - will dramatically speed up the calculation without FOR/NEXT.
    Vadim

  • How to copy applications using script logic with conditions

    Hi,
    I have two copy data between application A to application B, but only i want to copy the March's Data of Application A. Dimensions are the same in both applications
    I'm going to use this script logic, ¿this script will work?
    *WHEN TIME
    *IS "2009.MAR"
    *DESTINATION_APP=B
    Thanks in advance
    Regards,
    Juan

    Hi all,
    Finally I solved the issue, the problem was that i haven't add this line in the script logic:
    TASK(Execute formulas,USER,%USER%)
    But now i need to pass in the script logic as an input: entity and time. Below is the code I prepare, it has no error but it doesn't work. ¿any idea?
    Thanks in advance
    Regards,
    Juan
    *SSIS PACKAGE *
    'DEBUG(ON)
    PROMPT(RADIOBUTTON,%CHECKLCK%,"Select whether to check work status settings when running logic.",1,{"Yes, check for work status settings before running logic","No, do not check work status settings"},{"1","0"})
    PROMPT(SELECTINPUT,,,"Please select entity and time to copy data from LegalAppNceu to LegalApp",%ENTITY_DIM%%TIME_DIM%)
    TASK(Execute formulas,USER,%USER%)
    TASK(Execute formulas,APPSET,%APPSET%)
    TASK(Execute formulas,APP,%APP%)
    TASK(Execute formulas,LOGICFILE,%APPPATH%..AdminApp%APP%CopyApplication.lgx)TASKTASK(Execute formulas,RUNMODE,1)
    TASK(Execute formulas,LOGICMODE,1)
    TASK(Execute formulas,CHECKLCK,%CHEKCLCK%)
    SCRIPTLOGIC
    *DESTINATION_APP=LEGALAPP
    *SKIP_DIM= COSTCENTER
    *WHEN ENTITY
    *IS "%ENTITY_DIM%"
    *WHEN TIME_DIM
    *IS "%TIME_DIM%"
    *REC(FACTOR=1)
    *ENDWHEN
    *ENDWHEN
    *COMMIT

  • 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.

  • Hierarchy to use in Script Logic

    Hello Experts
    I am trying to transfer the Profit/(Loss) from P&L to Reserve Account in the Balance Sheet by running a script logic.
    I am using BPC 10 NW 7.4
    The hierarchy of  P&L, is designed to calculate the Profit of Loss for the period. I wrote the script by selecting node in the hierarchy and transfer to reserve account. However it is not working.
    To test my logic, instead of hierarchy, I tried with a base level account member, it is working.
    Following is the body of my logic.
    WHEN ACCOUNT.PARENTH1
    IS <P&L AFTER TAX> // The node which aggregate the value
    REC (EXPRESSION = %VALUE%, ACCOUNT = <RESERVE ACCOUNT>)
    How could I resolve it?
    Your expert ideas are much appreciated
    Kind Regards
    Abraham

    Hi Abraham,
    Nodes are not looped in WHEN/ENDWHEN, only base members.
    If you want to copy the node value to some target the best way is:
    *XDIM_MEMBERSET ACCOUNT=BAS(SOURCENODE)
    *WHEN ACCOUNT
    *IS * //scoped as base members of node
    *REC(EXPRESSION=%VALUE%,ACCOUNT=TARGETBASE)
    *ENDWHEN
    B.R. Vadim

  • Use BADI or LGF script logic? Which is good in performance

    Hello,
    I have a situation wherein a choice is to be made among the "BADI" or "script logic" having DESTINATION_APP which is along with WHEN clause.
    Below is the code in which WHEN clause is used:
    Code Starts****
    XDIM_MEMBERSET CATEGORY=FC_CUR
    *DESTINATION_APP=GROSSMARGIN
    *SKIP_DIM =WEEK
    *ADD_DIM PLAN_PARTNER = PP_NA, RPTCURRENCY = LC
    *WHEN CATEGORY     
        *IS "FC_CUR"     
                  *REC(EXPRESSION=%VALUE%)
    *ENDWHEN
    *****Code Ends****
    The business requirement could be changing as we are at initial stage, wherein i may have to incorporate some data mapping logic which can also be handled through scripts instead of using BADI.
    The major concern is if BADI would be most prefferable over script logic having WHEN clause to acheive the optimal performance considering large no. of records that needs to be written to the target APPLICATION
    from the source application?
    OR
    The script with WHEN statement is fine if the data mapping is pretty simple and would not have much impact on performance compared to using of BADI even if the records to be moved is huge.

    If data mapping is simple you can opt for script logic . If requirement is complex then you can go for BADI . You can check this [How-to|http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/70187b3e-d5ce-2d10-d780-bb8b1a5b0bdc?QuickLink=index&overridelayout=true] 6 th page on performance considerations of BADI .
    A well designed BADI implementation is faster than script logic

  • Use of prompted hierarchy's base members in Script Logic

    Hello all,
    I have a data manager package which prompts the user for a dimension called P_BUDGET_MODEL. The prompt is SELECT hence the user selects a hierarchy node on this dimension.
    In the relevant Script Logic I have a variable %P_BUDGET_MODEL_SET%, which is automatically created by the system. I would like to run the logic for the basemembers of the hierarchy node.
    Please note - the basemembers are not direct children of the selected hierarchy node (i.e. the selected node is the "grandparent" of the basemembers).
    I tried the following simple logic command:
    *XDIM_MEMBERSET P_BUDGET_MODEL = BAS(%P_BUDGET_MODEL_SET%)
    It yielded a message that "Member BAS() does not exist".
    I have also noticed the following thread:
    [BPC 7.5 NW - HIER NODE in PROMPT using Formule in Package ?;
    If I understood properly it is not relevant to my case because the hierarchy is more that 2 levels deep.
    Any ideas?
    TIA
    Avihay

    Hi,
    As it seems after further investigation the problem is that I use "_" in the dimension names and variable names. This creates a problem to BPC in some cases.
    For example here there is no problem:
    *SELECT(%MODEL%,ID,P_BUDGET_MODEL,ID="%P_BUDGET_MODEL_SET%")
    Here there is a problem hence the use of [ ]
    *XDIM_MEMBERSET P_MONTH = BAS([%P_VERSION_SET%.YEAR].TOTAL)
    Here there is not "_" so the code is fine:
    *XDIM_MEMBERSET P_BUDGET_MODEL = BAS(%MODEL%)
    Strange yet seems that this was the problem...
    Avihay

  • Use of Variable in Script Logic

    Dear All,
    We are working on a BPC Script Logic involving depreciation calculation, which calls an implementation of the BAdI BADI_UJ_CUSTOM_LOGIC. We are passing some parameters from the script logic to the BAdI. There are two parameters to be passed: an account number (Account in which the posting will happen), and the rate (rate with which depreciation will be affected). The parameters are stored in the Dimension member of the account dimension and need to be fetched from there. We are using the following piece of code to achieve this:
    *INCLUDE FUNCTIONS.LGF
    [#PERC] = PRO([%ACCOUNT_DIM%].CURRENTMEMBER,DEP_PERCENTAGE)
    [#DEPACCOUNT] = PRO([%ACCOUNT_DIM%].CURRENTMEMBER,DEP_ACCT)
    *START_BADI DEPR
    QUERY = ON
    WRITE = ON
    DEPACCT = [#DEPACCOUNT]
    PERCENTAGE = [#PERC]
    *END_BADI
    Here, FUCNTIONS.LGF contains the PRO function, which fetches the account and percentage properties from the account dimension member. Problem is, when we refer to the temporary variables within our code using the variables [#DEPACCOUNT] and [#PERC], we encounter a short dump for CX_SY_CONVERSION_NO_NUMBER. We suspect that instead of passing the parameter values, the logic is passing the variable name as the value. How do we rectify this? What is the correct syntax for passing such a parameter to the BAdI? Any ideas?
    Thanks in Advance,
    Sid

    Hi Ethan,
    Thanks for the answer. Unfortunately, even after trying out your solution with K2 variables, we are getting the same dump, this time the log says:
    An exception with the type CX_SY_CONVERSION_NO_NUMBER occurred, but was neither handled locally, nor declared in a raising clause
    The argument '%PERC%' cannot be interpreted as a number
    We are starting to think that maybe only substitution variables can be passed as parameter to the BAdI call, because whenever we use a local variable, we end up in passing the variable name to the BAdI, and not the variable value. We digged through the SAP Help, following is the excerpt from there:
    Run the following instruction to call custom ABAP programs: where filter_value_of_your_BADI_implementation is the name of the filter you provided during the BADI implementation of UJ_CUSTOM_LOGIC BADI.
    *START_BADI <filter_value_of_your_BADI_implementation>
    <key1> = <value1>
    <key2> = <value2>
    *END_BADI
    where filter_value_of_your_BADI_implementation is the name of the filter you provided during the BADI implementation of UJ_CUSTOM_LOGIC BADI.
    Does this mean we can only pass <key>:<value> pairs, and not <key>:<variable> pairs? Is there any instance / documentation which points to this (or the contrary)?
    Awaiting answers.
    Thanks and Regards,
    Sid

Maybe you are looking for

  • KO8G open work order settlement

    Hi, I am facing an issue with open work order settlement using KO8G or KO88. We are on 6.0 and PSM turned and New GL activated with a document splitting on fund mandatory flag turned on. When open work orders undergo WIP calculation through KKAI, it

  • Multiple Desktops - why is Photoshop 2014 on all desktops?

    All other apps can be on a desktop by itself, but PhotoShop2014 is on every desktop. Is there a workaround? - mark

  • Macbook late 2008 with Yosemite freezing

    I have a late 2008 aluminum 13-inch Macbook running OS X 10.10.1 with a 320 GB (170 of which are free) WD Scorpio Blue hard drive, Intel Core 2 Duo and 4 GB of RAM. Yosemite worked lovely for the first month, but since then my laptop started crashing

  • *wait in BPM

    In my Scenario I have to send the consolidate details of 2 files and  sent it to other file.using correlation For the first time I am getting sucess in SXMB_MONI but after a wait time(which i mentioned as 1 minute for both ) i am getting an error in

  • How to improve performance for Custom Extractor in BI..

    HI all,            I am new to BI and started working on BI for couple of weeks.. I created a Custom Extractor(Data View) in the Source system and when i pull data takes lot of time.. Can any one respond to this, suggesting how to improve the perform