Alternatives for 250+ cross-dimensional operators

Our geographical product segmentation has altered. I have to change the outline. We have departments and products. Normally we could report on the sum of departments and on the sum of products. Now because of the switch in segmentation we can only report on products. Some of the same products are made by mutiple regions. I have to make an hierarchy which can report on products for regions. In this instance in the outline, there is one product member and two department members. I have made formulas to pull the product apart to regions.
I have done this with cross dimensional operators:
For example product A is made by department 1 and 2. I made two formulas in the product dimension ProdAdep1 and ProdAdep2:
Member formulas:
ProdAdep1 = Product A -> Department 1;
ProdAdep2 = Product A -> Department 2;
Product A is now made ~ and ProdAdep1,ProdBdep1, ProdCdep1 count up to Total products department 1.
I made all these formulas dynamic calc. Both the product and department dimension are sparse. There are now 250+ formulas and the caculation of the database became very slow. In my Essbase bible 'Look smarter than you are with Essbase 11' I found that the usage of a lot of cross dimensional operators is unseemly and slow.
So I figured out an alternative, a calcscript with a fix.
FIX("Product A")
ProdAdep1 = "Department 1";
ProdAdep2 = "Department 2";
ENDFIX
But this doens't work either. Can anyone help me to think out the best solution?

Thank you Steve, its a bit more complicated.
Departments roll up to regions, products also roll up to regions, but we also have shared (central) products.
For example department 1 in region X (department dimension) can have product A (product dimension) and department 2 in region Y (department dimension) can have product A (product dimension) also. The wish is to report on products and have a full view of the regions within the product dimension.
How it is now:
Department dimension:
Total Region X
|- Department 1
|- Department 3
Total region Y
|- Department 2
|- Department 4
Product dimension:
Total Region X
|-Product C
|-Product D
Total Region Y
|- Product E
|- Product F
Central Products
|- Product A
The Wish:
Department dimension:
Total Region X
|- Department 1
|- Department 3
Total region Y
|- Department 2
|- Department 4
Product dimension:
Total Region X
|-Product C
|-Product D
|-Product A (for region X based on department)
Total Region Y
|- Product E
|- Product F
|- Product A (for region Y based on department)
Central Products
|- Product A ~
It isnt possible to add a dimension, because the problem occurs on level 0.

