Forum Stats

  • 3,854,217 Users
  • 2,264,340 Discussions
  • 7,905,611 Comments

Discussions

Hyperion Essbase Integration with ODI 12c

978166
978166 Member Posts: 40

Hello

I'm trying to do an integration in ODI 12c to load data from an Oracle database to HyperionEssbase. I am having problems with the RKM when performing the Reverse Engineering.

My KM is composed of steps 1.Reset MetaData 2.Start the Reverse and 3.Set MetaData.

The error occurs in step 2.Start the Reverse.

The code of this task is in Jython, an its the following:

from java.util import HashMap

from java.lang import Boolean

from com.hyperion.odi.common import ODIConstants

from com.hyperion.odi.common import ODIModelImporter

from com.hyperion.odi.connection import HypAppConnectionFactory

#

# source planning connection properties

#

serverName = "<%=snpRef.getInfo("SRC_DSERV_NAME")%>"

userName    = "<%=snpRef.getInfo("SRC_USER_NAME")%>"

password   =  "password.1"

application   = "<%=snpRef.getInfo("SRC_CATALOG")%>"

database   = "<%=snpRef.getInfo("SRC_SCHEMA")%>"

portStr = "1423"

srvportParts = serverName.split(':',2)

srvStr =  srvportParts[0]

if(len(srvportParts) > 1):

    portStr = srvportParts[1]

#

# Put the connection properites and initialize the planning loader

#

srcProps = HashMap()

srcProps.put(ODIConstants.SERVER,srvStr)

srcProps.put(ODIConstants.PORT,portStr)

srcProps.put(ODIConstants.USER,userName)

srcProps.put(ODIConstants.PASSWORD,password)

srcProps.put(ODIConstants.APPLICATION_NAME,application)

srcProps.put(ODIConstants.DATABASE_NAME,database)

imod =  <%=snpRef.getModel("GLOBAL_ID")%> 

multipleDataCols = <%=snpRef.getOption("MULTIPLE_DATA_COLUMNS")%>

dataColDimension = r"<%=snpRef.getOption("DATA_COLUMN_DIMENSION")%>"

dataColMembers = r"<%=snpRef.getOption("DATA_COLUMN_MEMBERS")%>"

extractAttrMembers = <%=snpRef.getOption("EXTRACT_ATTRIBUTE_MEMBERS")%>

rkmOptions = HashMap()

rkmOptions.put(ODIConstants.MULTIPLE_DATA_COLUMNS, Boolean(multipleDataCols))

rkmOptions.put(ODIConstants.DATA_COLUMN_DIMENSION, dataColDimension)

rkmOptions.put(ODIConstants.DATA_COLUMN_MEMBERS, dataColMembers)

rkmOptions.put(ODIConstants.EXTRACT_ATTRIBUTE_MEMBERS, Boolean(extractAttrMembers))

#get planning connection

hApp = HypAppConnectionFactory.getAppConnection(HypAppConnectionFactory.APP_ESSBASE, srcProps)

#get connection to repository

repCon = odiRef.getJDBCConnection("DEST")

#

# START THE REVERSE

#

odiModelImporter = ODIModelImporter(imod, hApp, repCon, rkmOptions)

odiModelImporter.importModels()

When executing the Reverse Engineering, the following error occurs:

ODI-1590: The execution of the script failed.

Caused By: org.apache.bsf.BSFException: exception from Jython:

SyntaxError: ("mismatched input 'b8' expecting NEWLINE", ('<string>', 35, 24, 'imod =  d31bffaa-a39b-40b8-a758-254092d2e12f  \n'))

at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:146)

at com.sunopsis.dwg.codeinterpretor.SnpScriptingInterpretor.execInBSFEngine(SnpScriptingInterpretor.java:396)

at com.sunopsis.dwg.codeinterpretor.SnpScriptingInterpretor.exec(SnpScriptingInterpretor.java:247)

at oracle.odi.runtime.agent.execution.interpreter.SessionTaskScriptingInterpretor.scripting(SessionTaskScriptingInterpretor.java:190)

at oracle.odi.runtime.agent.execution.SessionTask.scripting(SessionTask.java:105)

at oracle.odi.runtime.agent.execution.cmd.ScriptingExecutor.execute(ScriptingExecutor.java:49)

at oracle.odi.runtime.agent.execution.cmd.ScriptingExecutor.execute(ScriptingExecutor.java:21)

at oracle.odi.runtime.agent.execution.TaskExecutionHandler.handleTask(TaskExecutionHandler.java:52)

at oracle.odi.runtime.agent.execution.SessionTask.processTask(SessionTask.java:206)

at oracle.odi.runtime.agent.execution.SessionTask.doExecuteTask(SessionTask.java:117)

at oracle.odi.runtime.agent.execution.AbstractSessionTask.execute(AbstractSessionTask.java:886)

at oracle.odi.runtime.agent.execution.SessionExecutor$SerialTrain.runTasks(SessionExecutor.java:2225)

at oracle.odi.runtime.agent.execution.SessionExecutor.executeSession(SessionExecutor.java:610)

at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor$1.doAction(TaskExecutorAgentRequestProcessor.java:718)

at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor$1.doAction(TaskExecutorAgentRequestProcessor.java:611)

at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:203)

at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor.doProcessStartAgentTask(TaskExecutorAgentRequestProcessor.java:800)

at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$1400(StartSessRequestProcessor.java:74)

at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:702)

at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:180)

at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:108)

at java.lang.Thread.run(Thread.java:748)

Caused by: SyntaxError: ("mismatched input 'b8' expecting NEWLINE", ('<string>', 35, 24, 'imod =  d31bffaa-a39b-40b8-a758-254092d2e12f  \n'))

at org.python.core.ParserFacade.fixParseError(ParserFacade.java:96)

at org.python.core.ParserFacade.parse(ParserFacade.java:203)

at org.python.core.Py.compile_flags(Py.java:1685)

at org.python.util.PythonInterpreter.exec(PythonInterpreter.java:172)

at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:144)

... 21 more

Thanks for your help!

Tagged:

Answers

This discussion has been closed.