Search This Blog

2008-09-02

How-to connect to Essbase cube via asp.net and C# - A generic web based report runner



GeSHi © 2004-2007 Nigel McNie, 2007-2008 Benny Baumann, 2008 Milian Wolff
  1. <%@ Page Language="C#" MasterPageFile="~/masters/m2.master" AutoEventWireup="true" CodeFile="RunReportDemo.aspx.cs" Inherits="RunReportDemo" Title="Untitled Page" ValidateRequest="false" %>


  2. <asp:Content ID="Content1" ContentPlaceHolderID="m2hcph" Runat="Server">


  3. link href="css/global.css" rel="stylesheet" type="text/css" />

  4. link href="css/RunReportDemo.css" rel="stylesheet" type="text/css" />

  5. </asp:Content>



  6. <asp:Content ID="Content2" ContentPlaceHolderID="m2bcp" Runat="Server">


  7. div id="inputOutputFields">


  8. <div class="row" style="margin-left:30px">

  9. <asp:Label runat="server" ID="labError" style="margin-left:160px">This
    simple demo demonstrates the running of any report on a local
    essbase server and with locally installed Essbase Deployment Services. Please, remember to write "password"

  10. for the password text field without the quotes. You can use the example report scripts on the example Application Databases installed with Essbase 7.1.5 , do not use any other login credentials - e.g. for simplicity only the system account with password are used.

  11. </asp:Label>


  12. <div class="row" style="margin-left:160px">

  13. <a href="please here link to example scripts/test/essbase_scripts/"> click here to copy paste other script examples from the <strong>Demo Basic database</strong></a>

  14. </div>


  15. <div class="row">

  16. <span class="label"><span class="asterix"> &nbsp;*&nbsp; </span> Essbase User Name :</span><span

  17. class="formw"> <asp:TextBox ID="txtEssbaseUserName" runat="server" MaxLength="30" Width="170px"

  18. ToolTip="Enter your domain name here "></asp:TextBox></span>

  19. </div>

  20. <div class="row">


  21. <div class="row">

  22. <span class="label"><span class="asterix"> &nbsp;*&nbsp;</span>Essbase Password ( REMEMBER TO FILL IT IN WITH "password" ):</span><span

  23. class="formw"><asp:TextBox id="txtPassword" runat="server" TextMode="Password"

  24. MaxLength="30" ToolTip="Enter your password here" Width="169px"></asp:TextBox></span>

  25. </div>



  26. <span class="label"><span class="asterix"> &nbsp;*&nbsp; </span> EDS server :</span><span

  27. class="formw"> <asp:TextBox ID="txtEDSServer" runat="server" MaxLength="30" Width="170px"

  28. ToolTip="Enter the PRS Server here "></asp:TextBox></span>

  29. </div>


  30. <div class="row">

  31. <span class="label"><span class="asterix"> &nbsp;*&nbsp; </span> OLAP server :</span><span

  32. class="formw"> <asp:TextBox ID="txtOLAPServer" runat="server" MaxLength="30" Width="170px"

  33. ToolTip="Enter the PRS Server here "></asp:TextBox></span>

  34. </div>


  35. <div class="row">

  36. <span class="label"><span class="asterix"> &nbsp;*&nbsp; </span> Servlet path :</span><span

  37. class="formw"> <asp:TextBox ID="txtServletPath" runat="server" MaxLength="70" Width="300px"

  38. ToolTip="Enter the PRS Server here "></asp:TextBox></span>

  39. </div>


  40. <div class="row">

  41. <span class="label"><span class="asterix"> &nbsp;*&nbsp; </span> Essbase domain :</span><span

  42. class="formw"> <asp:TextBox ID="txtEssbaseDomain" runat="server" MaxLength="30" Width="170px"

  43. ToolTip="Enter the PRS Server here "></asp:TextBox></span>

  44. </div>



  45. <div class="row">

  46. <span class="label"><span class="asterix"> &nbsp;*&nbsp; </span> Application</span><span

  47. class="formw"> <asp:TextBox ID="txtApplication" runat="server" MaxLength="30" Width="170px"

  48. ToolTip="Enter your domain name here "></asp:TextBox></span>

  49. </div>

  50. <div class="row">

  51. <span class="label"><span class="asterix"> &nbsp;*&nbsp; </span> DataBase</span><span

  52. class="formw"> <asp:TextBox ID="txtDataBase" runat="server" MaxLength="30" Width="170px"

  53. ToolTip="Enter the PRS Server here "></asp:TextBox></span>

  54. </div>


  55. <div class="row">

  56. <span class="label"><span class="asterix"> &nbsp;*&nbsp;</span>Cube View Name:</span><span

  57. class="formw"><asp:TextBox id="txtCubeViewName" runat="server" MaxLength="8000"

  58. ToolTip="Enter your Command here" Width="70px" Rows="1"></asp:TextBox></span>

  59. </div>



  60. <div class="row">

  61. <span class="label"><span class="asterix"> &nbsp;*&nbsp;</span> Report To Run :</span>

  62. <span><asp:TextBox id="txtReport" CssClass="txtInformer" runat="server" TextMode="MultiLine" MaxLength="8000"

  63. ToolTip="Enter your Command here" Width="700px" Rows="10"></asp:TextBox></span>

  64. </div>





  65. <div class="row">

  66. <span class="label"></span><span

  67. class="formw"><asp:Button ID="ButLogin" runat="server" OnClick="ClickRunReport"

  68. Text=" Login & Run " Width="100px" ToolTip = " Press the button or hit Enter to login to the POC System"/> </span>

  69. </div>




  70. <div class="row">

  71. <asp:TextBox runat="server" ID="txtInformer" MaxLength="25"

  72. TextMode="MultiLine" CssClass="txtInformer" Height="600px"

  73. ></asp:TextBox>

  74. </div>



  75. </div>

  76. <!-- eof inputOutputFields -->






















  77. </asp:Content>


  78. ///////////////////////////////////////////////////////////////////// CODE BEHIND ..

  79. using System;

  80. using System.Collections;

  81. using System.Configuration;

  82. using System.Data;

  83. using System.Linq;

  84. using System.Web;

  85. using System.Web.Security;

  86. using System.Web.UI;

  87. using System.Web.UI.HtmlControls;

  88. using System.Web.UI.WebControls;

  89. using System.Web.UI.WebControls.WebParts;

  90. using Hyperion.Objects.Essbase.Common;


  91. public partial class RunReportDemo : CustomBasePage

  92. {

  93. #region TemplateMethods

  94. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    TEMPLATE METHODS START



  95. protected override void OnInit(EventArgs e)

  96. {

  97. base.OnInit(e);


  98. } //eof OnInit



  99. protected override void CreateChildControls()

  100. {

  101. base.CreateChildControls();

  102. CreateDynamicControls();

  103. }



  104. protected override object SaveViewState()

  105. {

  106. return new Pair(base.SaveViewState(), null);

  107. }


  108. protected override void LoadViewState(object savedState)

  109. {

  110. base.LoadViewState(((Pair)savedState).First);

  111. EnsureChildControls();

  112. }



  113. protected void Page_Load(object sender, EventArgs e)

  114. { //comm -- the controls should be generated at the init stage and the databinding happens here




  115. if (Page.IsPostBack == false)

  116. { //comm -- databindings here

  117. //this.DataBind ( );

  118. } //eof if(Page.IsPostBack == false)

  119. } //eof Page_Load



  120. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    TEMPLATE METHODS END

  121. #endregion //TemplateMethods



  122. #region CreateDynamicControls

  123. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    CREATE DYNAMIC CONTROLS START

  124. private void CreateDynamicControls()

  125. {

  126. //set the default values so that the users should not be quessing and copy pasting

  127. this.DisplaySetDefaults();

  128. string echo = (string)Session["RunReport.echo"];

  129. //run the query


  130. if (this.IsPostBack)

  131. {





  132. } //eof if ( this.IsPostBack )



  133. } //eof CreateDynamincControls


  134. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    CREATE DYNAMIC CONTROLS END

  135. #endregion CreateDynamicControls



  136. #region DisplayMethods

  137. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    DISPLAY METHODS START



  138. private void DisplaySetDefaults()

  139. {

  140. txtEssbaseUserName.Text = "your_configured_user_name";

  141. txtPassword.Text = "your_configured_pass";

  142. txtServletPath.Text = "http://localhost:8080/EssbaseObjects"; //or whatever

  143. txtEDSServer.Text = "localhost";

  144. txtEssbaseDomain.Text = "essbase";

  145. txtOLAPServer.Text = "localhost";

  146. txtApplication.Text = "Samppart";

  147. txtDataBase.Text = "Company";

  148. txtCubeViewName.Text = "default";

  149. txtReport.Text = "{TABDELIMIT}" +

  150. "add here your report!";


  151. } //eof method DisplaySetDefaults


  152. private FB.CubeTransaction FromScreenToObj(ref string echo)

  153. {


  154. FB.CubeTransaction ct = new FB.CubeTransaction();


  155. try

  156. {

  157. ct.UserName = txtEssbaseUserName.Text;

  158. ct.Password = txtPassword.Text;

  159. ct.ServletPath = txtServletPath.Text;

  160. ct.ReportString = txtReport.Text;

  161. ct.EDSServer = txtEDSServer.Text;

  162. ct.EssbaseDomain = txtEssbaseDomain.Text;

  163. ct.OLAPServer = txtOLAPServer.Text;

  164. ct.Application = txtApplication.Text;

  165. ct.DataBase = txtDataBase.Text;

  166. ct.CubeViewName = txtCubeViewName.Text;

  167. ct.ReportString = txtReport.Text;

  168. //TODO : add input check here

  169. return ct;

  170. }

  171. catch (Exception e)

  172. {

  173. echo = echo + "An exception ocurred while retrieving the values ! " +

  174. "Report to Advanced Application Suport the following error : \n" + e.Message;

  175. return null;

  176. } //eof catch





  177. } //eof FromScreenToObj





  178. private void DisplayResults(ref string msg, ref string echo)

  179. {

  180. txtInformer.Text = echo;

  181. labError.Text = msg;

  182. } //eof DisplayResults



  183. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    DISPLAY METHODS END

  184. #endregion DisplayMethods




  185. #region DataMethods


  186. private void RunReport(ref string msg, ref string echo)

  187. {

  188. FB.CubeTransaction ct = (FB.CubeTransaction)Session["RunReport.ct"];

  189. HES.CubeWrapper cw = new HES.CubeWrapper();

  190. cw.RunReport(ref msg, ref echo, ref ct);


  191. } //eof RunQuery


  192. #endregion //DisplayMethods




  193. #region ClickEventHandlers


  194. protected void ClickRunReport(object sender, EventArgs e)

  195. {

  196. string msg = String.Empty;

  197. string echo = String.Empty;


  198. //get the values into the bean

  199. FB.CubeTransaction ct = this.FromScreenToObj(ref echo);

  200. Session["RunReport.ct"] = ct; //store them for the PostBack

  201. Session["RunReport.echo"] = null;

  202. Session["RunReport.echo"] = echo;


  203. this.RunReport(ref msg, ref echo);

  204. this.DisplayResults(ref msg, ref echo);



  205. } //eof method ClickButLogin

  206. #endregion //ClickEventHandlers


  207. } //eof class RunReport

