Condition in script logic.

I need to copy the 'All Account'  % value in datasource 'A' to 'All Account' , All costcenters with in same data source.
This I need to copy only for those cost centers, for  which transaction data exist in data source 'B' for this period
How to achieve this in script logic.
Appreciate input
Regards,

In such case you need to modify that script in the following way.
Add
*XDIM_MEMBERSET COSTCENTER = <source cost center>
*SELECT(%ALL_CC%, ID, COSTCENTER, "[CALC] = 'N'")
at the beginning and put the following loop around *REC statement.
*FOR %ONE_CC% = %ALL_CC%
*REC(EXPRESSION = [DATASRC].[A], DATASRC = B, COSTCENTER = %ONE_CC%)
*NEXT

Similar Messages

  • 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

  • Script Logic - Amount Condition

    Hi all,
    I want to create a script logic that calculates a new account based in another account. For example, i have the account XXX and the account YYY.
    In Pseudocode my condition is:
    If Account XXX < $2500
    then Account YYY= 100;
    How can i create a script logic that executes my pseudocode?
    Thanks.
    Regards,
    Jorge

    Hi,
    For your example, you can try
    *WHEN GET(ACCOUNT = "XXX")
    *IS < 2500
       *REC(EXPRESSION = 100, ACCOUNT = YYY)
    *ENDWHEN
    *COMMIT
    To know more about the when statements, please go to the following link
    http://help.sap.com/saphelp_bpc75/helpdata/en/a5/719a63b6fa4ef0964d11d69c607803/content.htm
    Hope this helps.

  • How to create a script logic using two applications and some conditions?

    Hi All,
    I am using BPC 7.0 MS
    I have two applications, one called RATE (Dimensions: Category, InputCurrency, Rate, RateEntity, Time) and one called GYP (Dimensions: Category, Entity, PL, Producto, RptCurrency, Time. In the GYP application for Revenues. I have the followings products:
    Product code
    1-808-912-433
    3-208-345-542
    11-869-789-946
    13-456-786-890
    I need to calculate a discount using the first digits to identify the product: 1, 3, 11 and 13, based on some percentages that are in the RATE application. 
    I have an element in the RATE application for each one of them.
    DPC1
    DPC3
    DPC11
    DPC13
    What I am trying to do in the script logic is:
    *XDIM_MEMBERSET PL=Revenues
    *XDIM_MEMBERSET PRODUCTO=<ALL>
    *XDIM_MEMBERSET ENTITY=<ALL>
    *XDIM_MEMBERSET CATEGORY=Budget
    *LOOKUP RATE
    *DIM D1:RATE ="DPC1"
    *DIM D11:RATE ="DPC11"
    *DIM D3:RATE ="DPC3"
    *DIM D13:RATE ="DPC13"
    *DIM RATEENTITY="Global"
    *DIM INPUTCURRENCY="VEB"
    *ENDLOOKUP
    *WHEN PL
    *IS Revenues
    *REC(FACTOR=LOOKUP(D1), PL=Discount)
    *ENDWHEN
    *COMMIT
    In the WHEN area, i would like to create some condition to identify the product and assign the correct percentage to it but i don't know how to do it?
    Do you have any suggestions?
    Also, because i need to key the values in the RATE application for the discounts, the logic should be run from this application?
    Using RUNLOGIC like this:
    *RUNLOGIC
    *APP GYP
    *LOGIC Discounts
    *ENDRUNLOGIC
    Best regards,
    Luisana

    Hi Nilanjan,
    Thanks for your prompt reply.
    The special characters ("-") cannot be used. The product codes use the special character ("_").
    I understand what you said about the property for the dimension Product but not for the dimension Rate. I have the lookup that has the four elements (DPC1, DPC11, DPC3, DPC13). It is not supposed to get the data from those elements directly when using the lookup?
    The script logic is still not working. I created the dimension property in the product dimension and the new script logic is as follows:
    *XDIM_MEMBERSET PL=Revenues
    *XDIM_MEMBERSET PRODUCT=<ALL>
    *XDIM_MEMBERSET ENTITY=<ALL>
    *XDIM_MEMBERSET CATEGORY=Budget
    *LOOKUP RATE
    *DIM D1:RATE ="DPC1"
    *DIM D11:RATE ="DPC11"
    *DIM D3:RATE ="DPC3"
    *DIM D13:RATE ="DPC13"
    *DIM RATEENTITY="Global"
    *DIM INPUTCURRENCY="VEB"
    *ENDLOOKUP
    *WHEN PRODUCT.TYPE
         *IS 1
              *REC(FACTOR=LOOKUP(D1), PL=Discount)
         *IS 11
              *REC(FACTOR=LOOKUP(D11), PL=Discount)
         *IS 3
              *REC(FACTOR=LOOKUP(D3), PL=Discount)
         *IS 13
              *REC(FACTOR=LOOKUP(D13), PL=Discount)
    *ENDWHEN
    *COMMIT
    Could you let me know what i am doing wrong?
    The calculation i would like to get is: Discount = Revenues(GYP) X DPCx(RATE)
    Also, when I sent the data from the rate application I get the message "ExecuteBaseLogic::invalid application:*APP GYP". I am using a RUNLOGIC in the application RATE with the following code:
    *RUNLOGIC
    *APP GYP
    *LOGIC Decto_en_vtas_pilot
    *ENDRUNLOGIC
    Kind Regards,
    Luisana

  • 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

  • Conditional Checking in Script Logic

    Could anyone please kindly enlightened me how I could code the following in the script logic?
    Scenario:
    IF A > 0, THEN B = C * D
    I have tried with SELECTCASE statement statement but all wouldn't work, I keep getting errors...
    SELECTCASE:
    *SELECTCASE [P_ACCT].[0005]
    *CASE > 0
             *REC(EXPRESSION= ([P_ACCT].[0004] * [P_ACCT].[0003]), P_ACCT=0001)
    *ENDSELECT
    Error:
    UJK_VALIDATION_EXCEPTION:Unknown or unimplemented keyword "*REC(EXPRESSION=IIF([MATERIAL].[LDG0005]=>0,([MATE"...
    Thank you very much in all advances.
    Best regards,
    Yen Li

    Hi Yen Li,
    Applying SELECTCASE - ENDCASE combination would not produce the desired results. Instead, use Validation Business Rules - by setting up Validation Rules and Validation Rules Details and run the Stored Procedure SPRUNVALID from the Default Logic to execute these validation rules. Call the Stored Procedure by the following syntax:
    RUN_STORED_PROCEDURE=SPRUNVALID(u2018applicationu2019,u2019categoryu2019,u2019currencyu2019,u2019%SCOPETABLE%u2019,u2019%LOGTABLE%u2019)
    Your command: u201CIf P_ACCT.0005 is > 0, multiply P_ACCT.0004 by P_ACCT.0005 and post the product in P_ACCT.0001. Otherwise do not do anything.u201D will be shown in result!
    Regards.
    Chakrapani

  • 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

  • Script logic : determine the content of a variable according to a IF test

    Hello experts,
    I have the following need in a script logic
    determine the content of a variable according to a IF test
    For example I tried :
    *WHEN %ENTITY%
    *IS "CH20","CH30","ES10"
    *SELECT(%ENTITYPBPD%, "[ID]", "ENTITYCC", "[ID] = '%ENTITYCC_SET%_PBPD'")
    *ENDWHEN
    Syntax is correct but I get a query execution error (Error in WHEN/ENDWHEN structure)
    I guess it's because this when don't have any REC instructions.
    In other words, if the user selection at the package prompt step are CH20, CH30 or ES10
    the variable has to be selection_PBPD
    if another member is selected
    the variable has to take other value
    Hope I've made my need clear, and thanks in advance.
    G.

    Hi G,
    Will the *TEST_WHEN() statement work for this case?
    The way that it works is that if the condition evaluates to TRUE, then the subsequent WHEN...ENDWHEN is processed, else it is not.
    Have a look at Page 66 of "How To Use BPC Scripting Logic, Version 1.00, April 21, 2006" (It's a bit old but I use it a lot on our MS7.0 SP9 installation).
    Hope this helps.
    Regards
    Nick

  • FDM Conditional Map Script Error

    Hi all,
    we trying importing data from EBS to HFM though ERPI by using FDM.
    We used conditional based scripts to importing data from ebs to FDM.
    this scripts used in FDM for ICP dimension between conditional mapping script.script logic is some particular account are related to Intercomapny transaction accounts we have to map to ICP member
    can anyone help me on this:
    this is error :
    ** Begin FDM Runtime Error Log Entry [2011-12-12 15:10:18] **
    ERROR:
    Code............................................. 1014
    Description...................................... Conditional Map Script Error: Expected 'End' at line(2)
    Script:
    If varValues(14)="113401" Then Result="21_ADNIP"
    Else Result="[ICP NONE]"
    End if
    Rule=I1
    Procedure........................................ clsImpProcessMgr.fLoadAndProcessFile
    Component........................................ upsWObjectsDM
    Version.......................................... 1112
    Thread........................................... 13888
    IDENTIFICATION:
    User............................................. admin
    Computer Name.................................... ADNIPHYPUAT01
    App Name......................................... FDMHFM
    Client App....................................... WebClient
    CONNECTION:
    Provider......................................... ORAOLEDB.ORACLE
    Data Server......................................
    Database Name.................................... HYPUAT
    Trusted Connect.................................. False
    Connect Status.. Connection Open
    GLOBALS:
    Location......................................... HFMGLLOAD
    Location ID...................................... 750
    Location Seg..................................... 4
    Category......................................... WLCAT
    Category ID...................................... 12
    Period........................................... May - 2011
    Period ID........................................ 5/31/2011
    POV Local........................................ False
    Language......................................... 1033
    User Level....................................... 1
    All Partitions................................... True
    Is Auditor....................................... False
    Thanks.
    Srini

    Hi, please try the mapping script again having the "Result=" statement on a separate line, like:
    If varValues(14)="113401" Then
    Result="21_ADNIP"
    Else
    Result="[ICP NONE]"
    End if
    Kind regards,
    Jeroen

  • Pull script logic

    Hi all,
    need some help on writing the script logic.
    Here's the condition:
    We have 2 applications (apps A with 10 dimension and apps B with 6 dimension)
    I'm trying to write a script logic that run at apps A referring data from apps B. Actually i've tried using *LOOKUP and *XDIM_GETINPUTSET syntax. When checking the debuglogic file, source values are doing fine but somehow I couldn't manage to write them into apps A due to dimension difference (i've tried using *DESTINATION_APP and *ADD_DIM, too).
    Thanks.

    Hi Nilanjan,
    Here's the script logic:
    *LOOKUP APP_B
    *DIM RPTCURRENCY="LC"
    *DIM DATASRC="INPUT"
    *DIM INTCO="NON_INTERCO"
    *DIM CATEGORY="BUDGET"
    *DIM SUBACCOUNT="NON_SUBACCOUNT"
    *DIM AAA:ACCOUNT="LCS"
    *ENDLOOKUP
    *XDIM_MEMBERSET ACCOUNT = LCS
    *XDIM_MEMBERSET TIME = 2010.JAN
    *DESTINATION_APP = APP_A
    *ADD_DIM= NON_DIM7,NON_DIM8,NON_DIM9,NON_DIM10
    *WHEN TIME
    *IS 2010.JAN
         *WHEN ACCOUNT
         *IS "LCS"
              *REC(EXPRESSION=LOOKUP(AAA),ACCOUNT="LCS",DIM7="NON_DIM7",DIM8="NON_DIM8",DIM9="NON_DIM9",DIM10="NON_DIM10")
         *ENDWHEN
    *ENDWHEN
    *COMMIT
    I add the *DESTINATION_APP and *ADD_DIM because when running the logic debugger without them it only shows "No record to process".
    I've managed to find the workaround using *RUNLOGIC now.
    Thanks again for your attention.

  • How to calc accumulate rate in a script logic?

    Hi experts,
    We are trying to generate a monthly accumulate rate in a script logic. We have a Unit rate in 12 months and we want UnitAccum rate (like YTD) in the same 12 months
    Finally, we need to use this new rate in a multiplication.
    How can we do it with a script logic? Any idea out there?
    Kind regards
    Albert Mas

    Hi Ethan,
    You are understanding ok
    We are working on SAP BPC NW version 7.0, SP05, and at the moment, it's impossible to update to SP08.
    We have done all the following tests, trying to find some solution, under these conditions (we knew that some tests weren't going to work well, but anyway, we had to try them):
    - always for only one product (*XDIM_MEMBERSET PRODUCT=Product1)
    - UNITS and UNITACCUM are ACCOUNT base members
    - UCostVtaAcumDimFor is an ACCOUNT Formula Base Member ([ACCOUNT].[UNITS],[MEASURES].[FYTD])
    - FYTD is a Measures base member for Fiscal Year To Date (we use it because we want to see as Year to Date (YTD) as Fiscal Year To Date (first month of the year is September and the last one is August) (it works well)) (We have also tested on YTD instead of FYTD, with the same results)
    (1)
    *XDIM_MEMBERSET TIEMPO=2010.FEB
    [ACCOUNT].[#UNITACCUM] = ([ACCOUNT].[UNITS],[MEASURES].[FYTD])
    *COMMIT
    Result: MEASURES not specified. Failed
    (2)
    *XDIM_MEMBERSET TIEMPO=2010.FEB
    *WHEN ACCOUNT
    *IS UNITS
    *REC(EXPRESSION=([ACCOUNT].[UNITS],[MEASURES].[FYTD]), ACCOUNT=UNITACCUM)
    *ENDWHEN
    *COMMIT
    Result: MEASURES not specified. Failed
    (3)
    *XDIM_MEMBERSET TIEMPO=2010.FEB
    *WHEN ACCOUNT
    *IS UNITS
    *REC(ACCOUNT=UNITACCUM,MEASURES=FYTD,FACTOR=1)
    *ENDWHEN
    *COMMIT
    Result: Unknown Dimension Name in Keyword "MEASURES". Failed
    (4)
    *XDIM_MEMBERSET TIEMPO=2010.FEB
    *WHEN ACCOUNT
    *IS UNITS
    *REC(ACCOUNT=UNITACCUM,TIEMPO=TIEMPO.NEXTMONTH,FACTOR=1)
    *ENDWHEN
    *COMMIT
    Result: it takes too much time (more than five minutes) without ending the process --> We stop this test
    (for 2010.FEB, TIEMPO.NEXTMONTH=2010.MAR)
    (5)
    *XDIM_MEMBERSET TIEMPO=2010.FEB
    *WHEN ACCOUNT
    *IS UNITS
    *REC(ACCOUNT=UNITACCUM,TIEMPO=TIEMPO.PREVMONTH,FACTOR=1)
    *ENDWHEN
    *COMMIT
    Result: it takes too much time (more than ten minutes) without ending the process --> We stop this test
    (for 2010.FEB, TIEMPO.PREVMONTH=2010.JAN)
    (6)
    *XDIM_MEMBERSET TIEMPO=2010.FEB
    *WHEN ACCOUNT
    *IS UNITS
    *REC(ACCOUNT=UNITACCUM,FACTOR=1)
    *ENDWHEN
    *COMMIT
    Result: Cancelled
    (7)
    *XDIM_MEMBERSET TIEMPO=2010.FEB
    [ACCOUNT].[#UNITACCUM] = [ACCOUNT].[UCostVtaAcumDimFor]
    *COMMIT
    (UCostVtaAcumDimFor is a Formula Base Member ([ACCOUNT].[UNITS],[MEASURES].[FYTD]))
    Result: Cancelled
    Some more ideas?
    Thanks in advance,
    Albert Mas

  • Script Logic interpreted

    Hi there, I need help. I really am studying script logic but it's hard for me to interpret them...
    Could someone help me to do it? The title of the logic anyway is "top down allocation."
    What does this logic all about? I mean, explain it please...
    *SELECT(%TOPDALLOC%,"[ID]", "ACCOUNT", "[TOPDALLOC] = 'Y'")
    *XDIM_MEMBERSET ACCOUNT = %TOPDALLOC%
    *FOR %TDALLOC%=%TOPDALLOC%
    *RUNALLOCATION
         *FACTOR USING/TOTAL
         *DIM ACCOUNT          WHAT=%TDALLOC%INP;              WHERE=BAS(%TDALLOC%);          USING=<<<;                             TOTAL=<<<
         *DIM DATASRC          WHAT=COMPINPUT;                   WHERE=COMPINPUT;               USING=TOTALADJ;          TOTAL=<<<
         *DIM ENTITY          WHAT=BAS(COMPANY);                   WHERE=BAS(COMPANY);     USING=BAS(COMPANY);     TOTAL=BAS(COMPANY)
                *DIM CATEGORY          WHAT=TARGET;                    WHERE=<<<;                                                      USING=ACTUAL;             TOTAL=<<<
    //     *DIM DEPARTMENT     WHAT=NODEPT;                          WHERE=[TOBEALLOC]="Y";                 USING=<<<;                        TOTAL=<<<
         *DIM DEPARTMENT     WHAT=NODEPT;                          WHERE=BAS(DEPT);                 USING=<<<;                        TOTAL=<<<
    //     *DIM PRODUCT      WHAT=NOPROD;              WHERE=[TOBEALLOC]="Y";                         USING=<<<;               TOTAL=<<<
         *DIM PRODUCT      WHAT=NOPROD;              WHERE=BAS(PRODS);                         USING=<<<;               TOTAL=<<<
                *DIM TIME                     WHAT=%YEAR%.INP;           WHERE=BAS(%YEAR%.TOTAL);                        USING=BAS(%YEAR%(-1).TOTAL);        TOTAL=<<<
         *DIM ANALYTIC1      WHAT=NONE1;                    WHERE=BAS(ALL_ANA1);               USING=<<<;               TOTAL=<<<
    *ENDALLOCATION
    *COMMIT
    *NEXT
    Thanks so much...
    Drye

    Hi Drye,
    The select statement is used to fetch something from the membersheet based on some conditions. In your scenario, it fetching the IDs from the Account dimension where the property TOPDALLOC is equal to Y. And these IDs will be stored in a variable called TOPDALLOC.
    The XDIM statement is defining the scope of your logic. This means that your logic will work only for those members which are there in the variable TOPDALLOC.
    Next you are doing an allocation for all the members in the variable. You will get very good understanding of the allocation function from the document on allocation engine available on SDN.
    Hope this helps.

  • Script Logic - Calculated Members

    Hello:
    Im trying to build a script member using calculated members:
    *WHEN CUENTA
    *IS U4000
    *ENDWHEN
    *COMMIT
    U4000 is a calculated member in the account dimension member. I tried using another account, that is not a calculated member and it works.
    How can use calculated member in this sintax?
    Thanks in advance.
    Luciana

    I would like to mention few things:
    1. OLAPLOOKUP it doesn't work anymore into 7.5. James can you double check. My tests is showing that OLAPLOOKUP is not even validate into 7.5
    2. Calc_Dummy_Org it is an option to get the values of calculate members
    3. It is strange that kind of condition because into script logic you are doing input for base members.
    So that condition to test when an account is a an account which is not base member for me doesn't seems to be right.
    I can understand if you are looking about the value of that account but not testing if an account it is an account which is not base member.
    So if you want to record something with value of your calculate member just use:
    *BEGIN
    ACCOUNT.#basememberforinput = ACCOUNT.Calculatemember
    *END
    *COMMIT
    Edited by: Sorin Radulescu on Nov 9, 2010 4:04 PM

  • 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 auto-update of script logics after adding new dimension members?

    Hi Experts,
    Just wanna ask if BPC has a functionality that would automatically update/validate and save my script logic whenever I add new dimension members. I've added new PL accounts but they are not automatically added to my calculated BS Net Income. I had to re-validate and save my logic for it to be included in my logic and for the amounts to be computed correctly.
    Thanks,
    Marvin

    Hi Marvin,
    There is no functionality as such. we need to configure the script as and when we make any changes in the dimension members.
    Regards
    Raman

Maybe you are looking for

  • Unable to retrieve collections from the Search Service.

    Hi, I have a user trying to upload a collection. She gets the following error: Unable to retrieve collections from the Search Service. Please verify that the ColdFusion MX Search Server is installed and running. Obviously, I checked the service. It w

  • Supplier Registration without SUS or XI?

    Can I do Supplier (Vendor) Registration without SUS or XI?  If not, what are my limitations? I am using SRM server 5.5, and am not using CCM as the supplier directory. I am not using questionnaires.  ROS_SELF_REG works.  However, I can’t notify vendo

  • View RX neighbors for selected radio does not show any information

    For some but not all of our WLCs, our WCS is not able to View RX neighbors for selected Radio in the maps. WLC is running 4.1.171-code, WCS is using 4.1.83 Base+Location. I use Monitor-Maps, slecet a map and hover with my mouse over one of the APs to

  • How to download report data in PDF format

    <b>Hii Experts I have a requirement how i can store my report in pdf format .. Regards Hitesh</b>

  • Getting error "Cannot read property 'tooltip' of undefined"

    Hi, I have Predictive Analysis 1.18. In preferences I have checked Esri ArcGIS online and Entered credentials. Also I have reopened the document. But not able to create Geo Map. Getting error as "Cannot read property 'tooltip' of undefined". I have a