Thursday, October 16, 2014

Right Click not working in Excel if Essbase Spreadsheet add-in is installed

The age old issue still haunts.
Although Excel addin has been excluded from EPM now, developers (and pro users) still use it for it is amazing versatility and speed.

It might just happen that your right-click may or may not work after you install Excel Spreadsheet add-in. The solution is very simple.

In Essbase addin ribbon, click on Essbase Options and uncheck 'Enable Secondary Button' , this option basically treats the other button (right button) of your mouse as the primary one (left button).



If doing this doesn't solve your problem, I suggest disabling all external add-ins in excel and checking if that works, Then go on enabling addins one by one to check which one is causing problems.

Cheers !
NJ

Sunday, September 28, 2014

Hyperion Planning Budgeting Cloud Services : Living with it.

I've been away from blogging for quite some time. ODI has taken a break and this time I am working on Hyperion Planning on Cloud a.k.a Planning Budgeting Cloud Services (PBCS).

Fortunately, Oracle has taken documentation seriously and there is absolutely no need to paste those 'how to do' pictures here again. You will also find videos of PBCS on youtube and they are pretty informative.

See the link below for documentation:
http://docs.oracle.com/cloud/latest/pbcs_common/docs.htm

And for Videos (its the same page but a different tab) :
http://docs.oracle.com/cloud/latest/pbcs_common/index.html

While I was mighty excited about the fact that Planning will be on cloud and soon we will have webforms which would be as fast as your facebook wall, I must say that its not a rosy picture at all.

Ofcourse, PBCS has some advantages over the usual on-premise application but since it is so new, issues are bound to arise and there is nothing wrong with it. I am listing a few good and bad experiences so far.

NOTE: The following issues listed have been faced by me and may or may not apply for other instances. This list of issues is not an attempt to undermine PBCS or its capabilities.

1. ADF Error : A Task list will abruptly throw an ADF error when trying to edit it. There is no defined pattern but a workaround is to go on clicking each task from start to the one you want to edit instead of directly jumping (clicking) on the task you want to edit.

2. Deployed Rules getting 'un-deployed' automatically : This came to me as a real embarrassment. We had a BR which was run-on-save of a webform. When a user saved his data nothing happened. When I checked the logs I found the rule was never executed, after checking the rule in BR list I found that rule and a couple of others had vanished. Had to deploy them again. On a strange note, if I click on 'deploy' on the application name in system view, many rules that were deployed and running before vanish without any reason.

3. Migrating Application and Calc Manager rules : While application migration from a local on-premise application to cloud is straightforward and easy, Calc manager rules is not, apparently all the rules of three plan types get imported (migrated) to one plan type in target. The workaround is to import it all plan types and then delete the unnecessary ones. Not sure if this is applicable to all cloud instances.

4. Performance : There is a notable difference in page upload times when using Firefox. IE 10 and FF versions 17 and 24 are supported. I upgraded FF to 32 but it started crashing after some time. Performance on IE is not that great, you will get a lot of error messages during general navigation.

5. Unavailability of Essbase Ad-hoc Analysis : This restricts the use of Attribute dimension in Ad-hoc analysis. Planning does not support Attribute ad-hoc analysis in SmartView, but it is the only option available in PBCS. So is the case with Financial Reporting, Attributes cannot be used here as well. This will be available in future. (Oracle does not reveal ETA of such upgrades)

6. Inbox folder of FDM : Cannot remove or Sort the files uploaded to it: File, once uploaded in the inbox cannot be deleted, nor can it be sorted according to the time of upload or any which way. Developers need to keep this point in mind.

7. General navigation issues on Firefox : For some users, clicking on the node of Application management (Shared Services), does not expand the node, instead, it re-orders the tree. This can be really irritating and many will be forced to use keyboard instead of mouse for traversing the tree. Oracle says that this issue is not present in version 24 of FF.

8. FF cannot upload Application Export but IE can : Planning application exports can be uploaded for importing into cloud application, but this functionality works with IE 9 only and not on FF version 21.

9. Java Errors : If any weird java errors are seen, log out, delete history, offline data, cache etc. close all the instances of FF browser and login again. Everything will be fine.

10. Essbase is completely off the table. No access to change cache, essbase.cfg etc.

11. Automation of tasks needs to be researched. I don't think we can automate much (I am reading stuff about it but this is what I feel so far)

12. Did anybody say they want to see the log files ? You can but its very limited. Essbase logging for rule optimization etc is not possible yet.

