Essbase 7 YTD Calcscript

Hi All, this is my first post, and I've been really looking for a solution but I could not find anything like it to solve my problem.
I have a cube that I'm loading data daily in a month to date basis.
My date dimm is like:
Dim:Date
-> Months
->Jan
-> Jan_01
-> Jan_02
-> ....
-> ....
-> ....
-> Jan_31
->Feb
-> ....
-> ....
-> ....
-> Dec
->Calcs
YearToDate
MTD
RRate
Dim:Metrics
->EOP_Bal (UDAs: ULT)
->Sales (UDAs: ACU)
As my metrics are balance (EOP or AVG) and some turn over like Fees or Sales but MTD, I set up all of them as TB_Last.
AÑO is the SCENARIO Dim
And then wrote 12 calc scripts to calculate YTD depending on current month:
(Sample for March YTD)
FIX (@DESCENDANTS("AÑO"))
YearToDate (IF(@ISUDA(Metrics,"ULT"))
YearToDate = MES_03;
ELSE
YearToDate = MES_01 + MES_02 + MES_03;
ENDIF);
ENDFIX
(Sample for April YTD)
FIX (@DESCENDANTS("AÑO"))
YearToDate (IF(@ISUDA(Metrics,"ULT"))
YearToDate = MES_04;
ELSE
YearToDate = MES_01 + MES_02 + MES_03 + MES_04;
ENDIF);
ENDFIX
Any of these calc scripts it works only one time, after running one, if I run other one nothing happens until I modify something in the outline save it and restructure it...
I hope you can understand what I'm trying to do and explain.
Thanks in advance and happy new year!

Thanks for the fast repaly, I know DTS, and I use it in other cubes, but the problem with this one is that, suppose I'm loading Sales data every day
Jan_01 (Sales from Jan_01)
Jan_02 (Sales from Jan_01 + Jan_02)
Jan_20 (Sales from Jan_01 to Jan_20)....
So if I declare Sales as as Time Balance instead of TB_Last, January will be the sum of every day of its childs (Jan_01 to Jan_31) and it should be the same as Jan_31 if I'm at the end of the month.
How can I check if Intelligent Calc is turned on?
I found it!!! I added this line at the beginning of each ytd_calc and It works!!!
Set updatecalc off;
Thanks!
Edited by: user10777993 on Dec 28, 2009 8:28 AM
Edited by: user10777993 on Dec 28, 2009 8:30 AM

