Problem: Use an ODI variable in a Java Procedure

Hi and thanks in advance,
i need to use a project variable in a java procedure i've written. In particular i should read a file (and manage it...), but its name is stored in avariable called #fileName that i refresh each time.
writing something like:
<% FileInputStream fis = new FileInputStream(C:\\"+"#filename");
etc.
etc.
%>
doesn't work...
How can i use the value of my ODI variable inside the Java code?
Please, help me if you can...
Thank you very much.

Any Idea? Please, this question is blocking me...

Similar Messages

  • Is it possible to use a ODI variable in a procedure

    I am trying to call an external java program from the operating system (MS-DOS) using a procedure. This is possible using the os.system("<command>") syntax - declaring a procedure to use Jython. However, I want to be able to pass two ODI variables to the java program. I do not seem able to do this, is it possible ?
    I also tried calling the OS command from within a package - but again cannot get the OS command to pass the variables.
    I would appreciate any help on this.

    Thanks for your response.
    I am still unable to do this.
    Problem is the procedure is "Jython" and it does not know what the ODI variables are.
    I basically have two variables source and target which need to be passed to a java procedure.
    So I created two VARIABLES in ODI - source and target.
    I then have a procedure with the command;
    import os
    import sys
    cmd = "java ConvFile"
    rc = os.system(cmd)
    when this runs it does not pass the variables.
    if you have
    import os
    import sys
    cmd = "java ConvFile"+#Tax_Updates.SourceFile+#Tax_Updates.TargetFile
    rc = os.system(cmd)
    then it does not know what #Tax_Updates.SourceFile and #Tax_Updates.TargetFile are and so just passes them as strings.
    If you still think it is possible or anyone esle knows can you elaborate a little on the solution.
    Thanks
    Nick

  • How to use an ODI variable in an IKM?

    Hi,
    I am trying use the value of ODI variable in IKM SQL Incremental Update. The variable contains the count of error records. My problem is how to use the variable in the IKM. I am trying to use the variable in an If condition like:
    <%if(%>#COuntReprocessRec<%>0){%>
    I have declared the variable as Numeric.
    Thanks.

    Hi,
    For the below requirement follow the below steps.
    I have to execute the 'Insert of flow into I$ table' step of IKM, only if Error records are present in my source table. The IKM i am using is IKM SQL Incremental Update.
    Create a new step before 'Insert of flow into I$ table' step, i say "Check Error Record".
    Command on source
    Technology : <your source technology>
    Schema: Whichever schema points to ur source error table
    Command:
    select count(*) as row_count from <table_name>
    Command on Target
    Technology : Jython
    Command:
    CountData=#row_count
    if CountData>0:
    ##raise ' \n\nThere are error records in source error table'
    Thats it.
    This will stop the flow in case of error records persist in ur source table, else it allow the flow to next Insert I$ step.
    P.S: Replace ## with TAB.
    Thanks,
    Guru

  • Problem using a Boolean variable

    Greetings;
    I'm writing a game in which the player and 'enemies' fall off the screen when they 'die'. The problem is that I also want to constrain their  movement to within the screen boundaries whenever they have not been killed. To start  I thought I'd go into the class I wrote to handle the player falling off the screen when he's touched by an enemy and create a boolean variable so that Flash would know to let him fall off the screen when killed, but remain constrained on the screen until that point.The problem is that now the player stays on the screen even when I want him to fall off (i.e. after he's been hit).
    The class I wrote to handle the player dying is below, and the boolean variable is called 'playerBeenHit'. Since the player only gets a y acceleration when hit, I tried using the 'ay' variable to control the behavior but with the same results. In troubleshooting I tried to trace(playerBeenHit) on every frame and noticed it would go to 'true' and then set itself back to 'false' for three out of four readouts even after the player was hit. I'm not sure what I'm doing wrong here.
    Thanks,
    Jeremy
    package  jab.enemy
        import flash.display.MovieClip;
        import flash.events.Event;
        import flash.geom.ColorTransform;
        public class DieLikeAPlayer
            private var _clip1:MovieClip; // the 'player'
            private var _clip2:MovieClip; // the 'enemy' who kills the 'player' on contact.
            private var ay = 0; // vertical acceleration for falling off the screen.
            private var vx = 0; // horizontal initial velocity, 'knockback' from the impact.
            private var vy = 0; // vertical initial velocity, 'knockback' from the impact.
            private var playerBeenHit:Boolean = false;
            public function DieLikeAPlayer(clip1:MovieClip, clip2:MovieClip): void
                _clip1 = clip1;
                _clip2 = clip2;
                _clip1.stage.addEventListener(Event.ENTER_FRAME, onEnterFrame)
                function onEnterFrame(event:Event):void
                    if (_clip1.hitTestObject(_clip2)) // what happens when the player gets killed.
                        playerBeenHit= true;
                        ay = 3;
                        _clip1.scaleY = -Math.abs(_clip1.scaleY);
                        _clip1.alpha = 0.4;
                        _clip1.gotoAndStop(2);
                        vx = -0.2;
                        vy = 2;
                        _clip1.y += 5;
                        _clip1.rotation = -45
                    // adding y acceleration and x velocity (knockback) from being hit.
                    _clip1.x += vx;
                    _clip1.y += vy;
                    vy += ay;
                    if(playerBeenHit == false)//constrains the player from moving past the  bottom of the screen.
                         if(_clip1.y > 620)
                         {_clip1.y = 620;}
                    if (_clip1.y > 100000) // brings the player 'back to life' after falling 100,000 pixels.
                        ay = vx = vy = 0;
                        _clip1.alpha = 1;
                        _clip1.scaleY = Math.abs(_clip1.scaleY);
                        _clip1.rotation = 0;
                        _clip1.gotoAndStop(1);
                        _clip1.x = 480;
                        _clip1.y = 300;
                        playerBeenHit = 0;

    that shouldn't compile.  don't you see an error message about your boolean being assigned an int?  you are publishing for as3, correct?

  • Sincere Eclipse 3.0.2 build problems using a package for all Eclipse Java p

    Hi,
    I had the following problem:
    - jar-file put into a directory (for jdbc-access)
    - Environment variable set in Window/preferences/Java/BuildPath/ClassPathVariables:
    Name: classpath (could be any other name, does not correlate with WIN env. var.)
    Path: C:\java\eclipse\jars\mysql-connector-java-3.1.8-bin.jar
    - class-file was automatically built by Eclipse, error message:
    �. java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    In Windows I set the classpath environment variable to
    classpath=.;C:\java\eclipse\jars\mysql-connector-java-3.1.8-bin.jar
    In Windows/i.e., a DOS-Shell. It works
    As it didn�t work in Eclipse, I deleted Eclipse and installed it again (from an elder version I had on another workstation)
    After starting Eclipse asked me to rebuild all -> Yes (it then needed some time to do so)
    Then it worked
    So, right here I thought I knew how to go on in other projects using this jar-file, but:
    The same problem appears in another project, but it works in WIN/DOS command line, but not in Eclipse. Project/Clean und rebuilding automatically or manually doesn�t help.
    As a workaround for this project I did in
    Project/Properties/Java/BuildPath/Projects I marked a link to the project where it works (see above), and now it works, too.
    But I am not satisfied, I don�t like trial and error solutions.
    I suppose that Project/Clean doesn�t really clean properly.
    Has anybody made similar experience and knows the real solution?
    Thanks
    Michel

    JediKnight wrote:I didn't find it in AUR
    What search term did you use??  Here is monodevelop-git already in the AUR.
    It seems it may have been abandonded, but perhaps you could take over that package rather than starting a new one.
    Additionally, a patch is applied in that PKGBUILD.  Perhaps that could be needed to solve your problem.

  • Problem Using a Bind Variable on a SelectOneChoice List VO

    Hi everyone,
    I have a List View Object on my application that contains the lookup values for some combos. The underlying table has three columns: LOOKUP_TYPE, LOOKUP_CODE and DESCRIPTION. It is used like this: when i want to find out which are the possible values for the "Customer Status" field on a form, i need to execute this VO with LOOKUP_TYPE = "CUST_STATUS". when i want to find the Supplier status, i execute it with "SUPP_STATUS". Then i compare the value of LOOKUP_CODE with the customer_status or supplier_status codes to get its description.
    The problem is, i have to use this VO as the Dynamic List of values for a SelectOneChoice. I have correctly mapped it, but the VO query is like this:
    SELECT lookup_code, description FROM tab_lookup_codes WHERE lookup_type = :lkpType
    So i need to set the bind variable dinamically, as i would do with ExecuteWithParams, but for a SelectOneChoice list. How can i do such thing? is there a way to define a value for this parameter before ADF executes the List VO on the page definition, or even programatically?
    If you didn't understand my requirement, please let me know.
    Thank you very much for your time!
    Thiago Souza

    Hi Thiago,
    If i understand you problem you can try to insert a invokeAction to your page definition with refresh property equals prepareModel that call a method that sets your Where param propertly. In this way your method will be executed before prepareModel.
    I haven't test this, its only a possible idea.
    Best Regards
    Hi everyone,
    I have a List View Object on my application that
    contains the lookup values for some combos. The
    underlying table has three columns: LOOKUP_TYPE,
    LOOKUP_CODE and DESCRIPTION. It is used like this:
    when i want to find out which are the possible values
    for the "Customer Status" field on a form, i need to
    execute this VO with LOOKUP_TYPE = "CUST_STATUS".
    when i want to find the Supplier status, i execute it
    with "SUPP_STATUS". Then i compare the value of
    LOOKUP_CODE with the customer_status or
    supplier_status codes to get its description.
    The problem is, i have to use this VO as the Dynamic
    List of values for a SelectOneChoice. I have
    correctly mapped it, but the VO query is like this:
    SELECT lookup_code, description FROM tab_lookup_codes
    WHERE lookup_type = :lkpType
    So i need to set the bind variable dinamically, as i
    would do with ExecuteWithParams, but for a
    SelectOneChoice list. How can i do such thing? is
    there a way to define a value for this parameter
    before ADF executes the List VO on the page
    definition, or even programatically?
    If you didn't understand my requirement, please let
    me know.
    Thank you very much for your time!
    Thiago Souza

  • Problem using '--' on a variable via a pointer

    Hello.
    I'm new to C (been learning just over a week now), so if you take the time to reply - please don't pitch the answer too high!
    I've just finished work on my latest project - a Sudoku Solver. It only does simple puzzles, but it (finally) works.
    Here's a basic run-down of what it does: a user enters the known numbers of a Sudoku grid, line by line, and the program assigns these to an array (if the number is unknown, the relevant part of the array is set to zero). The array also holds a 'possibles' value for each cell, which says how many numbers are still potential values for that cells (so, when the user's input is first translated into the array, this value will be nine for an empty cell).
    A series of structs are then set up, one per cell, which hold various bits of information about each cell. The main things are the coordinates for each cell, together with whether each number (one to nine) is a possibility for that cell, and the total number of possibilities for that cell (which is a pointer to the 'possibles' value in the array, mentioned earlier).
    The solving loop is split into two parts. The first goes through each struct, and determines whether the value for that cell is known or not. If it is, that value is removed as a possibility for each cell in its row, column, and box.
    The second part of the loop goes through all cells and, if only one possibility exists for a cell, assigns that as the final answer in the array. The solving loop then continues until all cells are solved.
    My problem came when reducing the 'possibles' value for a cell in the array, via the struct. My first attempt used this line:
    *mySudoku[j].possibles--
    ('mySudoku' is the name of the struct type; 'j' is a value (0-81), and 'possibles' is a field that points to the value in the array that holds how many potential answers there still are for that cell). In my mind, that code snippet should point at the address held in that struct's field, and reduce it by one.
    After much banging of head against a wall, I discovered that the above code snippet wasn't doing the same as:
    *mySudoku[j].possibles = (*mySudoku[j].possibles)-1
    Once I'd changed the code over, the program worked like a dream.
    My question is: why aren't those two bits of code doing the same thing? I've obviously misunderstood something fairly basic, but I can't understand what.
    If any of my explanation isn't clear, then please let me know and I'll clarify.
    Thanks for your time,
    Pete.
    Message was edited by: Pete_M2

    Pete_M2 wrote:
    *mySudoku[j].possibles--
    *mySudoku[j].possibles = (*mySudoku[j].possibles)-1
    My question is: why aren't those two bits of code doing the same thing? I've obviously misunderstood something fairly basic, but I can't understand what.
    In a word, precedence. The first operation performed is the array subscript. Then the member selection via ".". Next is postfix decrement. The pointer dereference is done last.
    You should probably use parentheses to clearly specify the order in which you want operations to be performed. I am and have always been virtually clueless about precedence. I always use parentheses to clearly indicate what I want to be done. Even if they are redundant, they still help to clarify the situation.
    I would have written the above code as:
    --(*mySudoku[j].possibles)
    I would use prefix decrement because I don't need the pre-decrement value. I use the parentheses for clarity even though they supposedly aren't needed with prefix decrement. I say "supposedly" because I really have no clue. I have been programming for 20 year and the only precedence I know is parenthesis trumps all (usually).

  • How to use ODI procedures into a ODI variable

    Hi,
    I have the below condition
    select c1 from table where c1>#ODIVAR1 and use the output of this query in a variable to define the package flow
    If output=0 package flow goes as XXX
    else
    flow goes as YYY.
    So please suggest how to use a ODI variable to capture the procedures putput and use it in package flow in this case.
    Thanks,
    Naveen.

    Step1 . Refresh the variable in the package, which have this query select c1 from table where c1>#ODIVAR1
    Step2. Evaluate above variable (operator = , value 0 )
    Step 3. If true Package flow xxx , else false yyy
    Please close the thread once you get the required flow.

  • Error while passing ODI variable in JNDI Url for JMS Queue XML

    Hi,
    Facing a weird problem while passing ODI variable in JNDI Url for JMS Queue XML.
    Below is the JNDI Url configured under ODI Topology:
    JNDI Url: t3://<host_location>?d=#TEST.SCHEMA_FILE&s=<schema_name>&JMS_DESTINATION=jms/<queue_name>
    where,
    #TEST.SCHEMA_FILE --> ODI variable storing xsd name and location
    Issue Description:
    If we restart ODI server then for the first run of any ODI interface using JMS Queue XML, it is unable to get the value for ODI variable present in JNDI Url (d=#TEST.SCHEMA_FILE).
    It throws error message saying: No XSD found
    Temporary Resolution:
    As a temporary fix if we hard-code and pass the value in that ODI variable as shown below, it will successfully go through.
    eg: JNDI Url: t3://<host_location>?d=C:\XSD\test.xsd&s=<schema_name>&JMS_DESTINATION=jms/<queue_name>
    Reverting it back to variable later will have no issues and subsequent run will succeed.
    But again anytime later if server is restarted then first run will have this issue.
    Want to have permanent fix for it.
    Any one having idea on it please share. Appreciate your help!

    What ODI version are you using? It could be related to the bug in the older version as described in support note Doc ID 1290326.1

  • Problem using standard libraries in C++ class

    Hi
    I am new to JNI. I am having problems using standard C++ library.
    My java code looks like
    public class JavaSide {
    public native void sayHello();
    static {
    System.loadLibrary("NativeSideImpl");
    public static void main(String[] args) {
    JavaSide app = new JavaSide();
    app.sayHello();
    and My NativeSideImpl.cpp code is
    #include <stdio.h>
    #include "JavaSide.h"
    JNIEXPORT void JNICALL Java_JavaSide_sayHello
    (JNIEnv *env, jobject obj)
    cout<<" Hello";
    I am compiling this on solaris 5.8 using the following command
    CC -G -Kpic -I/usr/java/include -I/usr/java/include/solaris NativeSideImpl.cpp -o libNativeSideImpl.so
    when I run my java program using
    java JavaSide
    I get the following exception
    Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/oracle/temp/libhello.so: ld.so.1: java: fatal: relocation error: file /home/oracle/temp/libhello.so: symbol __1cDstdEcout_: referenced symbol not found
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1473)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1397)
    at java.lang.Runtime.loadLibrary0(Runtime.java:788)
    at java.lang.System.loadLibrary(System.java:832)
    at HelloWorld.<clinit>(HelloWorld.java:6)
    The program works if I replace cout with printf() .
    My LD_LIBRARY_PATH does include the path where of the C++ standard libraries.
    Any help would be much appreciated
    Thanks in advance..

    Well, cout was just a a simple example. I was having problems with using the std C++ libraries, e.g ostringstream . and likes .
    I tried using the -lCstd in the compile option and it worked.

  • Using ODI send mail tool in procedure

    Hi,
    I want to use an ODI send mail option in procedure when certain condition is met.
    for example:
    I have one table "Dummy_table" as
    Dummy_table
    PRODUCTID
    PRODTYPE
    PRODCODE
    11111
    A
    11111
    22222
    A
    22222
    33333
    B
    33333
    00000
    A
    00000
    And a procedure which is trying to insert records in above table. In this procedure i want to add validation and when the validation is true, need to send mail.
    Mail to be triggered:
    If PRODUCTID already exists in table then do not insert record with same PRODUCTID in table. Instead of that, call an ODI send mail tool from the procedure which is trying to insert duplicate entry.
    Let's say my procedure is trying to insert record with PRODUCTID = "22222" . In this case, i dont want an entry to be inserted as it is already present. I want a mail to be triggered saying that this record is already present.
    Any help would be highly appreciated.
    Thanks in advance.
    Shilpa

    Sure, please follow the steps:
    1) First import one CKM to your project. If you are working with Oracle then you could use "CKM Oracle";
    2) Open your Interface and go to "Controls" tab and select your "CKM Oracle" in CKM Selector combo box. Pay attention to the CKM options and change them accordingly to your needs;
    3) Go to "Models" tab and search for your "Dummy_table" model;
    4) Expand "Dummy_table" model and right click "Constraints" -> New Condition
    5) Give it a name, select Type = "Oracle Data Integrator Condition" and then write down a SQL that will indicate which are the valid values that should be loaded to your target table. In your example, it should be something like this (DUM being the model table alias):
    DUM.PRODUCTID NOT IN (SELECT T1.PRODUCTID FROM Dummy_table T1)
    This query is telling ODI that only the rows with PRODUCTID that does not exists in the target table are valid. All the rest (in this case all rows that already exists in the target table) should be logged in E$ table.
    Please let me know if it worked.
    Thanks.

  • Calling stored java-procedure in Oracle9i Lite from ODBC

    I've got a problem:
    I try to call a stored java-procedure through ODBC. The stored
    java-procedure in Oracle 9i Lite is called successfully from
    server console (MSQL). When I call my stored java-procedure from
    my web-application (ASP) through ODBC connection (ODBC drivers
    are from Oracle 9i Lite set V3.51) the server returns an error
    (Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [POL-
    8000] could not start the Java Virtual Machine),
    however 'select' without java-procedure calls works
    successfully. PATH and CLASSPATH variables are properly set up.
    File jvm.dll is present.
    Can anybody help me?

    Pass String[] as an argument to mainbook():
    create or replace PROCEDURE openpdffile
    AS LANGUAGE JAVA
    NAME 'pdfopenbook.mainbook(java.lang.String[])';Have you posted it on the Database forum?
    Regards,
    Nick

  • How to use odi variable in java code.

    Hi,
    I am trying to calculate check sum of a file and need to capture that in a odi variable...
    I wrote code like this(selected technology as java bean shell)
    <@
    import java.io.*;
    import java.util.zip.*;
    public class checksum {
    public static void main(String[] args) throws Exception {
    FileInputStream fis = new FileInputStream(new File("c:/dummy.txt"));
    CheckedInputStream cis = new CheckedInputStream(fis, new CRC32());
    BufferedInputStream in = new BufferedInputStream(cis);
    while (in.read() != -1) {
    #checksum = cis.getChecksum().getValue();
    }@>
    But I am not able to get that value...
    I tried in another way like this
    <@
    import java.io.*;
    import java.util.zip.*;
    public class checksum {
    public static void main(String[] args) throws Exception {
         long result;
    FileInputStream fis = new FileInputStream(new File("c:/dummy.txt"));
    CheckedInputStream cis = new CheckedInputStream(fis, new CRC32());
    BufferedInputStream in = new BufferedInputStream(cis);
    while (in.read() != -1) {
    result= cis.getChecksum().getValue();
    @>
    In odi variable refreshing mode i selected schema as memory_engine and wrote
    select '<@=result@>' from dual;
    even this wont work for me :(
    Anyone pls help me in this...
    Thanks in advance
    Pavan

    Hi Phani,
    Thanks for the reply. I resolved this. The mistake is I wrote java code in a class,in main function. I removed class and main function. Now I am able to capture value into Odi variable...
    I modified code as
    <@
    import java.io.*;
    import java.util.zip.*;
         long result;
    FileInputStream fis = new FileInputStream(new File("C:/dummy.txt"));
    CheckedInputStream cis = new CheckedInputStream(fis, new CRC32());
    BufferedInputStream in = new BufferedInputStream(cis);
    while (in.read() != -1) {
    result=cis.getChecksum().getValue();
    @>
    finally retrieving result value from dual
    select '<@=result@> from dual
    Edited by: 908443 on Jan 16, 2012 10:42 PM

  • Problem using the value of the variable in the KM options - Essbase Extract

    Hi,
    I am able to extract the data from Hyperion Essbase using the report script present in D:\ODIHome\oracledi\demo\hyperion.
    Instead of hardcoding the absolute file path in LKM options, I have requirement to use the value of variable, PIPHome and form the file path.
    So in LKM Options I gave Extraction Query File path as #GLOBAL.PIPHome \oracledi\demo\hyperion\extract.rep
    Its not able extract the data and throwing following exception.............Please help me in using the variable value in KM options. Thanks.
    org.apache.bsf.BSFException: exception from Jython:
    Traceback (innermost last):
    File "<string>", line 1, in ?
    com.hyperion.odi.essbase.ODIEssbaseException: Cannot execute report. Analytic Server Error(1030009): Name too long (#GLOBAL.PIP_HOME\oracledi\demo\hyperion\extract.rep) in ESSAPI function EssReportFile
         at com.hyperion.odi.essbase.ODIEssbaseDataReader.getAppData(Unknown Source)
         at com.hyperion.odi.essbase.AbstractEssbaseReader.extract(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._pyx3.f$0(<string>:1)
         at org.python.pycode._pyx3.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(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.e.i(Unknown Source)
         at com.sunopsis.dwg.cmd.h.y(Unknown Source)
         at com.sunopsis.dwg.cmd.e.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)
    Caused by: com.hyperion.odi.essbase.ODIEssbaseException: Cannot execute report. Analytic Server Error(1030009): Name too long (#GLOBAL.PIP_HOME\oracledi\demo\hyperion\extract.rep) in ESSAPI function EssReportFile
         at com.hyperion.odi.essbase.wrapper.EssbaseReportDataIterator.init(Unknown Source)
         ... 33 more
    Caused by: com.essbase.api.base.EssException: Cannot execute report. Analytic Server Error(1030009): Name too long (#GLOBAL.PIP_HOME\oracledi\demo\hyperion\extract.rep) in ESSAPI function EssReportFile
         at com.essbase.server.framework.EssOrbPluginDirect.ex_olap(Unknown Source)
         at com.essbase.server.framework.EssOrbPluginDirect.essMainReport(Unknown Source)
         at com.essbase.api.session.EssOrbPlugin._invokeMainMethod(Unknown Source)
         at com.essbase.api.session.EssOrbPlugin._invokeMethod2(Unknown Source)
         at com.essbase.api.session.EssOrbPlugin._invokeMethod(Unknown Source)
         at com.essbase.server.framework.EssOrbPluginDirect._invokeProtected(Unknown Source)
         at com.essbase.api.session.EssOrbPluginEmbedded.invokeMethod(Unknown Source)
         at com.essbase.api.session.EssOrbPluginEmbedded.invokeMethod(Unknown Source)
         at com.essbase.api.session.EssOrbPlugin.essMainReport(Unknown Source)
         at com.essbase.api.datasource.EssCube.report(Unknown Source)
         ... 34 more
    com.hyperion.odi.essbase.ODIEssbaseException: com.hyperion.odi.essbase.ODIEssbaseException: Cannot execute report. Analytic Server Error(1030009): Name too long (#GLOBAL.PIP_HOME\oracledi\demo\hyperion\extract.rep) in ESSAPI function EssReportFile
         at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:146)
         at com.sunopsis.dwg.codeinterpretor.k.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.e.i(Unknown Source)
         at com.sunopsis.dwg.cmd.h.y(Unknown Source)
         at com.sunopsis.dwg.cmd.e.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)

    Hi,
    If you are going to use variable as one of the options then what you can do is create a package.
    Drag your variable on to the package and set or declare it.
    Then drag your interface on to the package.
    Now when you execute the package it should make use of the variable.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • How to use ODI Variables in Jython

    Hi, im doing a dynamic interfaz .. so i make a connection to bd.
    When i try to do it .. i got an error...
    How can i access to the odi variables from odi..
    this is my code ..
    <%
    import java.sql.*;
    import java.io.*;
    BufferedWriter bw = new BufferedWriter(new FileWriter("c:\log.txt"));
    StringBuilder strB = new StringBuilder();
    Class.forName("oracle.jdbc.driver.OracleDriver");
    String ip = "#PROJECT.IP";
    String url = "jdbc:oracle:thin:@"+ip+":1521:orcl";
    Connection con = DriverManager.getConnection(url,"snpw","admin");
    stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
         bw.write(" raise(' ");
         out.print(" raise(' ");
    String str = "SELECT c.var_name,d.project_name FROM snp_package a JOIN snp_step b On (a.i_package = b.i_package) JOIN snp_var c ON (b.i_var = c.i_var) JOIN snp_project d ON (c.i_project = d.i_project) WHERE UPPER(pack_name) = upper('DebugJava')";
    ResultSet rs = stmt.executeQuery(str);
    while(rs.next()){
    String var_name = rs.getString("var_name");
    String project_name = rs.getString("project_name");
    out.print(var_name+" #" project_name"."+var_name+"\n ");
    bw.write("#STUFF."+var_name);
    bw.write("')");
    out.print("')");
    rs.close();
    bw.close();
    stmt.close();
    con.close();
    %>
    this is the error ...:
    The application script threw an exception: java.sql.SQLException: Excepción de E/S: The Network Adapter could not establish the connection BSF info: DebugVariables at line: 0 column: columnNo
    Iknow tha is taking "#PROJECT.IP" like my ip .. but there is a variable that is on my package with a assiged value 127.0.0.1
    but jython is not taking it !!
    I make a raise to the variable .. and yes the variable take de value "127.0.0.1" but not in my jython code
    note: My variable is linked with OK to the jython procedure on my package
    Can i acces to the variable? from jython how?.
    Thanks in advanced!!
    Edited by: user11334562 on 28-abr-2010 15:12

    1. This is not a jython code, this is beanshell code. Anything you put between <% and %> is beanshell code which is sort of a parser code for ODI. Check out
    http://www.beanshell.org/
    2. Your expression for "url" variable is wrong. If you want to concatenate strings, you have to use + sign i.e it should be:
    String url = "jdbc:oracle:thin:@"+ip+":1521:orcl";
    Other statments need to be adjusted similar way.
    3. Why would you want to go through so many trouble? Just extract the SQL into a file using ODI SQLUnload tool. The sql should be:
    SELECT c.var_name||' #'||d.project_name||'.'||c.var_name FROM snp_package a JOIN snp_step b On (a.i_package = b.i_package) JOIN snp_var c ON (b.i_var = c.i_var) JOIN snp_project d ON (c.i_project = d.i_project) WHERE UPPER(pack_name) = upper('DebugJava')
    4. How does printing a set of variables from a particular package help you to write dynamic interface?

Maybe you are looking for

  • Quick review of 10.9 upgraded from 10.6.8 on older MBP

    Hello all, I just upgraded two laptops a MBP15 5,4 and a MBP13 8,1/SSD to 10.9, both from 10.6.8. both have 4GB RAM I read a lot of issues, install problems, slow machines etc, etc.  Here's what i found. Folks here talked me out of doing a clean inst

  • ORDS (2.0.7) - URL Mapping - Names need to be lower case

    Using the latest ORDS (2.0.7) - when using settings to setup multiple databases, I have noticed that the the "URL Mapping" rule will not be picked up if the "Name" of the connection is not all lower case. The "Routing Rule" can be mixed case, but the

  • The hyperlink in the control panel has disapeared did I inadvertanly turned an option off??

    The hyperlink in the control panel has disapeared.  It was there yesterday but today it is gone.  Did I inadvertanly turned an option off??

  • Flash cs6 vista

    need your help does the flash cs6 trial work with vista home edition? according to what is written on the web it doesn't but on other forum I've found a quite opposite information; ty

  • Best quality, smallest file size

    I have a 3.5 minute motion project which includes the opening credits to a video I am working on - how do I go about getting this into Final Cut Pro with the highest quality possible? I am very new to Final Cut Studio, so some input would really be a