13. Smart View : XML DTD error : This is an error received when users are logged in to SV for a long time. When the session logs out automatically and user logs in again, he will get this error. Best approach is when a stale session needs to be reopened, close all Excel files and login again

I do feel that these small issues will get rectified soon.
On the positive side, here are my observations

1. Workspace window will feel slow initially, but work on it for sometime, let the cookies and offline data get saved and it will start performing blazing fast. If you delete history, the speed will reduce again for some time.

2. SmartView is faster compared to web browser. Use it as much as you can.

3. BRs execute pretty fast.

4. System never crashes, pretty robust.

5. With proper access restriction and user management, PBCS has a pretty good security structure in place.

6. File upload and download speeds are very good. Users will rarely have any issues uploading files on the server.

7. No fuss of server maintenance and backup, just one hour of downtime everyday when patches are applied and data is backed up.

I am not sure of the disk space sizing as of now, but will post it as soon as I get some information on it.

I will be updating this post as I get up-close and personal with PBCS, but so far it looks promising, considering the issues will get resolved as Oracle will patch it till they get it right.


Cheers,
NJ

Tuesday, July 8, 2014

Working with dates in Essbase: The easiest way

When working with Calculation scripts, sometimes a situation arises when we want to process dates, as in, compare date values, assign certain values on particular dates etc.

Now, I had a situation where I wanted to create a calendar for Fiscal year. I had standard
dimensions Period, Year and a custom dimension created named ‘Day’ which had members D01 through D31.

For each day I wanted to store what day of the week it would be. Also, for a entered date range in the format of YYYYMMDD, I had to assign ‘working’ or ‘nonworking’ flag.

Date entered through Planning is stored in YYYYMMDD format. Based on this format, I need to find out if it is a weekday/weekend or a ‘Holiday’ (Holiday range was specified by user in YYYYMMDD format).

The key to work (manipulate data) on the basis of dates is to find a unique identifier for the combination of Period, Year and Days member. That unique combination is the exact number of seconds elapsed since Jan 1, 1970 (also known as ‘epoch’)

The @TODATEEX() function returns the exact seconds elapsed since epoch. The issue is, this function requires strings to be passed, and we cannot pass numbers directly. Hence, we need to use @HspNumToString() function that converts number (eg.20141231 ). Again, the number needs to be split into three parts YYYY, MM and DD and passed separately to the function. The Essbase Techref will tell you how to use date
functions, but not how to parse numbers which are needed to use the date functions.

The following code that I had written shows how it is done:

/* varY is the date entered through Planning web form, the format of which is YYYYMMDD e.g. 20141231

SA0085 is the account member which will store the exact number of
seconds elapsed

The function works something like this when varY = 20141231

@TODATEEX("mm/dd/yyyy",’2014/31/12’)    */

"SA0085"=@TODATEEX("mm/dd/yyyy",@CONCATENATE(@SUBSTRING(@HspNumToString(varY),4,6),@CONCATENATE("/", @CONCATENATE(@SUBSTRING(@HspNumToString(varY),6,8),@CONCATENATE("/", @SUBSTRING(@HspNumToString(varY),0,4))))));

NOTE: This function will fail at runtime if you pass invalid dates like 31 February or #MISSINGvalues.

Also NOTE: This function will work only till year 2037. Hopefully, we will have something else by that time.

Once we have the seconds elapsed value, other date functions like @DATEPART, @DATEDIFF can be used directly.

Cheers !

Monday, June 2, 2014

Resolving EPMLCM-13000 Service currently unavailable error

Thanks to one of my friends, Rahul Sharma, for this,  but I couldn't find a good article on this issue so putting my experience forward.
When trying to import an lcm backup of planning application,  I got the above error.  There was one more error saying the path specified for export was invalid when exporting.  Something was definitely wrong with Shared services. 
To resolve this error,  first we need to check if the export folder,  usually the import_export folder,  is having proper read/write access. 
If the issue still persists,  run the Configtool utility and configure only common settings again,  this time make sure that the path for export is correct.  Restart all services again and you should be fine.

Regards,
NJ

Thursday, January 23, 2014

ODI 12c does not support Hyperion, atleast for now.

Now, I have stopped my research on ODI 12c for a while, simply because ODI 12c does not support integration of Hyperion applications (which makes me earn my bread) for now :D
Does that mean you cannot create Interfaces err sorry mappings using ODI 12c, very well you can, the KMs, technology nodes in topology are all there. It is just that Oracle will not help you resolving issues in integration of Hyperion apps using the current crop of ODI12c, future releases will be supported.

