@SHARE – Surprises in Essbase Part II and Part III


I was planning to write about this first. (I wanted to beat Cameron, but he beat me ;)).
You can read about the surprises with @SHARE here. (I think Cameron has done a marvelous job of defining what works and what doesn’t work).
I was working on something (which I’ll publish later) and forgot about spreading the word. (better late that never I guess).
 I’m getting older, I think I’m getting smarter too (maybe my wife has a different opinion :)), so I combined Surprises Part II and Part III together.
Surprises in Essbase Part II – is about @SHARE not working as documented. You can read about it from Cameron’s blog.
Suprises in Essbase Part III

This was an accidental discovery while I was working on the @SHARE issue. When I realized that @SHARE is not working, I thought of going back to old tech ref and figure out whether I’m not getting it. (maybe because I’m getting older)
So the example given in Tech Ref says

@REMOVE(@DESCENDANT(Product),@SHARE(@DESCENDENT((Product)))

The example has multiple errors (misspellings, parenthesis issue) and I was thinking “Why can’t they give a correct working example!!!!”

But then I was so lazy in correcting those and I tried (I thought I could raise a documentation bug) the same command and to my surprise it validated.

Then I thought if this one works, why not this @IDESCENDNATS. To my surprise (that was a big one) that worked too.

This was also a part of the above (@share) discussion and John Booth pointed out that Essbase only matches the first four characters of a function.

I experimented more on it and then figured out that what John said is partially true!!!!!

Essbase recognizes all functions with first 4 letters if the argument is a mbrname

So @CHILDNER works. Try it if you don’t believe me.

I don’t know how many of you got a hoax mail which claims that “Brain can read jumbled words if the first and last letters are not jumbled.”

Now I can spread one which says “Essbase can read functions if first 4 letters are correct”

Advertisements

About Celvin Kattookaran

I’m an EPM Consultant, my primary focus is on Hyperion Planning and Essbase.

Some of you from Hyperion Support team might recognize me or have seen my support articles, I was with the WebAnalysis Support Team. I’m an Independent Consultant with “Intekgrate Corporation” based out of Aurora office.

I’m from God’s Own Country (Kerala, India), lived in all southern states of India, Istanbul and Johannesburg (and of course United States). I’m core gamer :) and an avid reader.

I was awarded Oracle ACE Director for my contributions towards EPM community.


Leave a Reply

0 thoughts on “@SHARE – Surprises in Essbase Part II and Part III

  • Cameron Lackpour

    Celvin,

    Thank you for your kind words.

    Did you catch this Essbase Surprise?
    EXCLUDE(@SHARE(@RELATIVE("Product", 0)))
    "Connecticut" = "Connecticut" + 100 ;
    ENDFIX

    I just validated it and ran it in 11.1.2.1. I haven't tried it in 11.1.2.2 but I'll bet it works.

    Re only the first three characters are valid (ENDFIX vs ENDEXCLUDE)?

    But that rule about the first four characters also isn't always true as this does NOT validate or run:
    EXCL(@SHARE(@RELATIVE("Product", 0)))
    "Connecticut" = "Connecticut" + 100 ;
    ENDFIX

    So some functions (maybe only functions instead of commands?) Nope, because this fails:
    EXCLUDE(@SHARE(@RELA("Product", 0)))
    "Connecticut" = "Connecticut" + 100 ;
    ENDFIX

    Bizarre. I'm not giving up on writing the whole function or command out completely.

    Regards,

    Cameron Lackpour

  • Celvin Kattookaran

    @Cameron
    with EXCLUDE @SHARE works!!!

    the rule of first four character works for functions which accepts just mbrname as argument works. @RELATIVE has more than one argument(mbrname, genLevNum | genLevName).

    After writing this I tried @ALLANCESTORS however it doesn't follow the four character rule. It becomes first five character rule @ALLANC works!!

    I've seen people using @IDESC for @IDESCENDANTS, but I always write the whole command/function