File reverse in ODI

Hello Friends,
Can we reverse engineer a text file?
Using ODI-Designer (on Win2003 Server) we are having issue to reverse a file source which is on another server(Unix).
Steps followed:
- Defined a File source in Topology (/export/home/odi/input/files) with logical & context.
- Defined a model with File technology
- Performed a customized-reverse (Which RKM should we use here? (RKM file (from Excel))?
Appreciate your feedbacks.
thank you.

If you have scheduler agent running on Unix and if the file is visible to the agent then there is no need to map the directory to Windows.
However, please try doing the same with an agent (not a scheduler agent). Try reversing a file using the agent.
I assume that /export/home/odi/input/files/xxxxx.txt is present and is visible to the agent.
If that doesnt work still, try to do it the way I do.
I have designer on Windows. I have a drive mapped to unix FS on where the file exists and I access it using
//myserver/file/path/file.txt
I have created a physical data server using FILE technology *//myserver/file/path/*
and then a file model using file.txt
Then, I am able to reverse-engineer a file using local agent.
Hope that helps. Let us know how it goes.

Similar Messages

  • Understanding XML file handling in ODI

    Hi People,
    I've just completed a simple Interface to upload an XML file into an Oracle 10g database table. The interface copes well with both inserts and updates, so I'm very pleased about that. ;)
    This exercise has raised some questions though. I tried an experiment, which involved changing an element value in the XML file. I wanted to see if this change would be reflected in the file's associated Source Table in ODI. Unfortunately, it wasn't; despite me clicking the REFRESH button about 4 times. I guess my first question is:
    *1. How can I ensure a change to an element value in the XML file is reflected in ODI, after reverse engineering the associated data store from the file? Is this possible?*
    Moving on, I'm trying to understand the architecture ODI creates in the background, in order to support a source datasource/table that represents the XML file. I have created the following Topology to support the file:
    !http://img2.imageshack.us/img2/6895/odiscr375.jpg!
    As you can see, I've associated the XML file with a physical schema called ODI_XML. This represents a schema owned by my Oracle Database.
    Now, when I check the XML file data in ODI Designer, I notice that it's based on this query:
    select * from ODI_XML.TRADE
    I've checked the ODI_XML database schema, and there is neither a table nor any other objects named TRADE. My next question is therefore:
    *2. Was I correct to assign a database schema (named ODI_XML) to my XML Data Server, or should this have been something else? If so, what?*
    Thanks in advance for any assistance.
    James

    Since you are using the Variable ,when you right click and view datastore its missing the required path of the file, as value of the variable is not determined , to do so you need to either refresh or set the variable and call the interface or other ODI objects and in loop keep reading XML files one by one and that should work.

  • Passing Dynamic File Name to ODI nterface for processing to another system

    Hi,
    I need help regarding passing a Dynamically Name changing fixed length Flat File in ODI Interface. This interface is built for taking the Flat File as Input and process it to SQL Server by applying Data Mapping and transformations... The input Flat File Name is sequence generated for eg: OEORD1123.txt and next file will be OEORD1124.txt and it sits in Oracle Conc tier. How to pass the latest file name to ODI interface for processing
    Regards,
    Anil..

    Hi Guys...
    I would like to suggest a way.
    a) create a single interface with dynamic resouce name (a ODI variable) with a filter to the month column like:
    month_column = '#vCountMonth'
    b) in the refresh tab of a first variable (I named "vMonth"), use the following query: (varialbe should be alphanumeric, "not persistent")
    select to_char(to_date('#vCountMonth','MM'),'month') from dual
    c) create one more ODI variable (I named "vCountMonth"), alphanumeric, not persistent and at its refresh tab write:
    select lpad(to_char(#vCountMonth + 1), 2, '0') from dual
    d) now just create a package, drag and drop the objects in the following order:
    d.1) vCountMonth in set mode and set = 0 (zero)
    d.2) vCountMonth in refresh mode
    d.3) vMonth in refresh mode
    d.4) the interface
    d.5) vCountMonth in evaluate mode, evaluating "= 12"
    ==> if NO (KO, red line) link the KO line to d.2 step
    ==> a OK line is not necessary unless you have others steps after finish the evaluating
    Make any sense? That is a single loop to have the interface developed only one time.
    Please, remember to check each thread reply as Useful or Correct if they are useful to you...

  • How to do file validation with ODI 10.1.3.5

    Hi Team,
    Please help me, how to handle file validation with ODI?
    My source is files.
    Requirement:
    With ODI i have to do the file validation and file data loading successfully. Once it is successfully done then i have to move the particular file and move to different directory.
    Any internal tool is there in ODI package to watch the file.
    Regards,
    Suresh

    Hi Suresh,
    You can do your file loading and validation in an ODI interface.
    Once you are done with the interface, add it to a package, you can set up subsequent steps in the package to move the file to another location using the built in ODI file utilities in the package.
    Terrence.

  • File Debatching in ODI

    Hi,
    we have a requirement to read huge amount of data from an Oracle DB view into a flat file. but instead of creating one big file we want to debatch it into a number of smaller files. Does ODI provide any such kind of functionality ?

    I think you'll have to do this either by using filters in the interface to split the data flow, or using some customized jython scripts to "slice" the file after processing.
    Regards,
    -FX

  • Linux file name into ODI variable

    Hello All,
    I have a situation where we have files in one directory in linux ,I want to import the file name into a ODI variable.
    Ex : A_B_C_2014_01_20.zip (inside this zip file are the flat files with data) is the file name in /u02/source_files location , i want this into a ODI variable and once the data loading is complete ,i want to log it saying
    A_B_C_2014_01_20.zip complete
    A_B_C_2014_01_21.zip complete.
    So my other shell script will look for the complete flag and copy the next file into the ODI pick up location.In this case I need to pick up A_B_C_2014_01_22.zip and start the data loading.
    How do i implement this functionality in ODI. Please let me know.

    Issue was due to a syntax error. Case closed.
    Thanks!
    -OS

  • What is the file size that ODI can handle

    Hi all,
    What is the file size that ODI can handle ?????????
    can it handle 1GB files without any issues?????????
    Thanks
    Phani

    Hi Phani,
    It also depends on the type of file you are transfering. If have used the XML file around 1GB and the performance is very low. But we used the Database schema to load the XML data and the performance had increased very well.
    I never tried the large flat files load around 1GB.
    Thanks,
    Yellanki

  • Timestamp column  when reversed in ODI ,Logical Length increases to 11

    Hi
    I have a Timestamp Column in Oracle Database. When i see in SQL Developer
    I see DataType: Timestamp(6),But when I reverse in ODI the Logical length Increases
    to 11 and this gives an error when I execute my interface.
    Like that I have Many timestamp column in my project and for the Interface to work
    I have to manually decrease the length from 11 to 6,then it works fine.
    Is there any workaround.
    Thanks in Advance.

    Hi,
    Trying to help you. :-)
    Try to use Datatypes options in ODI. Go to Topology mgr->Physical Arch, elapse Oracle and just play around Data types (try to create a datatype for timestamp or else edit the existing one)and give TIMESTAMP(%L).
    May be you can find a solution.
    All the Best.:)

  • Dynamic XML file names in ODI

    Hi All,
    Is there a way can we call the XML names dynamically.?
    Here is the Scenario,
    I have multiple XML files of same structure to be loaded into an Oracle table.
    I have first created a XML dataserver and have given the exact path and the file name for reversing the XML model for the first time. The JDBC url was,
    jdbc:snps:xml?f=/xml/file/#XML_TEST.FILE_TEST.xml&s=XML_TEST&dod=true&ro=true
    After reversing i have changed the JDBC url of the XML dataserver to,
    jdbc:snps:xml?f=/xml/file/#XML_TEST.var_FILE_NAME.xml&s=XML_TEST&dod=true&ro=true
    I have created a variable *#XML_TEST.var_FILE_NAME* to get all the XML file names.
    After that i tried to view the data from the datastores present under previously reversed XML model, but was getting the following error :
    java.sql.SQLException: While generating the DTD from the XML file, a org.xml.sax.SAXParseException exception occurred saying: Document root element is missing.
    Do I need to change anything in the XML model or in the Datastores?
    Warm Regards,
    VBV

    Since you are using the Variable ,when you right click and view datastore its missing the required path of the file, as value of the variable is not determined , to do so you need to either refresh or set the variable and call the interface or other ODI objects and in loop keep reading XML files one by one and that should work.

  • Error while using Oracle Table as source file :- ODQ for ODI

    Hi All,
    I am getting some errors while working on ODQ with Oracle Tables as source file.
    If I am trying with text files (*.txt) as source and output it works fine.
    Please let me know how we can connect to an oracle table which is my source file.
    In the exported project -> “settings” folder
    In the file named eN_transfmr_pXX.stx
    For
    /CATEGORY/INPUT/PARAMETER/INPUT_SETTINGS/ARGUMENTS/EN
    TRY/DATA_FILE_NAME=
    What I need to give? (URL – source file)
    I tried with
    1. jdbc:oracle:thin:@xxx.xxx.x.xx:1521:ORCL
    2. jdbc:oracle:thin:UserName/Password@// xxx.xxx.x.xx:1521:ORCL
    i am not sure , is there any thing missing ???
    (Note: for text file I am giving “D:\Sourcefolder\customer.txt”)
    If I am running the batch file directly from CMD Prompt it’s displaying the error message
    “Cannot open file”
    If I am connecting with ODI it’s displaying the error
    com.sunopsis.dwg.function.SnpsFunctionBaseException: OS command returned 3503. …………………….
    Thanks in advance…
    Rathish A M

    Hi Ratish,
    ODQ supports files as inputs not Oracle tables, what you should do is:
    - define an ODQ process that takes a file as an input.
    - create an ODI process that dumps your Oracle table into a file that will be used by ODQ. (interface or OdiSqlUnload step)
    - run the ODQ process in ODI (in a package)
    - create an ODI interface that will load your ODQ output file into a DB.
    You can profile Oracle tables directly using Oracle Data Profiling.
    Thanks,
    Julien

  • A serious issue with excel file read in ODI

    hi gurus,
    Issue with excel file read is that we can read only one file by setting the path from ODBC Data Source Administrator-->System DNS -->Select Work book
    what i want to read the dynamic path(Every time I cant go back and set the Work book to select the excel file..
    So i came up with a solution to write a Vbscript that convert the excel to csv my problem got solved for dynamic paths the script is as follow:
    Set objArgs = WScript.Arguments
    For I = 0 to objArgs.Count - 1
    FullName = objArgs(I)
    FileName = Left(objArgs(I), InstrRev(objArgs(I), ".") )
    Set objExcel = CreateObject("Excel.application")
    set objExcelBook = objExcel.Workbooks.Open(FullName)
    objExcel.application.visible=false
    objExcel.application.displayalerts=false
    objExcelBook.SaveAs FileName & "csv",23
    objExcel.Application.Quit
    objExcel.Quit
    Set objExcel = Nothing
    set objExcelBook = Nothing
    Next
    Now this script convert the xls file to csv with comma seprated values
    e.g in excel sheet if data is ABC XYZ PQR
    csv will come with ABC,XYZ,PQR
    here the delimiter is , i want the delimiter as pipe | who's ascii code is 124
    but if i change 23 with 124 its not working i getting the error cannot save as...
    can anyone tell me that what should be the correct code for pipe
    so that the output is ABC|XYZ|PQR
    AS WE CAN USE THE SCRIPTS IN TOOLS
    Edited by: 789141 on Sep 14, 2010 11:33 PM

    I dont have the answer for your question but i have different approach in handling multiple Excel File.
    Step 1. Copy a sample source Excel File and Call it Final.xls .
    Step 2. Map this Final.xls to DSN and in Topology call this Final.xls
    Step 3. Do the Reversing and Map and test the Interface . Once its done.
    Step 4. Create a Package and using a http://odiexperts.com/?p=1426 get the list of all the Excel File
    Step 5 . Using this http://odiexperts.com/?p=273 create a Loop to Read the Excel File name
    Step 6 . Copy using OdiFileCopy to Final.xls and run your interface .
    Step 7. Increment the Loop and copy your next File for Final and run the interface
    Step 8 . Finally you will be able to read all the Excel File .
    Step 9 . Delete the source file [ Optional ]
    Hope this helps.

  • How to read variable file name into ODI

    Hello everyone,
    I apologize in advance if this has already been answered - I've done searches both on Google and this OTN area and have not found an answer to my query.
    I would like to do the following via ODI:
    1) rename a file in a specific directory
    2) process the file
    2) move the file to a backup directory
    3) rename the file again
    The file name is going to change everytime this process runs, as date is appended to it. I could create a variable with a system date in it and concatenate that into the filename before processing it, but I am not sure when they will run the ODI routine. Therefore, I would prefer to play it safe by doing something like a wildcard search in DOS.
    Example:
    Filename = TestFile12072010.csv
    I would like to:
    1) rename TestFile12072010.csv to TestFile.csv
    2) process the file
    3) move the file to another directory
    4) rename the file to TestFile<processdate>.csv
    I was hoping to do the first step using a DOS command that reads in TestFile*.csv. Note: I would expect there to be only 1 file with this naming convention and file extension in the directory.
    I have tried creating a stored procedure that uses the Operating System type, but it runs without stopping. I have also tried ODIFileCopy and OS Command. Obviously, I am doing something wrong since I am getting errors.
    Any guidance would be much appreciated! :)
    Thanks!
    -OS

    Issue was due to a syntax error. Case closed.
    Thanks!
    -OS

  • How to handle error for a file to file transform in ODI

    I am doing a lab for file to file transformation where source = CSV file and target = Flat file.
    1) When I am changing the datatype in source two files are getting created where one having the errored out data and the other having the errored message, how how to handle the errored data?
    2) If the target path is changed the session in ODI is showing as completed, it should error out. Here no files are created in source as earlier. Hoe to handle this type of error?

    Hi,
    I have used the following KMs in my transformation with the following options:
    IKM SQL Incremental Update
    INSERT    <Default>:true
    UPDATE    <Default>:true
    COMMIT    <Default>:true
    SYNC_JRN_DELETE    <Default>:true
    FLOW_CONTROL    <Default>:true
    RECYCLE_ERRORS    <Default>:false
    STATIC_CONTROL    <Default>:false
    TRUNCATE    <Default>:false
    DELETE_ALL    <Default>:false
    CREATE_TARG_TABLE    <Default>:false
    DELETE_TEMPORARY_OBJECTS     <Default>:true
    LKM SQL to SQL
    DELETE_TEMPORARY_OBJECTS    <Default>:true
    CKM Oracle
    DROP_ERROR_TABLE    <Default>:false
    DROP_CHECK_TABLE    <Default>:false
    CREATE_ERROR_INDEX    <Default>:true
    COMPATIBLE    <Default>:9
    VALIDATE    <Default>:false
    ENABLE_EDITION_SUPPORT    <Default>:false
    UPGRADE_ERROR_TABLE    true

  • How to using variable in log file name on ODI 10.1.3.5?

    Hi,
    how can i put a my variable into my log file name?
    now I use this syntax --> ExRate_<%=odiRef.getSysDate("MMddyyHHmm")%>.log.
    But I have a variable for example #server, the value = "oracleProd" and i want to put the variable value into my log file name.
    so the result that i want to get is --> ExRate_oracleProd_<%=odiRef.getSysDate("MMddyyHHmm")%>.log
    so how can I apply the variable value to my log file name? I try using odiRef.getSessionVarList(#Month) but it didn't work.
    Thanks.
    Regards,
    chris
    Edited by: 877142 on Aug 3, 2011 9:36 PM

    hi,
    You can by
    ExRate-#server-<%=odiRef.getSysDate("MMddyyHHmm")%>.log
    Note that I have changed the underscores to dashes. This is because ODI will assume that this is a wildcard/escape character.
    Hope this helps!!
    Bos

  • Multiple file processing in ODI

    Hi,
    I am currently processing some files in ODI using a combination of odifilewait and odifilemove.
    This is what i want to achieve:
    We have multiple files coming into a directory (SRC_DIR) from different source systems. Each file will come with a control.ok file which indicates that the FTP process is complete for that file e.g. Mor10.txt file comes with controlMor10.ok. We want to be able to move each file with its corresponding control file to a WORKING_DIR from where they will be processed.
    My question is, how do we configure the odifilewait and odifilemove processes to:
    1) Wait for control file and actual file in SRC_DIR
    2)Once both files are found, move to WORKING_DIR
    3) Continue checking, and moving files as they arrive till a predetermined time or until all the files we expect have been moved.
    We need to ensure that we only move a file when the control file is present, therefore, if we have Mor10.txt, controlMor10.txt, Mor11.txt in the SRC_DIR, we want to move only Mor10.txt and controlMor10.txt to WORKING_DIR.
    Replies are most welcome.
    Cheers,
    Olu

    Barbara,
    For some reason Process Multiple files is not highlighted so I cannot select or use this tool. Any input on how to get it highlighted so I can use it. Right now if I click on it nothing happens.
    Adam Holewinski
    Commercial Mgr./ Steam
    Cell (630) 536-7293
    [email protected]<mailto:[email protected]>
    GE imagination at work

Maybe you are looking for