For now, lets use ODI11g  minor version 7 for satisfying our needs.

All thanks to my senior colleague Navan who got this news for us.
http://appliedbi.blogspot.in/

More information I found regarding this here.
http://devepm.com/2013/11/13/odi-12c-excelent-for-ogg-bad-for-epm/

Cheers !!
NJ

Wednesday, January 15, 2014

Creating a very basic mapping in 12c (Interface) : Issues

Creating a mapping in ODI 12c is different from the one in ODI11g. People who are accustomed to ODI11g will be irritated by the fact that some things which were bad in 11g haven't changed and the new additions are even more complicated than the older one.

I am going to show how to create a simple mapping and as I do that, I'll list down some issues that we can normally face. (Please dont delve into the details of tables and what they are doing)

Starting with the first tab, you will see that 'Staging Area Different From Target' check option is missing. Where did it go ? We will see that later.












Dragging and dropping tables is same as older versions.On the 'Logical' Tab canvas I dragged and dropped three tables from Models tab and a 'join' component explicitly from the component tab since we have to join tables DEPT and EMP. Somehow the graphics are not rendered perfectly as you can see the Join component is not visible completely.


To create joins, drag DEPTNO column from DEPT onto the join component and DEPTNO from EMP table onto the component. This exercise will create the needed join. Now, if you see the connector properties, you will see that INPUT1 and INPUT2 are showing DEPT and EMP, now what about OUTPUT1 ?


Well, it does sound weird but all components have this INPUT and OUTPUT 'ports' whether they make sense or not (and Oracle lovingly calls it EAST and WEST)
Now, if you drag source tab column onto the target tab column (EMP.DEPTNO onto EMPDEPT_LO. DEPTNO), this port will be automatically populated and an arrow starting from out port (EAST) of Join component to the target table will be created.
That ODI 12c supporting multiple targets is an old story, but looking at the diagram below will give you a hint of how it will look.  Spare some time to observe how arrows come out from tables.
Logical flow (Mapping in ODI11g) now looks more like its competitors (if you know what I mean) and should silence critics for some time now.


There is a 'check' button to validate the mapping, if everything is alright, you can navigate to the 'Physical' tab
Now, here is the issue which even the older one had, if there is a warning or error the properties tab will show it in a single line.

Even if you reposition the tab to accommodate the issue column, the space is insufficient to view the entire message and it does not open in a separate window so that you could just copy it. There is a ridiculous work-around, hover your mouse pointer on the issue column and read the message before if disappears automatically (or take a snapshot as I did below)

Oracle definitely needs to do something about this.
Coming back to the topic, the warning was about re-considering the Staging location, (staging area different from target option). Where is this option now ?
On the Physical Tab's canvas you will have to click on the whitespace to get the properties of the mapping.


Observe the options 'Is Frozen' and 'Use Unique Temporary Object names'. These are new features and using the 'Help' option redirected me to documentation of ODI 11g. Will have to find the use of these by trial-and-error.

When everything was sorted, I tried executing the interface and it threw an error

ODI-1228: Task LKM Oracle to Oracle Pull (DB Link) (Create database link to source) fails on the target GENERIC_SQL connection ODI_TRN.
Caused By: java.sql.SQLSyntaxErrorException: ORA-01031: insufficient privileges

Please note that the tables used in the mapping are already being used in ODI 11g and it has been working fine. I observed that in ODI12c, ODI tries to create a dblink at the start of the execution and removes the link after use. So there are some extra privileges that your source and target are going to need in order to create these dblinks. To make matters worse, I could not find an option in KMs or anywhere else where I can run a mapping without creating dblinks just like in older versions.

Creating a dblink and giving extra privileges is not working, maybe I need to consult the DBA here to sort it out. But for now, this is how it is.

Next we will see how other components are used.

Cheers !

NJ

Friday, January 10, 2014

ODI 12c Mappings Introduction

I had to create a separate blog post for mappings because when I started creating a mapping (previously interface) I came to know how different it is from the previous versions.

Before we go into details of creating a mapping, lets see what all things are different from the previous versions.

I created a completely nonsensical mapping as you will see below, and trust me, for a person who is accustomed to creating interfaces in ODI for the last four years, it was infuriating
(Note: Creating Models is similar to older versions so that topic will not be elaborated)


Mapping Tab:
Observe the tabs of mapping 'TAB1' , Overview, Logical, Physical .
Now what these tabs mean in previous versions,
Overview in 12c == Overview in 11g (except that now you cant specify Execution Schema in this tab)
Logical in 12c == Mapping tab in 11g (more on the mapping tab later)
Physical in 12c == Flow tab in 11g

