How to handle the records that contain different number of columns

hi all,
I have a file (as source data)includes order information like:
H,P001,Smith,Sunnyvale
D,P001,PR97623,150,10.99,Ice cream
D,P001,PR33267,45,32.66,Popcorn
T,P001
H,P003,Williams,San Jose
X,P003,PR23563,19,25.54,Peanuts
T,P003
I want to transfer the file record to three target tables,
the record marked "H" to "Summary" table and sum money of the detail
the record marked "D" to "Detail" table
the record marked "X" to "Error" table
the expect result as below:
Summary table
Order_No Customer Address Total_Money
P001 Smith Sunnyvale 3118.2
(※3118.2=150*10.99+45*32.66)
Detail table
Order_No Prodcut_Id Prodcut_Name Quantity Price
P001 PR97623 Ice cream 150 10.99
P001 PR33267 Popcorn 45 32.66
Error table
Head Order_No Record_No
X P003 6
(※6 is the line no in the file)
How can I do this in ODI , could anyone give some hints?

Hi AGUI,
You can do this by the following way,
1) create the File datastore for the file with 6 columns
while creation select the following option file format as Delimited
record seperator as MS-DOS and field sep as other specify "," in the text box.
-- check the file datastore maps correctly by view the data.
2) create the interface int1 for transfer the data from this file to temp table( the temp table should have one more column for getting the line number( it should be the sequence number).
3) create the another interface int2, in this interafce you need to transfer the data from the[b] temp table to Detail table (use filter for gatting D record.
4) create the interace int3 transfer the data from the temp table to Summary table. please keep the total_money field as null for this interace
and use Odi procedure for updating this field with reference of details table.
5) create interface int4 for transfer the error date by transferinf from temp table to error table.
Thanks,
Madha