3 comments:

  1. On line 40 there is a reference to the hyperion objects. Is there an sdk for this? What is the dll name I need and can I take it off of the server where a standard install was done on a windows box?

    ReplyDelete
  2. What refenece do I need to add for Hyperion.Objects.Essbase.Common; ?????

    ReplyDelete
  3. you needo to download the dll file(s) from the Essabase API and add "using Hyperion.Objects.Essbase.Common; "

    ReplyDelete

- the first minus - Comments have to be moderated because of the spammers
- the second minus - I am very lazy at moderating comments ... hardly find time ...
- the third minus - Short links are no good for security ...
- The REAL PLUS : Any critic and positive feedback is better than none, so your comments will be published sooner or later !!!!

Labels

perl (41) Cheat Sheet (25) how-to (24) windows (14) sql server 2008 (13) linux (12) oracle (12) sql (12) Unix (11) cmd windows batch (10) mssql (10) cmd (9) script (9) textpad (9) netezza (8) sql server 2005 (8) cygwin (7) meta data mssql (7) metadata (7) bash (6) code generation (6) Informatica (5) cheatsheet (5) energy (5) tsql (5) utilities (5) excel (4) future (4) generic (4) git cheat sheet (4) html (4) perl modules (4) programs (4) settings (4) sh (4) shortcuts (4) поуки (4) принципи (4) Focus Fusion (3) Solaris (3) cool programs (3) development (3) economy (3) example (3) freeware (3) fusion (3) logging (3) morphus (3) mssql 2005 (3) nuclear (3) nz (3) parse (3) python (3) sftp (3) sofware development (3) source (3) sqlplus (3) table (3) vim (3) .Net (2) C# (2) China (2) GUI (2) Google (2) GoogleCL (2) Solaris Unix (2) architecture (2) ascii (2) awk (2) batch (2) cas (2) chrome extensions (2) code2html (2) columns (2) configuration (2) conversion (2) duplicates (2) excel shortcuts (2) export (2) file (2) free programs (2) informatica sql repository (2) linux cheat sheet (2) mssql 2008 (2) mysql (2) next big future (2) nsis (2) nz netezza cheat sheet (2) nzsql (2) ora (2) prediction (2) publish (2) release management (2) report (2) security (2) single-click (2) sqlserver 2005 (2) sqlserver 2008 (2) src (2) ssh (2) template (2) tools (2) vba (2) video (2) xlt (2) xml (2) youtube videos (2) *nix (1) .vimrc (1) .virmrc vim settings configs (1) BSD license (1) Bulgaria (1) Dallas (1) Database role (1) Dense plasma focus (1) Deployment (1) ERP (1) ExcelToHtml (1) GD (1) GDP (1) HP-UX (1) Hosting (1) IDEA (1) INC (1) IT general (1) ITIL management bullshit-management (1) IZarc (1) Java Web Start (1) JavaScript anchor html jquery (1) Khan Academy (1) LINUX UNIX BASH AND CYGWIN TIPS AND TRICKS (1) Linux Unix rpm cpio build install configure (1) Linux git source build .configure make (1) ListBox (1) MIT HYDROGEN VIRUS (1) OO (1) Obama (1) PowerShell (1) Run-time (1) SDL (1) SIWA (1) SOX (1) Scala (1) Services (1) Stacks (1) SubSonic (1) TED (1) abstractions (1) ansible hosts linux bash (1) ansible linux deployment how-to (1) ansible yum pip python (1) apache (1) apache 2.2 (1) application life cycle (1) architecture input output (1) archive (1) arguments (1) avatar (1) aws cheat sheet cli (1) aws cli (1) aws cli amazon cheat sheet (1) aws elb (1) backup (1) bash Linux open-ssh ssh ssh_server ssh_client public-private key authentication (1) bash perl search and replace (1) bash stub (1) bin (1) biofuels (1) biology (1) books (1) browser (1) bubblesort (1) bugs (1) build (1) byte (1) cas_sql_dev (1) chennai (1) chrome (1) class (1) claut (1) cmdow (1) code generation sqlserver (1) command (1) command line (1) conf (1) confluence (1) console (1) convert (1) cool programs windows free freeware (1) copy paste (1) copy-paste (1) csv (1) ctags (1) current local time (1) cygwin X11 port-forwarding mintty xclock Linux Unix X (1) cygwin bash how-to tips_n_tricks (1) cygwin conf how-to (1) data (1) data types (1) db2 cheat sheet (1) db2 starter ibm bash Linux (1) debt (1) diagram (1) dictionaries (1) digital (1) disk (1) disk space (1) documentation (1) dos (1) dubai (1) e-cars (1) electric cars (1) electricity (1) emulate (1) errors (1) exponents (1) export workflow (1) extract (1) fast export (1) fexp (1) file extension (1) file permissions (1) findtag (1) firewall (1) for loop (1) freaky (1) functions (1) fusion research (1) german (1) git gitlab issues handling system (1) google cli (1) google code (1) google command line interface (1) gpg (1) ha (1) head (1) helsinki (1) history (1) hop or flop (1) host-independant (1) how-to Windows cmd time date datetime (1) ibm db2 cognos installation example db deployment provisioning (1) ideas (1) image (1) informatica oracle sql (1) informatica repo sql workflows sessions file source dir (1) informatica source files etl (1) install (1) isg-pub issue-tracker architecture (1) it management best practices (1) java (1) jump to (1) keyboard shortcuts (1) ksh (1) level (1) linkedin (1) linux bash ansible hosts (1) linux bash commands (1) linux bash how-to shell expansion (1) linux bash shell grep xargs (1) linux bash tips and t ricks (1) linux bash unix cygwin cheatsheet (1) linux bash user accounts password (1) linux bash xargs space (1) linux cheat-sheet (1) linux cheatsheet cheat-sheet revised how-to (1) linux how-to non-root vim (1) linux ssh hosts parallel subshell bash oneliner (1) london (1) make (1) me (1) metacolumn (1) metadata functions (1) metaphonre (1) method (1) model (1) movie (1) multithreaded (1) mysql cheat sheet (1) mysql how-to table datatypes (1) n900 (1) nano (1) neteza (1) netezza bash linux nps (1) netezza nps (1) netezza nps nzsql (1) netezza nz Linux bash (1) netezza nz bash linux (1) netezza nz nzsql sql (1) netezza nzsql database db sizes (1) non-password (1) nord pol (1) nps backup nzsql schema (1) number formatting (1) nz db size (1) nz table count rows (1) nzsql date timestamp compare bigint to_date to_char now (1) on-lier (1) one-liners (1) one-to-many (1) oneliners (1) open (1) open source (1) openrowset (1) openssl (1) oracle PL/SQL (1) oracle Perl perl (1) oracle installation usability (1) oracle number formatting format-model ora-sql oracle (1) oracle templates create table (1) oracle trigger generic autoincrement (1) oracle vbox virtual box cheat sheet (1) oracle virtual box cheat sheet (1) outlook (1) parser (1) password (1) paths (1) perl @INC compile-time run-time (1) perl disk usage administration Linux Unix (1) perl modules configuration management (1) permissions (1) php (1) picasa (1) platform (1) postgreSQL how-to (1) powerShell cmd cygwin mintty.exe terminal (1) ppm (1) predictions (1) prices (1) principles (1) productivity (1) project (1) prompt (1) proxy account (1) public private key (1) publishing (1) putty (1) qt (1) read file (1) registry (1) relationship (1) repository (1) rm (1) scala ScalaFmt (1) scp (1) scripts (1) scsi (1) search and replace (1) sed (1) sendEmail (1) sh stub (1) shortcuts Windows sql developer Oracle (1) sidebar (1) silicon (1) smells (1) smtp (1) software development (1) software procurement (1) sofware (1) sort (1) sql script (1) sql_dev (1) sqlcmd (1) sqlite (1) sqlite3 (1) sshd (1) sshd cygwin (1) stackoverflow (1) stored procedure (1) stub (1) stupidity (1) subroutines (1) svn (1) sysinternals (1) system design (1) tail (1) tar (1) temp table (1) templates (1) teradata (1) terminal (1) test (1) testing (1) theory (1) thorium (1) time (1) tip (1) title (1) tmux .tmux.conf configuration (1) tmux efficiency bash (1) tool (1) ui code prototyping tips and tricks (1) umask Linux Unix bash file permissions chmod (1) url (1) urls (1) user (1) utility (1) utils (1) vb (1) vbox virtual box cheat sheet (1) vim perl regex bash search for string (1) vim recursively hacks (1) vim starter (1) vim-cheat-sheet vim cheat-sheet (1) vimeo (1) visual stuio (1) warsaw (1) wiki (1) wikipedia (1) window (1) windows 7 (1) windows 8 (1) windows programs (1) windows reinstall (1) windows utility batch perl space Windows::Clipboard (1) wisdoms (1) workflow (1) worth-reading (1) wrapper (1) xp_cmdshell (1) xslt (1) youtube (1)

Blog Archive

Translate with Google Translate

My Blog List