8 Replies Latest reply on Jul 15, 2014 4:20 AM by congnc

    Reverse/import  a table in ODI


      Hi all,


      I want to reverse a table from EBS 12.1.1 database. My parameter is:

      Reverse Engineer: Customized

      Context: Global

      Logical Agent: Local(No Agent)

      Knowledge Module: RKM EBS suite


      - Use mask:  false

      - List_of_table: gl_item_cst

      At Oracle E-Business Suite R12.1.1 model -> click Reverse Engineer button. My session finished with no error but table gl_item_cst doesn't appear in Oracle E-Business Suite R12.1.1 model.


      Please help me solve this problem. Thanks.




        • 1. Re: Reverse/import  a table in ODI

          Hi experts,


          If I change parameter Logical Agent from Local(No Agent) to OracleDIAgent, the session finish with error at last step: Reverse - Oracle E-Business Suite R12.1.1 - Apply Long Text.


          Error Message:

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

          Traceback (most recent call last):

            File "<string>", line 1, in <module>

          ImportError: No module named AddinManager


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

              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:2472)

              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:2913)

              at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2625)

              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:2093)

              at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:376)

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

              at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:309)

              at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:301)

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

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

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

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

          Caused by: Traceback (most recent call last):

            File "<string>", line 1, in <module>

          ImportError: No module named AddinManager


              at org.python.core.PyException.fillInStackTrace(PyException.java:70)

              at java.lang.Throwable.<init>(Throwable.java:181)

              at java.lang.Exception.<init>(Exception.java:29)

              at java.lang.RuntimeException.<init>(RuntimeException.java:32)

              at org.python.core.PyException.<init>(PyException.java:46)

              at org.python.core.PyException.<init>(PyException.java:43)

              at org.python.core.PyException.<init>(PyException.java:61)

              at org.python.core.Py.ImportError(Py.java:264)

              at org.python.core.imp.import_logic(imp.java:707)

              at org.python.core.imp.import_name(imp.java:761)

              at org.python.core.imp.importName(imp.java:806)

              at org.python.core.ImportFunction.__call__(__builtin__.java:1232)

              at org.python.core.PyObject.__call__(PyObject.java:367)

              at org.python.core.__builtin__.__import__(__builtin__.java:1202)

              at org.python.core.__builtin__.__import__(__builtin__.java:1185)

              at org.python.core.imp.importOneAs(imp.java:827)

              at org.python.pycode._pyx823.f$0(<string>:11)

              at org.python.pycode._pyx823.call_function(<string>)

              at org.python.core.PyTableCode.call(PyTableCode.java:165)

              at org.python.core.PyCode.call(PyCode.java:18)

              at org.python.core.Py.runCode(Py.java:1204)

              at org.python.core.Py.exec(Py.java:1248)

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

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

              ... 19 more


          So another stupid question is what's the difference between run Reverse in Local(No Agent) and OracleDIAgent? And Please help me solve above problems. Thank you very much.




          • 2. Re: Reverse/import  a table in ODI

            Hi Cong,


            Is OracleDIAgent your J2EE agent ?




            • 3. Re: Reverse/import  a table in ODI

              Hi Phanikanth,


              Thank for your reply.


              How to know that agent is J2EE or standalone agent?



              • 4. Re: Reverse/import  a table in ODI

                Hi Cong,


                This is standard name "OracleDIAgent" giving to J2EE Agent.

                You can alos give other name for J2EE agent but this a standard one.




                • 5. Re: Reverse/import  a table in ODI

                  Hi Phanikanth,


                  Our system has only 1 agent (named as OracleDIAgent) which was created by SUPERVISOR user. I could use this agent to execute Generate DDL normally but I get trouble when run Reverse Engineer with this agent.




                  • 6. Re: Reverse/import  a table in ODI



                    Can you please try below one


                    Reverse Engineer: Customized

                    Context: Global

                    Logical Agent: Local(No Agent)

                    Knowledge Module: RKM Oracle



                    Note: If you are using OracleDIAgent, then check is yur agent is working or not


                    How to test OracleDIAgent in ODI Studio:


                    Goto Topology>In Physical Architeture>Expand the Agent>Opent the OracleDIAgent and it will open at right side panel, click on Test button and see you are getting "Agent Test Successful"  mesage or not, if not use Local (NoAgent)


                    Hope this may helps you



                    • 7. Re: Reverse/import  a table in ODI

                      Hi Phanikanth,


                      Case 1: use Logical Agent: Local(No Agent) -> Session finish with no error but table gl_item_cst doesn't appear.



                      Case 2: use OracleDIAgent -> Session finish with error at final step.



                      Test OracleDIAgent:  "Agent Test Successful"




                      • 8. Re: Reverse/import  a table in ODI

                        Base on Feedback from Oracle DEV team
                          We have a limitation on using this RKM with only Studio(Local No Agent).This
                          Can not be run on an agent.So please use Studio(Local No Agent) when running RKM.
                          We already have documented it in the RKM Description:
                          Current RKM Description is as follows:
                          COMPONENT NAME: RKM BIApps E-Business Suite
                          COMPONENT VERSION:
                          AUTHOR: Oracle
                          - Reverse Engineering Knowledge Module
                          - RKM to get EBS Metadata
                          BASIC CONFIGURATION
                          OPTIONS (Refer to Option descriptions for more information on each option)
                        - ADD_SDS_SUPPORT (default: false): Adds CDC information (such as the CDC columns) during the reverse engineering process to support SDS
                        - USE_MASK (default: true): Use the TABLE_MASK option to determine the list of tables to process, otherwise use the comma separated LIST_OF_TABLES option
                          - TABLE_MASK (default:%): Use a table mask to determine the tables to process
                          - LIST_OF_TABLES (default: null): Use a comma separated list to determine the tables to process
                          - ONLY_PROCESS_EXISTING_TABLES (default: true): This flag determines
                        whether the reverse engineering process will go through all tables (if set to false) or only tables that already exist within the model (if set to true
                          - Can not be run on an agent. Has to be run on the Studio

                        I found the root cause. This input parameter work for me.
                        - USE_MASK: false
                        - TABLE_MASK (default:%)
                        - LIST_OF_TABLES : 'GL_ITEM_CST' ('gl_item_cst' and 'GL_ITEM_CST' are different)
                        - ONLY_PROCESS_EXISTING_TABLES : false (previous value is 'true')