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

Similar Messages

  • Include within Default.lgf Script Logic does not run

    Dear Gurus,
    I wrote a WHEN function in Script Logic which is supposed to multiply a input % (INP01) value (growth) with the absolute figure of the previous year. I works fine in the Backend Debugger. Then I put it in the default logic because I want it to run everytime somebody sends data. However it doesn't run? Has anybody had a problem like this?
    When running the default formulas out of the data manager it works just fine.
    default:
    *INCLUDE CALCULATE_KPI.LGF
    Calculate KPI:
    *XDIM_MEMBERSET ULOB=D00000
    *XDIM_MEMBERSET UCHANNEL=VD0001
    *XDIM_MEMBERSET RPTCURRENCY=EUR
    *WHEN TIME
    *IS "2008.SUM"
    *WHEN CATEGORY
    *IS "ACTUAL"
        *WHEN P_ACCT
        *IS "I001"
    REC(EXPRESSION=%VALUE%(1+([P_ACCT].[INP01],[ TIME].[2010.INP],[CATEGORY].[PLAN])),CATEGORY=V302,TIME=2010.INP,P_ACCT=I0000001)
    *ENDWHEN
    *ENDWHEN
    *ENDWHEN
    Thank you so much in Advance
    Edited by: Cora Boettger on Oct 19, 2009 3:59 PM

    Hi Cora,
    Are you sure that your default logic isn't running and that the *WHEN just isn't being triggered? This has happened to me when members used in *XDIM_MEMBERSET or *WHEN are not base-level. I'm a bit suspicious about 2008.SUM with regards to this.
    You can test by replacing what you have with something like
    *WHEN CATEGORY
    *IS *
    *REC(FACTOR=1.1)
    *ENDWHEN
    If this results in your written back values being multiplied by 1.1 into the TEST category, then your default logic is running and your issue is that the *WHEN is not getting triggered. At that point your should be able to head into the script logic tester and keep trying different scripts until you find one that works.
    Good luck!
    Ethan

  • Problems when using RUNLOGIC Keyword in Script Logic

    Hello experts,
    I have a problem using RUNLOGIC keyword within Script logic. Both scripts are mentioned below.
    Following scenario:
    - combination of DESTINATION_APP and LOOKUP to multiply values from two source applications in order to to write results in target application
    - data volume in source application VALCHAIN are approx 187.000 records; source app SALES = 500 records
    - created data records in target application QUANTITIES are approx 204.000 records
    Running LOGIC01_QUANTITIES.LGF without "RUNLOGIC" keyword:
    - time to execute logic and write records: 10-12 minutes
    - created records 204.000
    Running LOGIC01_QUANTITIES.LGF via CALL_RUNLOGIC.LGF
    - script does not finish; system produces dumps
    - Tcode ST22 shows error messages called "TSV_TNEW_PAGE_ALLOC_FAILED" as well as "SYSTEM_NO_ROLL" as well as "CALL_FUNCTION_SEND_ERROR"
    Does anybody have a guess for that? Any answer appreciated.
    Thanks a lot!
    ==================================================
    CALL_RUNLOGIC.LGF
    *START_BADI RUNLOGIC
    QUERY=OFF
    WRITE=ON
    LOGIC=LOGIC01_QUANTITIES.LGF
    APPSET=FINPLAN_PERFORM
    APP=VALCHAIN
    CHANGED=PRODUCT
    DEBUG=OFF
    *END_BADI
    ===========================================
    LOGIC01_QUANTITIES.LGF
    *XDIM_MEMBERSET DATASRC=ITEMIZED
    *XDIM_MEMBERSET VERSION=%VERSION_SET%
    *XDIM_MEMBERSET TIME=%TIME_SET%
    *LOOKUP SALES
    *DIM DATASRC="OUTPUT"
    *DIM ITEM="IM_M02"
    *DIM QUANTU="QU_TO"
    *DIM MEASURES="PERIODIC"
    *FOR %LOOP_CENTER%=PC_1000,PC_2000,PC_3000,PC_4000,PC_5000,PC_6000
    *DIM C_%LOOP_CENTER%:PCENTER=%LOOP_CENTER%
    *NEXT
    *ENDLOOKUP
    *DESTINATION_APP=QUANTITIES
    *ADD_DIM COSELE=CE_NONE
    *WHEN PRODUCT.LG
    *IS "1"
      *WHEN MATERIAL
      *IS "MA_NONE"
        *FOR %LOOP_CENTER%=PC_1000,PC_2000,PC_3000,PC_4000,PC_5000,PC_6000
        REC(EXPRESSION=%VALUE%LOOKUP(C_%LOOP_CENTER%), PCENTER=%LOOP_CENTER%, ITEM="IM_M08", DATASRC="CALCULATED")
        *NEXT
      *ELSE
        *FOR %LOOP_CENTER%=PC_1000,PC_2000,PC_3000,PC_4000,PC_5000,PC_6000
        REC(EXPRESSION=%VALUE%LOOKUP(C_%LOOP_CENTER%), PCENTER=%LOOP_CENTER%, ITEM="IM_M05", DATASRC="CALCULATED")
        *NEXT
      *ENDWHEN
    *IS "1000"
      *WHEN MATERIAL
      *IS "MA_NONE"
        *FOR %LOOP_CENTER%=PC_1000,PC_2000,PC_3000,PC_4000,PC_5000,PC_6000
        REC(EXPRESSION=%VALUE%LOOKUP(C_%LOOP_CENTER%)/1000, PCENTER=%LOOP_CENTER%, ITEM="IM_M08", DATASRC="CALCULATED")
        *NEXT
      *ELSE
        *FOR %LOOP_CENTER%=PC_1000,PC_2000,PC_3000,PC_4000,PC_5000,PC_6000
        REC(EXPRESSION=%VALUE%LOOKUP(C_%LOOP_CENTER%)/1000, PCENTER=%LOOP_CENTER%, ITEM="IM_M05", DATASRC="CALCULATED")
        *NEXT
      *ENDWHEN
    *ENDWHEN
    *COMMIT

    Hello,
    This error comes up when there is no enough memory.
    How many members do you have in PRODUCT and how many parallel processes did you set up in PARALLELSCRIPT?
    Also, I'd suggest to put *XDIM_MEMBERSET PRODUCT = %PRODUCT_SET% in your LOGIC01_QUANTITIES.LGF script.
    Did you get anything in RUNLOGIC log? In UJFS you can find logs for every parallel process ran, name if it is just it's time stamp.
    Can you see from those what scripts ran and with what parameters?
    This should simplify resolution of your issue.
    Regards,
    Gersh

  • When i use the macbook pro at home, do i need to use the charger or the battery, which is good to the battery?

    when i use the macbook pro at home, do i need to use the charger or the battery, which is good to the battery?

    I Personaly would use the Charger
    see Threads
    http://www.apple.com/batteries/
    and
    http://www.apple.com/batteries/notebooks.html
    and
    http://support.apple.com/kb/HT1446#Troubleshooting

  • Use of comments in script logic / BADI

    Hi,
    Does anyone knows whether one can read the comments entered in an input schedule in a script logic or BADI? Depending on the text entered in a comment, a certain planfunction has to be executed during save ...
    the user should be able to easily change a dimension value in an input schedule:
    Product    Product group    Key figure 1     Key figure 2
    A             A1                     10                       30
    -> the user easily needs to change the product group from A1 into B1 . When doing so the values of key figure 1 and 2 need to be copied to the new product group and the original values on A1 have to be removed. we cannot set up the product group as a propoerty since one should be able to compare multiple versions with different assignments ... So we were thinking to add an additional comment column in which the new value can be assigned to. When save, it should read the comment and perform the planfunction ... Would this be possible?
    D

    HI D-
    Possible, but you would probably need to create a Badi to accomplish all the logic...
    For a start, you would need to be able to find the comments...the naming convention for the dynamic comment table is:
    /1CPMB/application_set_prefixapplication_prefixCMT
    The two character application_set_prefix can be identified from the table UJA_APPSET_INFO, and the two character application_prefix can be identified from the UJA_APPL table.   
    Once the comment table is identified you could create a custom Badi to look up comment information to direct processing of specific records.   
    Regards,
    Sheldon Edelstein

  • 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

  • Changing Work Status using data package or script logic

    Is it possible to set Work Status using Script logic, or an SSIS package.
    I know status is kept is an SQL table, is it possible to just update the locking table with a new record, or is there more to changing the work status.
    Thanks for you help

    Thanks for your reply. This would be a nice enhancement.
    Although the work status does help with the audit trail of who and what locks the data, doing it automatically will allow the system to automatically unlock the period when it is opened before auto-loading the current closing balances. It will need to be carefully used in order to maintain proper audit trail of the data. When done automatically, the system userid would be used in the lock table witha  timestamp.
    I am needing to know if there are anyother steps involved in locking data other than writing to the SQL lock table. Is usppose this is especailly relevant when locking a parent and pushing the status to the children.

  • Use of LEFT in Script Logic

    I am having one doubt reagrding usage of excel function like LEFT, MID, RIGHT in script logic of SELECT Statement.
    Let me know with example if its possible.
    I tried the below statement:
    *SELECT(%EQACC%,"ID","ACCOUNT","LEFT(ID,6)='BE9001' AND CALC='N' AND ID<>'BE9001010'")
    But it throw the error as "invalid select statement"
    Anurodh

    Anurodh,
    what you are trying to do is not supported. As a workaround you can try to create a new property in the dimension (for example IDSHORT), putting in this filed just the first 6 characters of the ID and you can filter on it like in the following example:
    *SELECT(%EQACC%,"ID","P_ACCT","IDSHORT='CE0004' AND CALC='N'")
    Regards,
    Simmaco

  • Using an SQL statement... which would have better performance ???

    Hi i have to update a table for like 1000, 2000 items..normally this takes around....50-55 minutes...the way we are doing is like using a For loop and traversing for each item which has to be updated...
    eg :- for (i=0; i<n;i++)
    (update item_table set XXXXXXXXXXX where item_id=item)
    i want to know would it be more efficient to just run one single update command... like ...
    update item_table set XXXXXXXXXX where item_id in (item1,item2,................)
    since the changes done are the same for all the items.
    Thanks

    It would be efficient because it will save the trips to the database that are currently happening in the loop. The downside is that you may not be able to add as many elements to the IN clause because databases have some limit to the set of values you could specify in the IN clause.
    I would recommend using batches of items in manageable sizes (like 200 or so) and use the batch update facility provided in JDBC.
    http://java.sun.com/developer/onlineTraining/Database/JDBC20Intro/JDBC20.html#JDBC2015

  • Which is Good for Performance?

    Hi,
    I am bit confused about this code from performance point of view, say If I write like this :
    for(int i=0;i<1000;i++)
      //declaring variables in the loop
      int j, k;
      double d;
      CustomClassObj classObj = new CustomClassObj();
    }And if I declare all the variables before the loop like this
    //declaring variables before the loop
    int j, k;
      double d;
      CustomClassObj classObj = new CustomClassObj();
    for(int i=0;i<1000;i++)
    }so which is faster from performnace point of view? As I have read some white papers and books, but some says the local variables (insode loops) are better as GC will deallocate those variables after loop.
    And some suggest that dont create temporary objects inside loop... :(
    Please help...!
    Thanks in Advance.

    Java_Cup wrote:
    so which is faster from performnace point of view? As I have read some white papers and books, but some says the local variables (insode loops) are better as GC will deallocate those variables after loop.If they said that, then they were worthless. GC doesn't touch local variables. And if it did, it would be slower, because you'd have one GC task per loop iteration, rather than simply one at the end.
    All the local variables used in a method are allocated in one shot when the method starts, by moving the stack pointer by an amount determined at compile time, and they are all released when the method ends by moving it back by the same amount.
    It also looks like you may be confusing variables with objects.
    >
    And some suggest that dont create temporary objects inside loop... :(Well, that depends. If you need one object across the entire life of the loop, you might get better performance by creating it before the loop starts. I wouldn't generally do that though unless I knew that creating that object was expensive relative to the rest of the work being done in the loop. I'd stick with creating it inside the loop, where it's actually used. And of course if your logic dictates a different object for each iteration, then you have to do it inside the loop anyway.
    At the end of the day, these microoptimizations don't become relevant until you observe a performance problem, profile it, and confirm by measurement, changing the code, and re-profiling, that it is in fact a problem.

  • Conversion of PR itno PO using BADI me59_exclude

    I have a requirement where I have to implement additional logic in t.code me59n ( program RM06BB30 used for converting PR into PO) using badi ME59_EXCLUDE .
    The logic which I have to implement is
    1)Only select the open PR lines i.e. not marked for deletion or not converted to PO.
    2)Check for Item Category for Services (PSTYP) = u20189u2019
    3) Check for every PR line (BNFPO) if, Line value >25000
      and vendor is not a RAG5 vendor.
    only if the PR fulfills the following criteria, it will be converted into PO otherwise error message will be displayed...
    But I while implementing ME59_EXCLUDE, I found out is a internal sap badi and it cannot have a customer implementation...Is there any other badi which can be used or any other way in which I could implement this logic?

    Hi,
    Step by step process for automatic  PO creation from PR
    1.  Tick check box in purchasing view of Material Master(MM01/MM02)
    2.  Tick check box for auto PO in purchaisng data of Vendor Master record (MK02)
    3.   Maintain Source list for Material,plant and Vendor combination in ME01
    4.   In ME51N create PR and assign source of supply in "Source of supply" tab
    5.   In ME59N key in Purchaisng Org., Vendor and Plant - execute
    You will get POs created with reference to PR automatically.
    Hope its clear
    Regards,
    Uzair Hussain

  • Custom Measure in Script logic

    Hi,
    We have a custom measure created which is more or less the same as the YTD, but it starts not at the beginning of the year, but instead it starts at a given month.
    The measure creation was ok and we can use it perfectly well in reports and input shedules and the cumulation of data is ok.
    However, if we want to use this measure in a script logic it does not work.
    - Validating the script in the admin console goes fine
    - Executing the script gives the error:
             - Root element is missing
    - validating in UJKT gives the erro:
            - UJK_VALIDATION_EXCEPTION:Invalid Measures value: "T_232"
    The script we try to use is below. If we change the LTD (our custom measure) by YTD it works perfectly fine:
    *XDIM_MEMBERSET BUILDSTATE=NABS
    *XDIM_MEMBERSET BUSAREA=V1
    *XDIM_MEMBERSET CATEGORY=FCSTCUR
    *XDIM_MEMBERSET DATASRC=INPUT
    *XDIM_MEMBERSET ENTITY=201
    *XDIM_MEMBERSET MARKSEGM=NAMS
    *XDIM_MEMBERSET ORIGIN=OBOOK
    *XDIM_MEMBERSET PRODUCT=ELEVATORS
    *XDIM_MEMBERSET PROFCENT=201251
    *XDIM_MEMBERSET RPTCURRENCY=LC
    *XDIM_MEMBERSET SALESORG=SO_201
    *XDIM_MEMBERSET TECHPLATF=NATP
    *XDIM_MEMBERSET TIME=2010.OCT
    *XDIM_MEMBERSET TYPE=T_PLAN0
    *XDIM_MEMBERSET NEBACCOUNT =BAS(T_232)
    *XDIM_MEMBERSET MEASURES=PERIODIC
    [NEBACCOUNT].[#A232]=([MEASURES].[LTD],[NEBACCOUNT].[T_232])
    *COMMIT
    Thanks for any input on this. We want to avoid going via a BADI!
    Kind regards,
    Christophe Posson

    Hi Christophe,
    I'm in a similar position to you and wish to avoid use of a BAdI if we can - despite the MDX parser engine being pretty pathetic at handling YTD or custom measures.
    Did you get a resolution to this? If so, could you please share it with everyone?
    As much information as possible would be apprecaited. Our next move is to contact SAP for confirmation that there is no possibility of using custom measures in Script Logic.
    Many thanks,
    Nick

  • 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

  • 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

  • Dimension Formula versus Script Logic that runs on default

    Hi Experts,
    Which is better to use dimension formula or script logic that runs on default? We have a lot of dimension formulas and when noticed that it has a huge impact in the performance of our AppSet. When we try to remove them, the performance seems better. We we're thinking of transforming these dimension formulas into script logic which will run by default instead. Right now I'm hesitant with two things, 1.) Will there be improvement in performance if I all these formulas are run at default via script logic? 2.) The maintenance seems to be much more complex for the user if we use script logic.
    Thanks,
    Marvin

    Hi Marvin,
    Actually you pointed very well the advantage and disantavage regarding dimension formula.
    Dimension formula are executed into run time which means that value are not calculated. Of course this will have an impact regarding performances.
    Usually our recommendation is to use dimension formula just when yoiu have KPI's to calculate which will be very difficult to be implemented into SQL scrip logic or when you have very simple calculation like Account A = Account B+ Account C.
    For other calculation we advice our customer to use script logic.
    But attention:
    Default formula should not become very heavy because you will arrive into other issue with performances.
    When you will send data if default formula script will be heavy you will arrive into situation to wait may be minutes just to send one figure and of course this will be not acceptable for users.
    So you have to use script logic but you have to run into batch mode (schedule package) that script logic.
    Into default formula you have to keep just minimum (you have to calculate just figures which have importance for user imediat, real time).
    Also you have to be aware that moving dimension formula into scrip logic actually your fact table will grow a lot because the number of records generated will be probably 3-4 times bigger than number of records from fact table with dimension formula.
    Maintenance of script logic is more complex than dimension formula and you pointed very well this.
    So it is a balance and I tried o provide you suggestions or best practice when you have to use dimesnion formula and you have to avoid dimension formula.
    I hope this will help you to arrive to best combination for your application.
    Kind Regards
    Sorin Radulescu

Maybe you are looking for

  • Html output genreated by the xsl should have a single quote

    hi i am trying to convert the xml into html . For one particular field i need to invoke a javscript method on click. a value has to be passed to this javascript method. for this i need a single quote or a double quote to come in the output. <a href =

  • TS3992 What is Wrong with ICloud

    When I try to turn on or backup it says There was a problem enabling icloud backup. Also it wont let you see your total space available and manage storage. Then when i try to turn icloud on from itunes it backsup on the computer and i dont want that.

  • Spry Accordion No Highlight Upon Selection

    Im working with the spry accordion and when ever i click on a tab the entire outline of the accordion gets highlighted in blue (ie,chrome) or gets a marquee kind of selection around entire outside ( firefox ) is there a way to turn this off so it jus

  • Indexed short text on a filter

    Hi guys, I created a prompt to filter the field "Indexed short text 1" on a dashboard. I've already create the filter "indexed short text is prompt" on the detailed report. However I got nothing even If I paste the exactly text of this field on my pr

  • Contacts for help

    How does someone ask an iTunes question anymore?? I am having trouble updating to iTunes 10 because of an error with quicktime, which won't let me uninstall because it cannot find quicktime.msi.....there used to be a link to ask them how to fix their