Reverse-engineering excel files in ODI
Hi,
I am currently creating an ODBC Data Source to connect to MS Excel and then reverse-engineering the excel file.Do I need to create separate ODBC Data Source for each excel file or is there any other way to achieve this?
Please suggest.
Thanks in advance.
hi Dev
1. Have you defined the correct link between DSN and your Excel File the answer is yes
2. Have you test the Connection in Topology ?yes and it's OK
3. Also is your Excel file has an Extension of XLS ? yes
4. When reversing have you check the required Technology - Microsoft Excel with required Logical Schema and context Yes i have Microsoft Excel with required Logical Schema and context
and also try checking the Tables and System Tables for reversing .I' can't
Similar Messages
-
Reverse engineering a synonym in ODI 11G .
i reverse engineered a synonym in oDI 11g using the RKM oracle but i 'm unable to get the column structure. So how to reverse enginer a synonym in ODI 11g ??
Go to Data server properties tab. Then give
key= includeSynonyms and value= true -
Urgent Reverse Engineering Hyperion-Planning in ODI fails**
All,
using the provided ODI RKM for Hyperion Planning and the step by step document, we have built the HYPN-Planning datastore and tried to reverse eng.
on application ( called 'month'). it failed with msg:
IndexError: index out of range: 1 at org.apache.bsf.engines.jython.JythonEngine.exec
please see the error. not sure what that means.
any pointer is appreciated.
thanks
ali
=========================
org.apache.bsf.BSFException: exception from Jython:
Traceback (innermost last): File "<string>", line 17, in ?IndexError: index out of range: 1 at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:146) at com.sunopsis.dwg.codeinterpretor.k.a(k.java) at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java) at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java) at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java) at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java) at com.sunopsis.dwg.dbobj.SnpSessTaskSqlC.treatTaskTrt(SnpSessTaskSqlC.java) at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java) at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java) at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java) at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java) at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java) at com.sunopsis.dwg.cmd.e.i(e.java) at com.sunopsis.dwg.cmd.g.y(g.java) at com.sunopsis.dwg.cmd.e.run(e.java) at java.lang.Thread.run(Unknown Source)I have similar problem. I just copy the code of step "Begin Essbase Data Extract" from "LKM Hyperion Essbase DATA To SQL" to the ODI procedure created by myself. After the execution, ODI Operator shows me the following error message:
java.lang.StringIndexOutOfBoundsException: String index out of range: 3629
at java.lang.String.charAt(Unknown Source)
at com.sunopsis.sql.SnpsQuery.scanHostVariable(SnpsQuery.java)
at com.sunopsis.sql.SnpsQuery.setSqlTxt(SnpsQuery.java)
Thanks -
Selective Reverse Engineering not working in ODI
Hi odi gurus,
ODi installed in Sql server , created one database called ODI_Source , contains 10 tables .
i want to reverse those of two tables in sql server using odi ?
In Topology manager , all the connections to database are connected successfully,
When i reverse on model , it's not getting the tables in ODI.
What's Problem behind that...
thanks in adavnceHi,
I Just faced the same issue and I cracked it.
Solution:
go to reverse engineer tab:
delete anything in Mask option other than %
delete characters to remove from Table Alias:
And you are done !!
hope it works for you too..
Regards,
Raghu! -
Creating Target excel files dynamically in ODI
Hi,
I've a urgent requirement in ODI as below.
I've a query regarding of creation target excel files dynamically as I need to load more than 1 excel file through ODI with source system as Oracle DB.
Elaborating my query:
Target excel file say X.xls is not placed in a particular directory neither driver is created. I want to X.xls file to be created through ODI and data to be loaded into the excel file.
Help would be really appreciated.There is no standard code for the same.
The following thread has the code which will put data into multiple sheets
Download to multiple sheets in Excel
Regards,
Ravi
Note : Please mark all the helpful answers -
Dear Gurus and Experts.
I'm trying to reverse engineer had made a model of the Hyperion Planning.
After configuring the topology.
Steps:
A)
Physical Architecture:
machine.mycompany.com: 11333, user / pdw (here's Hyperion Planning)
Physical Layout:
Catalog Application - I wrote: myapphp
Implementation and Application of Work - I wrote: myapphp
1_doubt: I expected to be able to select the physical layout, the field catalog application, an application name that is in Hyperion Planning.
But I saw that does not work well. I had to enter.
is this right? or just this wrong in my settings?
B)
Logical Architecture:
Context: Global
Associated with LS_HP_myapp
C)
In Contexts:
Global, contains the association.
logical scheme: LS_HP_myapp for Physical Schema: myapphp
D)
In Designer.
I want to reverse engineer;
Criated a folder, added a model;
name: mymodelhp, selected technology: hyperion planning
logical schema: LS_HP_myapp
em group of generic actions.
Saved.
E)
And clicked on Reverse Engineering
Then the error ODI: 20616 Failed Reverse Engineering Standard.
details:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Driver name cannot be empty
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
at java.util.concurrent.FutureTask.get(FutureTask.java:83)
at com.sunopsis.graphical.tools.utils.swingworker.SwingWorker.get(SwingWorker.java:476)
at com.sunopsis.graphical.frame.edit.EditFrameSnpModel$8.done(EditFrameSnpModel.java:2622)
at com.sunopsis.graphical.tools.utils.swingworker.SwingWorker$4.run(SwingWorker.java:615)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:646)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:607)
at java.awt.EventQueue$1.run(EventQueue.java:605)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:616)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
at java.awt.Dialog$1.run(Dialog.java:1044)
at java.awt.Dialog$3.run(Dialog.java:1096)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1094)
at java.awt.Component.show(Component.java:1584)
at java.awt.Component.setVisible(Component.java:1536)
at java.awt.Window.setVisible(Window.java:841)
at java.awt.Dialog.setVisible(Dialog.java:984)
at oracle.bali.ewt.dialog.JEWTDialog.runDialog(JEWTDialog.java:395)
at oracle.bali.ewt.dialog.JEWTDialog.runDialog(JEWTDialog.java:356)
at oracle.ide.dialogs.ProgressBar.start(ProgressBar.java:352)
at oracle.ide.dialogs.ProgressBar.start(ProgressBar.java:243)
at oracle.ide.dialogs.ProgressBar.start(ProgressBar.java:215)
at com.sunopsis.graphical.tools.utils.SnpsSwingUtilities.executeAndBlockGUI(SnpsSwingUtilities.java:181)
at com.sunopsis.graphical.frame.edit.EditFrameSnpModel.jButtonReverse_ActionEvents(EditFrameSnpModel.java:2650)
at com.sunopsis.graphical.frame.SnpsEditFrame$IvjEventHandler.actionPerformed(SnpsEditFrame.java:206)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:273)
at java.awt.Component.processMouseEvent(Component.java:6290)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6055)
at java.awt.Container.processEvent(Container.java:2039)
at java.awt.Component.dispatchEventImpl(Component.java:4653)
at java.awt.Container.dispatchEventImpl(Container.java:2097)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4236)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166)
at java.awt.Container.dispatchEventImpl(Container.java:2083)
at java.awt.Window.dispatchEventImpl(Window.java:2482)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:648)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:607)
at java.awt.EventQueue$1.run(EventQueue.java:605)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:621)
at java.awt.EventQueue$2.run(EventQueue.java:619)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:618)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.IllegalArgumentException: Driver name cannot be empty
at org.springframework.util.Assert.hasText(Assert.java:161)
at com.sunopsis.sql.SnpsConnection.setDriverName(SnpsConnection.java:302)
at com.sunopsis.dwg.dbobj.DwgConnectConnection.setDefaultConnectDefinition(DwgConnectConnection.java:380)
at com.sunopsis.dwg.dbobj.DwgConnectConnection.<init>(DwgConnectConnection.java:274)
at com.sunopsis.dwg.dbobj.DwgConnectConnection.<init>(DwgConnectConnection.java:288)
at oracle.odi.core.datasource.dwgobject.support.DwgConnectConnectionCreatorImpl.createDwgConnectConnection(DwgConnectConnectionCreatorImpl.java:53)
at com.sunopsis.dwg.reverse.Reverse.getLocalConnection(Reverse.java:1286)
at com.sunopsis.dwg.reverse.Reverse.getLocalConnection(Reverse.java:1336)
at com.sunopsis.dwg.reverse.Reverse.getLocalConnection(Reverse.java:1301)
at com.sunopsis.dwg.reverse.Reverse.getMetaData(Reverse.java:1357)
at com.sunopsis.graphical.frame.edit.EditFrameSnpModel$8.doInBackground(EditFrameSnpModel.java:2587)
at com.sunopsis.graphical.tools.utils.swingworker.SwingWorker$1.call(SwingWorker.java:240)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at com.sunopsis.graphical.tools.utils.swingworker.SwingWorker.run(SwingWorker.java:278)
at oracle.ide.dialogs.ProgressBar.run(ProgressBar.java:655)
at java.lang.Thread.run(Thread.java:662)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Any light please.
thank youIn the reverse engineer tab of the model you will need to select customized and select the knowledge module "RKM Hyperion Planning"
Cheers
John
http://john-goodwin.blogspot.com/ -
Picking up Random files with ODI
I have a directory into which an application dumps random files, The file might be randomly named but they have the same format. I need to be able to read the file and check if its the same schema, if so then load it into a common table...
How do i go about doing this?
I have created a file schema and manually reverse engineered one file in teh directory and had it as a part fo the interface to load it into my target
My problem is however when we have might have different file names for the same file, eg:
FlatFile.dat
FlatFile 10-12-08.dat
FlatFile 11-12-08.dat
How do i pick up all the newly generated files automatically as a part of the ETL process and load?That is not a problem too... hehheehhe
Put a ODI variable at your resource name BUT, in this case you will need to "know" the name to set the variable.
I usually do that like:
1) Create a procedure
2) at first step buid an OS command that generate a file with the name of all files that you need, at windows will be something like:
cmd.exe /c dir c:/temp/sample_dir /b /a:-d > c:/temp/sample_dir/file_list.txt
Now you have a fixed named file that contains all file name
4) Using the Logical Schema to this directory, create a datastore (model table, I will call it, file_of_files! hehehe) what points to the "file of files" with just one column (col_file_name as example)
5) create a new step at the procedure where, at source tab, File Technology and the correct Logical Schema write:
select col_file_name from file_of_file
6) At target tab, using Sunopsis API technology call a package scenario.
To create this package do:
6.a) Drag and drop the variable you're using at resource name and set it as "Declare"
6.b) Drag and drop the interface that use the dynamic file as source.
6.c) generate the scenario
the command at target will be something like:
OdiStartScen "-SCEN_NAME=abc" "-SCEN_VERSION=001" "-LOG_LEVEL=5" "-ODI_VARIABLE_NAME=#col_file_name"
In this way you can have your source dynamically!!!
Does it make sense to you? (and help??) -
How to automate the loading of excel file
Hi Guru,
As we know we can load excel file through ODI but their is some manual work we have to do each time and it will only support in Windows platform
How we can load excel file through ODI in Unix system and it should be automate so in one directory i got this file it should able to load the data automatically no manual intervention required.On windows jdbc-odbc bridge is used to read from excel file. Since such odbc setup is available only on windows hence the restriction. If there is any type 4 jdbc driver available for excel that it would works on unix too.
-
Can you please let me know the open source driver for reading excel files in ODI other than ODI_JDBC_EXCEL . I also don't want to use Microsoft Excel technology because of some environment limitations.
Regards,
Samresh KumarI am talking about addition in technology in ODI like there is one available with name ODI_JDBC_EXCEL
-
Error in Reverse Engineering an XML file
I am tring to set up ODI to read and XML file and post it to a DB.
I am using Oracle Data Integrator 10.1.3.5
I have set up the Connection in the Topology Manager and when I ran the Test it returned OK.
I went to the Model tab in the Designer and tried to Reverse engineer the file. I followed the instruction int he User's Guide but I get an error:
The Technology or the Driver used doesn not support Reverse Engineering. The User's guide says you can do it, but Designer tells me I can't.
Has anyone received this error before and how can i get around it.
I am using:
com.sunopsis.jdbc.driver.xml.SnpsXmlDriver
as the JDBC Driver. THat is the one used in the guide and example.
JDBC URL:
jdbc:snps:xml?f=c:\OraHome_1\Oracledi\MercuryGate\MGTransImpTemplatev1.0.1.xml&re=MercuryGate&ro=true&case_sens=true&s=MercGate
Any help will be appreciated.Try the Oracle Data Integrator Forum
Data Integrator
Edited by: Johnreardon on 13-Jan-2011 05:34 -
ODI error in reverse engineering planning app
I am getting this error while Reversing the plannign app in ODI. can anybody tell what might have happene and where to look upon. In Topology mgr and Designer all connectins working fine. This log is from Operator. I ma new to ODI btw.
org.apache.bsf.BSFException: exception from Jython:
Traceback (innermost last):
File "<string>", line 17, in ?
IndexError: index out of range: 1
at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:146)
at com.sunopsis.dwg.codeinterpretor.k.a(k.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlC.treatTaskTrt(SnpSessTaskSqlC.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
at com.sunopsis.dwg.cmd.e.i(e.java)
at com.sunopsis.dwg.cmd.h.y(h.java)
at com.sunopsis.dwg.cmd.e.run(e.java)
at java.lang.Thread.run(Unknown Source)I'm still having this issue. I have the port in the server name but it still gives me the same error. Any other suggestions?
org.apache.bsf.BSFException: exception from Jython:
Traceback (innermost last):
File "<string>", line 41, in ?
java.lang.NullPointerException
at com.hyperion.odi.common.ODIModelImporter.importModels(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java)
at org.python.core.PyMethod.__call__(PyMethod.java)
at org.python.core.PyObject.__call__(PyObject.java)
at org.python.core.PyInstance.invoke(PyInstance.java)
at org.python.pycode._pyx15.f$0(<string>:41)
at org.python.pycode._pyx15.call_function(<string>)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyCode.call(PyCode.java)
at org.python.core.Py.runCode(Py.java)
at org.python.core.Py.exec(Py.java)
at org.python.util.PythonInterpreter.exec(PythonInterpreter.java)
at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:144)
at com.sunopsis.dwg.codeinterpretor.j.a(Unknown Source)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(Unknown Source)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(Unknown Source)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(Unknown Source)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(Unknown Source)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlC.treatTaskTrt(Unknown Source)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(Unknown Source)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(Unknown Source)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(Unknown Source)
at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(Unknown Source)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(Unknown Source)
at com.sunopsis.dwg.cmd.DwgCmd.k(Unknown Source)
at com.sunopsis.dwg.cmd.g.z(Unknown Source)
at com.sunopsis.dwg.cmd.DwgCmd.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException: java.lang.NullPointerException
at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:146)
at com.sunopsis.dwg.codeinterpretor.j.a(Unknown Source)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(Unknown Source)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(Unknown Source)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(Unknown Source)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(Unknown Source)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlC.treatTaskTrt(Unknown Source)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(Unknown Source)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(Unknown Source)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(Unknown Source)
at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(Unknown Source)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(Unknown Source)
at com.sunopsis.dwg.cmd.DwgCmd.k(Unknown Source)
at com.sunopsis.dwg.cmd.g.z(Unknown Source)
at com.sunopsis.dwg.cmd.DwgCmd.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Thank you
Jerri
Edited by: 939019 on Sep 18, 2012 9:22 AM -
Issue in reverse engineering the model source is excel
Hi Everyone,
I am new to ODI, i am trying to export the excel file data into oracle table. For doing this created physical and logical schema for Excel file and Oracle database.
Tried to created a Model and reverse engineer the excel file to get the fields in it. But when i do them it says its done, but does not show the excel datastore in it.
Please help me to rectify it. Excel file is .xls format and ODI is standalore 11.1.1.
If you thing i have any thing please let me know the step by step procedure to export excel file to oracel table in ODI 11.1.1 version
Thanks in advance.
Regards
SandeepHi Sandeep,
have you created a name for the range of data cells ?
Follow the steps given in this websource:
http://john-goodwin.blogspot.com/2009/03/odi-series-excel-functionality.html
"So the object of this exercise is to get the information from the excel file into the above database table. To achieve this the structure of the excel file has to be reversed in the ODI datastore format but before this is done named ranges have to be created in the file, this is because the ODI excel technology works on the basis of turning named ranges into datastores."
Naming a Cell or Range in Excel 2007:
Read more: http://www.dummies.com/how-to/content/naming-a-cell-or-range-in-excel-2007.html#ixzz1RXrOBXkv
http://www.dummies.com/how-to/content/naming-a-cell-or-range-in-excel-2007.html
If you have already done this please disregard my reply.
Regards,
kk -
Unable to apply reverse engineering to dbf file
Hello everyone,
We are new to ODI and struggling to understand whether we are making an error or we are actually facing an issue with a .dbf file.
Some details for everyone:
- ODI version: 10.1.3.4.0
- Platform: Win Server 2003 sp2
- File we wish to load: xyz.dbf, where xyz.dbf is one of the 3 output files (xyz.shp, xyz.shx, xyz.dbf) of an ESRI geographic information systems software
- We are not interested in the other .shp and .shx files but just in the .dbf one: hence we are treating this one as a stand-alone .dbf file.
Given the above elements, we have executed the following:
a. Created an ODBC entry using the "Microsoft dbase Driver for dbf files" vs. the relevant directory storing the .dbf file (as well as the .shp, .shx);
b. Used Topology Manager --> "Dbase" technology to build the relevant Data Server, Physical Schema and Logical Schema.
--- Up to this point when we test the connectivity to the .dbf file we have absolutely NO problems. ---
We have then proceeded in Designer:
c. Creating an appropriate Model vs. the Logical Schema introduced at point b.
d. Attempting the reverse-engineering process.
At this point however the "reverse engineering" has not performed what expected, as
1. it has correctly introduced in Designer a datastore corresponding to the desired .dbf file, but
2. it has not created any columns at all for the datastore, without producing any error message.
Additionally, clicking on the datastore just created and selecting from it the "reverse" option in the "columns" tab, an error window is retrieved: "java.sql.SQLException: [Microsoft][ODBC dBase Driver]Invalid string or buffer length".
At this point we are struggling to understand how to proceed further: shall we use a different ODBC driver/is this an error un-related to the ODBC driver we used/shall we use a different technology in consideration of the fact this .dbf file is not a stand-alone one but comes with .shp and .shx as well/anything else?
Any help would be greatly appreciated.
Thanks in advance!
scagliafHi CTS,
First, thanks for your help - much appreciated.
However, we just tried to reverse the .dbf as you suggested using the custom reverse engineering via RKM SQL (Jython) module.
First two steps (1 - Reset Metadata, 2 - Create Jython Classes) worked OK, but third failed with the same error mentioned in the first thread:
Operator log details:
org.apache.bsf.BSFException: exception from Jython: Traceback (innermost last):
File "<string>", line 33, in ?
File "<string>", line 111, in startReverse
File "<string>", line 156, in SnpsReverse_gettables
File "<string>", line 173, in SnpsReverse_getcolumns java.sql.SQLException: [Microsoft][ODBC dBase Driver]Invalid string or buffer length
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLColumns(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcDatabaseMetaData.getColumns(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java)
at org.python.core.PyMethod.__call__(PyMethod.java)
at org.python.core.PyObject.__call__(PyObject.java)
at org.python.core.PyObject.invoke(PyObject.java)
at org.python.pycode._pyx54._SnpsReverse__getcolumns$9(<string>:173)
at org.python.pycode._pyx54.call_function(<string>)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyFunction.__call__(PyFunction.java)
at org.python.core.PyInstance.invoke(PyInstance.java)
at org.python.pycode._pyx54._SnpsReverse__gettables$8(<string>:156)
at org.python.pycode._pyx54.call_function(<string>)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyFunction.__call__(PyFunction.java)
at org.python.core.PyMethod.__call__(PyMethod.java)
at org.python.pycode._pyx54.startReverse$6(<string>:111)
at org.python.pycode._pyx54.call_function(<string>)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyFunction.__call__(PyFunction.java)
at org.python.core.PyMethod.__call__(PyMethod.java)
at org.python.pycode._pyx55.f$0(<string>:33)
at org.python.pycode._pyx55.call_function(<string>)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyCode.call(PyCode.java)
at org.python.core.Py.runCode(Py.java)
at org.python.core.Py.exec(Py.java)
at org.python.util.PythonInterpreter.exec(PythonInterpreter.java)
at org.apache.bsf.engines.jython.JythonEngine.exec(Unknown Source)
at com.sunopsis.dwg.codeinterpretor.k.a(k.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlC.treatTaskTrt(SnpSessTaskSqlC.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
at com.sunopsis.dwg.cmd.e.i(e.java)
at com.sunopsis.dwg.cmd.h.y(h.java)
at com.sunopsis.dwg.cmd.e.run(e.java)
at java.lang.Thread.run(Unknown Source)
java.sql.SQLException: java.sql.SQLException: [Microsoft][ODBC dBase Driver]Invalid string or buffer length
at org.apache.bsf.engines.jython.JythonEngine.exec(Unknown Source)
at com.sunopsis.dwg.codeinterpretor.k.a(k.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlC.treatTaskTrt(SnpSessTaskSqlC.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
at com.sunopsis.dwg.cmd.e.i(e.java)
at com.sunopsis.dwg.cmd.h.y(h.java)
at com.sunopsis.dwg.cmd.e.run(e.java)
at java.lang.Thread.run(Unknown Source)
Any further idea?
Thanks,
scagliaf -
ODI Reverse-Engineering Question
We've been using ODI 10.3.5.1 for about a year now. The current load process was set up for us during implementation of Hyperion Planning. We are now trying to add a new dimension to our hierarchy, and I mistakenly went in and added the columns manually to all the models I could think of. I also added the columns into the source and target datastores in the interfaces manually.
Naturally, the load did not work. I keep getting the error "invalid column name 'Cost_Center'. I have been told by the installer (over email) that i should have reverse-engineered the models, and let the program build all the datastores. I tried to do the reverse-engineering, and am now getting an error for the HYP_PLANNING model, and the HYP_ESSBASE model runs and runs and runs, without doing anything noticeable.
How long should a reversal run? I don't believe our hierarchy is extraordinarily huge.
This is all in the TEST environment right now, but I need to put things in LIVE for August financials, so I have until 9/9/09 to figure this stuff out. Any insights would be greatly appreciated.Thanks for the quick response.
Like I said, it was done by the consultant, so I don't even know what an agent is.
As for the error, it was:
org.apache.bsf.BSFException: exception from Jython:
Traceback (innermost last):
File "<string>", line 41, in ?
com.hyperion.odi.planning.ODIPlanningException: Failed to sync with user provisioning. Check Planning log for details
at com.hyperion.odi.planning.wrapper.PlanningWrapper.login(Unknown Source)
at com.hyperion.odi.planning.ODIPlanningConnection.connect(Unknown Source)
at com.hyperion.odi.common.ODIModelImporter.importModels(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java)
at org.python.core.PyMethod.__call__(PyMethod.java)
at org.python.core.PyObject.__call__(PyObject.java)
at org.python.core.PyInstance.invoke(PyInstance.java)
at org.python.pycode._pyx0.f$0(<string>:41)
at org.python.pycode._pyx0.call_function(<string>)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyCode.call(PyCode.java)
at org.python.core.Py.runCode(Py.java)
at org.python.core.Py.exec(Py.java)
at org.python.util.PythonInterpreter.exec(PythonInterpreter.java)
at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:144)
at com.sunopsis.dwg.codeinterpretor.k.a(k.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlC.treatTaskTrt(SnpSessTaskSqlC.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
at com.sunopsis.dwg.cmd.e.i(e.java)
at com.sunopsis.dwg.cmd.g.y(g.java)
at com.sunopsis.dwg.cmd.e.run(e.java)
at java.lang.Thread.run(Unknown Source)
Caused by: com.hyperion.planning.HspRuntimeException: Failed to sync with user provisioning. Check Planning log for details
at com.hyperion.planning.HspJSImpl.synchronizeUserWithProvisioning(Unknown Source)
at com.hyperion.planning.HspJSImpl.login(Unknown Source)
at com.hyperion.planning.HspJSImpl.login(Unknown Source)
at com.hyperion.planning.HyperionPlanningBean.Login(Unknown Source)
at com.hyperion.planning.HyperionPlanningBean.Login(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java)
at java.lang.reflect.Method.invoke(Method.java)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:279)
at sun.rmi.transport.Transport$1.run(Transport.java:164)
at java.security.AccessController.doPrivileged1(Native Method)
at java.security.AccessController.doPrivileged(AccessController.java)
at sun.rmi.transport.Transport.serviceCall(Transport.java:160)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:505)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.handleRequest(TCPTransport.java:837)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:911)
at java.lang.Thread.run(Thread.java:570)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at com.hyperion.planning.HyperionPlanningBean_Stub.Login(Unknown Source)
... 34 more
com.hyperion.odi.planning.ODIPlanningException: com.hyperion.odi.planning.ODIPlanningException: Failed to sync with user provisioning. Check Planning log for details
at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:146)
at com.sunopsis.dwg.codeinterpretor.k.a(k.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlC.treatTaskTrt(SnpSessTaskSqlC.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
at com.sunopsis.dwg.cmd.e.i(e.java)
at com.sunopsis.dwg.cmd.g.y(g.java)
at com.sunopsis.dwg.cmd.e.run(e.java)
at java.lang.Thread.run(Unknown Source) -
Dear Experts
In process Reverse Engineering using RKM SAP ERP but error this result.
Reverse Engineering
View image: r e logalagent test
Error
View image: r e logalagent error
Error text
com.sunopsis.tools.core.exception.SnpsSimpleMessageException: ODI-17517: Error during task interpretation.
Task: 2
java.lang.Exception: The application script threw an exception: com.sunopsis.core.SnpsFlexFieldException: ODI-15068: Unknown flexfield code. BSF info: Initialize at line: 0 column: columnNo
at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:489)
at com.sunopsis.dwg.dbobj.SnpSessStep.createTaskLogs(SnpSessStep.java:809)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:465)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2128)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:366)
at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:300)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855)
at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)
at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.Exception: The application script threw an exception: com.sunopsis.core.SnpsFlexFieldException: ODI-15068: Unknown flexfield code. BSF info: Initialize at line: 0 column: columnNo
at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:476)
... 11 more
Caused by: org.apache.bsf.BSFException: The application script threw an exception: com.sunopsis.core.SnpsFlexFieldException: ODI-15068: Unknown flexfield code. BSF info: Initialize at line: 0 column: columnNo
at bsh.util.BeanShellBSFEngine.eval(Unknown Source)
at bsh.util.BeanShellBSFEngine.exec(Unknown Source)
at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:471)
... 11 more
Texto: //Command Name: Initialize
import com.sap.mw.jco.*;
import java.sql.Connection;
import java.util.ResourceBundle;
import java.util.Date;
//Initializing resourceBundle
odiSapErpResourceBundle = new OdiSapErpResourceBundle();//resourceBundle object to initialize & load resources
odiSapErpResourceBundle.initializeResource();//initializing/loading resources
resourceBundle = odiSapErpResourceBundle.getResourceBundle();
//Check the ODI Release
//Initialize Open Tool log file name
//Initializing logger
String logFileName = "";
logFileName = <@=odiRef.getQuotedString("<?=new File(System.getProperty("java.io.tmpdir"),"sap_rkm_erp_"+odiRef.getSession("SESS_NO")+".log").toString()?> ") @>;
OdiSapLogger sapLogger = new OdiSapLogger(logFileName, resourceBundle);
sapLogger.fine("ODIKM-SAPERP-RKM-10000","",new Object[] {"SAP ERP RKM - Initialize step.."} );
//Check whether Table or View checkbox selected
typeOfObject = "T";
if ((";AT;Q;SY;ST;T;V;").indexOf(";V;") > -1)
typeOfObject = "V";
if ((";AT;Q;SY;ST;T;V;").indexOf(";T;") > -1)
typeOfObject = "T";
//Initializing SAP Connector
OdiSAPERPAdapter odiSapERPAdapter = new OdiSAPERPAdapter(sapLogger, odiSapErpResourceBundle);
odiSapERPAdapter.setObjectType(typeOfObject);
//Helper object
OdiSAPERPMetadataHelper odiSAPERPMetadataHelper = new OdiSAPERPMetadataHelper(odiSapERPAdapter, sapLogger);
<?
// SAP connection properties get from Topology Manager Defintions
String hostName = odiRef.getInfo("SRC_DSERV_NAME");//SRC_DSERV_NAME
String userName = odiRef.getInfo("SRC_USER_NAME");
String password = odiRef.getInfo("SRC_PASS");
String systemNo = odiRef.getFlexFieldValue( odiRef.getInfo("SRC_I_CONNECT"), "1400", "SAP_SYSTEM_NUMBER" );
String sapClient = odiRef.getFlexFieldValue( odiRef.getInfo("SRC_I_CONNECT"), "1400", "SAP_CLIENT" );
String language = odiRef.getFlexFieldValue( odiRef.getInfo("SRC_I_CONNECT"), "1400", "SAP_LANGUAGE" );
?>
//Setting the SAP Connection
odiSapERPAdapter.setSAPConnection("<?=hostName?>", "<?=systemNo?>", "<?=sapClient?>", "<?=language?>", "<?=userName?>", "<?=password?>", null, null);
//Get the repository connection
Connection repoConnection = odiRef.getJDBCConnection("DEST");
sapLogger.fine("ODIKM-SAPERP-RKM-10000","",new Object[] {"repoConnection: "+repoConnection});.
at com.sunopsis.dwg.dbobj.SnpSessStep.createTaskLogs(SnpSessStep.java:837)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:465)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2128)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:366)
at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:300)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855)
at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)
at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
at java.lang.Thread.run(Thread.java:744)
What I must correct?
What other tests can I perform?
Thanks for any lightDear Expert
Still facing this problem.
I did several tests, changing flexfields in physical topology and the parameters of RKM.
But the result is always the same.
What else could do.
The doubt remains.
Should be poss edit details.
>> >>> review history this post <<<<<
I can not enter values in JDBC because the JDBC option is not active.
Any light, suggestion or critics is welcome.
Also I have a SR open with serveridade 1 in orcl.
Thanks for All
Maybe you are looking for
-
I am trying to figure out the proper configuration for DNS that will support multiple domains. I have DSN working now for just one domain. My XServe has a static IP connected directly to cable modem and is the master nameserver. I also have an Ubuntu
-
ITunes does not sync properly anymore
When I try sync my iPhone 5 (iOS7.0.3) with iTunes 11.1.2.31 it syncs my apps and co. but actually does not sync my music. The music I bought with iTunes is automatically downloaded on all my Apple devices. But when I add those ne songs to playlists
-
DNS? error preventing fileshare over WiFi
I have a WRT54G connected to a cable modem, a NAS, a Wireless Print Server and a new WHS. I am able to access the internet and each of the other networked devices when connected to the WRT54G via Ethernet. However, when connected to the WRT54G via W
-
I installed aa ATI tv wonder pro.When I run the pc check in multimedia center configuration I get an error that says that my sound card did not pass the test: the clock accuracy is less than .2%. I downloaded the latest drivers for my audigy eax soun
-
Reset Apple Push Notification Certificate
I revoked my APN cert online @ https://identity.apple.com/pweb to try and clear out some configuration issues on my server. Now I need to create a new APN. Unfortunately in Server.app the old cert is still showing and I only get the option to "renew"