Essbase Member Operation Utility – Change Data Storage


You can now use this utility to convert BSO application to Hybrid. (as long as you know what Hybrid is :))

If you don’t then read my older brother’s blog posts on the same 🙂

How it works

Create a file which is similar to the one below.

Run the utility with following options

Utility will update the storage properties of all parents in your hierarchy to the one that you specified.

In the example I changed all the parents under Market to a Dynamic Calc and all parents under Product to Store.

This can help you convert an existing BSO cube to Hybrid. Look at ASODYNAMICAGGINBSO

I’m planning to add another option to this which will let you know the members which should be tagged as “Never Share”.

Happy Hybridising 🙂

You can download the file from here.

Download Now

Update 07/29/2015

I tested this on 19K higher level (44K members) hierarchy and it was done in less than 3 minutes!!!
Turns out this is the fastest way to prepare Essbase cubes for Hybrid 🙂

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 “Essbase Member Operation Utility – Change Data Storage

  • Celvin Kattookaran

    Tim it is jar file, so you'll be able to execute it on *nix

    I did it as a batch based for just the execution purpose, however you can easily convert that to a shell.

    JAVA_HOME=/oracle/Oracle/Middleware/jdk160_35
    export JAVA_HOME

    BASE_DIR=/oracle/Oracle/Utils/Essbase_Mbr_Operations_Util
    export BASE_DIR

    EPM_ORACLE_HOME=/oracle/Oracle/Middleware/EPMSystem11R1
    export EPM_ORACLE_HOME

    # ———————————————————————————————————————-
    # — SET parameters —
    # ———————————————————————————————————————-

    ESBMBROPTS=-u=admin -p=p@ssword -S=localhost -App=Sample -Db=Basic -file=C:PropMbrList.txt -changeproperty
    export ESBMBROPTS

    EsbMbrOperation_MAIN=com.cera.hyputils.EsbMbrOperation.EsbMbrOperation
    export EsbMbrOperation_MAIN

    EsbMbrOperation_CP=%BASE_DIR%libEsbMbrOperation.jar;%BASE_DIR%libcommons-cli-1.2.jar;%EPM_ORACLE_HOME%commonEssbaseJavaAPI11.1.2.0libess_es_server.jar;%EPM_ORACLE_HOME%commonEssbaseJavaAPI11.1.2.0libess_japi.jar;%EPM_ORACLE_HOME%commonEssbaseJavaAPI11.1.2.0libess_maxl.jar;%EPM_ORACLE_HOME%commonloggersLog4j1.2.14liblog4j-1.2.14.jar;%EPM_ORACLE_HOME%commonloggersODL1.0.0libojdl.jar
    export EsbMbrOperation

    JAVAOPTS=-cp %EsbMbrOperation_CP% %EsbMbrOperation_MAIN%
    export JAVAOPTS

    ${JAVA_HOME}/bin/java ${JAVAOPTS} {ESBMBROPTS}

  • TimF

    I updated a few issues and came up with this:
    JAVA_HOME=/Oracle/Middleware/jdk160_35
    export JAVA_HOME

    BASE_DIR=/home/appsuper/Downloads/Essbase_Mbr_Operations_Util_1.3
    export BASE_DIR

    EPM_ORACLE_HOME=/Oracle/Middleware/EPMSystem11R1
    export EPM_ORACLE_HOME

    ESBMBROPTS='-u=admin -p=p@ssword -S=localhost -App=Sample -Db=Basic -file=${BASE_DIR}/PropMbrList.txt -changeproperty'
    export ESBMBROPTS

    EsbMbrOperation_MAIN='com.cera.hyputils.EsbMbrOperation.EsbMbrOperation'
    export EsbMbrOperation_MAIN

    EsbMbrOperation_CP=$BASE_DIR/lib/EsbMbrOperation.jar:$BASE_DIR/lib/commons-cli-1.2.jar:$EPM_ORACLE_HOME/common/EssbaseJavaAPI/11.1.2.0/lib/ess_es_server.jar:$EPM_ORACLE_HOME/common/EssbaseJavaAPI/11.1.2.0/lib/ess_japi.jar:$EPM_ORACLE_HOME/common/EssbaseJavaAPI/11.1.2.0/lib/ess_maxl.jar:$EPM_ORACLE_HOME/common/loggers/Log4j/1.2.14/lib/log4j-1.2.14.jar:$EPM_ORACLE_HOME/common/loggers/ODL/1.0.0/lib/ojdl.jar

    export EsbMbrOperation

    JAVAOPTS="-cp ${EsbMbrOperation_CP} ${EsbMbrOperation_MAIN}"
    export JAVAOPTS

    ${JAVA_HOME}/bin/java ${JAVAOPTS} ${ESBMBROPTS}


    But I'm still getting an error. Do I need to add the port name for APS or is it something else?
    com.essbase.api.base.EssException: Cannot sign on to domain. Error initializing the ORB. oracle/core/ojdl/logging/ODLLogger
    at com.essbase.api.session.Essbase.signOn(Unknown Source)
    at com.essbase.api.session.Essbase.signOn_internal(Unknown Source)
    at com.essbase.api.session.Essbase.signOn(Unknown Source)
    at com.cera.hyputils.EsbMbrOperation.EsbMbrOperation.main(EsbMbrOperation.java:155)

  • Celvin Kattookaran

    Tim, do you have all the required jar files in that location? common/EssbaseJavaAPI/11.1.2.0/lib
    common/loggers/Log4j/1.2.14/lib
    common/loggers/ODL/1.0.0/lib

    It does say that it cannot intialize ODLLogger.

    I don't have a *nix machine to test this, I can do that over weekend. However I feel that it is something related to the path. I beleive you updated the server name and credentials

  • TimF

    Success! You were right. I had the wrong path — should have been $EPM_ORACLE_HOME/common/SharedServices/11.1.2.0/lib/ojdl.jar.

    I did get a bunch of warnings — would be glad to share in case you're interested. I did it on a dimension with 3k and one with 17k members. I did a quick check and it looks good so far. Now, if Oracle would drop the 100 dynamic children on a sparse member warning, that'd be great…

    Thanks for creating this, will be helpful in converting outlines to hybrid.

  • Celvin Kattookaran

    I'm assuming those the annoying ODL warnings
    WARNING: java System properties, java.vm.vendor: Sun Microsystems Inc.
    Jul 28, 2015 9:52:07 AM com.hyperion.dsf.server.framework.BaseLogger logWarning
    WARNING: java System properties, java.runtime.name: Java(TM) SE Runtime Environment
    Jul 28, 2015 9:52:07 AM com.hyperion.dsf.server.framework.BaseLogger logWarning
    WARNING: java System properties, java.runtime.version: 1.6.0_35-b52
    Jul 28, 2015 9:52:07 AM com.hyperion.dsf.server.framework.BaseLogger logWarning

    100 dynamic children warning was making the API report that as an exception, so I had to remove the verify just for changeproperty flag

    Glad that it worked for you