Report script optimization
We have the following report script. Its taking 2 hrs to run .... but if we hard code the 70 accounts we get output in 1 min...we used these 3 functions to extract the level 0 accounts //<DIMBOTTOM "Account" //<LINK(<LEV("Account",0)) //<LINK(<LEV("Account",0) AND <IDESC("Account")).........................for these 3 functions its taking more time...but if we hard code the 70 accounts we get output in 1 min
// DATA FORMATTING
<SPARSE
<SUPSHARE
<QUOTEMBRNAMES
<SORTNONE
<ACCON
<SYM
{TABDELIMIT}
{ROWREPEAT}
{SUPFEED}
{SUPHEADING}
{SUPEMPTYROWS}
{SUPMISSINGROWS}
{SUPBRACKETS}
{SUPCOMMAS}
{SUPPAGEHEADING}
{MISSINGTEXT "#MISSING"}
{ZEROTEXT "0.00"}
{UNDERSCORECHAR " "}
{DECIMAL 2}
{NOINDENTGEN}
// DATA LAYOUT
//<PAGE ("Project","ProjectYear")
<ROW("Scenario","Year","Project","Entity","FundingSource","CostCenter","Campus","ProjectYear","Fund","Account")
<COLUMN("Period")
// DATA SELECTION
"Budget"
"FY09"
"Project"
"Draft"
"Input"
"PY09"
<LINK((<LEV("Entity",0)) AND (<IDESC("Entity")))
<LINK((<LEV("FundingSource",0)) AND (<IDESC("FundingSource")))
<LINK((<LEV("CostCenter",0)) AND (<IDESC("CostCenter")))
<LINK((<LEV("Campus",0)) AND (<IDESC("Campus")))
<LINK((<LEV("Fund",0)) AND (<IDESC("Fund")))
//<DIMBOTTOM "Account"
//<LINK(<LEV("Account",0))
//<LINK(<LEV("Account",0) AND <IDESC("Account"))
<LINK((<LEV("Period",0)) AND (<IDESC("YearTotal")))
//&BudgetYear
//&ProjBudgetYear
// This substitution variable needs to be updated every Fiscal Year at the start of
// the Budget Formulation process using the Essbase Administration Services client
// EXECUTE THE REPORT
!
hi, i just read your post. i'm not sure youre optimizing the order of the dimensions. try doing a level 0 export. then, use that order of dimensions in your report script for the Row command. if you need a different order of the fields use the ORDER command. see my example. i found that my needed order of fields took 6x longer than when i used the export order...also, my link command took longer when i put the dimbottom part last. you really just have to play around alot : \
{SUPEMPTYROWS}
{SUPMISSINGROWS}
{SUPZEROROWS}
//suppresses the automatic insertion of a page break
{SUPFEED}
{SUPCOMMAS}
{SUPBRACKETS}
{SUPPAGEHEADING}
{SUPHEADING}
{MISSINGTEXT "0.00"}
{ ROWREPEAT }
//{TABDELIMIT}
{DECIMAL 2}
{NOINDENTGEN}
//suppresses the display of duplicate shared members when you use generation or level names to extract data for your report.
<SUPSHARE
//forces a symmetric report, regardless of the data selection. Use SYM to change the symmetry of a report that Hyperion Essbase would create as an asymmetric report.
//<SYM
// 0 1 2 3 4 5 6
//export order
<ROW ("Business Units", VERSIONS, Products,TIME,ACCOUNTS,Departments)
<SORTASC
//col 7
{CALCULATE COLUMN "DATA 2" = 6 }
{ORDER 0 1 4 5 2 3 6 7 fixcolumns 8}
{width 18 6 7}
//COL0
//<DIMBOTTOM "BUSINESS UNITS"
{RENAME "B33000"} "BU 33000"
{RENAME "B33009"} "BU 33009"
{RENAME "B33010"} "BU 33010"
{RENAME "B33030"} "BU 33030"
{RENAME "B33050"}"BU 33050"
{width 7 0}
//COL1
{RENAME "BUDGET BUDGET "} "2012 PLAN"
{WIDTH 21 1}
//COL2
// "600000"
<LINK (<DIMBOTTOM (Accounts) and not <MATCH (Accounts, 6?????) and not <MATCH (Accounts, 9?????) )
{width 7 4}
//COL3
<DIMBOTTOM DEPARTMENTS
{width 11 5}
//COL4
<DIMBOTTOM PRODUCTS
{RENAME ""} "BLANK PRODUCT"
{width 40 2}
//COL5
<SORTNONE
{RENAME "USD 2012 001"}"PER01"
{RENAME "USD 2012 002"}"PER02"
{RENAME "USD 2012 003"}"PER03"
{RENAME "USD 2012 004"}"PER04"
{RENAME "USD 2012 005"}"PER05"
{RENAME "USD 2012 006"}"PER06"
{RENAME "USD 2012 007"}"PER07"
{RENAME "USD 2012 008"}"PER08"
{RENAME "USD 2012 009"}"PER09"
{RENAME "USD 2012 010"}"PER10"
{RENAME "USD 2012 011"}"PER11"
{RENAME "USD 2012 012"}"PER12"
{width 17 3}
!
Similar Messages
-
Optimize report script having many Link statements
Hi,
I have a report script in Essbase which uses around 10 <Link statements to extract level 1 entity members from decendants of specific entity members and around 8 <Link statements to extract level 0 account members from decendants of specific account members. I observed that this report script takes almost 10 to 12 hours to execute. After some investigation I found out that ideally a report script should have maximum 5 <Link statements defined; in case if there are more than 5 <Link statements the report script would run very slow.
Following is excerpt from my report script:
<PAGE ("Scenario", "Year")
<ROW("Entity", "Account", "Custom1", "Custom2")
<COLUMN("Period")
For Entity:
<LINK((<LEV("Entity","Lev1,Entity")) AND (<IDESC("Ent001")))
<LINK((<LEV("Entity","Lev1,Entity")) AND (<IDESC("Ent002")))
<LINK((<LEV("Entity","Lev1,Entity")) AND (<IDESC("Ent003")))
For Account:
Link ((<LEV("Account", "Lev0,Account")) AND (<IDESC("Acc001")))
Link ((<LEV("Account", "Lev0,Account")) AND (<IDESC("Acc002")))
Link ((<LEV("Account", "Lev0,Account")) AND (<IDESC("Acc003")))
Could you please help me to fine tune/optimize this report script and suggest an alternate way to write this script without <Link statements so that I could run this report script faster?
Thanks in advance!
AKYou state 10 but show six. Which is it?
As for performance, if you make it just one Entity dimension LINK statement, is it fast?
Following on that, have you tried breaking the report into multiple report scripts? If they are individually faster, you could just concatenate the output files through an OS batch script. The thought of 10 individual report scripts (although I suppose we are potentially talking about more than that but I can't tell based on the information you've provided) could be complicated, but it might be worthwhile from a prototyping perspective.
Have you tried joining them together with a "!" statement. <--What that means is you write a report script and terminate it with a !. Then write another, similar report script and stick a ! on it. And again, and again, etc. Essbase reads to the ! and then goes to the next report script.
Regards,
Cameron Lackpour -
Report script taking too long to export data
Hello guys,
I have a report script to export data out of a BSO cube. The cube is 200GB in size. But the exported text file is only 10MB. It takes around 40 mins to export this file.
I have exported data of this size in less than a minute from other DBs. But this one is taking way too long for me.
I also have a calc script for the same export but that too is taking 20 mins which is not reasonable for a 10MB export.
Any idea why a report script could take this long? Is it due to huge size of database? Or is there a way to optimize the report script?
Any help would be appreciated.
ThanksThanks for the input guys.
My DATAEXPORT is taking half the time than my report script export. So yeah it is much faster but still not reasonable(20 mins for one month data) compared to other DBs that are exported very quick.
In my calc I am just FIXING on level 0 members for most of the dimensions against the specific period, year and scenario. I have checked the conditions for an optimal report script, I think mine is just fine.
The outline has like 15 dimensions in it and only two of them are dense. Do you think the reason might be the huge size of DB along with too many sparse Dims?
I appreciate your help on this.
Thanks -
Report Script- Performance Issue
Hi,
I ran this report script and it is taking around 2 hours to complete. Is there any possiblity to better tune this script. Please advice me where else can we better tune this.
Thanks,
UB.ID 581459.1:
Goal
How to optimize Hyperion Essbase Report Scripts?
Solution
To optimize your Report follow the suggested guidelines below:
1. Decrease the amount of Dynamic Calcs in your outline. If you have to, make it dynamic calc and store.
2. Use the <Sparse command at the beginning of the report script.
3. Use the <Column command for the dense dimensions instead of using the Page command. The order of the dense dimensions in the Column command should
be the same as the order of the dense dimension in the outline. (Ex. <Column (D1, D2)).
4. Use the <Row command for the sparse dimensions. The order of the sparse dimensions in the Row command should be in the opposite order of the sparse
dimension in the outline. (Ex. <Row (S3, S2, S1)). This is commonly called sparse bottom up method.
5. If the user does not want to use the <Column command for the dense dimensions, then the dense dimensions should be placed at the end of the <Row command.
(Ex. <Row (S3, S2, S1, D1, D2)).
6. Do not use the Page command, use the Column command instead. -
Report script taking very long time to export in ASO
Hi All,
My report script is taking very long time to execute and finally a message appears as timed out.
I'm working on ASO Cubes and there are 14 dimensions for which i need to export all data for all the dimensions for only one version.
The data is very huge and the member count in each dimension is also huge, so which is making me difficult to export the data.
Any suggestions??
ThanksHere is a link that addresses several ways to optimize your report script. I utilize report scripts for Level 0 exports in an ASO environment as well, however the majority of our dimemsions are attribute dimensions.
These are the most effective solutions we have implemented to improve our exports via report scripts:
1. Make sure your report script is written in the order of how the Report Extractor retrieves data.
2. Supressing Zero and Missing Data
3. We use the LINK command within reports for some dimensions that are really big and pull at Level 0
4. Using Symmetric reports.
5. Breakout the exports in multiple reports.
However, you may also consider some additional solutions outlined in this link:
1. The MDX optimizing commands
2. Back end system settings
http://download.oracle.com/docs/cd/E12825_01/epm.111/esb_dbag/drpoptim.htm
I hope this helps. Maybe posting your report script would also help users to provide feedback.
Thanks
Edited by: ronnie on Jul 14, 2011 9:25 AM
Edited by: ronnie on Jul 14, 2011 9:53 AM -
Hi Gurus,
The issue is I created two report scripts one using Query designer and the other manually.
I'm creating a report script to export current period data against ASO.
I know the optimization basics against BSO.
Placing last dim fisrt and all!!
coming to the ASO......
my Report script is hanging at the time of validation itself!!!
it is showing when there are some errors in the report script.
I don't see any thing but EAS hanging when i thought that they were no errors.
the idea is to export the level0 data and relaod with #mi values to load new set of data for the current period.
What are the steps to follow to optimize it in ASO.
I know we need to increase agg chache, retrieval buffer, sort retrieval..!!
what next!!
I know we can also use slices to get rid of previous data (deleting old slice) and creating new one.
but currently we are implementing this way!!
suggestions please....
Thanks,
Jeeth
Edited by: Jithendra on Mar 15, 2011 10:59 AMHi Robb,
I'm in ASO!! so calculations are not possible.
here is one more question!!! may be I need to post it seperately. (but I don't want my questions unanswered :) )!!
I tried to do level 0 export from ASO and it failed telling that the member combinations exceeded 2^64 (this is part of our cube!! want it in column format).
As per my knowledge, the option I have are.
1. chop the report script in to smaller report scripts and run it (may be I need to chop like 100 to 1000 times not sure!!)
2. will MDX query effectively handles the situation (worth trying it)??
3. is the CDF export meant for ASO?
4. StarAnalytics (is this the better option) ??
Pls suggest!!
I will now start writing MDX!!....will all let you know!!
BTW the hanging is because ...I forgot to use logical operator after LINK function... after fixing that the report got validated.
Thanks,
Jeeth
Edited by: Jithendra on Mar 17, 2011 11:20 PM
Edited by: Jithendra on Mar 18, 2011 11:16 AM -
Report Script Performance Issues
Essbase Nation,
We have a report script that extracts a full 12 months worth of history in 7 minutes. The script that is used to extract the period dimension is as follows:
<Link (<Descendants("Dec YTD") And <Lev("Period",0))
The line above is then changed to pull just one month of data, and now the report script runs for 8 hours.
Please advise as to why the difference in performance.
Thank you.ID 581459.1:
Goal
How to optimize Hyperion Essbase Report Scripts?
Solution
To optimize your Report follow the suggested guidelines below:
1. Decrease the amount of Dynamic Calcs in your outline. If you have to, make it dynamic calc and store.
2. Use the <Sparse command at the beginning of the report script.
3. Use the <Column command for the dense dimensions instead of using the Page command. The order of the dense dimensions in the Column command should
be the same as the order of the dense dimension in the outline. (Ex. <Column (D1, D2)).
4. Use the <Row command for the sparse dimensions. The order of the sparse dimensions in the Row command should be in the opposite order of the sparse
dimension in the outline. (Ex. <Row (S3, S2, S1)). This is commonly called sparse bottom up method.
5. If the user does not want to use the <Column command for the dense dimensions, then the dense dimensions should be placed at the end of the <Row command.
(Ex. <Row (S3, S2, S1, D1, D2)).
6. Do not use the Page command, use the Column command instead. -
Hi,
I have a report like that:
07 Jan-Jul YTD R12 Jul
2009 STO001 31111110 P31-111 34925.50 44631.48 257909.97
2009 STO001 31111110 P20-111 42.78 364.20 3704.85
2009 STO001 31111110 P53-111 5044.80 6740.31 44175.52
2009 STO001 31111110 P115 0.00 0.00 4018.71
However, I would like to have the header like that:
Ano Presidencia Contas Produto 07 Jan-Jul YTD R12 Jul
2009 STO001 31111110 P31-111 34925.50 44631.48 257909.97
2009 STO001 31111110 P20-111 42.78 364.20 3704.85
2009 STO001 31111110 P53-111 5044.80 6740.31 44175.52
2009 STO001 31111110 P115 0.00 0.00 4018.71
What can I do to obtain the report?
See my report script below:
//ESS_LOCALE English_UnitedStates.Latin1@Binary
{ STARTHEADING
SUPPAGEHEADING
ENDHEADING }
<SETUP
{ TabDelimit }
{ decimal 2 }
{ SUPCOMMAS }
{ SUPBRACKETS }
{ NOINDENTGEN }
<ACCON <SYM <END
<ROW("Ano","Presidencia" ,"Plano de Contas","Produto" )
// Column Members
//{WIDTH 15}
{MISSINGTEXT "0.00"}
<COLUMN ( "Período")
"07"
"Jan-Jul YTD"
"R12 Jul"
// Page Members
"Actual"
{SupMissingRows}
// Row Members
{ROWREPEAT}
<DESCENDANTS "Personal Perfil"
{ROWREPEAT}
"2009"
{ROWREPEAT}
<DESCENDANTS "Prêmios Emitido-"
{ROWREPEAT}
<DESCENDANTS "SPCT"
<DESCENDANTS "STO Escr"
ThanksEssbase reports do not put row headers on (Headers for the dimension members from the <rows command).
The best I have been able to do in the past was to have a file with the header info I wanted and after the report was created concatinate the header file with the report file using the Dos copy command. -
Issue with report Script. DECIMAL option not working properly
Hi All,
One of my report scripts has the option { decimal n } set. Now I am getting this to work only for account members which has a '%' symbol in the name. For all other accounts, data is being exported as a whole number even though the cube has decimal values. This is an ASO cube. Any thoughts?
Thanks,
NHere you go,
//ESS_LOCALE English_UnitedStates.Latin1@Binary
<sym
{supall}{ROWREPEAT}{tabdelimit}{nameson}{noindentgen}{ SUPCOMMAS }{SUPMISSINGROWS}{ DECIMAL 9}
<COLUMN (Period)
July August September October November December January February March April May1 June
<ROW(Year,Scenario,Version,Currency,Entity,Location,HSP_Rates,Stage,Business_Category,"BD_Responsible","Type_Of_Program","Client",Account)
//{ OUTALTNAMES }
&DCCurrFiscalYr
&CurrScenario
&CurrVersion
"HSP_InputValue"
"USD"
<LINK(<LEV (Entity,0))
<LINK(<LEV (Location,0))
<LINK(<LEV (Stage,0))
<LINK(<LEV (Business_Category,0))
<LINK(<LEV (BD_Responsible,0))
<LINK(<LEV (Type_Of_Program,0))
<LINK(<LEV ("Client",0))
"Net_Revenue"
"552"
"500"
"501"
"503"
"Contribution"
"Contribution %"
"SD_Costs"
"SD Margin"
"SD Margin %"
"Indirect Costs"
"PBT"
//"PBT %"
"Total Tax"
"PAT"
//"PAT %"
"Manpower Total"
"Billable agents"
"Total Seats"
! -
Report Scripts - Please Can Some One Help Me
Hello Gurus,
Is it possible to display 2 members of the same dimension in adjacent columns using Report Scripts? if not what is the best available option?
Consider this Sample Outline
+Product
+-Cofee
+---Cafined
+-------1100
+-------1200
+---Decafined
+-------1300
+-------1400
+-Soda
+---Coke
+-------1500
The format of the desired report is
======= Jan Feb Mar
1100 Cofee 8 8 8
1200 Cofee 8 8 8
1300 Cofee 7 7 7
1400 Cofee 7 7 7
1500 Soda 6 6 6
================
Please Can some one help me in this regard!
Thanks In AdvanceIf I remember correctly when I wanted to do something similar I imported the report with the level 0 members into SQL Server and then joined on a mapping table (was a parent/child table in our case) to get the other column. In our situation we already had the mapping table readily available because this is where the dimension was built from!
-
Report Script returns no data and "java.io.FileNotFoundException" error
When attempting to write to a new file (Eg: C:\TEST.txt), Report Script returns no data and "java.io.FileNotFoundException" error occurs.
This error occurs only in Essbase 9.3.1.3 release, however it works fine in release 9.3.1.0.
After running the report the script, it pops up the follwing message:
"java.io.FileNotFoundException: ..\temp\eas17109.tmp (The system cannot find the file specified): C:\TEST.txt"
When checked the TEST.txt, it was empty.Sorry folks, I just found out the reason. Its because there was no data in the combination what I was extracting.
but is this the right error message for that? It should have atleast create a blank file right? -
Hi,
Is it possible to create a Report Script that would export Period data (jan, feb, ... dec) condition being that the start period is a subvar. Eg. from &FcstMonth to Dec, where &FcstMonth is Aug.
Regards
LeoHi Leo,
I have a report script that is running with &FMonths set to "Aug" "Sep" "Oct" "Nov" "Dec"
same should work on your side,
Regards,
Ahmet -
Hello,
I try to write the report script but cannot find out how to avoide this space-"movement". Is it possible to adjust this with some command? In the manual all the scripts look fine, properly aligned and centered. Cant get that in console. WIDTH, NAMESCOL could not help me. TABDELIMIT supresses many other formatting properties.
Example is below, with a row value 615, which travels from the center of each column.
Thank you
Ole
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
615 615 615 615 615
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0Hi
it didn't really helped. Let us take a look at the sample.basic. I have the same problems:
Script:
//ESS_LOCALE English_UnitedStates.Latin1@Binary
<PAGE (Product, Measures)
<COLUMN (Scenario, Year)
Actual
<ICHILDREN Qtr1
<ROW (Market)
<IDESCENDANTS East
Output:
Product Measures Actual
Jan Feb Mar Qtr1
======== ======== ======== ========
New York 512 601 543 1,656
Massachusetts 519 498 515 1,532
Florida 336 361 373 1,070
Connecticut 321 309 290 920
New Hampshire 44 74 84 202
East 1,732 1,843 1,805 5,380
I think this script language is some tricky...cant understand well in short time. But we need this script to generate an output for a matrix printer.
Ole
Edited by: Ole on 14.09.2011 18:28 -
Issue with the supshare Report Script Command
Hi All,
I have created a report script to extract the Level0 data for the members of the accounts dimension and It does work fine and the performance is also good. However I have a challenge here. The shared members are repeating and therefore I used “<supshare” command in order to avoid the repetition. It does work, however there is an issue here.
For eg, I am trying to retrieve the data as below and they are level0 members. The NetExpense is a “Level0” member and also a “shared member”, However the original “Net Expense” comes under Level3 and since I have used <Supshare and asked to retrieve only Lev0 accounts it is therefore ignoring the “Net Expenses” for all the Dept and product intersections. Hope I am clear and not confused? Is there anything i could change or add to retrieve the correct data.
Would anyone be able to help me on this issue.
<supshare “Lev0 Accounts”
Data Retrieval Ex : DeptA NetExpense No Product 1200
ThanksThanks Glen. I tried the below link statement. This is an example. My accounts dimension has 8 childern (A to H) out of which 4 are level 0 members ("B"to "E") and the remaining have so many members underneath. The member"H" is where my confusion starts, it has 4 children (Ex 1,2,3,4) and all are shared members. Here i need not worry about children 2 and 3 since they have no data. Children 4 is a level 0 and a shared member, however the Children 4 main location is also located at Level 0. Therefore when i use supshare this appears only once. one problem is solved.
Now coming to Children 1, this is a Level 0 for parent "H", however this is also a child of "A" and this by itself has levels underneath. So this Sup share is not allowing me to retrieve the data Child 1 though it is level 0 and since it is shared member.
This case how do i modify the report in such a way i get all level 0 data of my accounts and suppress shared members. Hope i have not condused...
<ROW (Accounts)
{ROWREPEAT}
<LINK(<DESCENDANT ("A", "Lev0,Accounts"))
"B", "C", "D", "E"
<LINK(<DESCENDANT ("F", "Lev0,Accounts"))
<LINK(<DESCENDANT ("G", "Lev0,Accounts"))
<LINK(<DESCENDANT ("H", "Lev0,Accounts")) -
Report script question : Tabs in headers
I'm trying to write a report script in such a way that I can generate a tab-delimited file and have the end user import it directly into Excel just the way they want.The problem is I need a custom header. Using the {TABDELIMIT} option only tab delimits the data rows and not the headers. Does anyone have a suggestion on how to use a Tab character in a custom header?I'd appreciate any suggestions.Thanks for your time.Jeff BaumertSr. Programmer AnalystFrontier585-777-7344
I think the EUROPEAN keyword should do it.
See: http://download.oracle.com/docs/cd/E12825_01/epm.111/esb_techref/rw_european.htm
Regards,
Cameron Lackpour
Maybe you are looking for
-
(How can we) Export FXG from Flash Professional using JSFL
How can we export a selection from Flash Professional as .FXG using JSFL? It appears that this is not possible... just yet! I have added this as a feature request within the Adobe Labs site for Flash Professional. Someone at Adobe suggested that I al
-
I want Apply trigger to all the forms in application
I have written a trigger when_timer_expired,it runs only when the form is runs. it does not execute when that form calls another form. Is there anyway by which the can apply the trigger to all the forms In the Application .
-
Converting Photos taken on a 16:9 aspect camcorder?
Hi, I've taken quite a few pictures using my camcorder which is set to 16:9 aspect ratio which is exactly what I want for my video. However the pictures also seem to be on taht ratio and look strange in iphoto. Does anypone know of an app that will c
-
How can I reopen a crashed file that wasn't saved in logic?
How can I reopen a crashed file that wasn't saved in logic?
-
Typical configuration for Pix501 after router
Our network topology is: wire from street -> cable modem -> router -> computers The router is a simple Netgear wireless router. We want to install a Pix501 firewall for one of the computers only (cant do it for all computers for a complicat