Sunday, June 11, 2017

Book Review - Oracle FDMEE Scripting: Essential Elements

I like to learn about things that I'm not an expert in: basically, I'm learning all the time. To that end, I picked up a copy of Tony Scalese's new book on FDMEE, called Oracle FDMEE Scripting: Essential Elements.

There is an assumption of knowledge, as Tony mentions, about FDMEE and some core concepts. This is not an "overview of FDMEE" book. His other book, The Definitive Guide To Oracle FDMEE, would help with that.

There are three chapters in the book. The first chapter deals with syntax and the right way to do things, from simple indenting and case sensitivity to more complicated scripting techniques like error capturing. The second chapter explores the FDMEE Java API by listing many of the methods and associated keys available when developing scripts. The last chapter gets into script development and debugging, including an introduction to FDMEE development mode, where scripts can be tested without impacting data.

Throughout the book are code examples to illustrate the point being made, which are helpful in seeing a particular technique, key, etc. being applied.

What I would like to see more of are a few common FDMEE scripts with notes that apply the knowledge in the book to the scripts. The book covers all of the pieces, but there's no overall example that ties them together. Like show a smart replace event script and point out the classes being imported, the indenting, the use of fdmContext, etc. Or a batch script that runs a data load rule, executes the check validation report, and then emails the log and the check report to the admin with the lessons being applied from the chapters. Reminds me of a Stave jigsaw puzzle, where you get the elegantly crafted pieces but not a picture of what they look like when put together.

If you are an FDMEE administrator with an implementation that was done by consultants or are new to the job, this will be a great book for you. Review the scripts you have, read the book, and then review the scripts again now that you know more about the syntax and the techniques. If you are new to writing FDMEE scripts and don't have a folder of scripts to refer to, you may want to do some looking around (Oracle forums, blogs, samples, Google, etc.) to find a few to provide some context.

Overall, a good book to understand FDMEE scripting. Here's the link to it on Amazon.com:

Oracle FDMEE Scripting: Essential Elements

Also, if you're going to Kscope, Tony will be there and I'm sure glad to sign your copy.




Thursday, June 1, 2017

Member Selection in FCCS

