Planning Data Loads: com.hyperion.planning.InvalidMemberException vs. java.lang.RuntimeException
I had a very interesting thing happen today that tripped me up. When loading data to a PBCS database through Planning (not as an Essbase file), I had two types of errors. I have never seen this before and this could cause some serious heartburn for administrators and possibly waste a ton of time trying to resolve. So, I am sharing for the sake of saving somebody some effort.
One Error, Two Messages
The error first is the typical error due to a member not being in the application. com.hyperion.planning.InvalidMemberException: The member CTR_123 does not exist for the specified cube or you do not have access to it. We have all seen this. CTR_123 was not in the hierarchy. Once it was added and the data was reloaded the issue was resolved.
The second issue was another error I have seen before, but I haven’t seen this in PBCS. java.lang.RuntimeException: Not all dimensions were specified. Normally, this is related to having a file correctly formatted in but having a member from one dimension in the wrong column, or having a column that is null.
As I often do, I created a Smart View retrieve and added the members in the load file one at a time. When I found the member that caused a retrieve error, I went into the dimension editor to search for it. To my surprise, it was there! What? But, when I looked at the properties, it was not valid for the application I was trying to load the data to. This might have been overlooked by mere mortal (wink), but once enabled for the application in question, the load error was resolved.
Conclusion
So, why the two error types? Why do we get two error types for the same error (the member doesn’t exist in the database)? I can only assume since I loaded this through Planning, it tripped up on the fact that the member was in Planning, but not in the specific database I was trying to load. If I loaded this as an Essbase file, as expected, I got the same error for both lines, member not found.
Hopefully this saves you some time. If you have ever come across something similar, please share with the community. These things are normally the things you find after a 12 hour day and you spend another 4 trying to figure it out.
Lastly, please enjoy a safe holiday and remind yourself how lucky you are and try to be thankful for the things you have and not be frustrated about the things you don’t. Gobble Gobble!