HFM API Deep Dive – Making a Better Financial Management Client

3,805 views
3,477 views

Published on

While the Financial Management Client program that ships with HFM provides key functionality is quite reliable, there are many areas where it could be improved. Fortunately for us, the Financial Management Client is a great example of a program that implements the HFM COM API as many of the program’s features are directly attributable to API functions. Due to this fact, we can focus on adding value without having to completely reinvent the wheel.

This session, which builds off of a previous API presentation, will further walk you through a complete program build utilizing HFM COM API functionality and Microsoft Visual Studio .NET. Fully working code will be provided as well for viewers.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,805
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
84
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

HFM API Deep Dive – Making a Better Financial Management Client

  1. 1. HFM API Deep Dive Making a Better Financial Management Client Charles Beyer
  2. 2.  Build a “complete” .NET App for HFM API ● “Brief” HFM API Overview ● Prepare a Development Environment ● Coding your own HFM Client App ● Improving on Client App ● Tips, Tricks, and Warnings  3rd Party Tools / Projects  Q & A Session Objectives / TOC
  3. 3.  Code Samples will be made available  To expedite certain areas, we will utilize screen shots while doing live demos in others  Slides / Demos should be sufficient to do work offline in case we bump into time issues  Please leave feedback! Additional Notes
  4. 4.  Computer & Technology ‘Nerd’ – Started with a Apple II and TRS-80. Haven’t looked back.  16+ years professional software experience, created and sold commercial software.  7 years working with Hyperion products.  Love to help out, feel free to ask and I’ll help if time permits! About the Speaker
  5. 5. “Brief” HFM API Overview
  6. 6.  Three Main APIs ● COM [Primary Focus for Session] ● Updated for 11.1.2.2 for expanded dimensionality ● Extended Analytics HTTP Listener ● Web Object Model [ADF Webinar – TBD] ● 11.1.2.1 and prior : Components Utilized via ASP pages ● 11.1.2.2+ : Java/J2EE implemented with Oracle ADF Framework ● FM Web Service [TBD] ● Optional, now required, component first utilized by Financial Close Management ● Behind the scenes is really the COM library. Brief HFM API Overview
  7. 7. Brief HFM API Overview [COM] Web Object Model Features COM Object Model Features Log On / Log Off Log On / Log Off Open FM Applications Open FM Applications Register / Unregister Clusters/App Servers Register / Unregister Clusters/App Servers Getting Dimension Attributes Get Metadata Attributes Get / Set Line Item Details Get / Set Line Item Details Process Management Interaction Process Management Interaction Open / Close Periods Open / Close Periods Journals (Create, Delete, Submit, Post, etc.) Process Journals User Security (Rights / User Lists) User Security (Rights / User Lists) Document Management (Forms / Grids) Get / Set data for arrays of cells POV Settings Executing consolidations, translations, calculations Audit Information (Task, Data, etc.) Load/Extract member lists, metadata, rules, data, and journals Server Information/Control (Logoff Users, Enable/Disable Connections) Extended Analytics ActiveX control for dimension members selection
  8. 8. Brief HFM API Overview [COM] Type File Functionality HfmSliceCOM Support for Configurable Dimensionality HsxClient Logon/Logoff, Open/Create/Delete Applications HsxClientUI User Interface for Logon/off, Open/Create/Delete Applications HsxServer App Server info : Application Names, DSNs HsvSession Parent Obect to Metadata & Data, Session Related Info HsvMetadata Metadata Related Functions HsvData Sets and Gets data in cells HsvCalculate Executes consolidations, translations, and calculations HsvJournals Manage periods, create journals and templates, process journals HsvSecurityAccess Get/Set Application’s users, roles, and security class access.
  9. 9. Brief HFM API Overview [COM] Type Library Functionality HsvSystemInfo System Items (Get/Set App Name, Server Name) HsvProcessFlow Process Management HsvReports System Reports HsvICM Intercompany HsvMDArrays Statutory / IC Transactions Data HsvDataCubes Data Access @ Sub Cube Level HsvDQI “Intelligent” Data Retrieval HsvStarSchemaACM Extended Analytics HsvSecurityLoadACV Security Loading and Extracting HsvMetadataLoadACV Metadata Loading and Extracting HsvRulesLoadACV Rules Load and Extracting
  10. 10. Brief HFM API Overview [COM] Type Library Functionality HsvcDataLoad Data Loading and Extracting HsvJournalACV Journal Loading and Extract, Journal Template loading HsvPOVSelection ActiveX display option for selecting POV HsvResourceManager Manages Error Messages HFMConstants Constants used by API calls throughout
  11. 11. Brief HFM API Overview [HTTP Listener]  URL: http://<web server>/hfm/EIE/EIEListener.asp? app_name=<HFMAppName>&action=launch_EA_extract  Include following data in header ● SSO Token ● Content Type : text/xml  HTTP Request Stream Parameters ● Application Name ● Extract Type ● Push Options
  12. 12. Brief HFM API Overview [HTTP Listener]  HTTP Request Stream Parameters (cont) ● DSN ● Prefix ● ExcludeDynamicAccounts ● Scenario(s) ● Year(s) ● Period(s) ● View(s) ● Entity(ies)
  13. 13. Brief HFM API Overview [HTTP Listener]  HTTP Request Stream Parameters (cont) ● Entity(ies) ● Value(s) ● Account(s) ● ICP(s) ● Custom1(s) ● Custom2(s) ● Custom3(s) ● Custom4(s)  XML Response Message returned
  14. 14. Prepare a Development Environment
  15. 15.  Requirements [COM] ● HFM Client Installed ● Server Files Available ● Copied Locally ● Read only access to files on remote location (i.e. server) ● Microsoft Visual Studio ● Deployment / Installer Notes Prepare a Development Environment
  16. 16.  Create Installer (Required Assemblies, 11.1.2.x) ● commonComponents ● productCommonComponents ● hfm_client ● hfm_common  Launchtool.cmd to start installation process  Select choose individual components ● Financial Management: Client, ADM  Configure Cluster / Services / DCOM  Start Client and perform test connection Install HFM Client (11.1.2.x)
  17. 17.  Server Files Default Location ● <EPM_HOME>productsFinancialManagementSer ver ● <EPM_HOME> = C:OracleMiddlewareEPMSystem11R1System11R1  Copy them local or Reference them direct from server. ● If referencing, be sure to include in your app’s installer so that they copy! Locate (and Copy) Server Files
  18. 18.  Express 2012 for Windows Desktops ● http://www.microsoft.com/visualstudio/eng#products/ visual-studio-express-for-windows-desktop+product- express-desktop  Requirements ● O/S : Win7 SP1, Win 8, Server 2008, Server 2012 ● Hardware : 1Ghz CPU, 1GB RAM, 5GB Disk, DX9  NOTES: ● Links change semi-frequently so Google Visual Studio Express and you won’t go wrong. ● As new versions are released old versions are retired. Visual Studio (2012)
  19. 19.  Installation ● Click the Download button on website ● Use default settings for file locations, etc. ● When it comes to installing option components, I generally install them. ● MSDN Document Library is up to you.  If you don’t meet requirements for 2012 ● 2010 ISO : http://download.microsoft.com/download/1/E/5/1E5F1C0A-0D5B-426A- A603-1798B951DDAE/VS2010Express1.iso ● 2008 ISO : Retired, though on torrents* Visual Studio (2012)
  20. 20. HFM Client App
  21. 21.  Open / Close Applications, Logoff  Explore Data, User Preferences, Database Management  Setup / Process Journals  Define App Profile, Create/Delete App, Manage Metadata  Load Security, Metadata, Member Lists, Rules, Data, Journals HFM Client App Functionality
  22. 22. Coding Your Own Client App
  23. 23.  Visual Studio Project Creation  Adding References to Files  Recreate Existing Functionality ● Authentication [Demo] ● Opening / Closing Apps [Demo] ● Extracting Metadata, Rules, Data [Demo] Coding Your Own Client App
  24. 24. Create Visual Studio Project
  25. 25. Adding References
  26. 26. Shared Objects
  27. 27. Authentication [Demo]
  28. 28. Opening Application [Demo]
  29. 29. Logoff [Demo]
  30. 30. Extract Metadata [Demo]  Add References  Create Standalone Form  Wire up Buttons : File Browser, View (Notepad), Check All, Uncheck All, Extract  Implement API Extract Logic for Metadata
  31. 31. Extract Metadata - References
  32. 32. Extract Metadata – Create Form
  33. 33. Extract Metadata – Wire Buttons
  34. 34. Extract Metadata – Wire Buttons
  35. 35. Extract Metadata – Wire Buttons
  36. 36. Extract Metadata – API Logic
  37. 37. Extract Metadata – API Logic
  38. 38. Extract Metadata – API Logic
  39. 39. Extract Metadata – API Logic
  40. 40. Improving on the Client App
  41. 41.  App Title / Statusbar Updates [Demo]  Dynamic Menu [Demo]  Admin / System Info [Demo]  Smarter Metadata / Rules Extracting/Loading [Demo] Improving on the Client App
  42. 42. App Title / Statusbar Updates [Demo]
  43. 43. App Title / Statusbar Updates [Demo]
  44. 44. Menu Control [Demo]
  45. 45. Menu Control [Demo]
  46. 46. Menu Control [Demo]
  47. 47. System Info [Demo]
  48. 48. System Info [Demo]
  49. 49. Tips, Tricks, and Warnings
  50. 50.  Be sure to work in Dev first! ● Some API calls could cause trouble if used incorrectly! ● Easier to Debug ● Can Run Additional Debug/Performance Tools  Start small and test frequently  Use Debug functionality to step through code  Trap exceptions to handle errors gracefully!  Create Installer for your finished product Tips, Tricks, and Warnings
  51. 51.  COM API Doc & Samples ● http://docs.oracle.com/cd/E17236_01/epm.1112/hfm _developer_11.1.2.2.300.pdf ● SDK via e-delivery for additional code samples  Web API Doc & Samples ● Web API ● Pre-11.1.2.2 : http://docs.oracle.com/cd/E17236_01/epm.1112/hfm_webs dk.pdf ● 11.1.2.2+ : http://docs.oracle.com/cd/E17236_01/epm.1112/hfm_custo m_pages_development.pdf Tips, Tricks, and Warnings
  52. 52.  Web Service ● No Docs Yet! ● Access ASMX pages in browser to view information! [http://<your web server>/hfmapplicationservice/]  Utilize existing resources for help! ● Oracle Forum (http://forums.oracle.com) ● Blogs ● Mine (new) : http://www.charlescbeyer.com ● Finnish Hyperion Guy : http://hyperionfinn.blogspot.com/ ● SlideShare / Google : Tons of Info is out there. Tips, Tricks, and Warnings
  53. 53.  Web Service isn’t officially published ● May go away at any time?  Great Training Material for Learning .NET ● http://www.microsoftvirtualacademy.com/ ● http://msdn.microsoft.com/en-US/vstudio/cc136611 Tips, Tricks, and Warnings
  54. 54. 3rd Party Tools / Projects
  55. 55.  HFM Batch & hfmCMD by Adam Gardiner ● C# Command Line Implementations of API functionality. ● Batch : https://github.com/agardiner/hfm-batch ● hfmCMD : https://github.com/agardiner/hfmcmd  EPM Maestro : http://epmmaestro.com/  Accelatis : http://www.accelatis.com/  Star Analytics : http://staranalytics.com/products/ 3rd Party Tools / Projects
  56. 56. Charles Beyer charles@charlescbeyer.com Glenview, IL USA +1.847.275.6317 Questions? Blog http://www.charlescbeyer.com LinkedIn http://www.linkedin.com/in/charlesbeyer Twitter https://twitter.com/beyerch Oracle Forums beyerch2
  57. 57. Source Code http://www.charlescbeyer.com/Kscope/HFM_Client_V2.zip

×