Components:
This is something new to 12c, sql functions have been included separately in this tab. You have to drag -n-drop or click on the mapping tab in order to use these functions, I will be covering each of them in the next few blogs (Frankly, I've been struggling to know how to use a few of them)
So far, I feel that these components are a good thing, but even people having a good experience in ODI 11g will find it a bit tedious initially. 
ODI Help (Table of contents) is a good place to search and read a brief description of these components

Properties:
This is similar to older version but with addition of some new properties and a change in the layout, take a few minutes to see what is where for the first time and you will be fine next time. And I've already started detesting this word 'Staging Location Hint' (Hint ?? seriously ??), it is the same execution location of previous version.

Mapping Tab Changes:
The biggest change in this area is the absence of a separate Target area, all datastores (source and target) now fall in the same canvas. The plus point of this is now you can have multiple datastores as target. But this feature radically changes the way associations are done. For example, if you want to create a join between two tables, dragging a column of table1 to the column of table2 will not create a join (in ODI11g), instead it will create a flow meaning table1 is source and table2 is target. To create a join you have to use the component named 'Join'. How this is achieved will be covered in the following posts, but for now, just remember that building a mapping in 12c is completely different from 11g and it is better to keep the concepts of ODI 11g aside and learn ODI12c as a new tool.

Live long and prosper !!



Thursday, January 9, 2014

ODI 12c : Models, Projects and Interfaces ... er sorry.. Mappings

Creating Models is similar to the previous version, so I will not show how it is done here, Topology manager has not changed either.

Where it gets interesting is when you create a project.


The 'Interfaces' node has now been replaced with 'Mappings'.
Importing KMs gives a prompt for entering an Unique ID.
I entered 1, and proceeded, looks like it appended 1 to the original ID

Now lets take a dig at interfaces, er sorry, mappings ... 

Oracle Data Integrator 12c : Installation, Configuration and upgrading from ODI11g

God, its amazing how fast technology evolves, just as we were trying to get a hang of ODI 11g,
ODI 12c is here and the 'blogosphere' is busy writing whats new and 'cool' in this iteration.
Refer this link for a glance:
http://www.rittmanmead.com/2013/10/oracle-data-integrator-12c-release-part-1/

I had a shot at it myself and started installing, I'll be putting down my experience of working with this new version.

The Installation :
The installable can be downloaded from Oracle's website.  Within the zip file is an html page which will tell you how to install. DO READ THE INSTRUCTIONS CAREFULLY !!

THIS BABY RUNS ONLY ON JDK 1.7 !!

To get the new studio, you have to install the ENTERPRISE INSTALLATION, standalone installation will not give you the studio of 12c.
Installation is pretty straightforward, this time it doesn't ask you to 'skip master repository connection' of an existing Repository or prompt for an agent name with port (which I think makes sense).
Thankfully there are no surprises at the time of installation.

Configuration:

The window looks like this, cool blue color is 'khool' \m/ (bad joke)


Configuring repositories is similar to 11g except that I got a warning while creating a new master repository.


I wonder what that is, I had given the necessary privileges (session, connect and resource) to the user, googling the error number wasn't fruitful, I guess I will have to dig deeper for that error, but for now it worked seamlessly. Master Repo creation worked without any error. Only one stupid warning which everyone having an engineering degree should be knowing already.


On pressing the connect button, I got this message, maybe because I already had ODI 11g  on my machine.
I said NO and proceeded, NOTE: It does take the existing version's credentials automatically.

Then, this message, I need to learn about Wallet now, I chose not to store passwords in wallet.

After that, everything was just the same as far as configuring ODI users and repositories is concerned.

Can I connect an ODI11g repository to ODI 12c studio directly ??
NO, the error you will be getting is:
oracle.odi.core.config.MasterRepositoryVersionMismatchException: ODI-10179: Client requires a repository with version 05.01.01.16 but the repository version found is 04.03.04.02.

Fortunately there is an upgrade assistant for this one as well, I did not run that (had to keep older version functional) but found a link showing how it is done

http://docs.oracle.com/middleware/1212/odi/ODIUG/tasklist.htm

Some of them have already done it. Pretty straight forward.

http://dwteam.in/upgrading-odi-11-1-1-7-repository-to-12c/

NOTE : DO TAKE A BACKUP OF YOUR DATABASE SCHEMA BEFORE TRYING IT

Next topic will be covering creating basic interfaces. Will see if its a revolution or evolution ...

Cheers !!