Urgent - Looping/Iterating in ODI 10g

Hi Experts..
I am trying to carry out a simple loop in ODI 10g(10.1.3.5.6), But somehow the loop gets into an infinite loop. Please give your suggestions..
I have created two variables:
RuleCount--->(DataType-AlphaNumeric)-->Action(Non_Persistent) -->Refreshing Tab(select count(*) from Rule_Num table);
Counter-->(DataType-AlphaNumeric)-->Action(Non_Persistent)-->Refreshing Tab(select #Counter+1 from dual);
I have created a package where I have these variables that help in looping through the RuleCount and insert some dummy records into a table using a procedure.
Package --> RuleCount(I have made this as a DECLARE variable) -->Counter(I have made it a SET VARIABLE and assigned 1 to it)-->RuleCount(I have made this as an evaluate variable and the operator is >= #Counter)
In the True path, I have an ODI procedure that inserts a dummy record into a table.
Next I have Counter(I have made this a Refreshing variable) and the okay path of it is pointing to the RuleCount(Evaluate)
Every time I run the session it creates an infinite loop.
Did any one face this issue before? Any suggestions would really help
Thanks,
Manoj Nair.

Hi
I am trying to carry out a simple loop in ODI 11g, But somehow the loop gets into an infinite loop. Please give your suggestions..
I have created two variables:
TotalCount--->(DataType-Numeric)-->Action(Non_Persistent) -->Refreshing Tab(select count(*) from Investment table);
Counter-->(DataType-Number)-->Action(Non_Persistent)-->Refreshing Tab(select #Counter+1 from dual);
Var1-->(DataType-Number)-->Action(Latest_value)-->Refreshing Tab(select #TotalCount-#Counter from dual)
I have created a package where I have these variables that help in looping through the TotalCount and insert some dummy records into a table using a procedure.
Package --> TotalCount(I have made this as a DECLARE variable) -->Counter(I have made it a Refresh VARIABLE and default value is 0)-->Var1(I have made this as an refresh variable )-->Var1(I have made this as an Evaluate variable and in condtion ,i checked it with 0 )
if true then exit else go to again in loop
In the True path, I have an ODI procedure that inserts a dummy record into a table.
Any suggestions would really help
Thanks,

Similar Messages

  • Query  Regarding Updation/Migration of ODI 10g To ODI 11g.

    Hi All,
    Currently I am using ODI 10g Version & Repositories ( Work & Master) have been installed on Oracle database version "Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi"
    We are thinking to migrate from ODI 10g to ODI 11g Version 11.1.1.5 & i have some queries which are metioned below.
    1. Can we install ODI 11g Version 11.1.1.5 version with Repositories ( Work & Master) on Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi" or do i need to upgrade my database version to 11G?.
    2. If yes then, Can i upgrade or use exting Repositoires ( 10g one) for ODI 11g OR i have to create new Repositoires & move/migrate the objects of 10G repositories as mentioned in the Oracle installation doc.
    3. Currently I am using OBIEE 10g for reposrting purpose & if i switch to ODI 11g , Do i need to use OBIEE 11g?
    ODI gurus, I need your reponse ASAP & i have to share it on urgent basis.
    Thanks
    Edited by: neeraj_singh on May 15, 2013 9:58 PM

    neeraj_singh wrote:
    Hi All,
    Currently I am using ODI 10g Version & Repositories ( Work & Master) have been installed on Oracle database version "Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi"
    We are thinking to migrate from ODI 10g to ODI 11g Version 11.1.1.5 & i have some queries which are metioned below.
    1. Can we install ODI 11g Version 11.1.1.5 version with Repositories ( Work & Master) on Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi" or do i need to upgrade my database version to 11G?.You can install ODI 11.1.1.5 but you have to upgrade your repositories using upgrade assistant
    refer http://docs.oracle.com/cd/E23943_01/upgrade.1111/e12642/tasklist.htm#CIHGIDFG
    2. If yes then, Can i upgrade or use exting Repositoires ( 10g one) for ODI 11g OR i have to create new Repositoires & move/migrate the objects of 10G repositories as mentioned in the Oracle installation doc.No need to create new repositories. You just upgrade them. But you need to takecare of certain things as you are a 10g user. Refer below link for the prerequisite
    http://docs.oracle.com/cd/E23943_01/upgrade.1111/e12642/prevusers.htm
    3. Currently I am using OBIEE 10g for reposrting purpose & if i switch to ODI 11g , Do i need to use OBIEE 11g?Not clear about the question ?
    >
    ODI gurus, I need your reponse ASAP & i have to share it on urgent basis.
    Thanks
    Edited by: neeraj_singh on May 15, 2013 9:58 PM

  • ODI 10g Scheduler picking incorrect time - Issue

    When am scheduling a ODI scenario at EST time using scheduler agent, it is executing at different time. For Ex.,  lets say i scheduled my job at 5 PM EST daily. I can see their time in SCHEDULING INFORMATION window as 9 PM EST daily (i.e Current EST + 4 Hrs).
    Jobs are not getting triggered at 5 PM EST but it is executing at 9 PM EST. Whereas when i look into ODI OPERATOR, it is showing as 5 PM EST in execution log.
    Am facing this issue once i installed ODI 10g from WINDOWS 2003 server to WINDOWS 2008 R2 Server. Is it a bug in the 10g product or some other JAVA/JRE/JDK related issues.
    What might be the exact issue ? As It is really urgent problem, Can any one help me asap ?

    The master repository contains connectivity to the work repository. If you just clone the master repository the work repository connectivity in it still point to the original work rep. So running upgrade on cloned copy of master would result in upgrade of original work rep instead of cloned work rep. I guess this is what happened in your case. So you should try to restore the work rep in the original schema.

  • ODI 10G getPAckage()

    Hi ,
    I want to write a procedure like this:
    DECLARE
    CURSOR C IS
    SELECT table_name FROM ALL_TABLES WHERE table_name LIKE 'TMP_<%=odiRef.getPackage("PACKAGE_NAME")%> %' AND owner='STG';
    R C%ROWTYPE;
    BEGIN
    OPEN C;
    LOOP
    FETCH C INTO R;
    EXIT WHEN C%NOTFOUND;
    BEGIN
    STG.DROP_TABLE(R.TABLE_NAME);
    EXCEPTION WHEN OTHERS THEN
    NULL;
    END;
    END LOOP;
    CLOSE C;
    END;
    But I guess it desn't exists odiRef.getPAckage("PACKAGE_NAME") method in odi 10g.How can ı get packagename ?
    Thx a lot

    If I understand, you've created an ODI procedure. And you have inserted this procedure as a step of an ODI package.
    And you want to retrieve the name of the package that contains this procedure.
    Is that right ?
    If so, you can find the name of the package that use this procedure by using a query on the work repository.
    Here's the query :
    select pack.pack_name as PACKAGE
    FROM
    odi_work.SNP_PACKAGE Pack
    inner join odi_work.SNP_STEP step on step.i_package = pack.i_package
    inner join odi_work.snp_trt proc on proc.i_trt = etape.i_trt
    WHERE proc.trt_name='enter the name of your procedure'
    You can write this query on the "SQL on source" tab of your procedure. And use the result on the "SQL on target" tab.
    In "target tab", you can write something like that :
    SELECT table_name FROM ALL_TABLES WHERE table_name LIKE 'TMP_:PACKAGE%> %' AND owner='STG';
    If you don't want to enter the name of procedure manually, I assume you can also retrieve it with "<%=odiRef.getStep("STEP_NAME")%>" method. But your step must have the same name than your procedure (this is the default behaviour)

  • ODI 10g Load table havfing XMLTYPE as one of the data type

    I'm trying load data from source to target(Both Oracle) same table. The table has XMLTYPE as one of the data type. I can load the data, if I exclude that one particular column.
    Is there any way to load the data from that XMLTYPE column as well? Please provide your input.
    Source and traget has the same table structure.
    Version: ODI 10G
    below is the sample table structure.
    CREATE TABLE APPLICATION
    APPLID VARCHAR2(20 BYTE) NOT NULL,
    JOBTYPE VARCHAR2(20 BYTE),
    USRID VARCHAR2(20 BYTE) NOT NULL,
    APPDOC      SYS.XMLTYPE,
    APPLSTATUS VARCHAR2(30 BYTE),
    APPLDATE DATE
    Thanks

    Hi Pankaj,
    Remember that 1 character is not equal to 1 byte anymore while numbers/hexadecimals are still.
    So, if you have structures that are a mixture of characters and integers/hexadecimals etc, you can not move data from structure to structure as easily as before.
    In code you mentioned:
    LOOP AT L_TAB INTO L_REC.
    APPEND L_REC TO LIST_TAB.
    ENDLOOP.
    Avoid moving directly from L_REC to LIST_TAB. You can try to define a work area (WA_TAB) for LIST_TAB and use a MOVE-CORRESPONDING from L_REC to the WA_TAB. Then append WA_TAB.
    If the field names from L_REC do not match the field names in LIST_TAB, you can manually move each field value to the correct field in the work area.
    Reward points if this solves your issue

  • Getting Error Out Of Memory while importing the work repository in ODI 10g

    I exported the work repository from topology of ODI 10g of one DB and tried importing it in the another ODI 10g topology of another DB.While importing i got the error 'Out of Memory' .
    Can somebody suggest me ,how to solve the heap size out of memory issue while importing in ODI 10g.
    Thanks in Advance.

    Hi,
    you have to post your question in ODI forum
    Data Integrator
    Suresh

  • The speed of the "for loop iteration"

    Hi all:
    I have written a short mini program just to test out the speed of a "for loop iteration"
    package generator;
    * <p>Title: </p>
    * <p>Description: </p>
    * <p>Copyright: Copyright (c) 2004</p>
    * <p>Company: </p>
    * @author not attributable
    * @version 1.0
      private static long tmp = 0;
      public static int count=0;
      public synchronized long getValue(){
          long value = 0;
        value = 10 * System.currentTimeMillis();
        if(value == tmp){
          value++;
          count++;
        tmp = value;
        return value;
      public static void main(String[] args) {
       for (int i=0;i<1000;i++){
          getValue();
        System.out.println("count is " + count);
    }And i find that on average, count will be a value between 498-500, which probably means that on average the speed of a for loop is around 0.5 ms. But I guess the speed of the "for loop " iteration is also very much CPU dependent, could somebody possibly give me some education on this issue :) ?
    Also, anybody know exactly how System.currentTimeMillis works? For example, how does it get the current time from the OS, etc. let me know.
    Again, Many many thanks...

    Hi all:
    I have written a short mini program just to test out the speed of a "for loop iteration"You will find the overhead of the getValue() call, the increments and most importantly the System.currentTimeMillis() is what you are timing.
        public static void main(String args[])  {
            int ITER = 1000000000;
            long start = System.currentTimeMillis();
            for(int i=0;i<ITER;i++);
            long end = System.currentTimeMillis();
            System.out.println("Iterations per sec="+ITER*1000L/(end - start));
        }Prints the following Iterations per sec=576368876Running on a 1.8 GHz Intel/Windows2000

  • Implement MAX / JOIN in ODI 10g?

    What is the approach for using MAX functions in ODI 10g? I need it to filter source data:
    SELECT SRC_TAB.*       
    FROM SRC_TAB
    INNER JOIN
    (SELECT MAX(COL1) COL1, COL2  FROM SRC_TAB GROUP BY COL2) B
    ON SRC_TAB.COL1=B.COL1 AND SRC_TAB.COL2 = B.COL2
    Luckily this issue has been addressed in ODI 11g.
    Thank you.

    That's not good especially when you have large volume of data.
    In this case, in 10g it's better to rely on a underline view rather than 2 interfaces.

  • ODI 10g - session keep a table locked

    Hi,
    We have a random issue, with ODI session that keep a lock on a table, even replication is finished and session becomes inactive
    It generated dead locks as a trigger has to update the target table.
    what happened :
    - user application create rows (13)
    - ODI scenario replicate the rows (contract table)
    - 2nd scenario based on same source with another sunscriber run a stored procedure to create records in another table (around 30, positions table)
    this 2nd locked the target table, and when the run of the procedure finished, and commited, the lock was not released
    - ODI replicate another table (price) 30mn later, a trigger on target update position table with new values
    ---> trigger failed with deadlock (ora 60)
    ---> ODI failed as the trigger raised back the error
    this issue happened after 10 hours of same activity without issue, chained lot of time, but suddenly the lock become persistent (more than 4 hours)
    what can I do?
    use ODI 10g 10.1.3.5.0 - RDBMS 10.2.0.4

    Hi !
    For small tables wich are mostly accessed with full table scan you can use
    ALTER TABLE <table_name> STORAGE (BUFFER_POOL KEEP);KEEP pool should be properly sized , setting will cause once the table is read oracle will avoid flushing it out from pool.
    T

  • Problem when exporting and importing project from odi 10g to odi 11g

    Hi,
    I want to migrate my project from odi 10g to odi 11g.
    But when i am importing the interface then it is giving the error of mising references .
    I have exported the project(without its child component),models
    (including my datastore),KM's,folder (without its child component),packages(with child components),interaces(with child components),procedures(with child components),variables from odi 10g.
    After exporting all these objects i imported all the objects with import type set as "Synonym mode insert" into odi 11g but when i imported the interface it is giving the error of missing references.
    Source technolgy is Oracle and target technolgy is Postgres.
    Topologies have been made in the ODI 11g same as in ODI 10g.
    Please help.

    You dont need to migrate the complete repository. You can migrate a project at a time into ODI 11.1.1.5.x
    You have to be careful while importing. You have to follow a sequence when importing.
    Empty Project -> KMs -> Models (with DB Stores) -> Variable -> Empty Folders -> Interfaces -> Procedures -> Packages ---- All in SYNONYM mode insert (no exceptions)
    And your repository id in 11g MUST be different from the one in 10g.

  • Cause loop iteration to reRender

    First off sorry if this has been asked ... did a quick search and didn't see anything.
    Anyway here's my problem:
    We iterate over a list in JSF to output some controls (which are dynamic determined in Java). This works fine.
    Then it was decided that the controls which this list outputs need to validate 'on-the-fly' as users move through them. Again no problems; used a4j:support.
    The only issue is that the a4j:support we cannot give it a reRender target as all the controls are generated by the loop. We could reRender the entire form or else we can put self-rendered a4j:outputPanels around each parameter ... this works except that in both cases it causes all controls to be reRendered (as expected) and not just the control which sent the ajax update. This makes the behavior of the page controls feel very twitch, especially if the user is moving through them quickly.
    Is there anyway of causes ONLY the particular loop iteration to be reRendered? I've tried messing around with a4j:region for this but have not had any success. Would be really appreciative if anyone has a solution for this.
    Here's the basics of our page code; I've omitted all control types besides h:inputText.
    <ui:repeat value="#{seam-outjected-list}" var="item">
       <a4j:outputPanel ajaxRendered="true">
          <h:inputText value="#{item.value}">
             <a4j:support event="onblur" ajaxSingle="true" />
          </h:inputText>
       <a4j:outputPanel />
    </ui:repeat>

    Shameless bump for new work day ... :[
    Also I've tried giving the output panel an ID and calling rerender on that even though its generated in the loop. I can see the loop index in the series of component IDs so I was hopeful but alas the same issues :(

  • Simulate Signal Express VI is sending two periods of the wave per loop iteration - how can I reduce this to one period?

    Hello,
    I've been trying to use the Signal Generator Express VI and DAQ Assistant in order to generate an output waveform, as seen in this NI tutorial video:
    http://www.ni.com/academic/students/learn-daq/generate/ (timestamp is at 2:07 for what I'm trying to do)
    For background, I'm trying to move a piston device using Labview. The sine waveform is intended to move the piston at a smooth speed. For every loop iteration, the Simulate Signal VI running into my DAQ Assistant moves the piston to its maximum displacement and back twice. I cannot determine why this is occuring.
    The settings in my "Configure Simulate Signal" tab are as follows:
    Frequency: 1Hz
    Phase: 90 deg
    Amplitude: 2
    Offset: -2
    I would like my piston to only reach its maximum displacement and return for every iteration of the loop. I've tried adjusting all of the settings within "Configure Simluate Signal" but I can only work in even numbers - sending the piston back and fourth two, four, or eight times, ect.

    The Simulate Signal VI is set for integer number of cycles and the default frequency set in the Cycles per Second control is 3.75 Hz. That results in the signal containing three complete cycles and the data array contains 8000 elements, not the nominla 10000 specified in the Express VI dialog.
    If you only want one cycle, you need to specify the signal so that you only get one. Either reduce the frequency or reduce the number of samples.
    As you have noticed Express VIs do one thing exceedingly well: They obscure what is going on inside.  I pulled your signal generation code out into a separate VI and then created a generator which will generate the same signal but allow you to select the number of cycles. It uses the Sine Waveform.vi from the Signal Processing  >> Waveform Generation palette.
    I also recommend that you change the structure of your program. The use of sequence structures is discouraged in LabVIEW  because they defeat dataflow are very inflexible when changes need to be made. A Producer/Consumer Design Pattern plus a state machine would probably be a good choice. This will allow separation of the daq acquisition from the saving to file so that the timing of one does not constrain the timing of the other.
    Setting the Analog Input Read to read multiple samples simultaneously and using the hardware timing of the data acquisiton device will get data faster and the timing will be precisely (compared to software timing) controlled by the hardware.
    Writing to the same file in parallel loops probably results in some strange behavior such as differing numbers of writes from acquired data compared to generated cycles. As the file grows, the writes may slow down due to the OS needing to fragment or reallocate space for the file.
    Lynn
    Attachments:
    Signal generator.vi ‏49 KB

  • Install ODI 10g on  64 bit Windows 2008 server

    Can we install ODI 10g on 64 bit Windows 2008 server ? if so Please provide the me the link for download
    Edited by: user1137989 on Oct 27, 2010 10:51 PM

    If you are looking for 10g then scroll down in the link (http://www.oracle.com/technetwork/middleware/data-integrator/downloads/index.html) Oracle Data Integrator 10g (10.1.3.5.0) and select for Microsoft Windows (x86) and extract and install .
    11g comes in 32 and 64 bit version .
    32 bit version is
    Oracle Data Integrator 11g (11.1.1.3.0)
    for Microsoft Windows (x86)
    64 bit version is .
    Oracle Data Integrator Companion 11g (11.1.1.3.0)
    for All Platforms
    Hope this helps .

  • ODI 10g configuration between Hyperion 9.3

    Hi,
    I have to pull the data from Hyperion Essbase, planning via ODI 10g.Please help me out how to configure between Hyperion and ODI 10g.
    If you have notes please send to my id [email protected]
    Thank You,
    Prasad

    Have a read of my blog as I have covered the steps - http://john-goodwin.blogspot.co.uk/2008/12/odi-series-extracting-data-from-essbase.html
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • My vi is writing just the same data into spreadsheet even after changing the loop iteration time. hw can I change this mode ?

    My VI is writing the same amount of data into spreadsheet file even after changing the for-loop iteration time

    You should post the VI (with appropriate values saved as default) to this thread.  (At least a JPEG or PNG screenshot).
    Inside the For Loop, right-click on the N terminal and create Indicator.  Run the VI and you will see how many times the Loop spins.
    Further guessing:  You may have a 2D array with two rows and many columns feeding the For Loop.

Maybe you are looking for

  • Unable to print from my wireless x2 allow printer

    I have a HP laptop and am running Windows 7. I have printed off this laptop many times in the past. Occasionally we have had problems with communication but it has been easily resolved. This week however, I can print from my desktop, my phone but not

  • Need help in GROUPING of COLUMN Based Query

    Hi, I am facing problem in generating a scenario: I have built a Query like this: SELECT a.sal, a.country FROM employee a, department d WHERE a.dept_code=b.dept_code I want the query where the Query will produce a result set based on SALARY based on

  • UnZip Paylaod....

    HI All, I am doing on File -> File Scenario. My Source File is a ZIP File(contains .txt file with tab delimeter). I need to unzip the file and sent to the target system. Currently I developed the scenario using payloadZipBean. If the ZIP File contain

  • Burning movie to DVD after it was already done

    Created a movie in iMove HD6, burned it to DVD. All is great! Days later, I need a few more copies, and iMovie wants to do the long rendering process again. Since it was done once, is there a way to expedite the process?

  • Error when opening files in KM Navigation Iview / Web-Dynpro

    Hello, i've created a navigation iview to browse through my km server, and also created a web dynpro application which allows me to do the same thing. I can browse through folders without any probles, but when I try to open a file,  I get a java.lang