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) -
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 -
<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,
GTHi 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,
MarcThis 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 RasheedI 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 SubHi 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 advanceHii
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
-
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
-
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