Similar Messages

  • How to check the records that were inserted in a day?Please Help!

    HI All,
    How to check the records that were insterted in a day in a standard SAP table?
    For example : I want retrieve the records that were added in a day in WLK1 table.
    How do i do this?
    Urgent!! Please help!
    Thanks in advance!
    Sandeep Shenoy

    HI
        Changes to data within a table can be automatically logged. Such automatic logging of changes is called automatic table history. To turn on logging, tickmark the Log Data Changes check box on the Technical Settings screen
    IF THIS IS ALREADY DONE FOR A PARTICULAR TABLE, YOU CAN GET THE RECORD OF CHANGES THAT YOU MADE FOR THAT PARTICULAR TABLE AS EXPLAINED UNDER
    <a href="http://64.233.179.104/search?q=cache:pOdVy55jfAIJ:cma.zdnet.com/book/abap/ch06/ch06.htmHISTORYOFUPDATESINADAYINABAP&hl=en&gl=in&ct=clnk&cd=1">Automatic Table History and Change Documents</a>
    IF ITS HELPFUL PLEASE REWARD POINTS
    REGARDS
    ANOOP

  • How to find the records using contains with the word like this 'some text-some text'?

    Hi,
    How to find the records using the full text contains keyword and that column contains ‘some text-some text’
    In the above some text can be anything.
    Does anybody know please let me know.
    Thanks,

    Hello,
    You can try to create a Full Text Index on the table and use CONTAINS() to get the record which contains the specify words.
    For example:
    SELECT * FROM TABLE WHERE CONTAINS(column_name, 'some text')
    Reference:
    Full-Text Search (SQL Server)
    Creating Full Text Catalog and Full Text Search
    Regards,
    Fanny Liu
    Fanny Liu
    TechNet Community Support

  • Operator used when the target list contains different number of expressions

    Hi all,
    My problem is that, i am having 4 columns in the first select statement, and in the second select 6 columns.
    The first 4 columns in the second select are the same(column name) as first select.
    But both selects have different criteria.
    Can anyone tell me is there any operator in sql, so that i can join these two in a single one.
    I have little idea about unions, joins. For using union, the number of expressions should be same in both select statements.

    Hi,
    you can use UNION and the SQL which has less number of columns you can use dummy columns as subsitute ( in place of columns which are not present in the SQL)
    -- SELECT 'first' AS FIRST , 0 as SECOND FROM DUAL;
    Thanks

  • How to read the messeges that appear as number!

    Hi,
    can nay one hear tell me how to read the messege if u have the messege number?
    i tried with Tcode SE91, but there it is allowing only three characteristics where my messege number has 4, ( exmaple G003 )
    Thanks,
    Ravi

    Ravi,
    LOOP AT MESSTAB.
          MOVE-CORRESPONDING MESSTAB TO MESSAGES.
          MESSAGES-PLNUM = PLAN-PLNUM.
          CALL FUNCTION 'FORMAT_MESSAGE'
               EXPORTING
                    ID   = MESSTAB-MSGID
                    LANG = MESSTAB-MSGSPRA
                    NO   = MESSTAB-MSGNR
                    V1   = MESSTAB-MSGV1
                    V2   = MESSTAB-MSGV2
                    V3   = MESSTAB-MSGV3
                    V4   = MESSTAB-MSGV4
               IMPORTING
                    MSG  = MESSAGES-TEXT.
          APPEND MESSAGES.
        ENDLOOP.
    Don't forget to reward if useful...

  • How to get the records which contains single quotation.

    Hi All,
    I am having one table which contains the name like D'ales,D'silva.
    I have have one filter in APEX as "Name".
    I need to filter it like D' % this . How can i do in apex, the replace command is working in SQL but not in Apex.
    My filter is like this.
    IF :P136_NAME IS NOT NULL THEN
    STR := STR||' AND UPPER( replace(name,'''','''''')) LIKE '''||UPPER(:P136_NAME)||''' ';
    END IF;
    very urgernt
    Thanks in Advance,

    Hi,
    You can use:
    STR := STR || ' AND instr(upper(NAME), upper(nvl(:P136_NAME, NAME))) > 0';Andy

  • How to handle the procedure that reutrn object types as out parameter

    I have a procedure where it returns object(CREATE OR REPLACE TYPE xyz AS OBJECT) as a OUT parameter.
    Now i have to pull the data from this type and need to send the data in excel.
    Procedure will fetch data and assign it to object with lot of validations and local parameters variables..
    How can i push the data from the out parameter and need to send that in excel..Its an oracle database 10g..

    here's a basic example...
    SQL> set serveroutput on;
    SQL> create or replace type t_obj as object (x number, y number);
      2  /
    Type created.
    SQL> ed
    Wrote file afiedt.buf
      1  create or replace package mypkg as
      2    procedure testit(p_obj out t_obj);
      3    procedure callme;
      4* end;
      5  /
    Package created.
    SQL> ed
    Wrote file afiedt.buf
      1  create or replace package body mypkg as
      2    procedure testit(p_obj out t_obj) is
      3    begin
      4      p_obj := t_obj(1,2);
      5    end;
      6    procedure callme is
      7      v_obj t_obj;
      8    begin
      9      testit(v_obj);
    10      dbms_output.put_line('X='||v_obj.x||' Y='||v_obj.y);
    11    end;
    12* end;
    SQL> /
    Package body created.
    SQL> exec mypkg.callme;
    X=1 Y=2
    PL/SQL procedure successfully completed.
    SQL>

  • Deleting the Records that are in odd position

    Hi,
       How to delete the records that are in the odd position.
    This is my program. Plz correct me. Iam not able to delete the records.
    REPORT  ZMTSHPRG19                              .
    TYPES:
    BEGIN OF TY_EMP,
    EMPID(4) TYPE N,
    ENAME(30) TYPE C,
    DEPT(4) TYPE C,
    SALARY TYPE I,
    END OF TY_EMP.
    DATA:
    FS_EMP TYPE TY_EMP,
    IT_EMP TYPE TABLE OF TY_EMP.
    FS_EMP-EMPID = '1009'.
    FS_EMP-ENAME = 'XX'.
    FS_EMP-DEPT = 'D100'.
    FS_EMP-SALARY = 10000.
    APPEND FS_EMP TO IT_EMP.
    FS_EMP-EMPID = '1007'.
    FS_EMP-ENAME = 'YY'.
    FS_EMP-DEPT = 'D100'.
    FS_EMP-SALARY = '11000'.
    APPEND FS_EMP TO IT_EMP.
    FS_EMP-EMPID = 1008.
    FS_EMP-ENAME = 'ZZ'.
    FS_EMP-DEPT = 'D200'.
    FS_EMP-SALARY = 12000.
    APPEND FS_EMP TO IT_EMP.
    FS_EMP-EMPID = 1001.
    FS_EMP-ENAME = 'XY'.
    FS_EMP-DEPT = 'D200'.
    FS_EMP-SALARY = 10000.
    APPEND FS_EMP TO IT_EMP.
    FS_EMP-EMPID = 1003.
    FS_EMP-ENAME = 'XZ'.
    FS_EMP-DEPT = 'D300'.
    FS_EMP-SALARY = 8000.
    APPEND FS_EMP TO IT_EMP.
    FS_EMP-EMPID = 1002.
    FS_EMP-ENAME = 'YX'.
    FS_EMP-DEPT = 'D300'.
    FS_EMP-SALARY = 9500.
    APPEND FS_EMP TO IT_EMP.
    FS_EMP-EMPID = 1004.
    FS_EMP-ENAME = 'YZ'.
    FS_EMP-DEPT = 'D300'.
    FS_EMP-SALARY = 9500.
    APPEND FS_EMP TO IT_EMP.
    FS_EMP-EMPID = 1005.
    FS_EMP-ENAME = 'AA'.
    FS_EMP-DEPT = 'D100'.
    FS_EMP-SALARY = 10500.
    APPEND FS_EMP TO IT_EMP.
    FS_EMP-EMPID = 1006.
    FS_EMP-ENAME = 'BB'.
    FS_EMP-DEPT = 'D200'.
    FS_EMP-SALARY = 12000.
    APPEND FS_EMP TO IT_EMP.
    FS_EMP-EMPID = 1010.
    FS_EMP-ENAME = 'CC'.
    FS_EMP-DEPT = 'D100'.
    FS_EMP-SALARY = 15000.
    APPEND FS_EMP TO IT_EMP.
    LOOP AT IT_EMP INTO FS_EMP.
    WRITE:/ FS_EMP-EMPID,FS_EMP-ENAME,FS_EMP-DEPT,FS_EMP-SALARY.
    ENDLOOP.
    ULINE.
    DATA:
    LINE_COUNT TYPE I,
    W_REM TYPE I.
    W_REM = LINE_COUNT MOD 2.
    DESCRIBE TABLE IT_EMP LINES LINE_COUNT.
    SORT IT_EMP BY EMPID.
    IF W_REM = 0.
    LOOP AT IT_EMP INTO FS_EMP.
    WRITE:/ FS_EMP-EMPID,FS_EMP-ENAME,FS_EMP-DEPT,FS_EMP-SALARY..
    ENDLOOP.
    ENDIF.
    Thanks.

    TYPES:
    BEGIN OF TY_EMP,
    EMPID(4) TYPE N,
    ENAME(30) TYPE C,
    DEPT(4) TYPE C,
    SALARY TYPE I,
    END OF TY_EMP.
    DATA:
    FS_EMP TYPE TY_EMP,
    IT_EMP TYPE TABLE OF TY_EMP.
    FS_EMP-EMPID = '1009'.
    FS_EMP-ENAME = 'XX'.
    FS_EMP-DEPT = 'D100'.
    FS_EMP-SALARY = 10000.
    APPEND FS_EMP TO IT_EMP.
    FS_EMP-EMPID = '1007'.
    FS_EMP-ENAME = 'YY'.
    FS_EMP-DEPT = 'D100'.
    FS_EMP-SALARY = '11000'.
    APPEND FS_EMP TO IT_EMP.
    FS_EMP-EMPID = 1008.
    FS_EMP-ENAME = 'ZZ'.
    FS_EMP-DEPT = 'D200'.
    FS_EMP-SALARY = 12000.
    APPEND FS_EMP TO IT_EMP.
    FS_EMP-EMPID = 1001.
    FS_EMP-ENAME = 'XY'.
    FS_EMP-DEPT = 'D200'.
    FS_EMP-SALARY = 10000.
    APPEND FS_EMP TO IT_EMP.
    FS_EMP-EMPID = 1003.
    FS_EMP-ENAME = 'XZ'.
    FS_EMP-DEPT = 'D300'.
    FS_EMP-SALARY = 8000.
    APPEND FS_EMP TO IT_EMP.
    FS_EMP-EMPID = 1002.
    FS_EMP-ENAME = 'YX'.
    FS_EMP-DEPT = 'D300'.
    FS_EMP-SALARY = 9500.
    APPEND FS_EMP TO IT_EMP.
    FS_EMP-EMPID = 1004.
    FS_EMP-ENAME = 'YZ'.
    FS_EMP-DEPT = 'D300'.
    FS_EMP-SALARY = 9500.
    APPEND FS_EMP TO IT_EMP.
    FS_EMP-EMPID = 1005.
    FS_EMP-ENAME = 'AA'.
    FS_EMP-DEPT = 'D100'.
    FS_EMP-SALARY = 10500.
    APPEND FS_EMP TO IT_EMP.
    FS_EMP-EMPID = 1006.
    FS_EMP-ENAME = 'BB'.
    FS_EMP-DEPT = 'D200'.
    FS_EMP-SALARY = 12000.
    APPEND FS_EMP TO IT_EMP.
    FS_EMP-EMPID = 1010.
    FS_EMP-ENAME = 'CC'.
    FS_EMP-DEPT = 'D100'.
    FS_EMP-SALARY = 15000.
    APPEND FS_EMP TO IT_EMP.
    LOOP AT IT_EMP INTO FS_EMP.
    WRITE:/ FS_EMP-EMPID,FS_EMP-ENAME,FS_EMP-DEPT,FS_EMP-SALARY.
    ENDLOOP.
    ULINE.
    DATA:
    LINE_COUNT TYPE I,
    W_REM TYPE I,
    n type i value 1.
    DESCRIBE TABLE IT_EMP LINES LINE_COUNT.
    SORT IT_EMP BY EMPID.
    LOOP AT IT_EMP INTO FS_EMP.
    w_rem = n mod 2 .
    if w_rem = 0 .
    WRITE:/ FS_EMP-EMPID,FS_EMP-ENAME,FS_EMP-DEPT,FS_EMP-SALARY.
    endif.
    n = n + 1.
    ENDLOOP.
    <REMOVED BY MODERATOR>
    Edited by: Alvaro Tejada Galindo on Apr 11, 2008 4:34 PM

  • Need to process the records that are selected using checkbox in an ALV

    Hi ..
    I am displaying some data in an ALV using the Parent-child relation, the parent records has a check box which is input enabled.
    On click of a button on the toolbar, i need the checked records to be fetched and processed.
    Please help me on how to fetch the records that are checked..
    Thanks,
    Derek

    Hello Derek,
    Is ALV created using OOPS or using conventional FM?
    If you are making use of OOPS technique, then call this method:
    CALL METHOD <grid_name>->get_selected_rows.
    BR,
    Vishal.

  • How to lock the record in the Form

    .How to lock the record
    That is In my customized form if user query the record in one of our Customized form and the system automatically should prevent by quering the same record by other user for the same form .The message to be displayed as locked by another user .
    For example in standard form the same option is available.
    Form Name:GMEBCHED.FMB
    Module:ORACLE PROCESS MANUFACTURING(OPM)
    Could you pls help us how to implement the same for our Customized form .
    Appricaiate your help .
    Regards,
    Radha krishnan

    Hi,
    I tried to put the code under Post-Query trigger. Since user can input the selection criteria in the form. After the form open, after I input the "Update user" ID (this is in the non-base table block), the oracle message prompt: FRM-40653: Record not reserved for update or delete. Try again later..
    So, is there any method to solve it?
    Thanks a lot.
    Regards.

  • How to create an XSD for file adaptor which will ignore the records that are not required.

    Hi All,
       I have a requirement, the Fixed Length file contains
    30013742387462382938742      82347023984623087   
    30037348237  983743  9837423098  98347 
    10108472398   98034702398409238 9838472398   09823409238
    300163527 387462398746 38746293874693746324763
    101037642873643 37438724683746837648 873648736
    200138743986493874398
    2002738469837246
    10003784629837469283746937463987469387
    I need to select only the records that startswith 3001 and 3003 which are of different types and ignore the remaining records like 1010,2001,2002,1000.
    Can any one help me on this.

    You can make use of "conditionValue" or "startsWith" attributes while designing you native XSD.
    Check this example - Native Format Builder Wizard - 11g Release 1 (11.1.1.6.3) for better understanding.

  • How to handle the bad record while using bulk collect with limit.

    Hi
    How to handle the Bad record as part of the insertion/updation to avoid the transaction.
    Example:
    I am inserting into table with LIMIT of 1000 records and i've got error at 588th record.
    i want to commit the transaction with 588 inserted record in table and log the error into
    error logging table then i've to continue with transaction with 560th record.
    Can anyone suggest me in this case.
    Regards,
    yuva

    >
    How to handle the Bad record as part of the insertion/updation to avoid the transaction.
    >
    Use the SAVE EXCEPTIONS clause of the FORALL if you are doing bulk inserts.
    See SAVE EXCEPTIONS in the PL/SQL Language doc
    http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/tuning.htm
    And then see Example 12-9 Bulk Operation that continues despite exceptions
    >
    Example 12-9 Bulk Operation that Continues Despite Exceptions
    -- Temporary table for this example:
    CREATE TABLE emp_temp AS SELECT * FROM employees;
    DECLARE
    TYPE empid_tab IS TABLE OF employees.employee_id%TYPE;
    emp_sr empid_tab;
    -- Exception handler for ORA-24381:
    errors NUMBER;
    dml_errors EXCEPTION;
    PRAGMA EXCEPTION_INIT(dml_errors, -24381);
    BEGIN
    SELECT employee_id
    BULK COLLECT INTO emp_sr FROM emp_temp
    WHERE hire_date < '30-DEC-94';
    -- Add '_SR' to job_id of most senior employees:
    FORALL i IN emp_sr.FIRST..emp_sr.LAST SAVE EXCEPTIONS
    UPDATE emp_temp SET job_id = job_id || '_SR'
    WHERE emp_sr(i) = emp_temp.employee_id;
    -- If errors occurred during FORALL SAVE EXCEPTIONS,
    -- a single exception is raised when the statement completes.
    EXCEPTION
    -- Figure out what failed and why
    WHEN dml_errors THEN
    errors := SQL%BULK_EXCEPTIONS.COUNT;
    DBMS_OUTPUT.PUT_LINE
    ('Number of statements that failed: ' || errors);
    FOR i IN 1..errors LOOP
    DBMS_OUTPUT.PUT_LINE('Error #' || i || ' occurred during '||
    'iteration #' || SQL%BULK_EXCEPTIONS(i).ERROR_INDEX);
    DBMS_OUTPUT.PUT_LINE('Error message is ' ||
    SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
    END LOOP;
    END;
    DROP TABLE emp_temp;

  • How do I assign a file to a drive other than the drive that contains my program software?

    I've just installed a video editing program on my new Mac Pro Xeon 64 bit workstation. I want to ensure that all my media files reside on a drive other than the drive that contains programs. I had no problem doing this on my old Dell. How do I do this on my Mac Pro? -- Gary

    Application Preferences.
    Next time, 'what' program would also help.
    Most people do setup with a dedicated boot drive with OS and apps, .then use other drives or array(s) for media, scratch as needed, including external hardware RAID.

  • How to handle the control records in case of file to idoc scenario.

    Hi All,
    can you please clarify me how to handle the control records in case of file to idoc scenario.

    Hi,
    In File to Idoc scenario even though you selected apply control record values from payload and you are not getting those correct values which you have provided in the mapping.
    Also check the checkboxes Take sender from payload and Take receiver from payload along with the Apply control record values from payload checkbox
    Regards
    Seshagiri

  • How to handle the different pricing conditions changes in BI.

    Dear Friends
    can any one send me  Regarding
                    How to handle the different pricing conditions changes in BI.
    Thanks & Regards
    Ramana

    Hi,
    Take a look at the 0sd_o06 ODS and 2lis_13_vdkon datasource for sales billing conditions.
    http://help.sap.com/saphelp_nw70/helpdata/EN/36/8188408bc0bb4de10000000a1550b0/frameset.htm
    http://help.sap.com/saphelp_nw70/helpdata/EN/7f/0f8c4037fba62be10000000a1550b0/frameset.htm
    Regards.

Maybe you are looking for

  • PDF files not getting generated

    Hi friends, Through our application we are generating PDF to network location. Suddenly it stoped from last month. I am not able to trace exact problem. forms version 6i we are using. PROCEDURE P_PRINT_GRN                                    (p_type V

  • UIButton Animation Problem

    In my application, I have buttons that are moving across the screen, and the objective is to press the buttons as quickly as possible. The animation moves the buttons, but you cannot press the button until the button is in the final position of the a

  • PS CS5 Write Acess Error saving to a windows 2008 server share

    Hi Everyone, Our macs are running Snow Leopard 10.6.7 and we save/open files on a Windows 2008 Server via SMB, this particular problem, seems to be happening only with Photoshop: Sometime, when we try to save an image, photoshop returns a write acces

  • GUI_UPLOAD FM in a batch program

    Is is possible to use FM GUI_UPLOAD in a batch program?  I am thinking about a program that will grab, one by one, every csv file in a particular directory and processing them (entering orders).  How would one use this FM in a batch process? Regards,

  • Mobile Recovery

    I took out the TEP when i bought my S3's. I see that to lock your phone or locate it should it be lost, stolen, misplaced, etc. it can be located with the TEP app from Verizon. Verizon says it's a $1.00 mor per month per phone. Mobile Recovery says i