Loading and Extracting HFM 11.1.2.4 Data with ODI Knowledge Modules (ODTUG Article)
Hi all!
ODTUG just released our article about “Loading and Extracting HFM 11.1.2.4 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 11.1.2.4 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!
July 3, 2019 at 11:35 am
Excuse me,sir. When I use your method to extract data from HFM 11.1.2.4,i get this error message :
EPMHFM-65536.
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.
July 3, 2019 at 1:32 pm
Hi Johnson. This is the most common and generic error that we face when trying to do this kind of implementation. Please check this page here. It has some steps to make it work: https://devepm.com/2017/04/13/troubleshooting-connectivity-issues-between-odi-and-hfm-11-1-2-4/
November 16, 2022 at 10:39 am
Excuse me,sir,i want to learn how to extract hfm data by odi ,could you teach me ,please contract me ,1228663999@qq.com
November 16, 2022 at 10:40 am
sorry ,the correct email is 1228663977@qq.com
July 22, 2019 at 3:37 am
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 11.1.2.4.205.5274, 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
USERACTIVITYSTATUS_STOPPED
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.
July 25, 2019 at 12:34 pm
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!
February 18, 2020 at 6:33 am
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
December 2, 2021 at 7:02 am
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.