For those who are switching from HFM (or Enterprise for that matter) to FCCS there are a lot of things that will seem familiar. You have journals, consolidation, hierarchies, Financial Reporting, FDMEE (lite), intercompany matching (and thank goodness it's with the Enterprise side by side format), and more.

One simple, more practical area where things are different is with member selection. This may seem trivial, but it is learning small things like this that make using the product easier to pick up. You focus more on what you're doing vs. wasting time on how to do it.

In Enterprise, member selection was a simple dialog box with a list or hierarchy of members, you select one, and click OK. Sorry, I don't have Enterprise up and running to show a screenshot.

In HFM, member selection is typically a dual sided dialog box with available choices on the left and the selected item(s) on the right and clicking the chevrons (not shown below) in the middle to add/delete or select a relationship.



In FCCS, and I'm pretty sure the same goes for EPBCS/PBCS as well, member selection works a little different. There are two main flavors.

This first example is from journals. There are tabs across the top for each dimension instead of the dropdown of HFM. Start from the left and click on parent members to drill down to the children in the next column - if you keep clicking, like on USA, the screen scrolls to the right to keep drilling down. But the question comes: how do you select a member? In the screenshot, there are three entities selected (gray boxes) - which one will be in the point of view when OK is clicked?



The answer is none of them! The selected entity is Latin America in the center column - note the checkmark to the left of the label. So, to select an entity, you must click the whitespace to the left of the member to place the checkmark. Clicking the entity itself does not place the checkmark. Think Smart View member selection, where you have to click the box and then click the chevron.


The other primary member selection box is seen in intercompany matching reports, where a relationship (think list in HFM and Enterprise) is needed. This screen has the same columns (in the middle and right) for the drill down as above and the same blue checkmark (see North America in the right column), but the additional bit shows in the LEFT column. 




This column shows a relationship selection. To do this, hover over a specific "anchor" member and the fx icon will appear. When clicked, the various relationships will appear. The equivalent of "base" members is "Level 0 Descendants," which highlights the Essbase underpinnings of the product.



Note that multiple items can be added to the left, whereas HFM typically would only allow one list/relationship to be added to the point of view.

Also, as seen in the bottom of the second screenshot above, this panel can be toggled from Members to other choices depending on the design of the application.

A huge benefit to all of this is you can do this from your phone/tablet. This screenshot was taken from an Apple iPhone using the standard Safari web browser.





Member selection is a little different, just like Enterprise to HFM was a little different but in the end you get what you need.



Tuesday, May 16, 2017

Appearing in Oracle Magazine

Normally I keep a low profile, which is probably not a good idea for a consultant. But thought I'd share that I'm in the current issue of Oracle Magazine in the Peer to Peer column. Here's the link (I'm #3 in the column).




Monday, May 15, 2017

HFM Command Line Automation

Happy May to everyone. I got the idea for this blog post from a client who wanted to maintain and manage HFM from CA-7 jobs; basically where you do things from a command line on a scheduled basis. HFM isn't really geared for that; but, there is a legendary, mythical way to do pretty much everything!

For versions prior to 11.1.2.4 there is a third party utility called HFM Batch that can be used to do this, but it doesn't work with 11.1.2.4. Fortunately there is a solution - from Oracle and included with HFM - and it goes all the way back to the early, early days of HFM. Some documentation I have on the technique is dated circa 2003.

So, what you do, is .....










ATTEND KSCOPE17!    www.kscope17.com


Seriously, at KScope17 there is a presentation that covers this specific topic (Monday, 10:30am). I don't want to steal Beatrice's thunder, especially since she recently helped me with the topic, but she's going to cover it all then.

And to save $100 when registering, use code 123OLAP - you'll see a field where you can enter this.

Hope to see you in San Antonio!

P.S. Here's a sneak peek:












Wednesday, April 5, 2017

HFM - Knowing Which Environment You're In

This blog post comes about because of LifeCycle Management ("LCM"). It's fine as a tool to migrate things (called artifacts) from one environment to another but I don't use it a lot because HFM has native import and export capabilities for most things already. LCM works better when the application has the same name in all environments, which I don't like: I like knowing where I am. 11.1.2.4 addresses this somewhat - if you're migrating from one HFM app to another and they're called different names and the LCM import doesn't find the same application name, it will prompt you to select one. But try this with a task flow and you won't get prompted and you'll end up with a task flow that doesn't work since the embedded application name didn't get changed (believe me, I tried).

The obvious answer to this is to call the application name the same in all environments, and most people do that. But here's the problem. Within rules, we typically want rules to do different things in dev vs. QA vs. production. If you're doing write to file, for instance, you'll want different file paths for each environment. If you're sending emails for your metadata diagnostics (you are sending emails for your metadata diagnostics, right?) we want to have different addresses, different email subject line, etc. If the application name is different, then you can use HS.ApplicationName to find out where you are. But if you're being LCM-friendly, that's not going to work.

So, what to do?

Fortunately, VB script has a way to find out where you are. You can use two simple lines to capture the computer name (server) that is running HFM. So, in your rules, do something like this:

set wshShell = CreateObject("WScript.Network")
strComputerName = wshShell.ComputerName


Then, after that, use if/then or select case to look at the computer name and set the path or whatever you're doing. If your environment has multiple HFM servers, then include all the server names.

Select Case strComputerName

   Case "DEV01"
      location = "\\dev\fileshare\file.txt"
   Case "PROD01", "PROD02"
      location = "\\prod\fileshare\file.txt"

End Select


This allows you to know where you are and still be LCM-friendly. If you're running on Exalytics, you may need to tinker this a bit. I've had multiple Exalytics clients but for some reason they all still put HFM out on separate Windows servers - weird.


Anyway, have fun knowing where you are.








Monday, March 6, 2017

EPM Automate - DOS style automation for Oracle EPM Cloud

Ever heard the phrase "history repeats itself" or "something out of fashion will become popular again"? EPM Automate is a good example.

EPM Automate is the automation tool for the Oracle EPM cloud products: EPBCS, PBCS, FCCS, ARCS, etc. It allows users to log into the cloud, perform various actions, and log off. It can be run interactively or scripted and then scheduled.

The "history repeating itself" piece of this comes from the user interface and the scripting language: MS-DOS command line and MS-DOS batch file (or PC-DOS if you got your copy of DOS direct from IBM instead of Microsoft or a clone manufacturer). Or if you've ever used the command line on a Unix computer - did you know Apple's Mac OS X is a Unix operating system? - then you'll feel right at home. A DEC VAX had something similar but the language was different.

Actually the idea of a cloud environment harkens back to mainframe computing, so "what goes around comes around." Ok, no more phrases.

Anyway, the first step is to log into the cloud product and download the installer - works with Windows or Linux (64 bit versions only). As the cloud environment is updated each month, the downloaded program should be updated each month too.

After the install, launch the program from the menu. You're basically put into a command line environment, complete with drive/folder> and blinking cursor. Type in what you want to do, like login, and then get a response back. If you don't know what you can type then enter "help" and get a list. For help on a specific command, type the command and then help, like "login help".

For automating, write a batch file and then schedule that with Windows Scheduler, CA-7, etc.  I'm tempted to use EDLIN as the text editor, just for the full 1980s DOS effect.

Notice I'm skipping screenshots for this post - Oracle has a YouTube video that shows you how it works - this video uses PBCS for the cloud product.

https://www.youtube.com/embed/1lUthzzoWEY?rel=0&autoplay=1


For full documentation on EPM Automate, go to:
https://docs.oracle.com/cloud/latest/epm-common/CEPMA/CEPMA.pdf


Overall, a simple and easy way to work with the Oracle EPM Cloud products. I wish they'd make this available for HFM - I like it better than task flows. HFM Batch (Google it) was similar but wasn't replaced when 11.1.2.4 (with no Windows API) came out.


P.S. With good ideas from the past being brought to bear in current day solutions, I wonder when keypunch cards are coming back. I need a new holiday wreath (search Pinterest).






Monday, February 20, 2017

Viewing Metadata Properties within HFM

For HFM admins, making life easier is about automating something, a new calculation, faster consolidation, etc. But for end users, making life easier tends to be about simple stuff. Show me something quick that can make my life easier.

One of the questions end users have is what are the attributes of this account, entity, etc. - the metadata properties. For years administrators have put this information out to Excel files (the HFM Toolbox utility for versions before 11.1.2.4 was great at this).

But within HFM itself, there are some things that can be done.

In the mid 2000s a field was added to the accounts called Calculation Attribute. It provides 100 characters or so for the admin to type in how an account is calculated. The history for this goes back to Hyperion Enterprise that would show the calculation for a calculated account in the Data View window. In HFM right-click a cell (data grid or form), select Cell Information and you'll see the Account Calculation Attribute if it has been provided.





That's all well and good, but what about the metadata attributes? Asset or liability? What custom dimension top members? For this information, there is a simple solution. Right-click the metadata item (I'm using account ROA in the rows here) and select Member Properties.





Once selected, a popup appears with all of the information an end user would want to know. The screenshot does not show all of the attributes, but they are all there.



So simple and available from grids and forms (but unfortunately not Smart View).