<?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 Re: BAPI_PO_CHANGE in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-change/m-p/1724423#M315953</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi i want to close the PurchaseOrder by using BAPI_PO_CHANGE so i want mandatory fields to close the PO&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 01 Apr 2008 11:24:19 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-04-01T11:24:19Z</dc:date>
    <item>
      <title>BAPI_PO_CHANGE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-change/m-p/1724420#M315950</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi experts,&lt;/P&gt;&lt;P&gt;can any one please paste some code where you have used bapi_po_change&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cheers&lt;/P&gt;&lt;P&gt;santhosh&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: Kaluvala Santhosh&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 Oct 2006 14:44:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-change/m-p/1724420#M315950</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-10-30T14:44:45Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_PO_CHANGE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-change/m-p/1724421#M315951</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sample Abap code on BAPI_PO_CHANGE &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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; Report ZMMR_DELETEPO                                               *&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;  Description               : VTLS PO Change&lt;/P&gt;&lt;P&gt;*&amp;amp;  Program Objective         : Places a DELETION indicator for the PO&lt;/P&gt;&lt;P&gt;*&amp;amp;                              items given in the VTLS data&lt;/P&gt;&lt;P&gt;*&amp;amp;  Remarks                   : NA&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; &lt;/P&gt;&lt;P&gt;REPORT ZMMR_DELETEPO NO STANDARD PAGE HEADING MESSAGE-ID zisb.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;tables : zvtls_sap.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*C-- Types Declarations&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF tp_flatfile_vtls,&lt;/P&gt;&lt;P&gt;        ebeln(10),&lt;/P&gt;&lt;P&gt;        ebelp type ekpo-ebelp,&lt;/P&gt;&lt;P&gt;        END OF tp_flatfile_vtls.&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;                  INTERNAL TABLES DECLARATION&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:  t_flatfile_vtls TYPE tp_flatfile_vtls OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;data : begin of t_sapdata occurs 0,&lt;/P&gt;&lt;P&gt;       po like zvtls_sap-posap,&lt;/P&gt;&lt;P&gt;       item like zvtls_sap-itemsap,&lt;/P&gt;&lt;P&gt;       end of t_sapdata.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;data : begin of t_flatfile_vtls1 occurs 0,&lt;/P&gt;&lt;P&gt;       po(10),&lt;/P&gt;&lt;P&gt;       item like zvtls_sap-itemsap,&lt;/P&gt;&lt;P&gt;       end of t_flatfile_vtls1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;data : begin of t_update occurs 0,&lt;/P&gt;&lt;P&gt;       mandt like zvtls_sap-mandt,&lt;/P&gt;&lt;P&gt;       povtls like zvtls_sap-povtls,&lt;/P&gt;&lt;P&gt;       itemvtls like zvtls_sap-itemvtls,&lt;/P&gt;&lt;P&gt;       posap like zvtls_sap-posap,&lt;/P&gt;&lt;P&gt;       itemsap like zvtls_sap-itemsap,&lt;/P&gt;&lt;P&gt;       aedat like zvtls_sap-aedat,&lt;/P&gt;&lt;P&gt;       paedt like zvtls_sap-paedt,&lt;/P&gt;&lt;P&gt;       loekz like zvtls_sap-loekz,&lt;/P&gt;&lt;P&gt;       end of t_update.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;data : begin of t_poheader occurs 0,&lt;/P&gt;&lt;P&gt;       po like zvtls_sap-posap,&lt;/P&gt;&lt;P&gt;       end of t_poheader.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;data : begin of t_poitem occurs 0,&lt;/P&gt;&lt;P&gt;       po like zvtls_sap-posap,&lt;/P&gt;&lt;P&gt;       item like zvtls_sap-itemsap,&lt;/P&gt;&lt;P&gt;       end of t_poitem.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;DATA : BEGIN OF T_MESSAGE OCCURS 0,&lt;/P&gt;&lt;P&gt;       MSGTY,&lt;/P&gt;&lt;P&gt;       MSGID(2),&lt;/P&gt;&lt;P&gt;       MSGNO(3),&lt;/P&gt;&lt;P&gt;       MSGTX(100),&lt;/P&gt;&lt;P&gt;       PO like zvtls_sap-povtls,&lt;/P&gt;&lt;P&gt;       item like zvtls_sap-itemvtls,&lt;/P&gt;&lt;P&gt;       END OF T_MESSAGE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;DATA : BEGIN OF t_bapi_poheader OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapimepoheader.&lt;/P&gt;&lt;P&gt;DATA : END OF t_bapi_poheader.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;DATA : BEGIN OF t_bapi_poheaderx OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapimepoheaderx.&lt;/P&gt;&lt;P&gt;DATA : END OF t_bapi_poheaderx.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;DATA : BEGIN OF t_bapi_poitem OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapimepoitem.&lt;/P&gt;&lt;P&gt;DATA : END OF t_bapi_poitem.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;DATA : BEGIN OF t_bapi_poitemx OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapimepoitemx.&lt;/P&gt;&lt;P&gt;DATA : END OF t_bapi_poitemx.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;DATA : BEGIN OF t_bapireturn OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapiret2.&lt;/P&gt;&lt;P&gt;DATA : END OF t_bapireturn.&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;                  V A R I A B L E S&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: w_success(6)  TYPE n,&lt;/P&gt;&lt;P&gt;      w_bklas like t023-bklas,&lt;/P&gt;&lt;P&gt;      w_curryear(4),&lt;/P&gt;&lt;P&gt;      w_begda like sy-datum,&lt;/P&gt;&lt;P&gt;      w_endda like sy-datum,&lt;/P&gt;&lt;P&gt;      w_begyr(4),&lt;/P&gt;&lt;P&gt;      w_endyr(4),&lt;/P&gt;&lt;P&gt;      w_currmon(2),&lt;/P&gt;&lt;P&gt;      w_assetclass like ankt-anlkl,&lt;/P&gt;&lt;P&gt;      w_price type p,&lt;/P&gt;&lt;P&gt;      w_recordsap type i,&lt;/P&gt;&lt;P&gt;      w_povtls(10),&lt;/P&gt;&lt;P&gt;      w_count type i.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;DATA:  w_filepath TYPE rlgrap-filename,&lt;/P&gt;&lt;P&gt;       w_rc TYPE sy-subrc,&lt;/P&gt;&lt;P&gt;       w_sscrfields_ucomm1   TYPE sscrfields-ucomm,&lt;/P&gt;&lt;P&gt;       w_file1 TYPE string,&lt;/P&gt;&lt;P&gt;       w_file2 TYPE FILENAME-FILEINTERN.&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;                  C O N S T A N T S&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*=====================================================================&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;CONSTANTS: c_x              TYPE  c         VALUE 'X',&lt;/P&gt;&lt;P&gt;           c_hyp            TYPE  c         VALUE '-',&lt;/P&gt;&lt;P&gt;           c_err            TYPE  bdc_mart  VALUE 'E'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;CONSTANTS:  c_slash(1)            TYPE c VALUE '/',&lt;/P&gt;&lt;P&gt;            c_hash(1)             TYPE c VALUE '#',&lt;/P&gt;&lt;P&gt;            c_pipe                TYPE c VALUE '|',&lt;/P&gt;&lt;P&gt;            c_1                   TYPE i VALUE 1,&lt;/P&gt;&lt;P&gt;            c_zero                TYPE n VALUE '0',&lt;/P&gt;&lt;P&gt;            c_rg1(3)              TYPE c VALUE 'rg1',&lt;/P&gt;&lt;P&gt;            c_gr3(3)              TYPE c VALUE 'GR3',&lt;/P&gt;&lt;P&gt;            c_gr2(3)              TYPE c VALUE 'GR2',&lt;/P&gt;&lt;P&gt;            c_e(1)                TYPE c VALUE 'E',&lt;/P&gt;&lt;P&gt;            c_filepath(8)         TYPE c VALUE '/interf/',&lt;/P&gt;&lt;P&gt;            c_filetype(10)        TYPE c VALUE 'ASC'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;CONSTANTS : c_bapimepoheaderx   TYPE x030l-tabname&lt;/P&gt;&lt;P&gt;                               VALUE 'bapimepoheaderx',&lt;/P&gt;&lt;P&gt;           c_bapimepoitem      TYPE  x030l-tabname&lt;/P&gt;&lt;P&gt;                               VALUE 'bapimepoitem',&lt;/P&gt;&lt;P&gt;           c_bapimepoaccount   TYPE  x030l-tabname&lt;/P&gt;&lt;P&gt;                               VALUE 'bapimepoaccount',&lt;/P&gt;&lt;P&gt;           c_t_bapi_poheader(15)        TYPE c&lt;/P&gt;&lt;P&gt;                                        VALUE 't_bapi_poheader',&lt;/P&gt;&lt;P&gt;           c_t_bapi_poitem(13)          TYPE c&lt;/P&gt;&lt;P&gt;                                        VALUE 't_bapi_poitem',&lt;/P&gt;&lt;P&gt;           c_t_bapi_poitemx(14)         TYPE c&lt;/P&gt;&lt;P&gt;                                        VALUE 't_bapi_poitemx',&lt;/P&gt;&lt;P&gt;           c_t_bapi_poheaderx(16)       TYPE c&lt;/P&gt;&lt;P&gt;                                        VALUE 't_bapi_poheaderx'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;CLASS cl_abap_char_utilities DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;CONSTANTS:con_tab  TYPE c VALUE cl_abap_char_utilities=&amp;gt;horizontal_tab.&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; &lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK inputpath WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;SELECTION-SCREEN : BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.&lt;/P&gt;&lt;P&gt;PARAMETERS : p_fore RADIOBUTTON GROUP rg1&lt;/P&gt;&lt;P&gt;                    USER-COMMAND pc,&lt;/P&gt;&lt;P&gt;             p_back RADIOBUTTON GROUP rg1 DEFAULT 'X'.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN : END OF BLOCK blk2.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;SELECTION-SCREEN : BEGIN OF BLOCK blk1 WITH FRAME TITLE text-003.&lt;/P&gt;&lt;P&gt;PARAMETERS :  p_file1 LIKE rlgrap-filename OBLIGATORY MODIF ID gr2.&lt;/P&gt;&lt;P&gt;PARAMETERS :  p_afile1 LIKE rlgrap-filename OBLIGATORY MODIF ID gr3.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN : END OF BLOCK blk1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK inputpath.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*C-- Initialization Event&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR w_filepath.&lt;/P&gt;&lt;P&gt;  CONCATENATE c_filepath sy-sysid c_slash sy-mandt c_slash INTO&lt;/P&gt;&lt;P&gt;  w_filepath.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CONDENSE w_filepath NO-GAPS.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  p_file1 = text-008.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  p_afile1 = text-009.&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 EVENTS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*======================================================================&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*C-- Selection Screen Output&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN OUTPUT.&lt;/P&gt;&lt;P&gt;  IF p_fore = c_x.&lt;/P&gt;&lt;P&gt;    w_sscrfields_ucomm1 = space.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    w_sscrfields_ucomm1 = c_rg1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LOOP AT SCREEN.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*C--Modify selection screen if presentation&lt;/P&gt;&lt;P&gt;*C--or application server radio button is chosen&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    IF w_sscrfields_ucomm1 = space.&lt;/P&gt;&lt;P&gt;      IF screen-group1 = c_gr3.&lt;/P&gt;&lt;P&gt;        screen-active = c_zero.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      IF screen-group1 = c_gr2.&lt;/P&gt;&lt;P&gt;        screen-active = c_zero.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    if screen-name = 'P_AFILE1'.&lt;/P&gt;&lt;P&gt;      screen-input = 0.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    MODIFY SCREEN.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*C-- Selection Screen VALUE-REQUEST FOR File path&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF p_fore EQ c_x.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'F4_FILENAME'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        program_name  = syst-cprog&lt;/P&gt;&lt;P&gt;        dynpro_number = syst-dynnr&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        file_name     = p_file1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*C-- At Start of the Selection Process&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF p_fore EQ c_x.&lt;/P&gt;&lt;P&gt;    w_file1 = p_file1.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    w_file2 = p_afile1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF p_fore EQ c_x. " Presentaion Server&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*C--Validations for the input files&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    PERFORM validate_pre_file USING p_file1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*C-- Load the contents of the input file into the internal table&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    PERFORM upload_file TABLES t_flatfile_vtls&lt;/P&gt;&lt;P&gt;                        USING w_file1&lt;/P&gt;&lt;P&gt;                        CHANGING w_rc.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    IF w_rc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE s006 DISPLAY LIKE c_e.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  ELSE. " Application Server&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*C--Validations for the input files&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    PERFORM validate_app_file USING  w_file2.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*C-- Load the contents of the input file into the internal table&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    PERFORM upload_file_app TABLES t_flatfile_vtls&lt;/P&gt;&lt;P&gt;                            USING w_file2&lt;/P&gt;&lt;P&gt;                            CHANGING w_rc.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  loop at t_flatfile_vtls.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        input  = t_flatfile_vtls-ebeln&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        output = t_flatfile_vtls1-po.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        input  = t_flatfile_vtls-ebelp&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        output = t_flatfile_vtls1-item.&lt;/P&gt;&lt;P&gt;    append t_flatfile_vtls1.&lt;/P&gt;&lt;P&gt;    clear t_flatfile_vtls1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  perform get_podata.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  loop at t_poheader.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    perform move_to_bapi.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    perform call_bapi.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  PERFORM STORE_MESSAGES TABLES T_MESSAGE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  validate_pre_file&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;    Routine to validate presentation server file path.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;fp_name  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM validate_pre_file USING fp_name TYPE rlgrap-filename.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DATA : l_result,&lt;/P&gt;&lt;P&gt;         l_filename TYPE string.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  l_filename = fp_name.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR l_result.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL METHOD cl_gui_frontend_services=&amp;gt;file_exist&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      file                 = l_filename&lt;/P&gt;&lt;P&gt;    RECEIVING&lt;/P&gt;&lt;P&gt;      result               = l_result&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      cntl_error           = 1&lt;/P&gt;&lt;P&gt;      error_no_gui         = 2&lt;/P&gt;&lt;P&gt;      wrong_parameter      = 3&lt;/P&gt;&lt;P&gt;      not_supported_by_gui = 4&lt;/P&gt;&lt;P&gt;      OTHERS               = 5.&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;    MESSAGE s007 DISPLAY LIKE c_e.&lt;/P&gt;&lt;P&gt;    LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;  ELSEIF l_result IS INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE s008 DISPLAY LIKE c_e.&lt;/P&gt;&lt;P&gt;    LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " validate_pre_file_hdr&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  validate_app_file&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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 - Checks if the path entered and filename is correct&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM validate_app_file USING  fp_file  TYPE FILENAME-FILEINTERN.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  data : l_fname(60).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'FILE_GET_NAME'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      LOGICAL_FILENAME = FP_FILE&lt;/P&gt;&lt;P&gt;      OPERATING_SYSTEM = SY-OPSYS&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      FILE_NAME        = L_FNAME&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      FILE_NOT_FOUND   = 1&lt;/P&gt;&lt;P&gt;      OTHERS           = 2.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = '0'.&lt;/P&gt;&lt;P&gt;    OPEN DATASET  L_FNAME FOR INPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      MESSAGE s007 DISPLAY LIKE c_e.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      CLOSE DATASET l_fname.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " validate_app_file&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  upload_file&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      Routine to upload data from file to tables.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;P_fp_flatfile&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_fp_file&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_fp_rc&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;FORM  upload_file TABLES   fp_flatfile&lt;/P&gt;&lt;P&gt;                  USING    fp_file TYPE string&lt;/P&gt;&lt;P&gt;                  CHANGING fp_rc TYPE sy-subrc.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF fp_flatfile[] IS INITIAL.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        filename                = fp_file&lt;/P&gt;&lt;P&gt;        filetype                = c_filetype&lt;/P&gt;&lt;P&gt;        has_field_separator     = c_x&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        data_tab                = fp_flatfile&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        file_open_error         = 1&lt;/P&gt;&lt;P&gt;        file_read_error         = 2&lt;/P&gt;&lt;P&gt;        no_batch                = 3&lt;/P&gt;&lt;P&gt;        gui_refuse_filetransfer = 4&lt;/P&gt;&lt;P&gt;        invalid_type            = 5&lt;/P&gt;&lt;P&gt;        no_authority            = 6&lt;/P&gt;&lt;P&gt;        unknown_error           = 7&lt;/P&gt;&lt;P&gt;        bad_data_format         = 8&lt;/P&gt;&lt;P&gt;        header_not_allowed      = 9&lt;/P&gt;&lt;P&gt;        separator_not_allowed   = 10&lt;/P&gt;&lt;P&gt;        header_too_long         = 11&lt;/P&gt;&lt;P&gt;        unknown_dp_error        = 12&lt;/P&gt;&lt;P&gt;        access_denied           = 13&lt;/P&gt;&lt;P&gt;        dp_out_of_memory        = 14&lt;/P&gt;&lt;P&gt;        disk_full               = 15&lt;/P&gt;&lt;P&gt;        dp_timeout              = 16&lt;/P&gt;&lt;P&gt;        OTHERS                  = 17.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    MOVE sy-subrc TO fp_rc.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.  " upload_file&lt;/P&gt;&lt;P&gt; &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  upload_file_app&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;FP_FLATFILEtext&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;FP_FILE    text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;FP_RC      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  upload_file_app TABLES   fp_flatfile&lt;/P&gt;&lt;P&gt;                      USING    fp_file TYPE FILENAME-FILEINTERN&lt;/P&gt;&lt;P&gt;CHANGING fp_rc TYPE sy-subrc.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DATA: l_string TYPE tedata-data.&lt;/P&gt;&lt;P&gt;  DATA: wa_data_file TYPE tp_flatfile_vtls,&lt;/P&gt;&lt;P&gt;        l_wllength TYPE i,&lt;/P&gt;&lt;P&gt;        FNAME(60).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'FILE_GET_NAME'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      LOGICAL_FILENAME = FP_FILE&lt;/P&gt;&lt;P&gt;      OPERATING_SYSTEM = SY-OPSYS&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      FILE_NAME        = FNAME&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      FILE_NOT_FOUND   = 1&lt;/P&gt;&lt;P&gt;      OTHERS           = 2.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    OPEN DATASET  FNAME FOR INPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;*C-- commented by Bikash&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MESSAGE s107(yaero_ps) DISPLAY LIKE c_e.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      message e008.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      DO.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;        CLEAR: l_string.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;        READ DATASET  FNAME INTO l_string LENGTH l_wllength.&lt;/P&gt;&lt;P&gt;        IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;          EXIT.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          SPLIT l_string AT con_tab INTO   wa_data_file-ebeln&lt;/P&gt;&lt;P&gt;                                           wa_data_file-ebelp.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;          APPEND wa_data_file TO fp_flatfile.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      ENDDO.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      CLOSE DATASET  FNAME.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.  " upload_file_app&lt;/P&gt;&lt;P&gt; &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  get_podata&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;P&gt;form get_podata.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  select *&lt;/P&gt;&lt;P&gt;  into table t_update&lt;/P&gt;&lt;P&gt;  from zvtls_sap&lt;/P&gt;&lt;P&gt;  for all entries in t_flatfile_vtls1&lt;/P&gt;&lt;P&gt;   where itemvtls = t_flatfile_vtls1-item&lt;/P&gt;&lt;P&gt;  and povtls = t_flatfile_vtls1-po.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  sort t_update by posap itemsap.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  loop at t_update.&lt;/P&gt;&lt;P&gt;    at new posap.&lt;/P&gt;&lt;P&gt;      t_poheader-po = t_update-posap.&lt;/P&gt;&lt;P&gt;      append t_poheader.&lt;/P&gt;&lt;P&gt;      clear t_poheader.&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;    t_poitem-po = t_update-posap.&lt;/P&gt;&lt;P&gt;    t_poitem-item = t_update-itemsap.&lt;/P&gt;&lt;P&gt;    append t_poitem.&lt;/P&gt;&lt;P&gt;    clear t_poitem.&lt;/P&gt;&lt;P&gt;    t_update-paedt = sy-datum.&lt;/P&gt;&lt;P&gt;    t_update-loekz = 'X'.&lt;/P&gt;&lt;P&gt;    modify t_update.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  modify zvtls_sap from table t_update.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    "get_podata&lt;/P&gt;&lt;P&gt; &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  move_to_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;P&gt;form move_to_bapi.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  t_bapi_poheader-po_number = t_poheader-po.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR t_bapi_poheaderx.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  PERFORM fill_check_structure USING c_bapimepoheaderx&lt;/P&gt;&lt;P&gt;                                     c_t_bapi_poheader&lt;/P&gt;&lt;P&gt;                                     c_t_bapi_poheaderx&lt;/P&gt;&lt;P&gt;                                     c_x.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  refresh : t_bapi_poitem,t_bapi_poitemx.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  loop at t_poitem where po = t_poheader-po.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    clear t_bapi_poitem.&lt;/P&gt;&lt;P&gt;    t_bapi_poitem-po_item = t_poitem-item.&lt;/P&gt;&lt;P&gt;    t_bapi_poitem-delete_ind = 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    CLEAR t_bapi_poitemx.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    PERFORM fill_check_structure USING c_bapimepoitem&lt;/P&gt;&lt;P&gt;                                       c_t_bapi_poitem&lt;/P&gt;&lt;P&gt;                                       c_t_bapi_poitemx&lt;/P&gt;&lt;P&gt;                                       c_x.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    t_bapi_poitemx-po_item = t_poitem-item.&lt;/P&gt;&lt;P&gt;    t_bapi_poitemx-po_itemx = c_x.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    APPEND t_bapi_poitem.&lt;/P&gt;&lt;P&gt;    APPEND t_bapi_poitemx.&lt;/P&gt;&lt;P&gt;    clear t_bapi_poitem.&lt;/P&gt;&lt;P&gt;    clear t_bapi_poitemx.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    "move_to_bapi&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;*&amp;amp;----&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;      This form Routine is used to commit the data records&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; &lt;/P&gt;&lt;P&gt;FORM call_bapi .&lt;/P&gt;&lt;P&gt;  DATA : l_msgty      TYPE c,&lt;/P&gt;&lt;P&gt;         l_msgid(2)   TYPE c,&lt;/P&gt;&lt;P&gt;         l_msgno(3)   TYPE c,&lt;/P&gt;&lt;P&gt;         l_msgtx(100) TYPE c,&lt;/P&gt;&lt;P&gt;         l_errflag    TYPE c.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR: t_bapireturn.&lt;/P&gt;&lt;P&gt;  REFRESH: t_bapireturn.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_PO_CHANGE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      PURCHASEORDER = T_POHEADER-PO&lt;/P&gt;&lt;P&gt;      POHEADER      = T_BAPI_POHEADER&lt;/P&gt;&lt;P&gt;      POHEADERX     = T_BAPI_POHEADERX&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      RETURN        = T_BAPIRETURN&lt;/P&gt;&lt;P&gt;      POITEM        = T_BAPI_POITEM&lt;/P&gt;&lt;P&gt;      POITEMX       = T_BAPI_POITEMX.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  READ TABLE t_bapireturn WITH KEY type = c_err TRANSPORTING NO FIELDS.&lt;/P&gt;&lt;P&gt;  IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        wait = c_x.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*C-- Write messages&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  WRITE: / 'PO Number', t_poheader-po.&lt;/P&gt;&lt;P&gt;  clear : t_update,w_povtls.&lt;/P&gt;&lt;P&gt;  read table t_update with key posap = t_poheader-po.&lt;/P&gt;&lt;P&gt;  w_povtls = t_update-povtls.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR l_errflag.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LOOP AT t_bapireturn.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    CLEAR: l_msgty, l_msgid, l_msgno, l_msgtx.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    l_msgty = t_bapireturn-type.&lt;/P&gt;&lt;P&gt;    l_msgid = t_bapireturn-id.&lt;/P&gt;&lt;P&gt;    l_msgno = t_bapireturn-number.&lt;/P&gt;&lt;P&gt;    l_msgtx = t_bapireturn-message.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    WRITE: / l_msgty, l_msgid, l_msgno, l_msgtx.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    if l_msgtx cs t_poheader-po.&lt;/P&gt;&lt;P&gt;      w_count = w_count + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      loop at t_update.&lt;/P&gt;&lt;P&gt;        if sy-tabix = w_count.&lt;/P&gt;&lt;P&gt;          t_message-item = t_update-itemvtls.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      endloop.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    t_message-msgty = l_msgty.&lt;/P&gt;&lt;P&gt;    t_message-msgid = l_msgid.&lt;/P&gt;&lt;P&gt;    t_message-msgno = l_msgno.&lt;/P&gt;&lt;P&gt;    t_message-msgtx = l_msgtx.&lt;/P&gt;&lt;P&gt;    t_message-po = w_povtls.&lt;/P&gt;&lt;P&gt;    append t_message.&lt;/P&gt;&lt;P&gt;    clear t_message.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    IF l_msgty EQ c_err.&lt;/P&gt;&lt;P&gt;      l_errflag = c_x.&lt;/P&gt;&lt;P&gt;    ENDIF.    " l_msgty EQ 'E'&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF l_errflag NE c_x.&lt;/P&gt;&lt;P&gt;    w_success = w_success + 1.&lt;/P&gt;&lt;P&gt;  ENDIF.    " l_errflag NE C_X&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    "call_bapi&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  fill_check_structure&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      This form Routine will check whether the specified structure&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      exist/active&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;FORM fill_check_structure  USING    fp_tabname TYPE any&lt;/P&gt;&lt;P&gt;                                    fp_orgtabname TYPE any&lt;/P&gt;&lt;P&gt;                                    fp_chktabname TYPE any&lt;/P&gt;&lt;P&gt;                                    fp_check TYPE c.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  FIELD-SYMBOLS : &amp;lt;fs_chk&amp;gt;, &amp;lt;fs_org&amp;gt;.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DATA:    l_char1(61)  TYPE c,&lt;/P&gt;&lt;P&gt;           l_char2(61)  TYPE c.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DATA:    BEGIN OF tl_nametab OCCURS 60.&lt;/P&gt;&lt;P&gt;          INCLUDE STRUCTURE x031l.&lt;/P&gt;&lt;P&gt;  DATA:    END OF tl_nametab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  REFRESH tl_nametab.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'RFC_GET_NAMETAB'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      tabname          = fp_tabname&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      nametab          = tl_nametab&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      table_not_active = 1&lt;/P&gt;&lt;P&gt;      OTHERS           = 2.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    CLEAR tl_nametab.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LOOP AT tl_nametab.&lt;/P&gt;&lt;P&gt;    CLEAR: l_char1, l_char2.&lt;/P&gt;&lt;P&gt;    CONCATENATE fp_chktabname c_hyp tl_nametab-fieldname INTO l_char1.&lt;/P&gt;&lt;P&gt;    ASSIGN (l_char1) TO &amp;lt;fs_chk&amp;gt;.&lt;/P&gt;&lt;P&gt;    CONCATENATE fp_orgtabname c_hyp tl_nametab-fieldname INTO l_char2.&lt;/P&gt;&lt;P&gt;    ASSIGN (l_char2) TO &amp;lt;fs_org&amp;gt;.&lt;/P&gt;&lt;P&gt;    IF &amp;lt;fs_org&amp;gt; IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      &amp;lt;fs_chk&amp;gt; = fp_check.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " fill_check_structure&lt;/P&gt;&lt;P&gt; &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  STORE_MESSAGES&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;FP_MESSAGEStext&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 STORE_MESSAGES TABLES FP_MESSAGES STRUCTURE T_MESSAGE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DATA: wl_output_data LIKE t_MESSAGE.&lt;/P&gt;&lt;P&gt;  DATA: l_catstr TYPE string.&lt;/P&gt;&lt;P&gt;  DATA: l_fieldvalue TYPE string.&lt;/P&gt;&lt;P&gt;  DATA: l_index TYPE i VALUE 1.&lt;/P&gt;&lt;P&gt;  DATA: L_FNAME(60).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  FIELD-SYMBOLS &amp;lt;fs&amp;gt;.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR l_catstr.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'FILE_GET_NAME'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      LOGICAL_FILENAME = '/USR/SAP/VTLS/POCHANGE/LOG'&lt;/P&gt;&lt;P&gt;      OPERATING_SYSTEM = SY-OPSYS&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      FILE_NAME        = L_FNAME&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      FILE_NOT_FOUND   = 1&lt;/P&gt;&lt;P&gt;      OTHERS           = 2.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = '0'.&lt;/P&gt;&lt;P&gt;    IF fp_messages[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      OPEN DATASET L_FNAME FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;        LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;        LOOP AT fp_messages INTO wl_output_data.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;          DO.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;           ASSIGN COMPONENT l_index OF STRUCTURE wl_output_data TO &amp;lt;fs&amp;gt;.&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; &lt;/P&gt;&lt;P&gt;              EXIT.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;            MOVE &amp;lt;fs&amp;gt; TO l_fieldvalue.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;            IF l_catstr IS NOT INITIAL.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;              CONCATENATE l_catstr l_fieldvalue INTO l_catstr SEPARATED&lt;/P&gt;&lt;P&gt;              BY con_tab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;              MOVE l_fieldvalue TO l_catstr.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;            l_index = l_index + c_1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;            CLEAR l_fieldvalue.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;            CLEAR &amp;lt;fs&amp;gt;.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;          ENDDO.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;          l_index = c_1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;          TRANSFER l_catstr TO L_FNAME .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;          CLEAR wl_output_data.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;          CLEAR l_catstr.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;        CLOSE  DATASET L_FNAME.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    "STORE_MESSAGES&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;rgds&lt;/P&gt;&lt;P&gt;anver&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if hlped pls mark points&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 Oct 2006 14:45:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-change/m-p/1724421#M315951</guid>
      <dc:creator>anversha_s</dc:creator>
      <dc:date>2006-10-30T14:45:17Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_PO_CHANGE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-change/m-p/1724422#M315952</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Santosh,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;here is sample abap code with BAPI_PO_CHANGE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Purpose:    To update the document specification version where the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            field document specification version of PO and scheduling&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            agreement is clicked&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;Input:      Date for the Auto Update Document Specication&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;Processing: 1. Retrieve data from CDHDR to find out the document&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               specification for a particular date&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            2. Selent the PO's wher the material which has been&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               changed for the Particular change from table EKPO and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               EKKO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            3. Call fuction 'ZEXT0079_GET_DOC' to find out the updated&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               document verion and the document number where the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               status of the document is 'RELEASED'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            4. Call function BAPI_PO_CREATE to change the document&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               specification number for the particular PO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            5. If any error comes from during change of document&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               specification, then pass the PO Number, Line Item and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               the document updated version to the file&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               'dms_auto_update_DO_NOT_DELETE'&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;SAP Functions:       BAPI_PO_CHANGE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Transactions Called: none&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Programs Called:     none&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Modification Log:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Date        Pgmr ID   Correction   Description&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;----------  --------  -----------  -----------------------------------&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;TYPES : BEGIN OF i_cdhdr_type ,&lt;/P&gt;&lt;P&gt;        objectid TYPE cdhdr-objectid,&lt;/P&gt;&lt;P&gt;        udate    TYPE cdhdr-udate,&lt;/P&gt;&lt;P&gt;        tcode    TYPE cdhdr-tcode,&lt;/P&gt;&lt;P&gt;        END OF i_cdhdr_type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF i_ekpo_type,&lt;/P&gt;&lt;P&gt;        ebeln   TYPE ekpo-ebeln,&lt;/P&gt;&lt;P&gt;        ebelp   TYPE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;        matnr   TYPE ekpo-matnr,&lt;/P&gt;&lt;P&gt;        zzdokvr TYPE draw-dokvr,&lt;/P&gt;&lt;P&gt;        loekz   TYPE ekpo-loekz,&lt;/P&gt;&lt;P&gt;        elikz   TYPE ekpo-elikz,&lt;/P&gt;&lt;P&gt;        erekz   TYPE ekpo-erekz,&lt;/P&gt;&lt;P&gt;        bstyp   TYPE ekpo-bstyp,&lt;/P&gt;&lt;P&gt;        doknr   TYPE draw-doknr,&lt;/P&gt;&lt;P&gt;        dokvr   TYPE draw-dokvr,&lt;/P&gt;&lt;P&gt;        END OF i_ekpo_type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF i_ekko_type,&lt;/P&gt;&lt;P&gt;        ebeln   TYPE ekpo-ebeln,&lt;/P&gt;&lt;P&gt;        memory  TYPE ekko-memory,&lt;/P&gt;&lt;P&gt;        kdate   TYPE ekko-kdate,&lt;/P&gt;&lt;P&gt;        END OF i_ekko_type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF i_prvrec_type,&lt;/P&gt;&lt;P&gt;        ebeln   TYPE ekpo-ebeln,&lt;/P&gt;&lt;P&gt;        ebelp   TYPE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;        dokvr   TYPE draw-dokvr,&lt;/P&gt;&lt;P&gt;        END OF i_prvrec_type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF i_line_type ,&lt;/P&gt;&lt;P&gt;        ebeln   TYPE    ekpo-ebeln,&lt;/P&gt;&lt;P&gt;        END OF i_line_type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF i_error_rec_type,&lt;/P&gt;&lt;P&gt;        v_nprocess(50) ,&lt;/P&gt;&lt;P&gt;        END OF i_error_rec_type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA :i_cdhdr TYPE TABLE OF i_cdhdr_type WITH NON-UNIQUE KEY objectid,&lt;/P&gt;&lt;P&gt;      wa_cdhdr TYPE i_cdhdr_type,&lt;/P&gt;&lt;P&gt;      i_ekpo TYPE TABLE OF i_ekpo_type WITH NON-UNIQUE KEY ebeln ebelp ,&lt;/P&gt;&lt;P&gt;      wa_ekpo TYPE i_ekpo_type,&lt;/P&gt;&lt;P&gt;      i_ekko TYPE i_ekko_type OCCURS 0,&lt;/P&gt;&lt;P&gt;      wa_ekko TYPE i_ekko_type,&lt;/P&gt;&lt;P&gt;      i_prvrec TYPE i_prvrec_type OCCURS 0,&lt;/P&gt;&lt;P&gt;      wa_prvrec TYPE i_prvrec_type,&lt;/P&gt;&lt;P&gt;      i_line TYPE i_line_type OCCURS 0,&lt;/P&gt;&lt;P&gt;      wa_line TYPE i_line_type,&lt;/P&gt;&lt;P&gt;      v_upd_lines TYPE sy-tabix,&lt;/P&gt;&lt;P&gt;      i_dms TYPE TABLE OF  bapiparex,&lt;/P&gt;&lt;P&gt;      return TYPE TABLE OF bapiret2,&lt;/P&gt;&lt;P&gt;      wa_dms TYPE bapiparex,&lt;/P&gt;&lt;P&gt;      i_error_rec TYPE i_error_rec_type OCCURS 0,&lt;/P&gt;&lt;P&gt;      wa_error_rec TYPE i_error_rec_type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS : c_doc(11)   TYPE c VALUE 'DOKUMENT',&lt;/P&gt;&lt;P&gt;            c_dir(100)  TYPE c VALUE&lt;/P&gt;&lt;P&gt;'/sapia/iface/in/comm/sapprc/dms_auto_update_DO_NOT_DELETE',&lt;/P&gt;&lt;P&gt;            c_tcode_fm(5) TYPE c VALUE 'CV01N',&lt;/P&gt;&lt;P&gt;            c_tcode_to(5) TYPE c VALUE 'CV02N' ,&lt;/P&gt;&lt;P&gt;            c_elikz     TYPE c VALUE 'X',&lt;/P&gt;&lt;P&gt;            c_erekz     TYPE c VALUE 'X' ,&lt;/P&gt;&lt;P&gt;            c_flag      TYPE c VALUE 'X' ,&lt;/P&gt;&lt;P&gt;            c_memory    TYPE c VALUE 'X' ,&lt;/P&gt;&lt;P&gt;            c_date(8)   TYPE c VALUE '00000000',&lt;/P&gt;&lt;P&gt;            c_item(20)  TYPE c VALUE 'BAPI_TE_MEPOITEM',&lt;/P&gt;&lt;P&gt;            c_itemx(20) TYPE c VALUE 'BAPI_TE_MEPOITEMX'.&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 details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SELECTION-SCREEN : BEGIN OF BLOCK 001 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_udate FOR sy-datum OBLIGATORY.    "Doc Change Date&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END   OF BLOCK 001.&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;Opening the file from Application Server to check whether&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;any records are present which are not processed from Previous run&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;OPEN DATASET c_dir FOR INPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;  MESSAGE e000(zf) WITH text-002.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DO.&lt;/P&gt;&lt;P&gt;  READ DATASET c_dir INTO wa_prvrec.&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 wa_prvrec TO i_prvrec.&lt;/P&gt;&lt;P&gt;ENDDO.&lt;/P&gt;&lt;P&gt;CLOSE DATASET c_dir.&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;Selecting the Document changes which has been changed for the Dates&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Entered&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SELECT  objectid&lt;/P&gt;&lt;P&gt;        udate&lt;/P&gt;&lt;P&gt;        tcode&lt;/P&gt;&lt;P&gt;       INTO TABLE i_cdhdr&lt;/P&gt;&lt;P&gt;                  FROM cdhdr&lt;/P&gt;&lt;P&gt;                  WHERE objectclas = c_doc&lt;/P&gt;&lt;P&gt;                  AND udate IN s_udate&lt;/P&gt;&lt;P&gt;                  AND  ( tcode EQ c_tcode_fm&lt;/P&gt;&lt;P&gt;                  OR tcode EQ c_tcode_to ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DELETE ADJACENT DUPLICATES FROM i_cdhdr COMPARING objectid+3(25).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If some Document Specifications are changed, then selecting the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;following field from table EKPO and EKKO&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Shilpa: Instead of following select query in blue color we can use red color query by prithwi:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT ebeln     " Purchasing Document Number&lt;/P&gt;&lt;P&gt;         ebelp     &amp;#147;Item Number of Purchasing Document&lt;/P&gt;&lt;P&gt;         matnr     " Material Number&lt;/P&gt;&lt;P&gt;         zzdokvr   &amp;#147;Current Document Version&lt;/P&gt;&lt;P&gt;         elikz&lt;/P&gt;&lt;P&gt;         erekz&lt;/P&gt;&lt;P&gt;         bstyp&lt;/P&gt;&lt;P&gt;         FROM ekpo INTO CORRESPONDING FIELDS OF TABLE i_ekpo&lt;/P&gt;&lt;P&gt;         FOR ALL ENTRIES IN i_cdhdr&lt;/P&gt;&lt;P&gt;     WHERE zzdoknr EQ i_cdhdr-objectid+3(25) "Document Number&lt;/P&gt;&lt;P&gt;       AND zzdocautoupd_flg EQ c_flag.   "Revision Level Auto Update&lt;/P&gt;&lt;P&gt;       AND wa_ekpo-loekz EQ space &lt;/P&gt;&lt;P&gt;       AND wa_ekpo-elikz NE c_elikz&lt;/P&gt;&lt;P&gt;       AND wa_ekpo-erekz NE c_erekz&lt;/P&gt;&lt;P&gt;       AND (wa_ekpo-bstyp EQ 'F' &lt;/P&gt;&lt;P&gt;           OR wa_ekpo-bstyp EQ 'L')&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT i_cdhdr[] IS INITIAL.&lt;/P&gt;&lt;P&gt;  SELECT ebeln     " Purchasing Document Number&lt;/P&gt;&lt;P&gt;         ebelp     " Item Number of Purchasing Document&lt;/P&gt;&lt;P&gt;         matnr     " Material Number&lt;/P&gt;&lt;P&gt;         zzdokvr   " Current Document Version&lt;/P&gt;&lt;P&gt;         elikz&lt;/P&gt;&lt;P&gt;         erekz&lt;/P&gt;&lt;P&gt;         bstyp&lt;/P&gt;&lt;P&gt;         FROM ekpo INTO CORRESPONDING FIELDS OF TABLE i_ekpo&lt;/P&gt;&lt;P&gt;         FOR ALL ENTRIES IN i_cdhdr&lt;/P&gt;&lt;P&gt;     WHERE zzdoknr EQ i_cdhdr-objectid+3(25) "Document Number&lt;/P&gt;&lt;P&gt;       AND zzdocautoupd_flg EQ c_flag.   "Revision Level Auto Update&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;DATA: idx TYPE i.&lt;/P&gt;&lt;P&gt;LOOP AT i_ekpo INTO wa_ekpo.&lt;/P&gt;&lt;P&gt;  idx = sy-tabix.&lt;/P&gt;&lt;P&gt;  IF wa_ekpo-loekz NE space&lt;/P&gt;&lt;P&gt;     OR wa_ekpo-elikz EQ c_elikz&lt;/P&gt;&lt;P&gt;     OR wa_ekpo-erekz EQ c_erekz&lt;/P&gt;&lt;P&gt;     OR ( wa_ekpo-bstyp NE 'F'&lt;/P&gt;&lt;P&gt;     AND  wa_ekpo-bstyp NE 'L' ).&lt;/P&gt;&lt;P&gt;*-----no good.&lt;/P&gt;&lt;P&gt;    DELETE i_ekpo INDEX idx.&lt;/P&gt;&lt;P&gt;    CONTINUE.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT i_ekpo[] IS INITIAL.&lt;/P&gt;&lt;P&gt;  SELECT ebeln      " Purchasing Document Number&lt;/P&gt;&lt;P&gt;         memory     " Purchase order not yet complete&lt;/P&gt;&lt;P&gt;         kdate      " End of validity period&lt;/P&gt;&lt;P&gt;         FROM ekko&lt;/P&gt;&lt;P&gt;         INTO TABLE i_ekko&lt;/P&gt;&lt;P&gt;         FOR ALL ENTRIES IN i_ekpo&lt;/P&gt;&lt;P&gt;         WHERE ebeln EQ i_ekpo-ebeln." AND&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SORT i_ekko BY ebeln.&lt;/P&gt;&lt;P&gt;LOOP AT i_ekpo INTO wa_ekpo.&lt;/P&gt;&lt;P&gt;  READ TABLE i_ekko INTO wa_ekko WITH KEY ebeln = wa_ekpo-ebeln&lt;/P&gt;&lt;P&gt;                                          BINARY SEARCH.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If date is LESS Then System Date, then deleting the record&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF wa_ekpo-kdate NE c_date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF  wa_ekko-kdate LT sy-datum AND&lt;/P&gt;&lt;P&gt;        wa_ekko-kdate NE c_date.&lt;/P&gt;&lt;P&gt;      DELETE i_ekpo.&lt;/P&gt;&lt;P&gt;      CLEAR wa_ekpo.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF  wa_ekko-memory EQ c_memory.&lt;/P&gt;&lt;P&gt;      DELETE i_ekpo.&lt;/P&gt;&lt;P&gt;      CLEAR wa_ekpo.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&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;Calling the Function Module to get the Document Specification Number&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and Current released Version&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'ZEXT0079_GET_DOC'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_matnr = wa_ekpo-matnr&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      e_doknr = wa_ekpo-doknr&lt;/P&gt;&lt;P&gt;      e_dokvr = wa_ekpo-dokvr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0 AND wa_ekpo-zzdokvr NE wa_ekpo-dokvr.&lt;/P&gt;&lt;P&gt;    MODIFY i_ekpo FROM wa_ekpo TRANSPORTING doknr dokvr.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    DELETE i_ekpo.&lt;/P&gt;&lt;P&gt;    CONTINUE.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SORT i_ekpo BY ebeln ebelp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Loop at the Previous Day Table to find out whether the same Document&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Specs. Version exists at Todays File.If YES then Deleting the record&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;else moving the previous day record to the Todays Internal Table for&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Execution&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT i_prvrec INTO wa_prvrec.&lt;/P&gt;&lt;P&gt;  READ TABLE i_ekpo INTO wa_ekpo  WITH KEY ebeln = wa_prvrec-ebeln&lt;/P&gt;&lt;P&gt;                                           ebelp = wa_prvrec-ebelp&lt;/P&gt;&lt;P&gt;                                           BINARY SEARCH.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    DELETE i_prvrec.&lt;/P&gt;&lt;P&gt;    CLEAR wa_prvrec.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING wa_prvrec TO wa_ekpo.&lt;/P&gt;&lt;P&gt;    APPEND wa_ekpo TO i_ekpo.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SORT i_ekpo BY ebeln ebelp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT i_ekpo INTO wa_ekpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ON CHANGE OF wa_ekpo-ebeln.&lt;/P&gt;&lt;P&gt;    IF sy-tabix NE 1.&lt;/P&gt;&lt;P&gt;      PERFORM bapi_po_change .&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDON.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Moving the Values to the structure for Posting the Data by Function&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Module BAPI_PO_CHANGE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  MOVE c_item TO wa_dms-structure.&lt;/P&gt;&lt;P&gt;  MOVE wa_ekpo-ebelp TO wa_dms-valuepart1.&lt;/P&gt;&lt;P&gt;  MOVE wa_ekpo-dokvr TO wa_dms-valuepart1+30(2).&lt;/P&gt;&lt;P&gt;  APPEND wa_dms TO i_dms.&lt;/P&gt;&lt;P&gt;  MOVE c_itemx TO wa_dms-structure.&lt;/P&gt;&lt;P&gt;  MOVE wa_ekpo-ebelp TO wa_dms-valuepart1.&lt;/P&gt;&lt;P&gt;  MOVE 'X' TO wa_dms-valuepart1+06(1).&lt;/P&gt;&lt;P&gt;  APPEND wa_dms TO i_dms.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  MOVE wa_ekpo-ebeln TO wa_line-ebeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  AT LAST.&lt;/P&gt;&lt;P&gt;    READ TABLE i_ekpo INTO wa_ekpo INDEX 1.&lt;/P&gt;&lt;P&gt;    PERFORM bapi_po_change .&lt;/P&gt;&lt;P&gt;  ENDAT.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Opening the Application Server file to Add all the records&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;which has ERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;OPEN DATASET c_dir FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;LOOP AT i_error_rec INTO wa_error_rec.&lt;/P&gt;&lt;P&gt;  TRANSFER wa_error_rec TO c_dir.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;CLOSE DATASET c_dir.&lt;/P&gt;&lt;P&gt;IF NOT i_error_rec[] IS INITIAL.&lt;/P&gt;&lt;P&gt;  MESSAGE i000(zf) WITH text-004.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;IF sy-batch = space.&lt;/P&gt;&lt;P&gt;  MESSAGE s000(zf) WITH text-005.&lt;/P&gt;&lt;P&gt;ENDIF.&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  bapi_po_change&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;P_I_EKPO  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_I_DMS  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 bapi_po_change  .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sorting table i_dms to first send all the Item Details and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;then the Itemx details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SORT i_dms BY structure.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_PO_CHANGE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      Purchaseorder = wa_line-ebeln&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      return        = return[]&lt;/P&gt;&lt;P&gt;      extensionin   = i_dms[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE return LINES v_upd_lines.&lt;/P&gt;&lt;P&gt;  IF v_upd_lines = 0.&lt;/P&gt;&lt;P&gt;    COMMIT WORK AND WAIT.&lt;/P&gt;&lt;P&gt;  ELSEIF v_upd_lines GT 1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Error File processing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM error_records_processing.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH : i_dms , return , i_line .&lt;/P&gt;&lt;P&gt;  CLEAR : wa_dms , return , wa_line .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bapi_po_change&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  error_records_processing&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;P_I_DMS[]  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 error_records_processing.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Holding the Error records in an Internal Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT i_dms INTO wa_dms WHERE structure EQ c_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONCATENATE wa_line-ebeln&lt;/P&gt;&lt;P&gt;                wa_dms-valuepart1+0(5)&lt;/P&gt;&lt;P&gt;                wa_dms-valuepart1+30(2)&lt;/P&gt;&lt;P&gt;                INTO wa_error_rec.&lt;/P&gt;&lt;P&gt;    APPEND wa_error_rec TO i_error_rec.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " error_records_processing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regards,&lt;/P&gt;&lt;P&gt;Shilpa K.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please allocate some points if it helps&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Oct 2006 06:02:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-change/m-p/1724422#M315952</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-10-31T06:02:35Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_PO_CHANGE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-change/m-p/1724423#M315953</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi i want to close the PurchaseOrder by using BAPI_PO_CHANGE so i want mandatory fields to close the PO&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Apr 2008 11:24:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-change/m-p/1724423#M315953</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-01T11:24:19Z</dc:date>
    </item>
  </channel>
</rss>