Similar Messages

  • Substitution variable in a cross-dimensional operator

    All,
    Essbase doesn't like this:
    "Jan"(
    ("Actuals"->"2011"->"001"->"abc") = ("Run1"->"2011"->"000"->&varAP);
    can I have a substitution variable inside a cross-dimensional operator?

    The basic construct works for me in Sample.Basic. When you say Essbase doesn't like it, what exactly happens - fails syntax check, errors on execution or just doesn't produce the right results?
    Sometimes it's necessary to include quotes in the subvar value itself, e.g. setting your subvar to *"X Y Z"* including the quotes rather than X Y Z.
    I would guess you've already tried this, but does the script validate and run successfully if you replace the subvar with the value of the subvar?

  • Local variables with cross dimensional operator

    Hi,
    I have a business rule, which has the following calculation :
    VAR TOTPROD;
    TOTPROD = "Prod1"+"Prod2"+"Prod3";
    "MBR1" = "MBR2"->"Jan"->TOTPROD/"MBR2"->"YearTotal"->"TotalProducts";
    The above statement does not run for obvious reasons that TOTPROD is not a member name.
    Is there a way to use a local variable in a cross dimensional operator statement?
    I want to use the local variable in order to avoid making an alternate hierarchy.
    I am using Essbase / HPB 11.1.2.2
    Please help.
    Thanks.

    Hi
    As you state, I dont think the approach that you have is going to work.
    What about either
    a. Creating a dummy product member in your outline and place your result on it (or use an existing 'dummy' product member)
    b. Re-write your code to handle what you wish to do....something like (assuming you are adding Prod1, 2 and 3):
    "MBR1" = ("MBR2"->"Jan"-> "Prod1"+"MBR2"->"Jan"-> "Prod2"+"MBR2"->"Jan"-> "Prod3")/"MBR2"->"YearTotal"->"TotalProducts";
    Not sure if I am missing anything here, but do either of these suggestions help?
    JB

  • Optimisation of cross dimensional calculations

    Hi,
    Here's a script which should not take too long to run. However, this script runs for hours. Any suggestions would be great. I have added some more details about the dimensions involved.
    Outline of the script:
    /*Script Begins*/
    SET UPDATECALC OFF;
    SET CREATENONMISSINGBLK ON;
    SET CACHE ALL;
    SET CALCPARALLEL 5;
    SET CALCTASKDIMS 2;
    SET NOTICE LOW;
    SET MSG SUMMARY;
    FIX (@ATTRIBUTE("Existing"),@Relative("Location",0),@RELATIVE("Entity",0),&pln_scenario,"BU Budget",&plan1_yr,@RELATIVE("BOM",0), @RELATIVE("YearTotal",0))
    "RMQ" = "location wise Sales Volume"->"UBOM" * "RMQ per Unit SKU"->"All locations"->"YearAgg";
    ENDFIX;
    ENDFIX;
    /*Script Ends*/
    UBOM is a member of BOM, "YearAgg" is a dummy member in period dimension and "all locations" is a dummy member in location dimension.
    Dimension details: Evaluation Order which has been thought through.
    Dimension Members Density
    Account 352 Dense
    Period 35 Dense
    Version 3 Sparse
    Scenario 8 Sparse
    Location 7 Sparse
    Year 9 Sparse
    Entity 20 Sparse
    Product 416 Sparse
    BOM 938 Sparse

    Are you sure that changing the cross-dimensional order of members makes a difference?
    "location wise Sales Volume"->"UBOM" * "RMQ per Unit SKU"->"YearAgg"->"All locations";instead of
    "location wise Sales Volume"->"UBOM" * "RMQ per Unit SKU"->"All locations"->"YearAgg"really improves how Essbase reads its index and page files?
    It seems to me that Essbase is pointing to the same block, no matter the order of the dimension combinations.
    The same goes for a FIX: I can't see how the dimension order within a single FIX statement is going to cause Essbase to touch blocks differently as it will be the same list of blocks (and cells) however it's combined.
    Have you benchmarked the cross-dimensional member order? I'd be really interested to hear re any differences in performance.
    Regards,
    Cameron Lackpour

  • Concatenate within Cross Dimensional Reference

    I am trying to write a calc script in Essbase 7.1.3. I am trying to assign a value to one dimension based on a cross dimensional reference. In the CDR, I want to make it dynamic. I am trying the following. The syntax will not check. What am I doing wrong? I have checked other posts and can't find a solution. I can't make this a member property, it has to be a calc.<BR><BR>Thanks for any help!<img src="i/expressions/face-icon-small-confused.gif" border="0">

    No typo. I slimmed down the calc a bit so it would be more discussion board friendly.<BR><BR>We have input currencies and reporting currencies. The data is loaded to input and translated into the reporting currencies. For example<BR><BR>CR_Loc = CR_Loc_Input + (CR_USD_Input*USD Rate)<BR> where USD rate is found using the range formula above<BR><BR>Real world example:<BR><BR>A Japan user input 100000 yen for a data point as well as 100 USD for the same data point. If we create a pure local currency view the math would be <BR><BR>100,000 Yen + (100 USD * 100 Yen/USD) so CR_LOC = 110,000<BR><BR>We use the range formula to retrieve the currency rate as stored in the data intersection for the account (1 oer currency) and the CR_USD reporting currency. So 100 is stored in CR_USD->AC_JPY_Rate.<BR><BR>I know this is probably far more detail than you needed but thought it might be useful for others if they encounter the same problem.

  • Cross Dimensional Security in Planning

    Got a scenario where the customer is asking for cross dimension security in planning and not sure if it's possible
    Simple Example
    Assume 2 dimensions. Account and Entity
    Entity has 2 members E1234 and E1235
    Account has 2 members Axxx1 and Axxx2
    User is User1
    User should have the following access (assume it's all ReadWrite)
    Axxx2 but only for E1234 (so can't ReadWrite for Axxx1 in E1234)
    Axxx1 but only for E1235 (so can't ReadWrite for Axxx2 in E1235)
    Based on the SecFile.txt
    I could write
    User1,Axxx2,ReadWrite,Member
    User1,Axxx1,ReadWrite,Member
    User1,E1234,ReadWrite,Member
    User1,E1235,ReadWrite,Member
    But I have now given him/her access to everything.....
    I'm worried the answer is that you can't do it. I know you could do it in Essbase itself but can't figure out something for Planning.
    My problem is actually far more complicated than this but if I could do understand this simple example I think I can do everything I need.

    One way to get around this issue is to physically merge the dimensions where you need cross-dimensional security. It's not a great solution, and with large dimensions can be completely impractical due to the number of potential combinations. But if one of your dimensions is small, it can work.
    In our case, we wanted cross-dimensional security on Entities and Departments. We didn't have to create a member for every combination of Entity/Department, because not all combinations were valid (or had data), so we were able to limit the combined dimension's size somewhat.
    - Jake

  • Error while performing Risk Analysis at user level for a cross system user

    Dear All,
    I am getting the below error, while performing the risk analysis at user level for a cross system (Oracle) user.
    The error is as follows:
    "ResourceException in method ConnectionFactoryImpl.getConnection(): com.sap.engine.services.connector.exceptions.BaseResourceException: Cannot get connection for 120 seconds. Possible reasons: 1) Connections are cached within SystemThread(can be any server service or any code invoked within SystemThread in the SAP J2EE Engine), 2) The pool size of adapter "SAPJ2EDB" is not enough according to the current load of the system or 3) The specified time to wait for connection is not enough according to the pool size and current load of the system. In case 1) the solution is to check for cached connections using the Connector Service list-conns command, in case 2) to increase the size of the pool and in case 3) to increase the time to wait for connection property. In case of application thread, there is an automatic mechanism which detects unclosed connections and unfinished transactions.RC:1
    Can anyone please help.
    Regards,
    Gurugobinda

    Hi..
    Check the note # SAP Note 1121978
    SAP Note 1121978 - Recommended settings to improve peformance risk analysis.
    Check for the following...
    CONFIGTOOL>SERVER>MANAGERS>THREADMANAGER
    ChangeThreadCountStep =50
    InitialThreadCount= 100
    MaxThreadCount =200
    MinThreadCount =50
    Regards
    Gangadhar

  • What is the alternative for DisplayMemberPath="Value" for Windows Store applications?

    I think there is a bug with Windows Store Applications when it comes to using DisplayMemberPath="Value".
    Here is my code
    <ComboBox Height="40" VerticalAlignment="Stretch" SelectedValuePath="Key" DisplayMemberPath="Value" x:Name="comboBox1" FontSize="25"/>
    var source = new Dictionary<string, double>();
    source.Add("Item1", 0.4);
    source.Add("Item2", 0.3);
    source.Add("Item3", 0.1);
    source.Add("Item4", 0.1);
    var formateDSource = new Dictionary<string, string>();
    foreach (var item in source)
    formateDSource.Add(string.Format("[{0}, {1}]", item.Key, item.Value), item.Key);
    comboBox1.ItemsSource = source;
    If you use this code in WPF in works perfectly. However if you use this code in a Windows Store Application then the Combo Box is empty and an error is thrown. So is there an alternative way to do this in Windows Store Applications and have I unearthed a
    bug? Because I have researched the Web for days and found no solution to this.*please do not comment unless you have tried my code as a Windows Store App not a WPF in Visual Studios. Can Someone post an example based on my code that works in Windows Store
    Apps please because this is terrible.
    Thanks

    It looks like you got an answer on SO:
    http://stackoverflow.com/questions/29817124/what-is-the-alternative-for-displaymemberpath-value-for-windows-store-applicat
    This does look like a bug.
    Matt Small - Microsoft Escalation Engineer - Forum Moderator
    If my reply answers your question, please mark this post as answered.
    NOTE: If I ask for code, please provide something that I can drop directly into a project and run (including XAML), or an actual application project. I'm trying to help a lot of people, so I don't have time to figure out weird snippets with undefined
    objects and unknown namespaces.

  • What are the Flash alternatives for iphone and ipad?

    Hello,
    I would like to know what could be the Flash alternatives for iphone, ipod, and ipad. I would like to create iphone applications that have 3D animation I usually create with Flash.
    But since Apple does not support the use of flash, I need to know what applications or programming languages I must use to create movies or animations for iphone or ipad.

    I would like to create iphone applications
    Then you need to go here:
    http://developer.apple.com/programs/iphone/

  • Getting Error In the Routine - While writing Code for the Cross Reference.

    Hi,
    Getting Error In the Start Routine - While writing Code for the Cross Reference from the Text table ( /BIC/TZMDES with Fields /BIC/ZMDES(Key),TXTSH ) Getting Error as [ E:Field "ZMDES" unknown ].
    Transformation : IOBJ ZPRJ3(Source) -> IOBJ ZPRJC ( Target ).
    The Source  Fields are: 0logsys(Key),zprj3(Key),ZDOM3.
    The Target Fields are : 0logsys(Key),zprjc(Key),ZDOM3, UID.
    Here i am trying to Update the target Field UID by Comparing the Source Field [ zprj3(Key)] with the Text table ( /BIC/TZMDES ) and update the UID.
    The Code is as below:
    Global Declarations in the Start Routine:
    Types: begin of itabtype,
            ZMDES type /BIC/TZMDES-/BIC/ZMDES,
            TXT type /BIC/TZMDES-TXTSH,
             end of itabtype.
    data : itab type standard table of itabtype
    with key ZMDES,
    wa_itab like line of itab.
    Routine Code :
    select * from /BIC/TZMDES into corresponding fields of table itab for
    all entries in SOURCE_PACKAGE
    where ZMDES = SOURCE_PACKAGE-/BIC/ZPRJ3.
    READ TABLE itab INTO wa_itab
    WITH KEY ZMDES = SOURCE_PACKAGE-/BIC/ZPRJ3
    BINARY SEARCH.
    IF SY-SUBRC = 0.
    RESULT = wa_itab.
    CLEAR wa_itab.
    The tys_SC_1 structure is :
    BEGIN OF tys_SC_1,
         InfoObject: 0LOGSYS.
            LOGSYS           TYPE RSDLOGSYS,
         InfoObject: ZPRJ3.
            /BIC/ZPRJ3           TYPE /BIC/OIZPRJ3,
         InfoObject: ZDOM3.
            /BIC/ZDOM3           TYPE /BIC/OIZDOM3,
         Field: RECORD.
            RECORD           TYPE RSARECORD,
          END   OF tys_SC_1.
        TYPES:
          tyt_SC_1        TYPE STANDARD TABLE OF tys_SC_1
                            WITH NON-UNIQUE DEFAULT KEY.
    Please suggest with your valuable inputs.
    Thanks in Advance

    I have split the code in two.. one for start routine.. other for field routine.. hope this helps
    Types: begin of itabtype,
    ZMDES type /BIC/TZMDES-/BIC/ZMDES,
    TXT type /BIC/TZMDES-TXTSH,
    end of itabtype.
    data : itab type standard table of itabtype
    with key ZMDES,
    wa_itab like line of itab.
    Start routine
    select * from /BIC/TZMDES into corresponding fields of table itab for
    all entries in SOURCE_PACKAGE
    where ZMDES = SOURCE_PACKAGE-/BIC/ZPRJ3.
    Sort itab.
    field routine
    CLEAR wa_itab.
    READ TABLE itab INTO wa_itab
    WITH KEY ZMDES = SOURCE_FIELD-/BIC/ZPRJ3
    BINARY SEARCH.
    IF SY-SUBRC = 0.
    RESULT = wa_itab-<field name>

  • Alternative for AT NEW --- ENDAT

    Hello experts,
    I am using field-symbol as internal table. I cant use AT NEW statement inside this loop.
    Can u pls provide alternative for above control break statement.
    Thanks in advance.
    Zak.

    Hi,
    to use control break statement, first you should sort the internal table and then you use it.
    Take one example:
    data: begin of it9 occurs 4,
               f1,
               f2,
             end of it9.
      it9 = '1A'. append it9. "Fill it9 with data
      it9 = '3A'. append it9.
      it9 = '1B'. append it9.
      it9 = '2B'. append it9.
    sort it9 by f1.
    loop at it9.
         at new f1.
             write: / 'start of:', it9-f1.
             endat.
         at end of f1.
             write: / 'end   of:', it9-f1.
             endat.
         endloop.
    free it9.
    Hope it is helpful.
    Regards,
    Chris Gu

  • HT4597 what will be the new alternatives for iWeb publishing,  Idisk & photo gallery ?

    what will be the new alternatives for iWeb publishing,  Idisk & photo gallery ?

    Thanks for the reply that there will be 3rd party support.
    One of the main reasons why I went from PC to Mac was because of all these cool features.
    Am dissapointed to see them leave.  ( Iweb, Photogallery, Idisk... )

  • Alternative for FM 'NAMETAB_GET'

    Hi ,
      Can any one suggest an alternative for the FM 'NAMETAB_GET' in 4.7.
    Regards
    Arun

    Hi,
    You did noyt specify why you want this alternative for.
    Anyways, just check out RFC_GET_NAMETAB, which is also quite similar.
    Regards,
    Anand Mandalika.

  • Alternative for WBS BOM

    hello
    In standard BOM for PP in T-code eg cs01 I can write alternative. But if I want to create WBS BOM with T-code cs71 I can't see such field for alternative. I checked in help.sap.com that alternative for WBS BOM are not used. I don't know why but there is not alternative filed in CS71.
    So is there any other way to get alternatives for WBS BOM like modification, exit etc.
    I checked SAP notes for this but I can't find.
    Any help?

    hello
    Thank you for your answers.
    I have business process where I need WBS alternative. Why? Because of history of changes. My client wants to have 2 versions of one WBS BOM. One for history only and second for operative work. After some changes in WBS BOM and finish the project my client wants to analyse historical version which is created when project starts and the last operative version of the same WBS BOM.
    @Uddhab
    >If we prepare two BOM for a single WBS and attach the same in the WBS, then 2 requirement will flow and there will additional >quantity in the production.
    Yes, if we attach. I want to attach only one WBS BOM so I don't multiply quantity.

  • Alternative for TOAD on Linux

    Hi
    I am migrating my desktop from Windows 2000 to Redhat Linux 9.
    I have been using third party tool TOAD for accessing the data from the database. As TOAD does not have a Linux setup, can any one suggest an alternative for the same.
    Thanks in advance.
    Manoj

    you are posting in the wrong forum.. this forum is for the Desktop Datacenter Oracle on Linux VMware kit..
    you'll get better luck in other forums or better yet, Google.. I put toad and linux as keywords and got lots of hits on TOra.. so you might research that way..
    good luck,
    locking.

Maybe you are looking for