<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic BAPI_PO_CREATE in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create/m-p/2955080#M697035</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Actually I don't have much time left so I though of posting this thread again, I am working on an interface where I need to create PO's using BAPI_PO_CREATE but to my bad luck the code that I have written is not working properly and I have just about an hour left to subit the program to my manager so can you please help me to get out of this very critical situation. I have written the following code,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;internal table to store the data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:  poheader LIKE bapimepoheader,&lt;/P&gt;&lt;P&gt;       poheaderx LIKE  bapimepoheaderx,&lt;/P&gt;&lt;P&gt;       poitem LIKE bapimepoitem OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       poitemx LIKE  bapimepoitemx  OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       return LIKE bapiret2 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       return2 LIKE  bapiret2 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       exppurchaseorder  LIKE  bapimepoheader-po_number,&lt;/P&gt;&lt;P&gt;       poschedule LIKE bapimeposchedule OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       poschedulex LIKE bapimeposchedulx OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_input_file OCCURS 0,&lt;/P&gt;&lt;P&gt;        ref_no(2),&lt;/P&gt;&lt;P&gt;        c_code(4),&lt;/P&gt;&lt;P&gt;        doc_typ(4),&lt;/P&gt;&lt;P&gt;        doc_date(10),&lt;/P&gt;&lt;P&gt;        vend_no(10),&lt;/P&gt;&lt;P&gt;        purch_org(4),&lt;/P&gt;&lt;P&gt;        purch_grp(3),&lt;/P&gt;&lt;P&gt;        currency(3),&lt;/P&gt;&lt;P&gt;        item_no(3),&lt;/P&gt;&lt;P&gt;        material(18),&lt;/P&gt;&lt;P&gt;        Plant(4),&lt;/P&gt;&lt;P&gt;        Strg_loc(4),&lt;/P&gt;&lt;P&gt;        Quantity(13),&lt;/P&gt;&lt;P&gt;        Price(10),&lt;/P&gt;&lt;P&gt;        ord_unit(7),&lt;/P&gt;&lt;P&gt;        del_date(10),&lt;/P&gt;&lt;P&gt;        seq_num(5) type n,&lt;/P&gt;&lt;P&gt;      end of it_input_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: it_ref_no_old(2)  type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: it_record like it_input_file occurs 0 with header line.&lt;/P&gt;&lt;P&gt;data: it_record_x like it_input_file occurs 0 with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: ld_file LIKE rlgrap-filename.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: it_ser_data like it_input_file occurs 0 with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_pipe_data occurs 0,&lt;/P&gt;&lt;P&gt;        line(1000),&lt;/P&gt;&lt;P&gt;      end of it_pipe_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:  file1(70) type c value '/tmp/test_file_',&lt;/P&gt;&lt;P&gt;       len type i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_lfa1 occurs 0,&lt;/P&gt;&lt;P&gt;        lifnr like lfa1-lifnr,&lt;/P&gt;&lt;P&gt;      end of it_lfa1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_t001 occurs 0,&lt;/P&gt;&lt;P&gt;        bukrs like t001-bukrs,&lt;/P&gt;&lt;P&gt;      end of it_t001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_mara occurs 0,&lt;/P&gt;&lt;P&gt;        matnr like mara-matnr,&lt;/P&gt;&lt;P&gt;      end of it_mara.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_mard occurs 0,&lt;/P&gt;&lt;P&gt;        lgort like mard-lgort,&lt;/P&gt;&lt;P&gt;      end of it_mard.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_marc occurs 0,&lt;/P&gt;&lt;P&gt;        werks like marc-werks,&lt;/P&gt;&lt;P&gt;      end of it_marc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_t024 occurs 0,&lt;/P&gt;&lt;P&gt;        ekgrp like t024-ekgrp,&lt;/P&gt;&lt;P&gt;      end of it_t024.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_t024e occurs 0,&lt;/P&gt;&lt;P&gt;        ekorg like t024e-ekorg,&lt;/P&gt;&lt;P&gt;      end of it_t024e.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_read_file occurs 0,&lt;/P&gt;&lt;P&gt;        line(1000),&lt;/P&gt;&lt;P&gt;      end of it_read_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: it_file like it_input_file occurs 0 with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_err_log occurs 0,&lt;/P&gt;&lt;P&gt;        seq_num(10),&lt;/P&gt;&lt;P&gt;        bukrs(4),&lt;/P&gt;&lt;P&gt;        bukrs_err_desc(50),&lt;/P&gt;&lt;P&gt;        lifnr(10),&lt;/P&gt;&lt;P&gt;        lifnr_err_desc(50),&lt;/P&gt;&lt;P&gt;        ekorg(4),&lt;/P&gt;&lt;P&gt;        ekorg_err_desc(50),&lt;/P&gt;&lt;P&gt;        ekgrp(3),&lt;/P&gt;&lt;P&gt;        ekgrp_err_desc(50),&lt;/P&gt;&lt;P&gt;        matnr(18),&lt;/P&gt;&lt;P&gt;        matnr_err_desc(50),&lt;/P&gt;&lt;P&gt;        werks(4),&lt;/P&gt;&lt;P&gt;        werks_err_desc(50),&lt;/P&gt;&lt;P&gt;        lgort(4),&lt;/P&gt;&lt;P&gt;        lgort_err_desc(50),&lt;/P&gt;&lt;P&gt;      end of it_err_log.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: v_fullpath type string,&lt;/P&gt;&lt;P&gt;      v_length type i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Definition of Variables                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;data: v_semfile like RLGRAP-FILENAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Definition of Constants                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;data: c_bukrs_err_desc(50)           value 'Invalid company code',&lt;/P&gt;&lt;P&gt;      c_currency_err_desc(50)        value 'Invalid valid currency',&lt;/P&gt;&lt;P&gt;      c_lifnr_err_desc(50)           value 'Invalid valid Vendor',&lt;/P&gt;&lt;P&gt;      c_ekorg_err_desc(50)           value 'Invalid valid purchasing Organization',&lt;/P&gt;&lt;P&gt;      c_ekgrp_err_desc(50)           value 'Invalid valid Purchasing group',&lt;/P&gt;&lt;P&gt;      c_matnr_err_desc(50)           value 'Invalid valid Material',&lt;/P&gt;&lt;P&gt;      c_werks_err_desc(50)           value 'Invalid valid Plant',&lt;/P&gt;&lt;P&gt;      c_lgort_err_desc(50)           value 'Invalid valid Storage Location'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Selection Screen                                                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;selection-screen  begin of block b1 with frame title text-001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters: p_ifname LIKE rlgrap-filename OBLIGATORY&lt;/P&gt;&lt;P&gt;                DEFAULT 'C:\'.&lt;/P&gt;&lt;P&gt;parameter : p_lfile TYPE c RADIOBUTTON GROUP g1,   " local file&lt;/P&gt;&lt;P&gt;            p_ufile TYPE c RADIOBUTTON GROUP g1 DEFAULT 'X'. " Unix file&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen  end of block b1 .&lt;/P&gt;&lt;P&gt;selection-screen  begin of block b2 with frame.             " text-002.&lt;/P&gt;&lt;P&gt;parameters: p_user like sy-uname MODIF ID md1 default syst-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen  end of block b2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen  begin of block b3 with frame title text-003.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters: p_upld radiobutton group upld default 'X' ,&lt;/P&gt;&lt;P&gt;            p_upldex radiobutton group upld.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen  end of block b3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;at selection screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;at selection-screen on value-request for p_ifname.&lt;/P&gt;&lt;P&gt;  call function 'F4_FILENAME'   "allows user to select path/file&lt;/P&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;P&gt;        program_name  = 'Z_PO_Creation'&lt;/P&gt;&lt;P&gt;        dynpro_number = syst-dynnr&lt;/P&gt;&lt;P&gt;        field_name    =  'p_ifname'&lt;/P&gt;&lt;P&gt;     IMPORTING&lt;/P&gt;&lt;P&gt;        file_name     = p_ifname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;START-OF-SELECTION *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;  if p_upld = 'X'.&lt;/P&gt;&lt;P&gt;    perform build_table.&lt;/P&gt;&lt;P&gt;    perform validate_data.&lt;/P&gt;&lt;P&gt;    perform disp_error_report.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    if p_ufile = 'X'.&lt;/P&gt;&lt;P&gt;      perform open_unix_dataset.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      perform open_files.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    perform data_process.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform put_data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  call_bapi&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM call_bapi .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT it_input_file.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; moving header data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MOVE: it_input_file-vend_no    TO  poheader-vendor,&lt;/P&gt;&lt;P&gt;          it_input_file-doc_typ    TO  poheader-doc_type,&lt;/P&gt;&lt;P&gt;          it_input_file-purch_org  TO  poheader-purch_org,&lt;/P&gt;&lt;P&gt;          it_input_file-purch_grp  TO  poheader-pur_group,&lt;/P&gt;&lt;P&gt;          it_input_file-c_code     TO  poheader-comp_code,&lt;/P&gt;&lt;P&gt;          it_input_file-doc_date   TO  poheader-doc_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; updating header data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if poheader-vendor       &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;      poheaderx-vendor       =  'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if poheader-doc_type     &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;      poheaderx-doc_type     =  'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if poheader-doc_date     &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;      poheaderx-doc_date     =  'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if poheader-purch_org    &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;      poheaderx-purch_org    =  'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if poheader-pur_group    &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;      poheaderx-pur_group    =  'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if poheader-comp_code    &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;      poheaderx-comp_code    =  'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; moving item data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MOVE: it_input_file-item_no    TO  poitem-po_item,&lt;/P&gt;&lt;P&gt;          it_input_file-plant      TO  poitem-plant,&lt;/P&gt;&lt;P&gt;          it_input_file-Strg_loc   TO  poitem-stge_loc,&lt;/P&gt;&lt;P&gt;          it_input_file-material   TO  poitem-material,&lt;/P&gt;&lt;P&gt;          it_input_file-quantity   TO  poitem-quantity,&lt;/P&gt;&lt;P&gt;          it_input_file-price      TO  poitem-price_unit,&lt;/P&gt;&lt;P&gt;          it_input_file-ref_no     TO  poitem-ref_doc,&lt;/P&gt;&lt;P&gt;          it_input_file-ord_unit   TO  poitem-po_unit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;updating Item data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if poitem-plant &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;      poitemx-plant     =  'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if poitem-material &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;      poitemx-material     =  'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if poitem-stge_loc &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;      poitemx-stge_loc     =  'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if poitem-quantity &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;      poitemx-quantity     =  'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  if poitem-price_unit &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        poitemx-price_unit    =  'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  if poitem-ref_doc &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        poitemx-ref_doc     =  'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  if poitem-po_unit &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        poitemx-po_unit     =  'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    poitemx-po_item      =  it_input_file-item_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    move: it_input_file-del_date      TO poschedule-delivery_date.&lt;/P&gt;&lt;P&gt;    move: 'X'                         TO poschedulex-delivery_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND:  poitem, poitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'BAPI_PO_CREATE1'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        poheader         = poheader&lt;/P&gt;&lt;P&gt;        poheaderx        = poheaderx&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        exppurchaseorder = exppurchaseorder&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        poitem           = poitem&lt;/P&gt;&lt;P&gt;        poitemx          = poitemx&lt;/P&gt;&lt;P&gt;        poschedule       = poschedule&lt;/P&gt;&lt;P&gt;        poschedulex      = poschedulex&lt;/P&gt;&lt;P&gt;        return           = return.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        return = return2.&lt;/P&gt;&lt;P&gt;    WRITE:/ 'PO created with PO number:' ,&lt;/P&gt;&lt;P&gt;          exppurchaseorder.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " call_bapi&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  data_process&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM data_process .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if it_input_file[] is initial.&lt;/P&gt;&lt;P&gt;    message E319 with 'There is no data to process!!'.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    sort it_input_file by ref_no.&lt;/P&gt;&lt;P&gt;    clear: it_ref_no_old.&lt;/P&gt;&lt;P&gt;    loop at it_input_file into it_record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if  it_record-ref_no ne it_ref_no_old .&lt;/P&gt;&lt;P&gt;        loop at it_input_file into it_record_x&lt;/P&gt;&lt;P&gt;             where  ref_no = it_record-ref_no .&lt;/P&gt;&lt;P&gt;        endloop.&lt;/P&gt;&lt;P&gt;        if  syst-subrc = 0 .&lt;/P&gt;&lt;P&gt;          PERFORM call_bapi.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      it_ref_no_old = it_record-ref_no.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " data_process&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  put_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM put_data .&lt;/P&gt;&lt;P&gt;  it_ser_data-ref_no = '1'.&lt;/P&gt;&lt;P&gt;  it_ser_data-c_code = 'AEM'.&lt;/P&gt;&lt;P&gt;  it_ser_data-doc_typ = 'AB'.&lt;/P&gt;&lt;P&gt;  it_ser_data-vend_no = '100004'.&lt;/P&gt;&lt;P&gt;  it_ser_data-purch_org = 'A001'.&lt;/P&gt;&lt;P&gt;  it_ser_data-purch_grp = '522'.&lt;/P&gt;&lt;P&gt;  it_ser_data-currency  = 'USD'.&lt;/P&gt;&lt;P&gt;  it_ser_data-item_no   = '10'.&lt;/P&gt;&lt;P&gt;  it_ser_data-material  = '1000003'.&lt;/P&gt;&lt;P&gt;  it_ser_data-Plant     = '1005'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       it_ser_data-Strg_loc&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  it_ser_data-Quantity  = '100'.&lt;/P&gt;&lt;P&gt;  it_ser_data-Price     = '2000'.&lt;/P&gt;&lt;P&gt;  it_ser_data-ord_unit  = 'EA'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       it_ser_data-del_date  =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  append it_ser_data.&lt;/P&gt;&lt;P&gt;  clear it_ser_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at it_ser_data.&lt;/P&gt;&lt;P&gt;    concatenate it_ser_data-ref_no it_ser_data-c_code it_ser_data-doc_typ it_ser_data-vend_no it_ser_data-purch_org it_ser_data-purch_grp&lt;/P&gt;&lt;P&gt;                it_ser_data-currency it_ser_data-item_no it_ser_data-material it_ser_data-Plant it_ser_data-Quantity it_ser_data-Price&lt;/P&gt;&lt;P&gt;                it_ser_data-ord_unit into it_pipe_data separated by '|'.&lt;/P&gt;&lt;P&gt;    append it_pipe_data.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;  clear it_pipe_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  open dataset file1 in text mode for output encoding default.&lt;/P&gt;&lt;P&gt;  if syst-subrc eq 0.&lt;/P&gt;&lt;P&gt;    loop at it_pipe_data.&lt;/P&gt;&lt;P&gt;      transfer it_pipe_data to file1.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;    close dataset file1.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " put_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  validate_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM validate_data .&lt;/P&gt;&lt;P&gt;  loop at it_input_file.&lt;/P&gt;&lt;P&gt;    read table it_t001 with key bukrs = it_input_file-c_code.&lt;/P&gt;&lt;P&gt;    if syst-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      move: it_input_file-c_code  to it_err_log-bukrs,&lt;/P&gt;&lt;P&gt;            it_input_file-seq_num to it_err_log-seq_num,&lt;/P&gt;&lt;P&gt;            c_bukrs_err_desc      to it_err_log-bukrs_err_desc.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    read table it_t024 with key ekgrp = it_input_file-purch_grp.&lt;/P&gt;&lt;P&gt;    if syst-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      move: it_input_file-purch_grp  to it_err_log-ekgrp,&lt;/P&gt;&lt;P&gt;            it_input_file-seq_num to it_err_log-seq_num,&lt;/P&gt;&lt;P&gt;            c_ekgrp_err_desc         to it_err_log-ekgrp_err_desc.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    read table it_t024e with key ekorg = it_input_file-purch_org.&lt;/P&gt;&lt;P&gt;    if syst-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      move: it_input_file-purch_org  to it_err_log-ekorg,&lt;/P&gt;&lt;P&gt;            it_input_file-seq_num to it_err_log-seq_num,&lt;/P&gt;&lt;P&gt;            c_ekorg_err_desc         to it_err_log-ekorg_err_desc.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    read table it_lfa1 with key lifnr = it_input_file-vend_no.&lt;/P&gt;&lt;P&gt;    if syst-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      move: it_input_file-vend_no    to it_err_log-lifnr,&lt;/P&gt;&lt;P&gt;            it_input_file-seq_num to it_err_log-seq_num,&lt;/P&gt;&lt;P&gt;            c_lifnr_err_desc         to it_err_log-lifnr_err_desc.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    read table it_mara with key matnr = it_input_file-material.&lt;/P&gt;&lt;P&gt;    if syst-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      move: it_input_file-material   to it_err_log-matnr,&lt;/P&gt;&lt;P&gt;            it_input_file-seq_num to it_err_log-seq_num,&lt;/P&gt;&lt;P&gt;            c_matnr_err_desc         to it_err_log-matnr_err_desc.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    read table it_marc with key werks = it_input_file-plant.&lt;/P&gt;&lt;P&gt;    if syst-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      move: it_input_file-plant      to it_err_log-werks,&lt;/P&gt;&lt;P&gt;            it_input_file-seq_num to it_err_log-seq_num,&lt;/P&gt;&lt;P&gt;            c_werks_err_desc         to it_err_log-werks_err_desc.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    read table it_mard with key lgort = it_input_file-Strg_loc.&lt;/P&gt;&lt;P&gt;    if syst-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      move: it_input_file-strg_loc   to it_err_log-lgort,&lt;/P&gt;&lt;P&gt;            it_input_file-seq_num to it_err_log-seq_num,&lt;/P&gt;&lt;P&gt;            c_lgort_err_desc         to it_err_log-lgort_err_desc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " validate_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  open_unix_dataset&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM open_unix_dataset .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  open dataset ld_file for input in text mode encoding default.&lt;/P&gt;&lt;P&gt;  do.&lt;/P&gt;&lt;P&gt;    read dataset ld_file into it_read_file.&lt;/P&gt;&lt;P&gt;    if sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      exit.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    append it_read_file.&lt;/P&gt;&lt;P&gt;    clear it_read_file.&lt;/P&gt;&lt;P&gt;  enddo.&lt;/P&gt;&lt;P&gt;  close dataset ld_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if NOT it_read_file[] is initial.&lt;/P&gt;&lt;P&gt;    loop at it_read_file.&lt;/P&gt;&lt;P&gt;      split it_read_file at '|' into it_file-item_no&lt;/P&gt;&lt;P&gt;                                      it_file-ref_no&lt;/P&gt;&lt;P&gt;                                      it_file-vend_no&lt;/P&gt;&lt;P&gt;                                      it_file-material&lt;/P&gt;&lt;P&gt;                                      it_file-quantity&lt;/P&gt;&lt;P&gt;                                      it_file-price&lt;/P&gt;&lt;P&gt;                                      it_file-ord_unit&lt;/P&gt;&lt;P&gt;                                      it_file-plant&lt;/P&gt;&lt;P&gt;                                      it_file-strg_loc&lt;/P&gt;&lt;P&gt;                                      it_file-purch_org&lt;/P&gt;&lt;P&gt;                                      it_file-purch_grp&lt;/P&gt;&lt;P&gt;                                      it_file-c_code&lt;/P&gt;&lt;P&gt;                                      it_file-doc_typ.&lt;/P&gt;&lt;P&gt;      append it_file.&lt;/P&gt;&lt;P&gt;      clear it_file.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " open_unix_dataset&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  open_files&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM open_files .&lt;/P&gt;&lt;P&gt;  v_semfile = p_ifname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'WS_UPLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      filename                = v_semfile&lt;/P&gt;&lt;P&gt;      filetype                = 'DAT'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      data_tab                = it_input_file&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      conversion_error        = 1&lt;/P&gt;&lt;P&gt;      file_open_error         = 2&lt;/P&gt;&lt;P&gt;      file_read_error         = 3&lt;/P&gt;&lt;P&gt;      invalid_table_width     = 4&lt;/P&gt;&lt;P&gt;      invalid_type            = 5&lt;/P&gt;&lt;P&gt;      no_batch                = 6&lt;/P&gt;&lt;P&gt;      unknown_error           = 7&lt;/P&gt;&lt;P&gt;      gui_refuse_filetransfer = 8&lt;/P&gt;&lt;P&gt;      OTHERS                  = 9.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " open_files&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_table .&lt;/P&gt;&lt;P&gt;  select bukrs into table it_t001&lt;/P&gt;&lt;P&gt;    from t001&lt;/P&gt;&lt;P&gt;    for all entries in it_input_file&lt;/P&gt;&lt;P&gt;    where bukrs = it_input_file-c_code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select ekgrp into table it_t024&lt;/P&gt;&lt;P&gt;   from t024&lt;/P&gt;&lt;P&gt;   for all entries in it_input_file&lt;/P&gt;&lt;P&gt;   where ekgrp = it_input_file-purch_grp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select ekorg into table it_t024e&lt;/P&gt;&lt;P&gt;    from t024e&lt;/P&gt;&lt;P&gt;    for all entries in it_input_file&lt;/P&gt;&lt;P&gt;    where ekorg = it_input_file-purch_org.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select lifnr into table it_lfa1&lt;/P&gt;&lt;P&gt;     from lfa1&lt;/P&gt;&lt;P&gt;     for all entries in it_input_file&lt;/P&gt;&lt;P&gt;     where lifnr = it_input_file-vend_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select matnr into table it_mara&lt;/P&gt;&lt;P&gt;     from mara&lt;/P&gt;&lt;P&gt;     for all entries in it_input_file&lt;/P&gt;&lt;P&gt;     where matnr = it_input_file-material.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select werks into table it_marc&lt;/P&gt;&lt;P&gt;     from marc&lt;/P&gt;&lt;P&gt;     for all entries in it_input_file&lt;/P&gt;&lt;P&gt;     where werks = it_input_file-plant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select lgort into table it_mard&lt;/P&gt;&lt;P&gt;     from mard&lt;/P&gt;&lt;P&gt;     for all entries in it_input_file&lt;/P&gt;&lt;P&gt;     where lgort = it_input_file-Strg_loc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  disp_error_report&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM disp_error_report .&lt;/P&gt;&lt;P&gt;  if NOT it_err_log[] is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    move: '0'                     to it_err_log-seq_num,&lt;/P&gt;&lt;P&gt;          'Vendor'                to it_err_log-lifnr,&lt;/P&gt;&lt;P&gt;          'Vendor Error'          to it_err_log-lifnr_err_desc,&lt;/P&gt;&lt;P&gt;          'Company Code'          to it_err_log-bukrs,&lt;/P&gt;&lt;P&gt;          'Company Code Error'    to it_err_log-bukrs_err_desc,&lt;/P&gt;&lt;P&gt;          'Purchase Org'          to it_err_log-ekorg,&lt;/P&gt;&lt;P&gt;          'Purchase Org Error'    to it_err_log-ekorg_err_desc,&lt;/P&gt;&lt;P&gt;          'Purchase Group'        to it_err_log-ekgrp,&lt;/P&gt;&lt;P&gt;          'Purchase Group Error'  to it_err_log-ekgrp_err_desc,&lt;/P&gt;&lt;P&gt;          'Plant'                 to it_err_log-werks,&lt;/P&gt;&lt;P&gt;          'Plant Error'           to it_err_log-werks_err_desc,&lt;/P&gt;&lt;P&gt;          'Storage Loc'           to it_err_log-lgort,&lt;/P&gt;&lt;P&gt;          'Storage Loc Error'     to it_err_log-lgort_err_desc,&lt;/P&gt;&lt;P&gt;          'Material'              to it_err_log-matnr,&lt;/P&gt;&lt;P&gt;          'Material Error'        to it_err_log-matnr_err_desc.&lt;/P&gt;&lt;P&gt;    append it_err_log.&lt;/P&gt;&lt;P&gt;    sort it_err_log by seq_num.&lt;/P&gt;&lt;P&gt;    loop at it_err_log where seq_num eq '0'.&lt;/P&gt;&lt;P&gt;      move 'Seq Num' to it_err_log-seq_num.&lt;/P&gt;&lt;P&gt;      modify it_err_log.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;    concatenate 'c:\inventory_error_log' syst-datum syst-uzeit '.xls'&lt;/P&gt;&lt;P&gt;      into v_fullpath.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'GUI_DOWNLOAD'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  BIN_FILESIZE                    =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        FILENAME                        =  v_fullpath&lt;/P&gt;&lt;P&gt;        FILETYPE                        = 'DAT'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  APPEND                          = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  WRITE_FIELD_SEPARATOR           = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER                          = '00'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TRUNC_TRAILING_BLANKS           = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  WRITE_LF                        = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  COL_SELECT                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  COL_SELECT_MASK                 = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DAT_MODE                        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CONFIRM_OVERWRITE               = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_AUTH_CHECK                   = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CODEPAGE                        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IGNORE_CERR                     = ABAP_TRUE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REPLACEMENT                     = '#'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  WRITE_BOM                       = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TRUNC_TRAILING_BLANKS_EOL       = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  WK1_N_FORMAT                    = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  WK1_N_SIZE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  WK1_T_FORMAT                    = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  WK1_T_SIZE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     IMPORTING&lt;/P&gt;&lt;P&gt;       FILELENGTH                      = v_length&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        DATA_TAB                        = it_err_log&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FIELDNAMES                      =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     EXCEPTIONS&lt;/P&gt;&lt;P&gt;       FILE_WRITE_ERROR                = 1&lt;/P&gt;&lt;P&gt;       NO_BATCH                        = 2&lt;/P&gt;&lt;P&gt;       GUI_REFUSE_FILETRANSFER         = 3&lt;/P&gt;&lt;P&gt;       INVALID_TYPE                    = 4&lt;/P&gt;&lt;P&gt;       NO_AUTHORITY                    = 5&lt;/P&gt;&lt;P&gt;       UNKNOWN_ERROR                   = 6&lt;/P&gt;&lt;P&gt;       HEADER_NOT_ALLOWED              = 7&lt;/P&gt;&lt;P&gt;       SEPARATOR_NOT_ALLOWED           = 8&lt;/P&gt;&lt;P&gt;       FILESIZE_NOT_ALLOWED            = 9&lt;/P&gt;&lt;P&gt;       HEADER_TOO_LONG                 = 10&lt;/P&gt;&lt;P&gt;       DP_ERROR_CREATE                 = 11&lt;/P&gt;&lt;P&gt;       DP_ERROR_SEND                   = 12&lt;/P&gt;&lt;P&gt;       DP_ERROR_WRITE                  = 13&lt;/P&gt;&lt;P&gt;       UNKNOWN_DP_ERROR                = 14&lt;/P&gt;&lt;P&gt;       ACCESS_DENIED                   = 15&lt;/P&gt;&lt;P&gt;       DP_OUT_OF_MEMORY                = 16&lt;/P&gt;&lt;P&gt;       DISK_FULL                       = 17&lt;/P&gt;&lt;P&gt;       DP_TIMEOUT                      = 18&lt;/P&gt;&lt;P&gt;       FILE_NOT_FOUND                  = 19&lt;/P&gt;&lt;P&gt;       DATAPROVIDER_EXCEPTION          = 20&lt;/P&gt;&lt;P&gt;       CONTROL_FLUSH_ERROR             = 21&lt;/P&gt;&lt;P&gt;       OTHERS                          = 22&lt;/P&gt;&lt;P&gt;              .&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      write:/30 'Error in generating purchase order error log'.&lt;/P&gt;&lt;P&gt;      write:/30 syst-uline(44).&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      write:/30 'Purchase Order error log'.&lt;/P&gt;&lt;P&gt;      write:/30 syst-uline(24).&lt;/P&gt;&lt;P&gt;      skip 2.&lt;/P&gt;&lt;P&gt;      write:/10 'Please check the error loag file at:', v_fullpath.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    write:/30 'Purchase Order data l log'.&lt;/P&gt;&lt;P&gt;    write:/30 syst-uline(24).&lt;/P&gt;&lt;P&gt;    skip 2.&lt;/P&gt;&lt;P&gt;    write:/10 'There is no error in the input file data, so please proceed to execute the load!!'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " disp_error_report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and my input file looks like this:&lt;/P&gt;&lt;P&gt;1 1000 NB 20071210 V1 AE01 501 USD 10 M5 1003 100 1000 EA 20071110&lt;/P&gt;&lt;P&gt;1 1000 NB 20071210 V1 AE01 507 USD 10 P10 1003 100 2000 EA 20071110&lt;/P&gt;&lt;P&gt;2 1000 NB 20071210 V1 AE01 501 USD 10 M5 1003 50 1000 EA 20071110&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the name of the fields in order are : refno., compnaycode,doc-typ,doc_date,vendor,purch_org,purch_grp,currency&lt;/P&gt;&lt;P&gt;tem no, material, plant, quantity, price, order unit, del_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The ref No. field in the text file acts as a unique identifier So basically my Program should create 2 PO's but to my surprise it created 5 or 6 po's with only first record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you please help me out....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Rajeev Gupta&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        Rajeev Gupta&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Title and Message were edited by: &lt;/P&gt;&lt;P&gt;        Alvaro Tejada Galindo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 09 Oct 2007 14:24:05 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-10-09T14:24:05Z</dc:date>
    <item>
      <title>BAPI_PO_CREATE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create/m-p/2955080#M697035</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Actually I don't have much time left so I though of posting this thread again, I am working on an interface where I need to create PO's using BAPI_PO_CREATE but to my bad luck the code that I have written is not working properly and I have just about an hour left to subit the program to my manager so can you please help me to get out of this very critical situation. I have written the following code,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;internal table to store the data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:  poheader LIKE bapimepoheader,&lt;/P&gt;&lt;P&gt;       poheaderx LIKE  bapimepoheaderx,&lt;/P&gt;&lt;P&gt;       poitem LIKE bapimepoitem OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       poitemx LIKE  bapimepoitemx  OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       return LIKE bapiret2 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       return2 LIKE  bapiret2 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       exppurchaseorder  LIKE  bapimepoheader-po_number,&lt;/P&gt;&lt;P&gt;       poschedule LIKE bapimeposchedule OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       poschedulex LIKE bapimeposchedulx OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_input_file OCCURS 0,&lt;/P&gt;&lt;P&gt;        ref_no(2),&lt;/P&gt;&lt;P&gt;        c_code(4),&lt;/P&gt;&lt;P&gt;        doc_typ(4),&lt;/P&gt;&lt;P&gt;        doc_date(10),&lt;/P&gt;&lt;P&gt;        vend_no(10),&lt;/P&gt;&lt;P&gt;        purch_org(4),&lt;/P&gt;&lt;P&gt;        purch_grp(3),&lt;/P&gt;&lt;P&gt;        currency(3),&lt;/P&gt;&lt;P&gt;        item_no(3),&lt;/P&gt;&lt;P&gt;        material(18),&lt;/P&gt;&lt;P&gt;        Plant(4),&lt;/P&gt;&lt;P&gt;        Strg_loc(4),&lt;/P&gt;&lt;P&gt;        Quantity(13),&lt;/P&gt;&lt;P&gt;        Price(10),&lt;/P&gt;&lt;P&gt;        ord_unit(7),&lt;/P&gt;&lt;P&gt;        del_date(10),&lt;/P&gt;&lt;P&gt;        seq_num(5) type n,&lt;/P&gt;&lt;P&gt;      end of it_input_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: it_ref_no_old(2)  type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: it_record like it_input_file occurs 0 with header line.&lt;/P&gt;&lt;P&gt;data: it_record_x like it_input_file occurs 0 with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: ld_file LIKE rlgrap-filename.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: it_ser_data like it_input_file occurs 0 with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_pipe_data occurs 0,&lt;/P&gt;&lt;P&gt;        line(1000),&lt;/P&gt;&lt;P&gt;      end of it_pipe_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:  file1(70) type c value '/tmp/test_file_',&lt;/P&gt;&lt;P&gt;       len type i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_lfa1 occurs 0,&lt;/P&gt;&lt;P&gt;        lifnr like lfa1-lifnr,&lt;/P&gt;&lt;P&gt;      end of it_lfa1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_t001 occurs 0,&lt;/P&gt;&lt;P&gt;        bukrs like t001-bukrs,&lt;/P&gt;&lt;P&gt;      end of it_t001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_mara occurs 0,&lt;/P&gt;&lt;P&gt;        matnr like mara-matnr,&lt;/P&gt;&lt;P&gt;      end of it_mara.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_mard occurs 0,&lt;/P&gt;&lt;P&gt;        lgort like mard-lgort,&lt;/P&gt;&lt;P&gt;      end of it_mard.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_marc occurs 0,&lt;/P&gt;&lt;P&gt;        werks like marc-werks,&lt;/P&gt;&lt;P&gt;      end of it_marc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_t024 occurs 0,&lt;/P&gt;&lt;P&gt;        ekgrp like t024-ekgrp,&lt;/P&gt;&lt;P&gt;      end of it_t024.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_t024e occurs 0,&lt;/P&gt;&lt;P&gt;        ekorg like t024e-ekorg,&lt;/P&gt;&lt;P&gt;      end of it_t024e.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_read_file occurs 0,&lt;/P&gt;&lt;P&gt;        line(1000),&lt;/P&gt;&lt;P&gt;      end of it_read_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: it_file like it_input_file occurs 0 with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_err_log occurs 0,&lt;/P&gt;&lt;P&gt;        seq_num(10),&lt;/P&gt;&lt;P&gt;        bukrs(4),&lt;/P&gt;&lt;P&gt;        bukrs_err_desc(50),&lt;/P&gt;&lt;P&gt;        lifnr(10),&lt;/P&gt;&lt;P&gt;        lifnr_err_desc(50),&lt;/P&gt;&lt;P&gt;        ekorg(4),&lt;/P&gt;&lt;P&gt;        ekorg_err_desc(50),&lt;/P&gt;&lt;P&gt;        ekgrp(3),&lt;/P&gt;&lt;P&gt;        ekgrp_err_desc(50),&lt;/P&gt;&lt;P&gt;        matnr(18),&lt;/P&gt;&lt;P&gt;        matnr_err_desc(50),&lt;/P&gt;&lt;P&gt;        werks(4),&lt;/P&gt;&lt;P&gt;        werks_err_desc(50),&lt;/P&gt;&lt;P&gt;        lgort(4),&lt;/P&gt;&lt;P&gt;        lgort_err_desc(50),&lt;/P&gt;&lt;P&gt;      end of it_err_log.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: v_fullpath type string,&lt;/P&gt;&lt;P&gt;      v_length type i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Definition of Variables                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;data: v_semfile like RLGRAP-FILENAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Definition of Constants                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;data: c_bukrs_err_desc(50)           value 'Invalid company code',&lt;/P&gt;&lt;P&gt;      c_currency_err_desc(50)        value 'Invalid valid currency',&lt;/P&gt;&lt;P&gt;      c_lifnr_err_desc(50)           value 'Invalid valid Vendor',&lt;/P&gt;&lt;P&gt;      c_ekorg_err_desc(50)           value 'Invalid valid purchasing Organization',&lt;/P&gt;&lt;P&gt;      c_ekgrp_err_desc(50)           value 'Invalid valid Purchasing group',&lt;/P&gt;&lt;P&gt;      c_matnr_err_desc(50)           value 'Invalid valid Material',&lt;/P&gt;&lt;P&gt;      c_werks_err_desc(50)           value 'Invalid valid Plant',&lt;/P&gt;&lt;P&gt;      c_lgort_err_desc(50)           value 'Invalid valid Storage Location'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Selection Screen                                                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;selection-screen  begin of block b1 with frame title text-001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters: p_ifname LIKE rlgrap-filename OBLIGATORY&lt;/P&gt;&lt;P&gt;                DEFAULT 'C:\'.&lt;/P&gt;&lt;P&gt;parameter : p_lfile TYPE c RADIOBUTTON GROUP g1,   " local file&lt;/P&gt;&lt;P&gt;            p_ufile TYPE c RADIOBUTTON GROUP g1 DEFAULT 'X'. " Unix file&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen  end of block b1 .&lt;/P&gt;&lt;P&gt;selection-screen  begin of block b2 with frame.             " text-002.&lt;/P&gt;&lt;P&gt;parameters: p_user like sy-uname MODIF ID md1 default syst-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen  end of block b2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen  begin of block b3 with frame title text-003.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters: p_upld radiobutton group upld default 'X' ,&lt;/P&gt;&lt;P&gt;            p_upldex radiobutton group upld.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen  end of block b3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;at selection screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;at selection-screen on value-request for p_ifname.&lt;/P&gt;&lt;P&gt;  call function 'F4_FILENAME'   "allows user to select path/file&lt;/P&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;P&gt;        program_name  = 'Z_PO_Creation'&lt;/P&gt;&lt;P&gt;        dynpro_number = syst-dynnr&lt;/P&gt;&lt;P&gt;        field_name    =  'p_ifname'&lt;/P&gt;&lt;P&gt;     IMPORTING&lt;/P&gt;&lt;P&gt;        file_name     = p_ifname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;START-OF-SELECTION *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;  if p_upld = 'X'.&lt;/P&gt;&lt;P&gt;    perform build_table.&lt;/P&gt;&lt;P&gt;    perform validate_data.&lt;/P&gt;&lt;P&gt;    perform disp_error_report.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    if p_ufile = 'X'.&lt;/P&gt;&lt;P&gt;      perform open_unix_dataset.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      perform open_files.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    perform data_process.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform put_data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  call_bapi&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM call_bapi .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT it_input_file.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; moving header data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MOVE: it_input_file-vend_no    TO  poheader-vendor,&lt;/P&gt;&lt;P&gt;          it_input_file-doc_typ    TO  poheader-doc_type,&lt;/P&gt;&lt;P&gt;          it_input_file-purch_org  TO  poheader-purch_org,&lt;/P&gt;&lt;P&gt;          it_input_file-purch_grp  TO  poheader-pur_group,&lt;/P&gt;&lt;P&gt;          it_input_file-c_code     TO  poheader-comp_code,&lt;/P&gt;&lt;P&gt;          it_input_file-doc_date   TO  poheader-doc_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; updating header data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if poheader-vendor       &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;      poheaderx-vendor       =  'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if poheader-doc_type     &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;      poheaderx-doc_type     =  'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if poheader-doc_date     &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;      poheaderx-doc_date     =  'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if poheader-purch_org    &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;      poheaderx-purch_org    =  'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if poheader-pur_group    &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;      poheaderx-pur_group    =  'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if poheader-comp_code    &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;      poheaderx-comp_code    =  'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; moving item data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MOVE: it_input_file-item_no    TO  poitem-po_item,&lt;/P&gt;&lt;P&gt;          it_input_file-plant      TO  poitem-plant,&lt;/P&gt;&lt;P&gt;          it_input_file-Strg_loc   TO  poitem-stge_loc,&lt;/P&gt;&lt;P&gt;          it_input_file-material   TO  poitem-material,&lt;/P&gt;&lt;P&gt;          it_input_file-quantity   TO  poitem-quantity,&lt;/P&gt;&lt;P&gt;          it_input_file-price      TO  poitem-price_unit,&lt;/P&gt;&lt;P&gt;          it_input_file-ref_no     TO  poitem-ref_doc,&lt;/P&gt;&lt;P&gt;          it_input_file-ord_unit   TO  poitem-po_unit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;updating Item data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if poitem-plant &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;      poitemx-plant     =  'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if poitem-material &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;      poitemx-material     =  'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if poitem-stge_loc &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;      poitemx-stge_loc     =  'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if poitem-quantity &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;      poitemx-quantity     =  'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  if poitem-price_unit &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        poitemx-price_unit    =  'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  if poitem-ref_doc &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        poitemx-ref_doc     =  'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  if poitem-po_unit &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        poitemx-po_unit     =  'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    poitemx-po_item      =  it_input_file-item_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    move: it_input_file-del_date      TO poschedule-delivery_date.&lt;/P&gt;&lt;P&gt;    move: 'X'                         TO poschedulex-delivery_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND:  poitem, poitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'BAPI_PO_CREATE1'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        poheader         = poheader&lt;/P&gt;&lt;P&gt;        poheaderx        = poheaderx&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        exppurchaseorder = exppurchaseorder&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        poitem           = poitem&lt;/P&gt;&lt;P&gt;        poitemx          = poitemx&lt;/P&gt;&lt;P&gt;        poschedule       = poschedule&lt;/P&gt;&lt;P&gt;        poschedulex      = poschedulex&lt;/P&gt;&lt;P&gt;        return           = return.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        return = return2.&lt;/P&gt;&lt;P&gt;    WRITE:/ 'PO created with PO number:' ,&lt;/P&gt;&lt;P&gt;          exppurchaseorder.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " call_bapi&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  data_process&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM data_process .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if it_input_file[] is initial.&lt;/P&gt;&lt;P&gt;    message E319 with 'There is no data to process!!'.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    sort it_input_file by ref_no.&lt;/P&gt;&lt;P&gt;    clear: it_ref_no_old.&lt;/P&gt;&lt;P&gt;    loop at it_input_file into it_record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if  it_record-ref_no ne it_ref_no_old .&lt;/P&gt;&lt;P&gt;        loop at it_input_file into it_record_x&lt;/P&gt;&lt;P&gt;             where  ref_no = it_record-ref_no .&lt;/P&gt;&lt;P&gt;        endloop.&lt;/P&gt;&lt;P&gt;        if  syst-subrc = 0 .&lt;/P&gt;&lt;P&gt;          PERFORM call_bapi.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      it_ref_no_old = it_record-ref_no.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " data_process&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  put_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM put_data .&lt;/P&gt;&lt;P&gt;  it_ser_data-ref_no = '1'.&lt;/P&gt;&lt;P&gt;  it_ser_data-c_code = 'AEM'.&lt;/P&gt;&lt;P&gt;  it_ser_data-doc_typ = 'AB'.&lt;/P&gt;&lt;P&gt;  it_ser_data-vend_no = '100004'.&lt;/P&gt;&lt;P&gt;  it_ser_data-purch_org = 'A001'.&lt;/P&gt;&lt;P&gt;  it_ser_data-purch_grp = '522'.&lt;/P&gt;&lt;P&gt;  it_ser_data-currency  = 'USD'.&lt;/P&gt;&lt;P&gt;  it_ser_data-item_no   = '10'.&lt;/P&gt;&lt;P&gt;  it_ser_data-material  = '1000003'.&lt;/P&gt;&lt;P&gt;  it_ser_data-Plant     = '1005'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       it_ser_data-Strg_loc&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  it_ser_data-Quantity  = '100'.&lt;/P&gt;&lt;P&gt;  it_ser_data-Price     = '2000'.&lt;/P&gt;&lt;P&gt;  it_ser_data-ord_unit  = 'EA'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       it_ser_data-del_date  =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  append it_ser_data.&lt;/P&gt;&lt;P&gt;  clear it_ser_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at it_ser_data.&lt;/P&gt;&lt;P&gt;    concatenate it_ser_data-ref_no it_ser_data-c_code it_ser_data-doc_typ it_ser_data-vend_no it_ser_data-purch_org it_ser_data-purch_grp&lt;/P&gt;&lt;P&gt;                it_ser_data-currency it_ser_data-item_no it_ser_data-material it_ser_data-Plant it_ser_data-Quantity it_ser_data-Price&lt;/P&gt;&lt;P&gt;                it_ser_data-ord_unit into it_pipe_data separated by '|'.&lt;/P&gt;&lt;P&gt;    append it_pipe_data.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;  clear it_pipe_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  open dataset file1 in text mode for output encoding default.&lt;/P&gt;&lt;P&gt;  if syst-subrc eq 0.&lt;/P&gt;&lt;P&gt;    loop at it_pipe_data.&lt;/P&gt;&lt;P&gt;      transfer it_pipe_data to file1.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;    close dataset file1.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " put_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  validate_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM validate_data .&lt;/P&gt;&lt;P&gt;  loop at it_input_file.&lt;/P&gt;&lt;P&gt;    read table it_t001 with key bukrs = it_input_file-c_code.&lt;/P&gt;&lt;P&gt;    if syst-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      move: it_input_file-c_code  to it_err_log-bukrs,&lt;/P&gt;&lt;P&gt;            it_input_file-seq_num to it_err_log-seq_num,&lt;/P&gt;&lt;P&gt;            c_bukrs_err_desc      to it_err_log-bukrs_err_desc.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    read table it_t024 with key ekgrp = it_input_file-purch_grp.&lt;/P&gt;&lt;P&gt;    if syst-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      move: it_input_file-purch_grp  to it_err_log-ekgrp,&lt;/P&gt;&lt;P&gt;            it_input_file-seq_num to it_err_log-seq_num,&lt;/P&gt;&lt;P&gt;            c_ekgrp_err_desc         to it_err_log-ekgrp_err_desc.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    read table it_t024e with key ekorg = it_input_file-purch_org.&lt;/P&gt;&lt;P&gt;    if syst-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      move: it_input_file-purch_org  to it_err_log-ekorg,&lt;/P&gt;&lt;P&gt;            it_input_file-seq_num to it_err_log-seq_num,&lt;/P&gt;&lt;P&gt;            c_ekorg_err_desc         to it_err_log-ekorg_err_desc.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    read table it_lfa1 with key lifnr = it_input_file-vend_no.&lt;/P&gt;&lt;P&gt;    if syst-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      move: it_input_file-vend_no    to it_err_log-lifnr,&lt;/P&gt;&lt;P&gt;            it_input_file-seq_num to it_err_log-seq_num,&lt;/P&gt;&lt;P&gt;            c_lifnr_err_desc         to it_err_log-lifnr_err_desc.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    read table it_mara with key matnr = it_input_file-material.&lt;/P&gt;&lt;P&gt;    if syst-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      move: it_input_file-material   to it_err_log-matnr,&lt;/P&gt;&lt;P&gt;            it_input_file-seq_num to it_err_log-seq_num,&lt;/P&gt;&lt;P&gt;            c_matnr_err_desc         to it_err_log-matnr_err_desc.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    read table it_marc with key werks = it_input_file-plant.&lt;/P&gt;&lt;P&gt;    if syst-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      move: it_input_file-plant      to it_err_log-werks,&lt;/P&gt;&lt;P&gt;            it_input_file-seq_num to it_err_log-seq_num,&lt;/P&gt;&lt;P&gt;            c_werks_err_desc         to it_err_log-werks_err_desc.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    read table it_mard with key lgort = it_input_file-Strg_loc.&lt;/P&gt;&lt;P&gt;    if syst-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      move: it_input_file-strg_loc   to it_err_log-lgort,&lt;/P&gt;&lt;P&gt;            it_input_file-seq_num to it_err_log-seq_num,&lt;/P&gt;&lt;P&gt;            c_lgort_err_desc         to it_err_log-lgort_err_desc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " validate_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  open_unix_dataset&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM open_unix_dataset .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  open dataset ld_file for input in text mode encoding default.&lt;/P&gt;&lt;P&gt;  do.&lt;/P&gt;&lt;P&gt;    read dataset ld_file into it_read_file.&lt;/P&gt;&lt;P&gt;    if sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      exit.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    append it_read_file.&lt;/P&gt;&lt;P&gt;    clear it_read_file.&lt;/P&gt;&lt;P&gt;  enddo.&lt;/P&gt;&lt;P&gt;  close dataset ld_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if NOT it_read_file[] is initial.&lt;/P&gt;&lt;P&gt;    loop at it_read_file.&lt;/P&gt;&lt;P&gt;      split it_read_file at '|' into it_file-item_no&lt;/P&gt;&lt;P&gt;                                      it_file-ref_no&lt;/P&gt;&lt;P&gt;                                      it_file-vend_no&lt;/P&gt;&lt;P&gt;                                      it_file-material&lt;/P&gt;&lt;P&gt;                                      it_file-quantity&lt;/P&gt;&lt;P&gt;                                      it_file-price&lt;/P&gt;&lt;P&gt;                                      it_file-ord_unit&lt;/P&gt;&lt;P&gt;                                      it_file-plant&lt;/P&gt;&lt;P&gt;                                      it_file-strg_loc&lt;/P&gt;&lt;P&gt;                                      it_file-purch_org&lt;/P&gt;&lt;P&gt;                                      it_file-purch_grp&lt;/P&gt;&lt;P&gt;                                      it_file-c_code&lt;/P&gt;&lt;P&gt;                                      it_file-doc_typ.&lt;/P&gt;&lt;P&gt;      append it_file.&lt;/P&gt;&lt;P&gt;      clear it_file.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " open_unix_dataset&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  open_files&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM open_files .&lt;/P&gt;&lt;P&gt;  v_semfile = p_ifname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'WS_UPLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      filename                = v_semfile&lt;/P&gt;&lt;P&gt;      filetype                = 'DAT'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      data_tab                = it_input_file&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      conversion_error        = 1&lt;/P&gt;&lt;P&gt;      file_open_error         = 2&lt;/P&gt;&lt;P&gt;      file_read_error         = 3&lt;/P&gt;&lt;P&gt;      invalid_table_width     = 4&lt;/P&gt;&lt;P&gt;      invalid_type            = 5&lt;/P&gt;&lt;P&gt;      no_batch                = 6&lt;/P&gt;&lt;P&gt;      unknown_error           = 7&lt;/P&gt;&lt;P&gt;      gui_refuse_filetransfer = 8&lt;/P&gt;&lt;P&gt;      OTHERS                  = 9.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " open_files&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_table .&lt;/P&gt;&lt;P&gt;  select bukrs into table it_t001&lt;/P&gt;&lt;P&gt;    from t001&lt;/P&gt;&lt;P&gt;    for all entries in it_input_file&lt;/P&gt;&lt;P&gt;    where bukrs = it_input_file-c_code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select ekgrp into table it_t024&lt;/P&gt;&lt;P&gt;   from t024&lt;/P&gt;&lt;P&gt;   for all entries in it_input_file&lt;/P&gt;&lt;P&gt;   where ekgrp = it_input_file-purch_grp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select ekorg into table it_t024e&lt;/P&gt;&lt;P&gt;    from t024e&lt;/P&gt;&lt;P&gt;    for all entries in it_input_file&lt;/P&gt;&lt;P&gt;    where ekorg = it_input_file-purch_org.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select lifnr into table it_lfa1&lt;/P&gt;&lt;P&gt;     from lfa1&lt;/P&gt;&lt;P&gt;     for all entries in it_input_file&lt;/P&gt;&lt;P&gt;     where lifnr = it_input_file-vend_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select matnr into table it_mara&lt;/P&gt;&lt;P&gt;     from mara&lt;/P&gt;&lt;P&gt;     for all entries in it_input_file&lt;/P&gt;&lt;P&gt;     where matnr = it_input_file-material.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select werks into table it_marc&lt;/P&gt;&lt;P&gt;     from marc&lt;/P&gt;&lt;P&gt;     for all entries in it_input_file&lt;/P&gt;&lt;P&gt;     where werks = it_input_file-plant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select lgort into table it_mard&lt;/P&gt;&lt;P&gt;     from mard&lt;/P&gt;&lt;P&gt;     for all entries in it_input_file&lt;/P&gt;&lt;P&gt;     where lgort = it_input_file-Strg_loc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  disp_error_report&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM disp_error_report .&lt;/P&gt;&lt;P&gt;  if NOT it_err_log[] is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    move: '0'                     to it_err_log-seq_num,&lt;/P&gt;&lt;P&gt;          'Vendor'                to it_err_log-lifnr,&lt;/P&gt;&lt;P&gt;          'Vendor Error'          to it_err_log-lifnr_err_desc,&lt;/P&gt;&lt;P&gt;          'Company Code'          to it_err_log-bukrs,&lt;/P&gt;&lt;P&gt;          'Company Code Error'    to it_err_log-bukrs_err_desc,&lt;/P&gt;&lt;P&gt;          'Purchase Org'          to it_err_log-ekorg,&lt;/P&gt;&lt;P&gt;          'Purchase Org Error'    to it_err_log-ekorg_err_desc,&lt;/P&gt;&lt;P&gt;          'Purchase Group'        to it_err_log-ekgrp,&lt;/P&gt;&lt;P&gt;          'Purchase Group Error'  to it_err_log-ekgrp_err_desc,&lt;/P&gt;&lt;P&gt;          'Plant'                 to it_err_log-werks,&lt;/P&gt;&lt;P&gt;          'Plant Error'           to it_err_log-werks_err_desc,&lt;/P&gt;&lt;P&gt;          'Storage Loc'           to it_err_log-lgort,&lt;/P&gt;&lt;P&gt;          'Storage Loc Error'     to it_err_log-lgort_err_desc,&lt;/P&gt;&lt;P&gt;          'Material'              to it_err_log-matnr,&lt;/P&gt;&lt;P&gt;          'Material Error'        to it_err_log-matnr_err_desc.&lt;/P&gt;&lt;P&gt;    append it_err_log.&lt;/P&gt;&lt;P&gt;    sort it_err_log by seq_num.&lt;/P&gt;&lt;P&gt;    loop at it_err_log where seq_num eq '0'.&lt;/P&gt;&lt;P&gt;      move 'Seq Num' to it_err_log-seq_num.&lt;/P&gt;&lt;P&gt;      modify it_err_log.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;    concatenate 'c:\inventory_error_log' syst-datum syst-uzeit '.xls'&lt;/P&gt;&lt;P&gt;      into v_fullpath.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'GUI_DOWNLOAD'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  BIN_FILESIZE                    =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        FILENAME                        =  v_fullpath&lt;/P&gt;&lt;P&gt;        FILETYPE                        = 'DAT'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  APPEND                          = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  WRITE_FIELD_SEPARATOR           = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER                          = '00'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TRUNC_TRAILING_BLANKS           = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  WRITE_LF                        = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  COL_SELECT                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  COL_SELECT_MASK                 = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DAT_MODE                        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CONFIRM_OVERWRITE               = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_AUTH_CHECK                   = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CODEPAGE                        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IGNORE_CERR                     = ABAP_TRUE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REPLACEMENT                     = '#'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  WRITE_BOM                       = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TRUNC_TRAILING_BLANKS_EOL       = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  WK1_N_FORMAT                    = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  WK1_N_SIZE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  WK1_T_FORMAT                    = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  WK1_T_SIZE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     IMPORTING&lt;/P&gt;&lt;P&gt;       FILELENGTH                      = v_length&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        DATA_TAB                        = it_err_log&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FIELDNAMES                      =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     EXCEPTIONS&lt;/P&gt;&lt;P&gt;       FILE_WRITE_ERROR                = 1&lt;/P&gt;&lt;P&gt;       NO_BATCH                        = 2&lt;/P&gt;&lt;P&gt;       GUI_REFUSE_FILETRANSFER         = 3&lt;/P&gt;&lt;P&gt;       INVALID_TYPE                    = 4&lt;/P&gt;&lt;P&gt;       NO_AUTHORITY                    = 5&lt;/P&gt;&lt;P&gt;       UNKNOWN_ERROR                   = 6&lt;/P&gt;&lt;P&gt;       HEADER_NOT_ALLOWED              = 7&lt;/P&gt;&lt;P&gt;       SEPARATOR_NOT_ALLOWED           = 8&lt;/P&gt;&lt;P&gt;       FILESIZE_NOT_ALLOWED            = 9&lt;/P&gt;&lt;P&gt;       HEADER_TOO_LONG                 = 10&lt;/P&gt;&lt;P&gt;       DP_ERROR_CREATE                 = 11&lt;/P&gt;&lt;P&gt;       DP_ERROR_SEND                   = 12&lt;/P&gt;&lt;P&gt;       DP_ERROR_WRITE                  = 13&lt;/P&gt;&lt;P&gt;       UNKNOWN_DP_ERROR                = 14&lt;/P&gt;&lt;P&gt;       ACCESS_DENIED                   = 15&lt;/P&gt;&lt;P&gt;       DP_OUT_OF_MEMORY                = 16&lt;/P&gt;&lt;P&gt;       DISK_FULL                       = 17&lt;/P&gt;&lt;P&gt;       DP_TIMEOUT                      = 18&lt;/P&gt;&lt;P&gt;       FILE_NOT_FOUND                  = 19&lt;/P&gt;&lt;P&gt;       DATAPROVIDER_EXCEPTION          = 20&lt;/P&gt;&lt;P&gt;       CONTROL_FLUSH_ERROR             = 21&lt;/P&gt;&lt;P&gt;       OTHERS                          = 22&lt;/P&gt;&lt;P&gt;              .&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      write:/30 'Error in generating purchase order error log'.&lt;/P&gt;&lt;P&gt;      write:/30 syst-uline(44).&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      write:/30 'Purchase Order error log'.&lt;/P&gt;&lt;P&gt;      write:/30 syst-uline(24).&lt;/P&gt;&lt;P&gt;      skip 2.&lt;/P&gt;&lt;P&gt;      write:/10 'Please check the error loag file at:', v_fullpath.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    write:/30 'Purchase Order data l log'.&lt;/P&gt;&lt;P&gt;    write:/30 syst-uline(24).&lt;/P&gt;&lt;P&gt;    skip 2.&lt;/P&gt;&lt;P&gt;    write:/10 'There is no error in the input file data, so please proceed to execute the load!!'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " disp_error_report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and my input file looks like this:&lt;/P&gt;&lt;P&gt;1 1000 NB 20071210 V1 AE01 501 USD 10 M5 1003 100 1000 EA 20071110&lt;/P&gt;&lt;P&gt;1 1000 NB 20071210 V1 AE01 507 USD 10 P10 1003 100 2000 EA 20071110&lt;/P&gt;&lt;P&gt;2 1000 NB 20071210 V1 AE01 501 USD 10 M5 1003 50 1000 EA 20071110&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the name of the fields in order are : refno., compnaycode,doc-typ,doc_date,vendor,purch_org,purch_grp,currency&lt;/P&gt;&lt;P&gt;tem no, material, plant, quantity, price, order unit, del_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The ref No. field in the text file acts as a unique identifier So basically my Program should create 2 PO's but to my surprise it created 5 or 6 po's with only first record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you please help me out....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Rajeev Gupta&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        Rajeev Gupta&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Title and Message were edited by: &lt;/P&gt;&lt;P&gt;        Alvaro Tejada Galindo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 09 Oct 2007 14:24:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create/m-p/2955080#M697035</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-09T14:24:05Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_PO_CREATE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create/m-p/2955081#M697036</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;and have you set a breakpoint at loop at input file and at bapi_po_create ??&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perhaps there is something wrong with the amount of items passed ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;kind regards &lt;/P&gt;&lt;P&gt;arthur&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 09 Oct 2007 14:35:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create/m-p/2955081#M697036</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-09T14:35:55Z</dc:date>
    </item>
  </channel>
</rss>