Similar Messages

  • Facing Issue while Extracting Data from Essbase using CalcScript

    Hi All,
    we are getting this error while extracting data from Essbase by CalcScript using ODI.
    Does anyone have the answer
    org.apache.bsf.BSFException: exception from Jython:
    Traceback (innermost last):
    File "<string>", line 1, in ?
    com.hyperion.odi.essbase.ODIEssbaseException: Cannot calculate file. Essbase Error(1030009): Name too long (C:\NewFolder\ACAD) in ESSAPI function EssCalcFile
         at com.hyperion.odi.essbase.ODIEssbaseDataReader.getAppData(Unknown Source)
         at com.hyperion.odi.essbase.AbstractEssbaseReader.extract(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java)
         at org.python.core.PyMethod.__call__(PyMethod.java)
         at org.python.core.PyObject.__call__(PyObject.java)
         at org.python.core.PyInstance.invoke(PyInstance.java)
         at org.python.pycode._pyx5046.f$0(<string>:1)
         at org.python.pycode._pyx5046.call_function(<string>)
         at org.python.core.PyTableCode.call(PyTableCode.java)
         at org.python.core.PyCode.call(PyCode.java)
         at org.python.core.Py.runCode(Py.java)
         at org.python.core.Py.exec(Py.java)
         at org.python.util.PythonInterpreter.exec(PythonInterpreter.java)
         at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:144)
         at com.sunopsis.dwg.codeinterpretor.k.a(k.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSqlC.treatTaskTrt(SnpSessTaskSqlC.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
         at com.sunopsis.dwg.cmd.e.k(e.java)
         at com.sunopsis.dwg.cmd.h.A(h.java)
         at com.sunopsis.dwg.cmd.e.run(e.java)
         at java.lang.Thread.run(Thread.java:595)
    Caused by: com.hyperion.odi.essbase.ODIEssbaseException: Cannot calculate file. Essbase Error(1030009): Name too long (C:\NewFolder\ACAD) in ESSAPI function EssCalcFile
         at com.hyperion.odi.essbase.wrapper.EssbaseCalcDataIterator.init(Unknown Source)
         ... 33 more
    Caused by: com.essbase.api.base.EssException: Cannot calculate file. Essbase Error(1030009): Name too long (C:\NewFolder\ACAD) in ESSAPI function EssCalcFile
         at com.essbase.server.framework.EssOrbPluginDirect.ex_olap(Unknown Source)
         at com.essbase.server.framework.EssOrbPluginDirect.essMainCalcFile(Unknown Source)
         at com.essbase.api.session.EssOrbPlugin._invokeMainMethod(Unknown Source)
         at com.essbase.api.session.EssOrbPlugin._invokeMethod2(Unknown Source)
         at com.essbase.api.session.EssOrbPlugin._invokeMethod(Unknown Source)
         at com.essbase.server.framework.EssOrbPluginDirect._invokeProtected(Unknown Source)
         at com.essbase.api.session.EssOrbPluginEmbedded.invokeMethod(Unknown Source)
         at com.essbase.api.session.EssOrbPluginEmbedded.invokeMethod(Unknown Source)
         at com.essbase.api.session.EssOrbPlugin.essMainCalcFile(Unknown Source)
         at com.essbase.api.datasource.EssCube.calculate(Unknown Source)
         at com.hyperion.odi.essbase.wrapper.EssbaseApplication.executeCalculationScript(Unknown Source)
         ... 34 more
    com.hyperion.odi.essbase.ODIEssbaseException: com.hyperion.odi.essbase.ODIEssbaseException: Cannot calculate file. Essbase Error(1030009): Name too long (C:\NewFolder\ACAD) in ESSAPI function EssCalcFile
         at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:146)
         at com.sunopsis.dwg.codeinterpretor.k.a(k.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSqlC.treatTaskTrt(SnpSessTaskSqlC.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
         at com.sunopsis.dwg.cmd.e.k(e.java)
         at com.sunopsis.dwg.cmd.h.A(h.java)
         at com.sunopsis.dwg.cmd.e.run(e.java)
         at java.lang.Thread.run(Thread.java:595)

    Hi Now i am getting this error.
    org.apache.bsf.BSFException: exception from Jython:
    Traceback (innermost last):
    File "<string>", line 1, in ?
    com.hyperion.odi.essbase.ODIEssbaseException: Cannot calculate file. Essbase Error(1030214): User [admin] cannot access calc script: ACAD
         at com.hyperion.odi.essbase.ODIEssbaseDataReader.getAppData(Unknown Source)
         at com.hyperion.odi.essbase.AbstractEssbaseReader.extract(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java)
         at org.python.core.PyMethod.__call__(PyMethod.java)
         at org.python.core.PyObject.__call__(PyObject.java)
         at org.python.core.PyInstance.invoke(PyInstance.java)
         at org.python.pycode._pyx5054.f$0(<string>:1)
         at org.python.pycode._pyx5054.call_function(<string>)
         at org.python.core.PyTableCode.call(PyTableCode.java)
         at org.python.core.PyCode.call(PyCode.java)
         at org.python.core.Py.runCode(Py.java)
         at org.python.core.Py.exec(Py.java)
         at org.python.util.PythonInterpreter.exec(PythonInterpreter.java)
         at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:144)
         at com.sunopsis.dwg.codeinterpretor.k.a(k.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSqlC.treatTaskTrt(SnpSessTaskSqlC.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
         at com.sunopsis.dwg.cmd.e.k(e.java)
         at com.sunopsis.dwg.cmd.h.A(h.java)
         at com.sunopsis.dwg.cmd.e.run(e.java)
         at java.lang.Thread.run(Thread.java:595)
    Caused by: com.hyperion.odi.essbase.ODIEssbaseException: Cannot calculate file. Essbase Error(1030214): User [admin] cannot access calc script: ACAD
         at com.hyperion.odi.essbase.wrapper.EssbaseCalcDataIterator.init(Unknown Source)
         ... 33 more
    Caused by: com.essbase.api.base.EssException: Cannot calculate file. Essbase Error(1030214): User [admin] cannot access calc script: ACAD
         at com.essbase.server.framework.EssOrbPluginDirect.ex_olap(Unknown Source)
         at com.essbase.server.framework.EssOrbPluginDirect.essMainCalcFile(Unknown Source)
         at com.essbase.api.session.EssOrbPlugin._invokeMainMethod(Unknown Source)
         at com.essbase.api.session.EssOrbPlugin._invokeMethod2(Unknown Source)
         at com.essbase.api.session.EssOrbPlugin._invokeMethod(Unknown Source)
         at com.essbase.server.framework.EssOrbPluginDirect._invokeProtected(Unknown Source)
         at com.essbase.api.session.EssOrbPluginEmbedded.invokeMethod(Unknown Source)
         at com.essbase.api.session.EssOrbPluginEmbedded.invokeMethod(Unknown Source)
         at com.essbase.api.session.EssOrbPlugin.essMainCalcFile(Unknown Source)
         at com.essbase.api.datasource.EssCube.calculate(Unknown Source)
         at com.hyperion.odi.essbase.wrapper.EssbaseApplication.executeCalculationScript(Unknown Source)
         ... 34 more
    com.hyperion.odi.essbase.ODIEssbaseException: com.hyperion.odi.essbase.ODIEssbaseException: Cannot calculate file. Essbase Error(1030214): User [admin] cannot access calc script: ACAD
         at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:146)
         at com.sunopsis.dwg.codeinterpretor.k.a(k.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSqlC.treatTaskTrt(SnpSessTaskSqlC.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
         at com.sunopsis.dwg.cmd.e.k(e.java)
         at com.sunopsis.dwg.cmd.h.A(h.java)
         at com.sunopsis.dwg.cmd.e.run(e.java)
         at java.lang.Thread.run(Thread.java:595)

  • Current Month vs. YTD

    I am wanting to show account balances for the Current Month vs. Year to Date. I am using a BSO cube and have heard that Dynamic Time Series don't work in OBIEE, which is where we're going to be building reports off this data. We want this calculation to be available from multiple front ends so we need to do the calculation in the cube.
    I followed the following two suggestions to form a hybrid approach:
    http://www.intellientblog.co.za/index.php/tag/essbase-ytd-calculation/
    http://www.network54.com/Forum/58296/thread/1147201898/YTD+variance+calc
    I created a new dimension with two members - Current Month (just a stored member) and YTD (dynamic calc) with the following formula: @SUMRANGE("Current Month",@CURRMBRRANGE ("Date", LEV, 0, -(@count (skipmissing, @lsiblings (@currmbr ("Date")))), 0));
    At first I thought this was working great, I filtered down to a month in the Date dimension and everything looked good. However, my Date dimension (which is my time dimension) is set up like so:
    Year
    --Quarter
    ----Month
    Which made it so my formula gave me QTD. I modified my formula to: @SUMRANGE("Current Month",@CURRMBRRANGE ("Date", LEV, 0, -(@count (skipmissing, @lsiblings (@currmbr ("Date")))+@count(skipmissing,@lsiblings(@parent(@currmbr("Date"))))*3), 0));
    This doesn't work though - it always gives me quarter to date. When I have -(@count (skipmissing, @lsiblings (@currmbr ("Date")))+@count(skipmissing,@lsiblings(@parent(@currmbr("Date"))))*3) as the formula for a member it gives me the correct number, but as part of the YTD formula it always gives me 0.
    Any ideas why this would be happening?

    Ah apologies, had forgotten to ask if year and period are in the same dimension. So your Date dimension actually looks like:
    2011
    - Qtr1
    -- Jan
    -- Feb
    -- Mar
    - Qtr2
    -- Apr
    -- etc
    2012
    - Qtr1
    -- Jan
    -- etc
    If this is the case then I think you have two options:
    1. You set up an IF statement where the step back varies by period, e.g.
    IF(@ISMBR (Jan))
    YTD = @SUMRANGE("Current Month", @CURRMBRRANGE ("Date", LEV, 0, 0, 0));
    ELSEIF(@ISMBR(Feb))
    YTD = @SUMRANGE("Current Month", @CURRMBRRANGE ("Date", LEV, 0, -1, 0));
    ELSEIF(@ISMBR(Mar))
    YTD = @SUMRANGE("Current Month", @CURRMBRRANGE ("Date", LEV, 0, -2, 0));
    etc
    ELSEIF(@ISMBR(Dec))
    YTD = @SUMRANGE("Current Month", @CURRMBRRANGE ("Date", LEV, 0, -11, 0));
    ENDIF
    If you have multiple Jan's e.g. Jan2011, Jan2012 you may want to assign a UDA and change the above to be IF(@ISUDA(Date, Jan)) and so on
    2. Set up a member to store the offset value as a dynamic calc, lets call it OffsetYTD, you would need to have a similar IF, ELSEIF, ENDIF formula but no need to repeat all the range bits, e.g.
    IF(@ISMBR(Jan))
    0;
    ELSEIF(@ISMBR(Feb))
    -1;
    etc
    then your YTD formula becomes simpler:
    YTD = @SUMRANGE("Current Month", @CURRMBRRANGE("Date", LEV, 0, OffsetYTD, 0));
    If the offset is something you can re-use in other formulae / reports then I like option 2 (WFP and CapEx modules for Hyperion Planning use similar concepts for TP-Index and NumPeriods)
    Hope this helps
    Stuart

  • Calc Scripts

    <p>Hello,  I am new to Essbase and calcscripts as well as this discussion board. I have been reading a calc script in hopes of optimizing itsince it seems to take longer than anticpated.  Someone elsewrote it but I am trying to figure if parts of it are really doinganything except taking up time.  The following snipet is whatexactly I am curious about.</p><p> </p><p>**I have placed comments amongst the calc script to specifyareas that I am unclear about.</p><p> </p><p>Fix(currentyear, financial, CalcMAct)</p><p>SET AGGMISSG OFF;</p><p>Fix (HEL, Init, "NoMfgS", @RELATIVE("TotSellMeth", 0))<br>     DataCopy "HEGS" TO"GoodS@L";<br>     DataCopy "HECS" TO"GoodP";</p><p>     // Why fix here when nothing seems tohappen below and a new fix proceeds it after the last endfix?<br>      Fix ("GoodS@ L","GoodP")  <br>          @IDESCENDANTS(UB88);  // To me this doesn't seem to be doing much<br>      EndFix<br>EndFix<br>SET AGGMISSG ON;</p><p><br>Fix (@RELATIVE (UB88, 0))  //Is this doing anything since anew fix comes right after it?</p><p>//  I understand this fix because it is fixating andcopying but don't understand how the other fix helped get to thispoint.<br>Fix (@RELATIVE ("TotSellMeth", 0), @RELATIVE("TotMan", 0))<br>      DataCopyWorking->Init->"GoodQ" TOAct->Init->"GoodQ";<br>EndFix<br><br>Fix (Act, Init)  //  What is this doing if another fixproceeds right after it?<br><br>Fix (@RELATIVE ("TotSellMeth", 0), @RELATIVE("TotalMan", 0))</p><p>.</p><p>.</p><p>.</p><p>.</p><p>As I stated I am a newbie and I am not sure if those fixes I hadcomments on are indeed necessary or if they are just loadingdatablocks into storage and not being used to really fixate onanything.  I was under the impression from a course I took athyperion that to fixate on a particular datablock you use one fixor nested fixes.  </p>

    The line which you don't think is doing anything is applying the member calcs (from the outline) to the descendants of UB88. When a member name is placed by itself as a statment, it means to use the calculation that is in the outline, basically as a calc of that item at the time it is called, nesting it in the fix as it is simply means that there is a datacopy (probably to create blocks) and then a focus forther in on the two dimesions and recalcing Descendents of UB88.<BR><BR>Nesting fixes like this is not an unusual way of doing things. I might fix on a date in a single fix statement, then nest a couple of other fixes on other dimensions within the first fix, maybe doing sonething different in different regions.

  • Create Ytd measure from essbase accounts

    Hi,
    We have separate dimension for Year and Period (Month) in Essbase without Ytd member for period. In BIEE, how do we create YTD measure from existing logical column?
    Thanks,
    GT

    Hi narthan,
    According to your description, you want to select data between first day of this year and last day of previous month. If that is the case, we can achieve your goal by two ways:
    • Adding where statement to the query without using parameter like below:
    where column_name between DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) and dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
    • Adding two parameters named StartDate and EndDate by following steps:
    1. In Dataset Properties dialog box, in Query text box, add where statement like below, then the parameters will be created automatically
    where column_name between @StartDate and @EndDate
    2. In Design surface, expand Parameter node. Right-click @StartDate and open Parameter Properties dialog box.
    3. In Data Type drop down list, select Date/Time.
    4. In left pane, click Default Values, then select Specify Values.
    5. Click (fx) button, in Expression text box, type the following expression, then click OK to save the options.
    =DateSerial(YEAR(Today()),1,1)
    6. Right click @Enddate and set Data Type to Date/Time as step3.
    7. Repeat the options of step4 and 5 above, and type the expression like below, then click OK.
    =DateAdd("d",-(Day(today())), Today())
    For more information about Adding Parameters to Filter Reports by Date, please refer to the following document:
    http://technet.microsoft.com/en-us/library/aa337401(v=SQL.105).aspx
    If you have any questions, please feel free to let me know.
    Best Regards,
    Wendy Fu

  • Smartlist in Hyperion essbase calcscripts

    Please give any advice to me how to use the smartlist in Hyperion essbase calcscripts .....is it possble?
    if it is possible Plz provide links/doc/ppts .

    Smartlists are not used on Essbase , but in planning. The numeric values from the smartlist are stored as values within Essbase. you could test for the values in a calc script but not the smartlist. If you are talking about the text lists used within Essbase 11X look at @enumvalue

  • View dimension mysteriously filled with YTD in Essbase adapter

    Hi,
    I don't understand how my view column is automatically filled with the value YTD during my FDM import.
    I have a source file without a view dimension, i have no view dimension in my import format i have 'YTD_Inp' as the no-data value in the dimension specification.
    But still the view in the export is filled with YTD.
    When i change my datavalue dimension to View and set YTD_INP as the no data value it works fine.
    Has anybody an idea where the YTD comes from and how i can change it to YTD_Inp?
    Thanks in advance,
    Marc

    This is what we do for our HFM adapter to get the View dimension to display Periodic rather than YTD.
    Enable the View dimension in workbench for the adapter (sounds like you did this, we figure this would be enough but it didn't work for us either)
    In your import group, add another import format line; add one for View. I generally say take field 1 of 1 as I am doing CSV. Under the script column just enter the value "YTD_Inp".
    View | 1 | 1 | YTD_Inp
    This should write YTD_Inp as the View to every record that is imported/validated/exported.
    Hope this works!

  • Invoking Essbase calcscript using FDMEE import scripts

    Hi Team ,
    I am trying to run an essbase calc script on the event of validate in FDMEE . Can i call essbase script from an event script in fdmee and pass the parameters to run the essbase script .
    I know we have an option to call calc scripts before and after data load but that option is not helping my solution. Suggestions please friends.
    Regards,
    Roshin Rasheed

    I agree that the AftValidate time is an unusual time to call it, but the basic logic would be as follow:
    FDMEE calls a .bat file
    the .bat file calls a MaxL script
    the MaxL script does whatever you want the script to do.
    In our example, we're using it as a BefImport script that calls a MaxL script to export data to a database that the remainder of the BefImport script then grabs for the Import process.
    Not sure why you would need that on Validate, but the same concept could apply.

  • Essbase (CalcScript) - ODI

    Hello,
    I am loading budget data from Sql Server 2005 to Essbase cube using ODI (IKM SQL to Hyperion Essbase (Data) ).
    I want to clear only Budget data before loading it. is there any way to implement this? I checked option in IKM has Clear Database but it saying to clear database but i don't want to do it..
    Thanks,

    Hi,
    You could duplicate the interface, then in the KM options set RUN_CALC_SCRIPT_ONLY to Yes, set CALCULATION_SCRIPT to equal the calc script you want to run.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • How to build the time dimension in Essbase with Fiscal Year (July thru Jun)

    Hi,
    In a recent project i have a situation where i need the time dimension to have some thing like this Fiscal Year (July - June) using BSO need to achieve DTS (YTD and QTD) functionality also.
    And also my reports should also be able to drill through and needs comparison years(Prev Year Vs Current Year), months(Prev Year Vs Current Year) and Qtrs(Prev Year Vs Current Year).
    How can i achieve this using BSO?.

    Hi there,
    This forum is for Oracle OLAP. The Essbase forum can be found here:- Essbase
    Thanks,
    Stuart Bunby
    OLAP Blog: http://oracleOLAP.blogspot.com
    OLAP Wiki: http://wiki.oracle.com/page/Oracle+OLAP+Option
    OLAP on OTN: http://www.oracle.com/technology/products/bi/olap/index.html
    DW on OTN : http://www.oracle.com/technology/products/bi/db/11g/index.html

  • Error While Loading data from HFM to Essbase

    Hi,
    I am trying to load data from a HFM application to Essbase application. The LKM i am using is "HFM Data to SQL" and the IKM is "SQL to Hyperion Essbase(DATA). I am also using couple of mapping expression like {CASEWHEN(HFMDATA."Account" = '3110', 'PL10100', HFMDATA."Account") } , {CASEWHEN(HFMDATA."Period" = 'January', 'Jan', HFMDATA."Period") } etc.
    The error i am getting looks like this -
    org.apache.bsf.BSFException: exception from Jython:
    Traceback (innermost last):
    File "<string>", line 23, in ?
    com.hyperion.odi.essbase.ODIEssbaseException: Invalid column type specified for Data column [Account]
         at com.hyperion.odi.essbase.ODIEssbaseDataWriter.loadData(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java)
         at org.python.core.PyMethod.__call__(PyMethod.java)
         at org.python.core.PyObject.__call__(PyObject.java)
         at org.python.core.PyInstance.invoke(PyInstance.java)
    I am mapping account dimension of HFM to to account dimension of essbase. Both source and target column type is "string" with length 80. Instead of keeping the target "Essbase application", if i keep an Oracle table, columns of which are exactly like essbase application, ODI is loading data perfectly with proper coversion.
    Can anyody please help me out.
    Many thanks.
    N. Laha.

    Hi John,
    Thank you very much for your response. Pasting here the SQl generated at step "8. Integration - Load data into Essbase" in the operator in the description tab, for your perusal -
    from com.hyperion.odi.common import ODIConstants
    from com.hyperion.odi.connection import HypAppConnectionFactory
    from java.lang import Class
    from java.lang import Boolean
    from java.sql import *
    from java.util import HashMap
    # Get the select statement on the staging area:
    sql= """select CASEWHEN(C3_ACCOUNT = '3110', 'PL10100', C3_ACCOUNT) "Account",CASEWHEN(C4_PERIOD = 'January', 'Jan', C4_PERIOD) "TimePeriod",'HSP_Inputvalue' "HSP_Rates",C8_SCENARIO "Scenario",CASEWHEN(C2_YEAR = '2007', 'FY09', C2_YEAR) "Years",CASEWHEN(C1_CUSTOM1 = '2012', 'Atacand', C1_CUSTOM1) "Product",CASEWHEN(C7_VIEW = 'YTD', 'Input', C7_VIEW) "Version",CASEWHEN(C6_VALUE = 'USD', 'Local', C6_VALUE) "Currency",C9_ENTITY "Entity",C5_DATAVALUE "Data" from "C$_0AZGRP_PLData" where      (1=1) """
    srcCx = odiRef.getJDBCConnection("SRC")
    stmt = srcCx.createStatement()
    srcFetchSize=30
    stmt.setFetchSize(srcFetchSize)
    rs = stmt.executeQuery(sql)
    #load the data
    stats = pWriter.loadData(rs)
    #close the database result set, connection
    rs.close()
    stmt.close()
    From the SQL, you may find the CASEWHEN expressions. Yes these i have added in the interface mapping section, with the help of ODI expression editor. Following are the expressions i have used, one statement for one mapping each. This is just to make the data of HFM, compatible to Essbase. e.g. - account number in HFM for which i am estracting the data is 3110, but there is no account '3110' in the essbase application, so essbase application wont be able to load the data. To make the HFM data compatible with Essbase, these casewhen statements have been used. I hope its fine to use such statements in mapping.
    CASEWHEN(HFMDATA."Year" = '2007', 'FY09', HFMDATA."Year")
    CASEWHEN(HFMDATA."View" = 'YTD', 'Input', HFMDATA."View")
    CASEWHEN(HFMDATA."Entity" = '100106_LC', '1030GB', HFMDATA."Entity")
    CASEWHEN(HFMDATA."Value" = 'USD', 'Local', HFMDATA."Value")
    CASEWHEN(HFMDATA."Account" = '3110', 'PL10100', HFMDATA."Account")
    CASEWHEN(HFMDATA."Custom1" = '2012', 'Atacand', HFMDATA."Custom1")
    CASEWHEN(HFMDATA."Period" = 'January', 'Jan', HFMDATA."Period")
    If you can get some idea from the SQL and help me out!
    Many thanks.
    N. Laha
    Edited by: user8732338 on Sep 28, 2009 9:45 PM

  • OBIEE 11g write back to Essbase and run calc script feature

    Hi,
    I have a requirement to write back into Essbase Cube and run calc script from OBIEE dashboard.
    From what i have search on google, we must deploy additional Java Script into weblogic, but that is before OBIEE 11.1.1.6.
    I have 2 question:
    - Does OBIEE 11.1.1.6 already supported native write-back to Essbase and running calcscript?
    - Anyone has example of the custom java-script for write back and running calcscript?
    And another, if there are requirement like this, is it better to install Essbase Add-in on Microsoft Excel and do the what-if analysis there, then just display the report on OBIEE dashboard? (based on user-friendliness and the complexity on maintenance)
    Thanks in advance.

    Hi,
    Even I am trying to achieve the same thing as you have mentioned but think that it is not possible to achieve easily in obiee 11.1.1.6, though we do have a work around to perform a writeback in Essbase cube using JAPI as mentioned below.
    Also we can call Hyperion reports from OBIEE using Action Links and also pass parameters to the same but dont know if it runs calculation script.
    Below link could be useful for you for write back workaround.
    http://oraclebizint.wordpress.com/2009/05/25/oracle-bi-ee-10-1-3-4-1-writebacks-to-essbase-using-japi-and-custom-html-part-1/
    Let me know in case you have found out anything else related to same.
    Thanks,

  • How to check if the member exists in essbase cube using IF cond.

    Hello,
    I have a requirement to validate certain accounts and if they exist or not and use them in calc. We have certain list of percent accounts which have some driver amounts. If the user selects the parent account, it should automatically calc with percent accounts to generate the values for all its children.
    The issue is we have lots of accounts and lots of percent accounts, its not that all accounts have the percent accounts. thats the problem.
    When I Fix at a high level of accounts, am getting this error which says that member doesnt exists and return empty member set.
    Error executing formula for [Revcnt] (line 49): attempt to cross a null member in function [@X]
    Its the same even if I use Set Emptymembersets ON;
    The script is below,
    FIX(@Relative({SelectAccount},0),
    "Revcnt"(
    IF(@ISMBR(@MEMBER(@CONCATENATE(@NAME(@CURRMBR("Account")),"%"))
    Condition ;
    ENDIF);
    ENDFIX
    Is there a command to validate if the member exists in the cube or not???
    We are using 11.1.2.1 Essbase on Windows 64bit.

    The silly question first:
    Why not user dynamic calc for the members you need? When updating the structure, you create the formula. Your verification if a member exists will be done in, for example, a select statement that create the dimension.
    Now the complex idea:
    Is it possible in your application recreate the script every time you update the dimension?
    My example:
    Here we have a cube that change the account dimension very often. So the cube have an CalcScript that need to be updated every time the dimension changes.
    For that purpose, we have a process that read the database and recreate the calc with the correct members.
    I never tested that solution with calc manager, but i think it's less complex than recognize the member itself during calculation.

  • Hyperion Essbase QAT Menu with Excel 2007

    I just upgraded to Hyperion Essbase 11.1.1.3 and I recently upgraded to Excel 2007. Moving to XL2007 made the Essbase add-in two levels deep in the ribbon so I wanted to move this to the Quick Access Toolbar (QAT). I found a great tool to develop QAT menus authored by [url http://www.rondebruin.nl/qat.htm]Ron Debruin.
    I took his code and customized it to work with the Hyperion commands. Picture of menu here: http://i.imgur.com/X7zFS.jpg
    Everything worked great for a few month for both myself and about 75 coworkers but once we upgraded to Essbase 11.1.1.3 from 7, the menu macros stopped working for almost everyone except for myself and a few others.
    I set this macro in the xlstart folders so that it opens with excel. The QAT menu still appears for everyone, but when selecting any of the menu items to run, nothing runs.
    Example: When running
    Sub MyMacro21()
        Call EssMenuVConnect
    End Subfrom the custom QAT menu, nothing happens. What should occur is a popup login for Hyperion. I've even tried to run the code outside of the QAT menu and it does not work so this leads me to believe something is wrong with my Hyperion code. Now mind you, this work fine on my machine.
    I'm unable to determine the cause for the macro to not work. Any help or troubleshooting pointers would be appreciated.
    Here is the code that I'm using.
    Thanks in advance for any help.
    -Risk
    <font color="blue">First Module (Hyperion Code and subs for the QAT menu)</font>
    Option Explicit
    Option Private Module
    Declare Function EssMenuVRetrieve Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVKeepOnly Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVZoomIn Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVZoomOut Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVPivot Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVWizard Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVQueryDesigner Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVFlashBack Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVOptions Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVMemberSelection Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVCurrencyReport Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVCascade Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVRetrieveLock Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVLock Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVUnlock Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVSend Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVCalculation Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVConnect Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVDisconnect Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVDatalessNav Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVLinkedObjects Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVRemoveOnly Lib "ESSEXCLN.XLL" () As Long
    Declare Function EssMenuVLaunchTableau Lib "ESSEXCLN.XLL" () As Long
    ' The following prototype declares the VBA-specific functions
    Declare Function EssVGetHctxFromSheet Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant) As Long
    Declare Function EssVGetMemberInfo Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ByVal mbrName As Variant, ByVal action As Variant, ByVal aliases As Variant) As Variant
    Declare Function EssVFreeMemberInfo Lib "ESSEXCLN.XLL" (ByRef memInfo As Variant) As Long
    Declare Function EssVFreeDataPoint Lib "ESSEXCLN.XLL" (ByRef Info As Variant) As Long
    ' The following constants are suitable as actions
    ' for the EssVGetMemberInfo function
    Const EssChildLevel = 1
    Const EssDescendentLevel = 2
    Const EssBottomLevel = 3
    Const EssSiblingLevel = 4
    Const EssSameLevel = 5
    Const EssSameGenerationLevel = 6
    Const EssCalculationLevel = 7
    Const EssParentLevel = 8
    Const EssDimensionLevel = 9
    ' The following prototypes declare the Visual Basic
    ' Extended Spreadsheet macro-equivalent functions
    Declare Function EssVCalculate Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ByVal calcScript As Variant, ByVal synchronous As Variant) As Long
    Declare Function EssVCancelCalc Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant) As Long
    Declare Function EssVCascade Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ByVal range As Variant, ByVal selection As Variant, ByVal path As Variant, ByVal prefix As Variant, ByVal suffix As Variant, ByVal level As Variant, ByVal openFile As Variant, ByVal copyFormats As Variant, ByVal overwrite As Variant, ByVal listFile As Variant) As Long
    Declare Function EssVCell Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ParamArray memberList() As Variant) As Variant
    Declare Function EssVConnect Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ByVal userName As Variant, ByVal password As Variant, ByVal server As Variant, ByVal application As Variant, ByVal database As Variant) As Long
    Declare Function EssVDisconnect Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant) As Long
    Declare Function EssVFlashBack Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant) As Long
    Declare Function EssVGetCurrency Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant) As Variant
    Declare Function EssVGetDataPoint Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ByVal cell As Variant, ByVal range As Variant, ByVal aliases As Variant) As Variant
    Declare Function EssVGetGlobalOption Lib "ESSEXCLN.XLL" (ByVal item As Long) As Variant
    Declare Function EssVGetSheetOption Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ByVal item As Variant) As Variant
    Declare Function EssVKeepOnly Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ByVal range As Variant, ByVal selection As Variant) As Long
    Declare Function EssVRemoveOnly Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ByVal range As Variant, ByVal selection As Variant) As Long
    Declare Function EssVPivot Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ByVal range As Variant, ByVal startPoint As Variant, ByVal endPoint As Variant) As Long
    Declare Function EssVRetrieve Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ByVal range As Variant, ByVal lockFlag As Variant) As Long
    Declare Function EssVSendData Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ByVal range As Variant) As Long
    Declare Function EssVSetCurrency Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ByVal currencyIdentifier As Variant) As Long
    Declare Function EssVSetGlobalOption Lib "ESSEXCLN.XLL" (ByVal item As Long, ByVal globalOption As Variant) As Long
    Declare Function EssVSetSheetOption Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ByVal item As Variant, ByVal sheetOption As Variant) As Long
    Declare Function EssVUnlock Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant) As Long
    Declare Function EssVZoomIn Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ByVal range As Variant, ByVal selection As Variant, ByVal level As Variant, ByVal across As Variant) As Long
    Declare Function EssVZoomOut Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ByVal range As Variant, ByVal selection As Variant) As Long
    Declare Function EssVSetMenu Lib "ESSEXCLN.XLL" (ByVal setMenu As Boolean) As Long
    Declare Function EssVGetStyle Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ByVal styleType As Variant, ByVal dimName As Variant, ByVal item As Long) As Variant
    Declare Function EssVSetStyle Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ByVal styleType As Variant, ByVal dimName As Variant, ByVal item As Long, ByVal newValue As Variant) As Long
    Declare Function EssVLoginSetPassword Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ByVal newPassword As Variant, ByVal oldPassword As Variant, ByVal server As Variant, ByVal userName As Variant) As Long
    Declare Function EssVSetSKUMouse Lib "ESSEXCLN.XLL" (ByVal fSKUWithMouse As Variant) As Long
    Sub MyMacro1()
        Call EssMenuVRetrieve
    End Sub
    Sub MyMacro2()
        Call EssMenuVKeepOnly
    End Sub
    Sub MyMacro3()
        Call EssMenuVRemoveOnly
    End Sub
    Sub MyMacro4()
        Call EssMenuVZoomIn
    End Sub
    Sub MyMacro5()
        Call EssMenuVZoomOut
    End Sub
    Sub MyMacro7()
        Call EssMenuVDatalessNav
    End Sub
    Sub MyMacro9()
        Call EssMenuVLinkedObjects
    End Sub
    Sub MyMacro12()
        Call EssMenuVFlashBack
    End Sub
    Sub MyMacro13()
        Call EssMenuVOptions
    End Sub
    Sub MyMacro14()
        Call EssMenuVMemberSelection
    End Sub
    Sub MyMacro15()
        Call EssMenuVCurrencyReport
    End Sub
    Sub MyMacro17()
        Call EssMenuVLock
    End Sub
    Sub MyMacro18()
        Call EssMenuVUnlock
    End Sub
    Sub MyMacro19()
        Call EssMenuVSend
    End Sub
    Sub MyMacro20()
        Call EssMenuVCalculation
    End Sub
    Sub MyMacro21()
        Call EssMenuVConnect
    End Sub
    Sub MyMacro22()
        Call EssMenuVDisconnect
    End Sub
    Sub MyMacro23()
        Call SHRetrieveRetain
    End Sub
    Sub MyMacro24()
        Call WBRetrieveRetain
    End Sub
    Sub MyMacro25()
        Call SHRetrieveSuppress
    End Sub
    Sub MyMacro26()
        Call WBRetrieveSuppress
    End Sub<font color="blue">Second Module (this is Ron Debruin's QAT code)</font>
    Option Explicit
    Option Private Module
    'TIP:
    'After you click on "Edit Menu" in the menu you can change the button image.
    'Right click on the QAT and choose Customize Quick Access Toolbar.
    'In the “Choose commands from” dropdown choose Macros and in the
    'Customize Quick Access Toolbar dropdown choose "For My Add-in.xlam".
    'Select the RDBDisplayPopUp macro and press the Modify button to change the icon.
    Sub WBCreatePopUp()
        Dim MenuSheet As Worksheet
        Dim MenuItem As Object
        Dim SubMenuItem As CommandBarButton
        Dim Row As Integer
        Dim MenuLevel, NextLevel, MacroName, Caption, Divider, FaceId
        '   Location for menu data
        Set MenuSheet = ThisWorkbook.Sheets("MenuSheet")
        '   Make sure the menus aren't duplicated
        Call WBRemovePopUp
        '   Initialize the row counter
        Row = 5
        '   Add the menu, menu items and submenu items using
        '   data stored on MenuSheet
        ' First we create a PopUp menu with the name of the value in B2
        With application.CommandBars.Add(ThisWorkbook.Sheets("MenuSheet"). _
                                         range("B2").Value, msoBarPopup, False, True)
            Do Until IsEmpty(MenuSheet.Cells(Row, 1))
                With MenuSheet
                    MenuLevel = .Cells(Row, 1)
                    Caption = .Cells(Row, 2)
                    MacroName = .Cells(Row, 3)
                    Divider = .Cells(Row, 4)
                    FaceId = .Cells(Row, 5)
                    NextLevel = .Cells(Row + 1, 1)
                End With
                Select Case MenuLevel
                Case 2    ' A Menu Item
                    If NextLevel = 3 Then
                        Set MenuItem = .Controls.Add(Type:=msoControlPopup)
                    Else
                        Set MenuItem = .Controls.Add(Type:=msoControlButton)
                        MenuItem.OnAction = ThisWorkbook.Name & "!" & MacroName
                    End If
                    MenuItem.Caption = Caption
                    If FaceId <> "" Then MenuItem.FaceId = FaceId
                    If Divider Then MenuItem.BeginGroup = True
                Case 3    ' A SubMenu Item
                    Set SubMenuItem = MenuItem.Controls.Add(Type:=msoControlButton)
                    SubMenuItem.Caption = Caption
                    SubMenuItem.OnAction = ThisWorkbook.Name & "!" & MacroName
                    If FaceId <> "" Then SubMenuItem.FaceId = FaceId
                    If Divider Then SubMenuItem.BeginGroup = True
                End Select
                Row = Row + 1
            Loop
        End With
    End Sub
    Sub RDBDisplayPopUp()
        On Error Resume Next
        application.CommandBars(ThisWorkbook.Sheets("MenuSheet").range("B2").Value).ShowPopup
        On Error GoTo 0
    End Sub
    Sub EditMenu()
        ThisWorkbook.IsAddin = False
    End Sub
    Sub WBRemovePopUp()
        On Error Resume Next
        application.CommandBars(ThisWorkbook.Sheets("MenuSheet").range("B2").Value).Delete
        On Error GoTo 0
    End Sub<font color="blue">Third Module (some custom Essbase comands to toggle between "retain formula options" and "suppress zero options")</font>
    Option Explicit
    Sub WBRetrieveRetain()
    Dim sh As Worksheet, HidShts As New Collection 'to handle hidden sheets
        For Each sh In ActiveWorkbook.Worksheets
            If Not sh.Visible Then
                HidShts.Add sh
                sh.Visible = xlSheetVisible
            End If
        Next sh
    For Each sh In Worksheets
        Sheets(sh.Name).Activate
       'Turn On Retain and Turns off Suppress and double clicks
        If EssVGetSheetOption(Empty, 6) = True Or _
           EssVGetSheetOption(Empty, 7) = True Then
           Call EssVSetSheetOption(Empty, 6, False)
           Call EssVSetSheetOption(Empty, 7, False)
        End If
        If EssVGetGlobalOption(1) = True Or _
           EssVGetGlobalOption(2) = True Then
           Call EssVSetGlobalOption(1, False)
           Call EssVSetGlobalOption(2, False)
        End If
        Call EssVSetSheetOption(Empty, 11, True)
        Call EssVSetSheetOption(Empty, 21, True)
        Call EssVSetSheetOption(Empty, 22, True)
      Next
        For Each sh In HidShts
            sh.Visible = xlSheetHidden
        Next sh
    End Sub
    Sub SHRetrieveRetain()
       'Turn On Retain and Turns off Suppress and double clicks
        If EssVGetSheetOption(Empty, 6) = True Or _
           EssVGetSheetOption(Empty, 7) = True Then
           Call EssVSetSheetOption(Empty, 6, False)
           Call EssVSetSheetOption(Empty, 7, False)
        End If
        If EssVGetGlobalOption(1) = True Or _
           EssVGetGlobalOption(2) = True Then
           Call EssVSetGlobalOption(1, False)
           Call EssVSetGlobalOption(2, False)
        End If
        Call EssVSetSheetOption(Empty, 11, True)
        Call EssVSetSheetOption(Empty, 21, True)
        Call EssVSetSheetOption(Empty, 22, True)
    End Sub
    Sub SHRetrieveSuppress()
       'Turn Off Retain and Turns on Suppress
        If EssVGetSheetOption(Empty, 11) = True Or _
           EssVGetSheetOption(Empty, 21) = True Or _
           EssVGetSheetOption(Empty, 22) = True Then
           Call EssVSetSheetOption(Empty, 11, False)
           Call EssVSetSheetOption(Empty, 21, False)
           Call EssVSetSheetOption(Empty, 22, False)
        End If
        Call EssVSetSheetOption(Empty, 6, True)
        Call EssVSetSheetOption(Empty, 7, True)
    End Sub
    Sub WBRetrieveSuppress()
    Dim sh As Worksheet, HidShts As New Collection 'to handle hidden sheets
        For Each sh In ActiveWorkbook.Worksheets
            If Not sh.Visible Then
                HidShts.Add sh
                sh.Visible = xlSheetVisible
            End If
        Next sh
    For Each sh In Worksheets
        Sheets(sh.Name).Activate
       'Turn Off Retain and Turns on Suppress
        If EssVGetSheetOption(Empty, 11) = True Or _
           EssVGetSheetOption(Empty, 21) = True Or _
           EssVGetSheetOption(Empty, 22) = True Then
           Call EssVSetSheetOption(Empty, 11, False)
           Call EssVSetSheetOption(Empty, 21, False)
           Call EssVSetSheetOption(Empty, 22, False)
        End If
        Call EssVSetSheetOption(Empty, 6, True)
        Call EssVSetSheetOption(Empty, 7, True)
      Next
        For Each sh In HidShts
            sh.Visible = xlSheetHidden
        Next sh
    End Sub<font color="blue">Excel Object Code</font>
    Option Explicit
    Private Sub CommandButton1_Click()
        Call WBCreatePopUp
        MsgBox "Click on the button in the QAT to see if your menu is correct.", vbOKOnly, "Favorite Macro Menu"
    End Sub
    Private Sub CommandButton2_Click()
        Call WBCreatePopUp
        range("A1").Select
        ThisWorkbook.IsAddin = True
        ThisWorkbook.Save
    End Sub
    Private Sub CommandButton3_Click()
        ThisWorkbook.IsAddin = True
        ThisWorkbook.Saved = True
    End Sub
    Option Explicit
    Private Sub Workbook_Open()
        Call WBCreatePopUp
    End Sub
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Call WBRemovePopUp
    End Sub

    Hi Mathieu,
    As per support matrix documentation, Essbase 7.1.3 is not supported with Excel 2007.
    You may have to upgrade to client version 7.1.6.7 which supports Excel 2007.
    Thanks,
    Raja

  • Essbase Studio: Failed to deploy Essbase cube

    Hi
    I have started working with Essbase studio sometime back and I am able to deploy BSO cube with success using the TBCSample Database which comes along with Essbase. Now I wanted to deploy ASO cube, as no sample database is available I thought to create one, I extracted ASOSamp using ODI to CSV files. Then I bulk inserted the csv extracts into MSSQL 2003 server which created 11 tables (Age, Geography, IncomeLevel, Measures, PaymentType, Product, Stores, Time TransactionType, Year). The above mentioned table does not have any keys(Primary, Foreign) as it is an Essbase export.
    I then successful created ASO Cube Schema using the newly created sample database in MSSQL, validated cube schema without any errors.
    Essbase Property Setting:
    Measures Hierarchy is tagged as Dynamic Compression at dimension level
    Time, Product and Year Hierarchy is tagged as Multiple Hierarchies Enabled, Year does not have multiple hierarchies but it has formulas for Variance and Variance % member. Is there a way to tag Year as Dynamic hierarchy?
    But when I try to deploy the cube to Essbase I receive following errors:
    Failed to deploy Essbase cube
    Caused By: Cannot end incremental build. Essbase Error(1060053): Outline has errors
    \\Record #1 - Member name (Time) already used
    + S Time + S
    \\Record #6 - Member name (1st Half) already used
    MTD + S 1st Half + S
    \\Record #7 - Member name (2nd Half) already used
    MTD + S 2nd Half + S
    \\Record #21 - Member name (Qtr1) already used
    Qtr1 + S Feb + S
    \\Record #22 - Member name (Qtr1) already used
    Qtr1 + S Jan + S
    \\Record #23 - Member name (Qtr1) already used
    Qtr1 + S Mar + S
    \\Record #24 - Member name (Qtr2) already used
    Qtr2 + S Apr + S
    \\Record #25 - Member name (Qtr2) already used
    Qtr2 + S Jun + S
    \\Record #26 - Member name (Qtr2) already used
    Qtr2 + S May + S
    \\Record #27 - Member name (Qtr3) already used
    Qtr3 + S Aug + S
    \\Record #28 - Member name (Qtr3) already used
    Qtr3 + S Jul + S
    \\Record #29 - Member name (Qtr3) already used
    Qtr3 + S Sep + S
    \\Record #30 - Member name (Qtr4) already used
    Qtr4 + S Dec + S
    \\Record #31 - Member name (Qtr4) already used
    Qtr4 + S Nov + S
    \\Record #32 - Member name (Qtr4) already used
    Qtr4 + S Oct + S
    \\Record #33 - Member name (Time) already used
    Time + S MTD + S
    \\Record #34 - Member name (Time) already used
    Time ~ S QTD ~ S
    \\Record #35 - Member name (Time) already used
    Time ~ S YTD ~ S
    \\Record #9 - Error adding Attribute to member QTD(Jan) (3320)
    \\Record #9 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    QTD + S QTD(Jan) + S [Jan]
    \\Record #10 - Error adding Attribute to member QTD(Apr) (3320)
    \\Record #10 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    QTD ~ S QTD(Apr) ~ S [Apr]
    \\Record #11 - Error adding Attribute to member QTD(Aug) (3320)
    \\Record #11 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    QTD ~ S QTD(Aug) ~ S [Jul]+[Aug]
    \\Record #12 - Error adding Attribute to member QTD(Dec) (3320)
    \\Record #12 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    QTD ~ S QTD(Dec) ~ S [Oct]+[Nov]+[Dec]
    \\Record #13 - Error adding Attribute to member QTD(Feb) (3320)
    \\Record #13 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    QTD ~ S QTD(Feb) ~ S [Jan]+[Feb]
    \\Record #14 - Error adding Attribute to member QTD(Jul) (3320)
    \\Record #14 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    QTD ~ S QTD(Jul) ~ S [Jul]
    \\Record #15 - Error adding Attribute to member QTD(Jun) (3320)
    \\Record #15 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    QTD ~ S QTD(Jun) ~ S [Apr]+[May]+[Jun]
    \\Record #16 - Error adding Attribute to member QTD(Mar) (3320)
    \\Record #16 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    QTD ~ S QTD(Mar) ~ S [Jan]+[Feb]+[Mar]
    \\Record #17 - Error adding Attribute to member QTD(May) (3320)
    \\Record #17 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    QTD ~ S QTD(May) ~ S [Apr]+[May]
    \\Record #18 - Error adding Attribute to member QTD(Nov) (3320)
    \\Record #18 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    QTD ~ S QTD(Nov) ~ S [Oct]+[Nov]
    \\Record #19 - Error adding Attribute to member QTD(Oct) (3320)
    \\Record #19 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    QTD ~ S QTD(Oct) ~ S [Oct]
    \\Record #20 - Error adding Attribute to member QTD(Sep) (3320)
    \\Record #20 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    QTD ~ S QTD(Sep) ~ S [Jul]+[Aug]+[Sep]
    \\Record #36 - Error adding Attribute to member YTD(Jan) (3320)
    \\Record #36 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    YTD + S YTD(Jan) + S [Jan]
    \\Record #37 - Error adding Attribute to member YTD(Apr) (3320)
    \\Record #37 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    YTD ~ S YTD(Apr) ~ S [Qtr1]+[Apr]
    \\Record #38 - Error adding Attribute to member YTD(Aug) (3320)
    \\Record #38 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    YTD ~ S YTD(Aug) ~ S [1st Half]+[Jul]+[Aug]
    \\Record #39 - Error adding Attribute to member YTD(Dec) (3320)
    \\Record #39 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    YTD ~ S YTD(Dec) ~ S [1st Half]+[Qtr3]+[Qtr4]
    \\Record #40 - Error adding Attribute to member YTD(Feb) (3320)
    \\Record #40 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    YTD ~ S YTD(Feb) ~ S [Jan]+[Feb]
    \\Record #41 - Error adding Attribute to member YTD(Jul) (3320)
    \\Record #41 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    YTD ~ S YTD(Jul) ~ S [1st Half]+[Jul]
    \\Record #42 - Error adding Attribute to member YTD(Jun) (3320)
    \\Record #42 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    YTD ~ S YTD(Jun) ~ S [1st Half]
    \\Record #43 - Error adding Attribute to member YTD(Mar) (3320)
    \\Record #43 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    YTD ~ S YTD(Mar) ~ S [Qtr1]
    \\Record #44 - Error adding Attribute to member YTD(May) (3320)
    \\Record #44 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    YTD ~ S YTD(May) ~ S [Qtr1]+[Apr]+[May]
    \\Record #45 - Error adding Attribute to member YTD(Nov) (3320)
    \\Record #45 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    YTD ~ S YTD(Nov) ~ S [1st Half]+[Qtr3]+[Oct]+[Nov]
    \\Record #46 - Error adding Attribute to member YTD(Oct) (3320)
    \\Record #46 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    YTD ~ S YTD(Oct) ~ S [1st Half]+[Qtr3]+[Oct]
    \\Record #47 - Error adding Attribute to member YTD(Sep) (3320)
    \\Record #47 - Aggregate storage outlines only allow formulas in compression dimension or dynamic hierarchies.
    YTD ~ S YTD(Sep) ~ S [1st Half]+[Qtr3]
    \\Record #2 - Incorrect Dimension [Year] For Member [ParentName] (3308)
    ParentName Consolidation DataStorage MemberName Consolidation DataStorage Formula
    \\Record #1 - Member name (Promotions) already used
    S Promotions S
    \\Record #2 - Incorrect Dimension [Promotions] For Member [ParentName] (3308)
    ParentName DataStorage MemberName DataStorage
    \\Record #3 - Member name (Promotions) already used
    Promotions S Coupon S
    \\Record #4 - Member name (Promotions) already used
    Promotions S Newspaper Ad S
    \\Record #5 - Member name (Promotions) already used
    Promotions S No Promotion S
    \\Record #6 - Member name (Promotions) already used
    Promotions S Temporary Price Reduction S
    \\Record #7 - Member name (Promotions) already used
    Promotions S Year End Sale S
    \\Record #2 - Incorrect Dimension [Payment Type] For Member [ParentName] (3308)
    ParentName DataStorage MemberName DataStorage
    \\Record #2 - Incorrect Dimension [Transation Type] For Member [ParentName] (3308)
    ParentName DataStorage MemberName DataStorage
    \\Record #22 - Member name (Home Entertainment) already used
    Home Entertainment + S Home Audio/Video + S
    \\Record #23 - Member name (Home Entertainment) already used
    Home Entertainment + S Televisions + S
    \\Record #24 - Member name (Other) already used
    Other + S Computers and Peripherals + S
    \\Record #25 - Incorrect Dimension [Product] For Member [ParentName] (3308)
    ParentName Consolidation DataStorage MemberName Consolidation DataStorage
    \\Record #26 - Member name (Personal Electronics) already used
    Personal Electronics + S Digital Cameras/Camcorders + S
    \\Record #27 - Member name (Personal Electronics) already used
    Personal Electronics + S Handhelds/PDAs + S
    \\Record #28 - Member name (Personal Electronics) already used
    Personal Electronics + S Portable Audio + S
    \\Record #31 - Member name (All Merchandise) already used
    Products + S All Merchandise + S
    \\Record #32 - Member name (High End Merchandise) already used
    Products ~ S High End Merchandise ~ S
    \\Record #33 - Member name (Systems) already used
    Systems + S Desktops + S
    \\Record #34 - Member name (Systems) already used
    Systems + S Notebooks + S
    \\Record #18 - Error adding Attribute to member Digital Recorders (3320)
    Home Audio/Video + S Digital Recorders + S
    \\Record #36 - Error adding Attribute to member Flat Panel (3320)
    Televisions + S Flat Panel + S
    \\Record #37 - Error adding Attribute to member HDTV (3320)
    Televisions + S HDTV + S
    \\Record #8 - Incorrect Dimension [Income Level] For Member [ParentName] (3308)
    ParentName DataStorage MemberName DataStorage
    \\Record #1 - Member name (Geography) already used
    S Geography S
    \\Record #2 - Error adding member 27425 (3317)
    \\Record #2 - Aggregate storage outlines only allow any shared member once in a stored hierarchy, including prototype.
    A M F GREENSBORO - NC S 27425 S 336
    \\Record #3 - Error adding member 36310 (3317)
    \\Record #3 - Aggregate storage outlines only allow any shared member once in a stored hierarchy, including prototype.
    ABBEVILLE - AL S 36310 S 334
    \\Record #4 - Error adding member 29620 (3317)
    \\Record #4 - Aggregate storage outlines only allow any shared member once in a stored hierarchy, including prototype.
    ABBEVILLE - SC S 29620 S 864
    \\Record #5 - Error adding member 67510 (3317)
    \\Record #5 - Aggregate storage outlines only allow any shared member once in a stored hierarchy, including prototype.
    ABBYVILLE - KS S 67510 S 316
    \\Record #6 - Error adding member 58001 (3317)
    \\Record #6 - Aggregate storage outlines only allow any shared member once in a stored hierarchy, including prototype.
    ABERCROMBIE - ND S 58001 S 701
    \\Record #7 - Error adding member 42201 (3317)
    \\Record #7 - Aggregate storage outlines only allow any shared member once in a stored hierarchy, including prototype.
    ABERDEEN - KY S 42201 S 502
    \\Record #8 - Error adding member 21001 (3317)
    \\Record #8 - Aggregate storage outlines only allow any shared member once in a stored hierarchy, including prototype.
    ABERDEEN - MD S 21001 S 410
    \\Record #9 - Error adding member 39730 (3317)
    \\Record #9 - Aggregate storage outlines only allow any shared member once in a stored hierarchy, including prototype.
    ABERDEEN - MS S 39730 S 601
    \\Record #10 - Error adding member 28315 (3317)
    \\Record #10 - Aggregate storage outlines only allow any shared member once in a stored hierarchy, including prototype.
    ABERDEEN - NC S 28315 S 910
    \\Record #11 - Error adding member 79311 (3317)
    \\Record #11 - Aggregate storage outlines only allow any shared member once in a stored hierarchy, including prototype.
    ABERNATHY - TX S 79311 S 806
    \\Record #12 - Error adding member 79601 (3317)
    \\Record #12 - Aggregate storage outlines only allow any shared member once in a stored hierarchy, including prototype.
    ABILENE - TX S 79601 S 915
    \\Record #13 - Error adding member 79608 (3317)
    \\Record #13 - Aggregate storage outlines only allow any shared member once in a stored hierarchy, including prototype.
    ABILENE - TX S 79608 S 915
    \\Record #14 - Error adding member 79698 (3317)
    \\Record #14 - Aggregate storage outlines only allow any shared member once in a stored hierarchy, including prototype.
    Are these errors due to data source, if yes what could be possible work around?
    Is there any problem with Essbase properties which I have set if so then when I validate cube schema why I dn't get any errors?
    Please help me, I am stuck here not able to deploy ASO Cube.
    Thanks in advance

    Hii
    I have the same problem , you have.
    did you manage to solve it ??
    Thanks in advance

Maybe you are looking for

  • Error on generating reports from forms -- 499 Oracle SSO

    hai friends.. while am tryng to generate a report from a form(without passing any parameters), am geting the following message: *499 Oracle SSO* Oracle SSO am posting my code used: PROCEDURE RUN_REP_RRO ( ip_report_name_incl_path VARCHAR2, ip_report_

  • 4s Hotspot tethering only works with USB and BT but not with wifi

    Hi, XP sp3 - iPhone 4s with ios 5.0.1 - on Three one plan Tethering with wifi works to a friends Samsung phone, wifi on the pc confirmed working with the apple store wifi, tethering with USB and BT works with good connection speeds on my laptop but w

  • Problem with getServletContext().getRequestDispatcher(....).forward()

    We are using the latest SJSWS 7.0U8, but have the following problem: During GET requests, getServletContext().getRequestDispatcher(....).forward(req,resp) works fine. But if the client issues a HEAD request, the servlet crashes with a ClassCastExcept

  • To limit number of characters in a text field...

    I did a little research. My goal is to limit the number of characters in the textfield by 50. If the results of my research are correct, I have to create a JFormattedTextField, then use a MaskFormatter with a mask of 50 asteriks. Is that correct? Any

  • SWC and SeekBar

    Hello. I'm converting a Web (Flash Player) application to iOS. The Web application uses external SWFs. But in iOS I can't load external SWFs. I decide to convert the SWFs to SWCs and insert the SWCs in the "Library path" of the main SWF. All is OK ex