Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Trigger maxl from fdmee


Published on

Part 1: Trigger Batch/Command File from FDMEE
How to make FDMEE-triggered Essbase calculation and partition scripts targeted so that they run only for the entities that are applicable to the current FDMEE load.

Part 2: Run a MAXL script from Smartview
Use an Essbase CDF inside an Essbase calculation script to run a MAXL script. The calculation script can be run from Smartview.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Trigger maxl from fdmee

  1. 1.
  2. 2. Future Webinars  We have a large amount of webinar / training content available related to :  Essbase  FDMEE and Jython  OBIEE  HFM  DRM  If you’d like to receive a notification when we schedule webinars, please notify
  3. 3. Introductions  Bernard Ash -  EPM Gurus – 15+ years and counting  – premier Hyperion training provider:  Rudy Zucca, Eric Eriksen, Matthias Wohlen  Experienced and renowned consultants, NOT just trainers.   Vendor of choice – come see demos at booth #111.  With Essbase or Without. EPM and Beyond.  Come find out about the “Save Essbase!” revolution.
  4. 4. Agenda  Part 1: Trigger Batch/Command File from FDMEE  How to make FDMEE-triggered Essbase calculation and partition scripts targeted so that they run only for the entities that are applicable to the current FDMEE load.  Part 2: Run a MAXL script from Smartview  Use an Essbase CDF inside an Essbase calculation script to run a MAXL script. The calculation script can be run from Smartview.
  5. 5. Part 1: Trigger Batch/Command File from FDMEE To run parameterized MAXL which will orchestrate TARGETED : 1) Calculation scripts 2) Partition scripts
  6. 6. Other applications of this technology  Shell/Batch file to :….  Archive files  Call MAXL  TBD – any other ideas?  Etc.
  7. 7. Why FDMEE?  End-user Driven data loads  Maintenance of mapping tables driven by end-users in end-user friendly interface  Managing and remediation of kickouts in end-user friendly interface  Flexibility with Jython scripting.  How do I get to FDMEE from FDM and how should I?  See other presentation about the migration from FDM to FDMEE
  8. 8. Why FDMEE vs. FDM Classic  Sunset  Oracle Enterprise Performance Management System is the terminal release for FDM Classic.  ODI  FDMEE leverages the power of the go-forward data integration platform – ODI  LCM  Multiple platforms unlike FDM Classic  IE or Firefox support  Workspace integration  64 bit  Jython and access to java libraries.
  9. 9. Why still use BSO?  Hybrid not there yet. But we all wait excitedly for Essbase Cloud/ 12C  ASO has a limitation of no more than 2^64 intersections  Easier to develop and support b/c many more people have BSO skills than ASO & MDX skills.
  10. 10. Intro / Concepts  Subvars may not be best way.  We could use the API  Not only do you want to make your calculation TARGETED (w/ a fix), you can gain tremendous performance benefits by TARGETING your partition scripts as well.  Only level 0 on partition definition, especially if your target is ASO  Upper level write back – don’t get me started. How many of you do upper level write back
  11. 11. Major Hacks – It shouldn’t be this hard ;-)  Not pretty b/c it was a bit complicated to manage double quotes when passing parameters at the commend line and bypass the potential limit in the length of a string that could be passed to the command line. At first, I wanted to just pass one command line string with all the entities but I found out that DOS would limit the length of that string so I had to resort to looping in DOS. That was a real low point in my life – looping in DOS – YUCK!… LOL !  It loops through the parameters based on the comma as a separator. It also needs to reconstruct the list with a certain double quote format so that it would be acceptable to maxl or Essbase. With that high level explanation in conjunction with liberal commenting in the code, it should hopefully be understandable.  When we call the command file and pass parameters (the entities) in this format MAXL_DEV.cmd "France","Switzerland","China", the looping handles the fact that we don’t know how many entities we will receive. It also then reformats that into a format that will be acceptable to MAXL and Essbase (as a subvar).
  12. 12. What is the #1 most important (and easiest) thing for Calc Performance?  Fix() !  Then why does the FDMEE -> Essbase Calc Script integration not support the passing of the Entities / Departments, etc. to the Calc Script to narrow down the fix of a calculation? Also, partitions are not integrated with FDMEE and certainly not TARGETED partitions.  And we know that, since Hybrid doesn’t cure all our ailments “yet” ;-), we probably need to use our BSO workhorse to calculate some “sub-models” and then partition the results to an ASO reporting cube. Wouldn’t it be great if could:  Trigger a calc the second the data is loaded - a calc that is TARGETED/ “Fix’d” on ONLY the incoming Entities  Then automatically push the results to the ASO cube once the calc has finished using a TARGETED parition.  Okay, now that we all agree that this is pretty fundamental (or at least highly desirable) functionality, let’s show you how to implement it.
  13. 13. The good, the bad, and the ugly – DOS.  Linux shell much better.  We will not cover DOS scripting in this class b/c a) we don’t have time  b) I wouldn’t wish that on my worst enemy ;-)  But, if you need to customize the DOS code here, Google is your friend – and so am I. Call / email me if you get stuck.
  14. 14. Exercise – Add the magic sauce  You see, FDMEE has events, like FDM did.  Add pre-written script to the AftLoad event in FDMEE.  This script will query the tDataSeg table to get the distinct market members that were in the previous load file:  "SELECT DISTINCT UD2X FROM [HYPFDMEE].[dbo].[TDATASEG] where loadid = '" + lid + "'"  Run a load.
  15. 15. Exercise - Show me the data -  Be Sure you have FX Rates  View the Results in BSO (Input member converted into USD)  Results in ASO  Change fx rates, rerun  Extra Credit – add support for another country
  16. 16. Advanced Exercise  Add logic to wrap “entities” / markets (i.e. Brazil) in double quotes in DOS so that they have double quotes in the partition script in MAXL. This would support entities with spaces in them. This requires some painful DOS coding so proceed at your own risk – or migrate to Linux ;-)
  17. 17. Part 2: Trigger MAXL file from Smartview But watch out, b/c users can hurt themselves and others if given too many privileges ;-)
  18. 18. Intro / Concepts  Why bother?  Partial Clear  Partition Creation / Refresh  Security  Backups  ASO aggregation (materialize aggregation)  Any other ideas for which you otherwise would need RDP access to run MAXL?  Go In and out of archive mode.  Security?  Can we pass parameters from Smartview? Maybe we could do this in Calc Manager?  Subvars  Watch out ! Be careful who can run MAXL.
  19. 19. Our Sample use-case : FX with ASO  “Disclaimers”  There is never only one way to get something done and often no “right way”. The right way often depends on and can vary with the requirements. It also depends on the skills of the resources available and environment you’re in.  Can’t exceed 2^64 intersections  Improvements to make it better in in regards to skipping over non-existent data  Hybrid will do everything but not in current EPM releases. It will be Essbase Cloud or 12c.
  20. 20. Full Circle back to BSO?  ASO vs. BSO vs. Hybrid.  If : •ASO has a ceiling on the number of intersections •Hybrid has limitations – i.e. no cross-dims to upper members •BSO is a great calc engine and we can use parameterized partition scripts to move data from BSO to ASO. Maybe we should still count on BSO for calculations?... At least for now.
  21. 21. The How  Calc Manager CDFs – These handy little java-based utilities written by the Hyperion Calc Manager team allow us to, among many other things, launch a MAXL command from an Essbase calc script / Calc Manager rule.  How can we get them installed?  TBD – come with Essbase and Planning install  If you need to confirm them, to go EAS bottom left of the EAS calc script editor (see screenshot next page)  @ Functions versus “RUNJAVA”  Can you write your own?
  22. 22. Are CDFs Installed?
  23. 23. @ Functions versus “RUNJAVA”  @ Functions versus “RUNJAVA”  RunJava allows you to make a one-time call to a CDF  Functions beginning with @ will call the cdf for every iteration through the loop. • There may be some cases where you would want to do this but way overkill otherwise. For example, you want to check a variance, find out what the variance threshold is for that POV by querying Essbase or a relational database >> and, finally, fire off an email if the variance exceeds a certain threshold. In this case, you would want to do it inside a loop so the CDF would be called for multiple variances (i.e. for each product / customer). • In theory, if you don’t want to call a CDF for every iteration of a loop you’re in, you could fix down on one cell and then you would only call the CDF. But that seems like a lot of trouble when you could just use “RunJava” instead.
  24. 24. Can you write your own CDF?  Short Answer – yes  Longer answer – this is a big topic for another lab / webinar. We unfortunately don’t have enough time for this in this session. However, we are happy to set up another webinar to go over this after KScope : Or come visit us at the Konvergence booth #111.
  25. 25. Calc Manager  Why not do it in calc manager?  Many users don’t want to leave Excel (Smartview)  What if we want to write calc scripts in EAS?  Developing scripts in Calc Manager is still not the most enjoyable experience.  Can Calc Manager run native Essbase calcs?  Anyone have more reasons why not to use Calc Manager?  Pretty sure You need Planning / HFM to get Calc Manager  Advantages of calc manager?  Pass parameters?  Enter Shuttle which can help you manage parameterized calc scripts.
  26. 26. Anatomy of an ASO procedural calc  The Dynamic member formula that does all the work – budUSDx  The budUSD member which will store the results of the member formula. We do this so that the result is stored and can then, therefore, aggregate more quickly.  The copy from budUSDx to budUSD is done with the maxl on the following slide.
  27. 27. Anatomy Screenshot
  28. 28. Anatomy of an ASO procedural calc - This is where we use MAXL to copy from budUSDx to budUSD. - Yes, this is simply an ASO copy.
  29. 29. Show me the data?
  30. 30. Test it?  Change FX rates  Rerun MAXL  Validate results have been correctly updated.
  31. 31. If time permits, add another currency 1. Add another currency rate (stored in Measures>>Metrics. See MDX screenshot from earlier. Don’t forget to input the rate! 2. Create and flag another dealer with your new currency. 3. Add another if statement to the budUSDx member formula to handle your new currency 4. Input money to your new FX dealer. 5. Run the MAXL from Smartview to do the conversion. 6. Validate the result is correct and has landed in budUSD.
  32. 32. Encore?  Come see my session tomorrow about FDM -> FDMEE migration utility. Once you are done using the utility to migrate an FDM classic app into FDMEE, you can use Eclipse to write some Jython code and then integrate that script into FDMEE.
  33. 33. Additional Webinars / Classes – on request 1. FDMEE Smart Replace for HFM - While HFM clears the entities in your current load, it will not clear entities that were loaded previously. This could happen if someone books some transactions incorrectly and they flow through to HFM. SmartReplace will catch and clear ALL entities, not just current load and by doing so, save customers from many hours of digging to find why their data doesn't tie. 2. How to use FDMEE data sync. 3. How to write FDMEE custom reports using BI Publisher’s MS Word plug-in. 4. How to use ODI to load EPMA Interface tables. 5. How to write a Linux Shell Script (Exalytics compatible) to automate : a) LCM backups b) file system backups c) MAXL parallel data exports (for backups and/or defrag) d) backup of Essbase partitions whose backup is not supported by LCM  
  34. 34. Reminders  Bernard Ash -  EPM Gurus – 15+ years and counting  – premier Hyperion training provider:  Rudy Zucca, Eric Eriksen, Matthias Wohlen  Experienced and renowned consultants, NOT just trainers.   Come find out about the “Save Essbase!” revolution at booth #111.
  35. 35.