Loading and Extracting HFM Data with ODI Knowledge Modules (ODTUG Article)

Hi all!

ODTUG just released our article about “Loading and Extracting HFM Data with ODI Knowledge Modules“. This second article shows all the details behind the construction of ODI IKM for data load and also a procedure to extract data from HFM and it also explain all its options and functionalities.

Please feel free to download and use our KMs. They do not have official Oracle Support, but we try our best to answer and fix any issues that you may find (don’t forget to take a look on our “debug” post here).

Thanks everyone!


8 Responses to “Loading and Extracting HFM Data with ODI Knowledge Modules (ODTUG Article)”

  1. Johnson.Tao Says:

    Excuse me,sir. When I use your method to extract data from HFM,i get this error message :
    at bsh.util.BeanShellBSFEngine.eval(Unknown Source)
    at bsh.util.BeanShellBSFEngine.exec(Unknown Source)

    In other words,I’m failed. I need your help,thanks very much!

    Get HFM DB Connection is succeeded.But,Extract data failed.

  2. Johnson Says:

    Hello,sir. It’s very glad to receive your message.

    Now,I get another error was that when I not use agent to extract data from HFM, I could connect it successful,but when I try to extract data from it ,the error raised.

    The error log in odi like above:

    org.apache.bsf.BSFException: The application script threw an exception: java.lang.Exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1 BSF info: Extract Data from HFM at line: 0 column: columnNo
    at bsh.util.BeanShellBSFEngine.eval(Unknown Source)
    at bsh.util.BeanShellBSFEngine.exec(Unknown Source)
    at com.sunopsis.dwg.codeinterpretor.SnpScriptingInterpretor.execInBSFEngine(SnpScriptingInterpretor.java:322)
    at com.sunopsis.dwg.codeinterpretor.SnpScriptingInterpretor.exec(SnpScriptingInterpretor.java:170)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java:2473)
    at oracle.odi.runtime.agent.execution.cmd.ScriptingExecutor.execute(ScriptingExecutor.java:47)
    at oracle.odi.runtime.agent.execution.cmd.ScriptingExecutor.execute(ScriptingExecutor.java:1)
    at oracle.odi.runtime.agent.execution.TaskExecutionHandler.handleTask(TaskExecutionHandler.java:50)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2925)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2637)
    at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:577)
    at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:468)
    at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2123)
    at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:380)
    at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)
    at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:312)
    at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:304)
    at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:875)
    at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:133)
    at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:84)
    at java.lang.Thread.run(Thread.java:662)

    And, in the HFM_Extract.log,I see these message:
    Starting Process
    Getting Token
    Connecting to HFM Application.
    Connected to HFM Application.
    Data extract starting…
    Session ID:1696678157

    I dont’ know what’s the meaning “java.lang.Exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1” in odi error log.

    Would you please tell me,what happen with it.Is this error told me the jar file or other configs were invalide ?

    Thanks for your help.

    • Hi, this error happens when the code was supposed to read from an array, but it returned empty and then fails. I took a look in the KM code and it seems that you were able to connect, you ran the extract (you got a valid session ID), but the result returned empty or it had an error in HFM side (thats why the USERACTIVITYSTATUS_STOPPED status). When the code tried to read the result set from HFM, it failed with String index out of range: -1, since it was empty.
      Please try to run the same extract in HFM or go to HFM logs to see why this particular session failed. I believe once you fix the issue in HFM or in the extract options, it should work fine. Thanks!

  3. Hi,

    We are investigating different ways to get data out of HFM into our DW in an automated way with no user interaction. Would you say this is still is the best way even if the HFM Knowledge Module for ODI is no longer officially supported by Oracle? Or are there better ways to get data from HFM into DW.

    Would really appreciate your feedback.

    Br Andy

  4. I am running into the same issue, I checked the HFM log, it mentioned error create ODBC connection while extract data.
    Is it because of no data extracted, or any other issues?

    thanks for the help.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: