Database Reference
In-Depth Information
Finally, you can pass an alias name from any alias table as the argument to
IEssCube.
getMember
and the method will successfully return the correct member. however, calls
to
IEssMember.getName
on the instance returned will not return the member name, but
rather will return the alias name passed as the argument.
// get the member object using the alias
member = cube.getMember("Cola");
Depending on how you intend to use the information from the object, this behav-
ior could cause you to get incorrect information. here are the results from getting an
IEssMember
using the alias. note how the name property should contain the mem-
ber name, 100-10. Instead, the method call returned the alias used to query for the
member.
=== IEssCube.getMember ===
Name: Cola
Level: 0
Related Members-Parent: Error: Cannot perform operation. The cube
outline is not open. This operation is not allowed on member objects
obtained using IEssCube.getMember and is allowed only on member
objects obtained using open outline or member selection sequence.
8.7.3 Getting IEssMember Objects Using IEssCubeOutline.findMember
Partially described
IEssMember
objects are a problem in the Java API, but there are rea-
sons that they exist. Partially-described
IEssMember
objects were originally designed to
allow access to some member information while maintaining a relatively low amount
of processing overhead. you can get a fully described
IEssMember
from the Java API as
well, but not directly from the
IEssCube
object. Instead, you must get the member from
the Essbase outline, which is represented in the Java API by the
IEssCubeOutline
class.
you can get the
IEssCubeOutline
instance using the
IEssCube.openOutline
method.
// open the outline
IEssCubeOutline outline = cube.openOutline();
have you ever opened a large outline in EAS and then left to get coffee while EAS
spent several minutes completing the process? Essentially, this is the same thing the line
above is doing, which is the cause of the increased overhead level, and perhaps slow per-
formance, that you may see using
IEssCubeOutline.findMember
. The good news is that
once you have opened the outline, you can query as many members as you like and you
will get fully described
IEssMember
objects. here is a simple example.
// get the member object from the outline
member = outline.findMember("100-10");
here is the output. notice that this version of the
IEssMember
object does not throw
an exception when accessing the
getRelatedMembers
method.
=== IEssCubeOutline.findMember ===
Name: 100-10
Level: 0
Related Members-Parent: 100