<?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: Sample code for bapi po change in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/sample-code-for-bapi-po-change/m-p/2367707#M524390</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;REPORT zmmi_po_close NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;                          LINE-COUNT 65&lt;/P&gt;&lt;P&gt;                          LINE-SIZE  128&lt;/P&gt;&lt;P&gt;                          MESSAGE-ID zcustrans.&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;                         DATA DECLARATION                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;Table work area&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TABLES: ekko,&lt;/P&gt;&lt;P&gt;        ekpo,&lt;/P&gt;&lt;P&gt;        eket.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF t_po OCCURS 0,&lt;/P&gt;&lt;P&gt;        ebeln LIKE ekko-ebeln,&lt;/P&gt;&lt;P&gt;        ebelp LIKE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;        matnr LIKE ekpo-matnr,&lt;/P&gt;&lt;P&gt;        idnlf LIKE ekpo-idnlf,&lt;/P&gt;&lt;P&gt;        menge LIKE ekpo-menge,&lt;/P&gt;&lt;P&gt;        meins LIKE ekpo-meins,&lt;/P&gt;&lt;P&gt;        netpr LIKE ekpo-netpr,&lt;/P&gt;&lt;P&gt;        eindt LIKE eket-eindt,&lt;/P&gt;&lt;P&gt;        lifnr LIKE ekko-lifnr,&lt;/P&gt;&lt;P&gt;      END OF t_po.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_mess OCCURS 0,&lt;/P&gt;&lt;P&gt;        ebeln        LIKE ekko-ebeln,&lt;/P&gt;&lt;P&gt;        message(100) TYPE c,&lt;/P&gt;&lt;P&gt;      END OF t_mess.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: t_po_dup LIKE t_po          OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: t_return LIKE bapiret2      OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: t_item   LIKE bapimepoitem  OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: t_itemx  LIKE bapimepoitemx OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Variables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: w_col1      TYPE i,&lt;/P&gt;&lt;P&gt;      w_col2      TYPE i,&lt;/P&gt;&lt;P&gt;      w_len       TYPE i,&lt;/P&gt;&lt;P&gt;      w_str       TYPE i,&lt;/P&gt;&lt;P&gt;      w_color     TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Constants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CONSTANTS: c_usd LIKE tcurc-waers VALUE 'USD'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : v_day(2) type c .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : v_days LIKE tvak-vlauf .&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;                          INITIALIZATION                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&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;  PERFORM init_data.&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;LI level="1" type="ul"&gt;&lt;P&gt;                           TOP OF PAGE                               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM get_header.&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;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 b1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: SKIP 1.&lt;/P&gt;&lt;P&gt;  PARAMETERS:     p_werks LIKE ekpo-werks DEFAULT '1000' NO-DISPLAY,&lt;/P&gt;&lt;P&gt;                  p_lgort LIKE ekpo-lgort DEFAULT '1000' NO-DISPLAY,&lt;/P&gt;&lt;P&gt;                  p_bukrs LIKE ekko-bukrs DEFAULT '0011' NO-DISPLAY,&lt;/P&gt;&lt;P&gt;                  p_ekorg LIKE ekko-ekorg DEFAULT '1000'.&lt;/P&gt;&lt;P&gt;  SELECT-OPTIONS: s_lifnr FOR ekko-lifnr,&lt;/P&gt;&lt;P&gt;                  s_ekgrp FOR ekko-ekgrp,&lt;/P&gt;&lt;P&gt;                  s_ebeln FOR ekko-ebeln,&lt;/P&gt;&lt;P&gt;                  s_matnr FOR ekpo-matnr.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: SKIP 1.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: END OF BLOCK b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-020.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: SKIP 1.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN COMMENT 1(79) text-021.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: END OF LINE.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN COMMENT 1(42) text-022.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: END OF LINE.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: SKIP 1.&lt;/P&gt;&lt;P&gt;  SELECT-OPTIONS: s_eindt FOR eket-eindt NO INTERVALS NO-EXTENSION&lt;/P&gt;&lt;P&gt;                                         OBLIGATORY.&lt;/P&gt;&lt;P&gt;  PARAMETERS:     p_days LIKE v_day OBLIGATORY.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: SKIP 1.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: END OF BLOCK b2.&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;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;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Ensure the delivery date is only in past&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM check_date.&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;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;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;&amp;lt; Start delete &amp;gt;&amp;gt;  Rajs-02/17/2005&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;New rules have been created as variant. Do not need it any more&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;Over-write delivery date if run in background&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF NOT sy-batch IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM init_data.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE i000 WITH text-018 text-019.&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;&amp;lt;&amp;lt; End delete &amp;gt;&amp;gt;&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;Pass the value to Decmal variable&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;v_days = p_days.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Calculate date for selection:  Rajs-04/08/2005&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM get_delivery_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Extract and process data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM get_data.&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;LI level="1" type="ul"&gt;&lt;P&gt;                         END 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;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Screen output&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM display_report.&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;LI level="1" type="ul"&gt;&lt;P&gt;                        AT LINE 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;AT LINE-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display PO document&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF NOT t_po_dup-ebeln IS INITIAL.&lt;/P&gt;&lt;P&gt;    SET PARAMETER ID 'BES' FIELD t_po_dup-ebeln.&lt;/P&gt;&lt;P&gt;    CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;    CLEAR: t_po_dup-ebeln.&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;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                            SUB ROUTINES                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;      Form  get_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 get_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR  : t_po, t_po_dup, t_return, t_mess.&lt;/P&gt;&lt;P&gt;  REFRESH: t_po, t_po_dup, t_return, t_mess.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Extract open PO items in past that have schedule delivery as given in&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;selection&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT a~ebeln&lt;/P&gt;&lt;P&gt;         b&lt;SUB&gt;ebelp b&lt;/SUB&gt;matnr b&lt;SUB&gt;idnlf b&lt;/SUB&gt;menge b&lt;SUB&gt;meins b&lt;/SUB&gt;netpr&lt;/P&gt;&lt;P&gt;         c&lt;SUB&gt;eindt a&lt;/SUB&gt;lifnr&lt;/P&gt;&lt;P&gt;         INTO TABLE t_po&lt;/P&gt;&lt;P&gt;         FROM ( ( ekko AS a INNER JOIN ekpo&lt;/P&gt;&lt;P&gt;                       AS b ON a&lt;SUB&gt;ebeln = b&lt;/SUB&gt;ebeln )&lt;/P&gt;&lt;P&gt;                            INNER JOIN eket&lt;/P&gt;&lt;P&gt;                       AS c ON b&lt;SUB&gt;ebeln = c&lt;/SUB&gt;ebeln AND&lt;/P&gt;&lt;P&gt;                               b&lt;SUB&gt;ebelp = c&lt;/SUB&gt;ebelp )&lt;/P&gt;&lt;P&gt;         WHERE a~ebeln IN s_ebeln AND&lt;/P&gt;&lt;P&gt;               a~bstyp  = 'F'     AND&lt;/P&gt;&lt;P&gt;               a~bsart  = 'NB'    AND&lt;/P&gt;&lt;P&gt;               a~loekz  = space   AND&lt;/P&gt;&lt;P&gt;               a~lifnr IN s_lifnr AND&lt;/P&gt;&lt;P&gt;               a~ekorg  = p_ekorg AND&lt;/P&gt;&lt;P&gt;               a~ekgrp IN s_ekgrp AND&lt;/P&gt;&lt;P&gt;               b~loekz  = space   AND&lt;/P&gt;&lt;P&gt;               b~matnr IN s_matnr AND&lt;/P&gt;&lt;P&gt;               b~werks  = p_werks AND&lt;/P&gt;&lt;P&gt;               b~lgort  = p_lgort AND&lt;/P&gt;&lt;P&gt;               b~elikz  = space   AND&lt;/P&gt;&lt;P&gt;               c~eindt IN s_eindt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc = 0.&lt;/P&gt;&lt;P&gt;  t_po_dup[] = t_po[].&lt;/P&gt;&lt;P&gt;  SORT: t_po, t_po_dup.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_po.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get items&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    t_item-po_item    = t_po-ebelp.&lt;/P&gt;&lt;P&gt;    t_item-material   = t_po-matnr.&lt;/P&gt;&lt;P&gt;    t_item-plant      = p_werks.&lt;/P&gt;&lt;P&gt;    t_item-stge_loc   = p_lgort.&lt;/P&gt;&lt;P&gt;    t_item-no_more_gr = 'X'.&lt;/P&gt;&lt;P&gt;    APPEND t_item.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set item changes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    t_itemx-po_item   = t_po-ebelp.&lt;/P&gt;&lt;P&gt;    t_itemx-no_more_gr = 'X'.&lt;/P&gt;&lt;P&gt;    APPEND t_itemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AT END OF ebeln.&lt;/P&gt;&lt;P&gt;      CLEAR  : t_return.&lt;/P&gt;&lt;P&gt;      REFRESH: t_return.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set delivery complete indicator for items in a PO&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CALL FUNCTION 'BAPI_PO_CHANGE'&lt;/P&gt;&lt;P&gt;           EXPORTING&lt;/P&gt;&lt;P&gt;                purchaseorder = t_po-ebeln&lt;/P&gt;&lt;P&gt;           TABLES&lt;/P&gt;&lt;P&gt;                return        = t_return&lt;/P&gt;&lt;P&gt;                poitem        = t_item&lt;/P&gt;&lt;P&gt;                poitemx       = t_itemx.&lt;/P&gt;&lt;P&gt;      LOOP AT t_return WHERE type = 'A' OR&lt;/P&gt;&lt;P&gt;                             type = 'E'.&lt;/P&gt;&lt;P&gt;        MOVE: t_po-ebeln       TO t_mess-ebeln,&lt;/P&gt;&lt;P&gt;              t_return-message TO t_mess-message.&lt;/P&gt;&lt;P&gt;        APPEND t_mess.&lt;/P&gt;&lt;P&gt;        CLEAR  t_mess.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Commit if there is no error&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF sy-subrc &amp;lt;&amp;gt; 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 = 'X'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This table contains only POs that are successfully processed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        DELETE t_po_dup WHERE ebeln = t_po-ebeln.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CLEAR  : t_item, t_itemx.&lt;/P&gt;&lt;P&gt;      REFRESH: t_item, t_itemx.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;    CLEAR t_po.&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;ENDFORM.                    " get_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  get_header&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 get_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_HEADING INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;  PERFORM calc_col_and_write USING text-002&lt;/P&gt;&lt;P&gt;                                   sy-linsz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM calc_col_and_write USING sy-title&lt;/P&gt;&lt;P&gt;                                   sy-linsz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;User id&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  w_col1 = 2.&lt;/P&gt;&lt;P&gt;  WRITE: AT /w_col1 'UserId    : ', sy-uname.&lt;/P&gt;&lt;P&gt;  w_len = sy-linsz - 1.&lt;/P&gt;&lt;P&gt;  WRITE AT sy-colno(w_len) space.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Run date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  w_col2 = sy-linsz - 16.&lt;/P&gt;&lt;P&gt;  WRITE: AT w_col2 'Date: ', sy-datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Report name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  WRITE: AT /w_col1 'Report Id : ', sy-repid.&lt;/P&gt;&lt;P&gt;  WRITE AT sy-colno(w_len) space.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Run time&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  w_col2 = sy-linsz - 16.&lt;/P&gt;&lt;P&gt;  WRITE: AT w_col2 'Time: ', sy-uzeit.&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;Delivery date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE: AT /w_col1 'Delivery date: ', p_vdatu.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE AT sy-colno(w_len) space.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Page number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  w_col2 = sy-linsz - 16.&lt;/P&gt;&lt;P&gt;  WRITE: AT /w_col2 'Page: ', sy-pagno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FORMAT RESET.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt;  SKIP 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Note&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF NOT t_po[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_NEGATIVE INVERSE ON.&lt;/P&gt;&lt;P&gt;    WRITE: /2 text-012.&lt;/P&gt;&lt;P&gt;    WRITE: /2 text-011.&lt;/P&gt;&lt;P&gt;    FORMAT RESET.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  SKIP 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_HEADING INVERSE OFF INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Column heading&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  WRITE: /1   sy-vline, 2   text-003,&lt;/P&gt;&lt;P&gt;          14  sy-vline, 15  text-004,&lt;/P&gt;&lt;P&gt;          22  sy-vline, 23  text-005,&lt;/P&gt;&lt;P&gt;          34  sy-vline, 35  text-010,&lt;/P&gt;&lt;P&gt;          72  sy-vline, 73  text-006,&lt;/P&gt;&lt;P&gt;          92  sy-vline, 93  text-007,&lt;/P&gt;&lt;P&gt;          98  sy-vline, 99  text-008,&lt;/P&gt;&lt;P&gt;          115 sy-vline, 116 text-009,&lt;/P&gt;&lt;P&gt;          128 sy-vline.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt;  FORMAT RESET.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_header&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  display_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 display_report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF t_po[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SKIP 2.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_NEGATIVE INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;    WRITE: / text-015.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;List of PO items closed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT t_po_dup.&lt;/P&gt;&lt;P&gt;      IF w_color IS INITIAL.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR COL_NORMAL INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;        w_color = 'X'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR COL_NORMAL INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;        CLEAR w_color.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      WRITE: /1   sy-vline, 2   t_po_dup-ebeln,&lt;/P&gt;&lt;P&gt;              14  sy-vline, 15  t_po_dup-ebelp,&lt;/P&gt;&lt;P&gt;              22  sy-vline, 23  t_po_dup-matnr NO-ZERO,&lt;/P&gt;&lt;P&gt;              34  sy-vline, 35  t_po_dup-idnlf,&lt;/P&gt;&lt;P&gt;              72  sy-vline, 73  t_po_dup-menge UNIT t_po_dup-meins,&lt;/P&gt;&lt;P&gt;              92  sy-vline, 93  t_po_dup-meins,&lt;/P&gt;&lt;P&gt;              98  sy-vline, 99  t_po_dup-netpr CURRENCY c_usd,&lt;/P&gt;&lt;P&gt;              115 sy-vline, 116 t_po_dup-lifnr,&lt;/P&gt;&lt;P&gt;              128 sy-vline.&lt;/P&gt;&lt;P&gt;      HIDE : t_po_dup.&lt;/P&gt;&lt;P&gt;      CLEAR: t_po_dup.&lt;/P&gt;&lt;P&gt;      AT LAST.&lt;/P&gt;&lt;P&gt;        ULINE.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      SKIP 2.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_NEGATIVE INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;      WRITE: / text-013.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Error messages - List of PO items not closed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT t_mess.&lt;/P&gt;&lt;P&gt;      AT FIRST.&lt;/P&gt;&lt;P&gt;        SKIP 2.&lt;/P&gt;&lt;P&gt;        ULINE.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR COL_HEADING INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;        WRITE: /1   sy-vline, 2  text-003,&lt;/P&gt;&lt;P&gt;                14  sy-vline, 15 text-014,&lt;/P&gt;&lt;P&gt;                115 sy-vline.&lt;/P&gt;&lt;P&gt;        ULINE.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;      IF w_color IS INITIAL.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR COL_NEGATIVE INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;        w_color = 'X'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;        CLEAR w_color.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      WRITE: /1   sy-vline, 2  t_mess-ebeln,&lt;/P&gt;&lt;P&gt;              14  sy-vline, 15 t_mess-message,&lt;/P&gt;&lt;P&gt;              115 sy-vline.&lt;/P&gt;&lt;P&gt;      HIDE : t_mess.&lt;/P&gt;&lt;P&gt;      CLEAR: t_mess.&lt;/P&gt;&lt;P&gt;      AT LAST.&lt;/P&gt;&lt;P&gt;        ULINE.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      SKIP 2.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_POSITIVE INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;      WRITE: / text-016.&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;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " display_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;P&gt;*&amp;amp;      Form  calc_col_and_write&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_TEXT_002  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_SY_LINSZ  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 calc_col_and_write USING    p_text&lt;/P&gt;&lt;P&gt;                                 p_linsz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_str  = strlen( p_text ).&lt;/P&gt;&lt;P&gt;  w_col1 = ( p_linsz / 2 ) - ( w_str / 2 ).&lt;/P&gt;&lt;P&gt;  w_len  = p_linsz - w_col1 + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE: AT /w_col1 p_text.&lt;/P&gt;&lt;P&gt;  WRITE AT sy-colno(w_len) space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " calc_col_and_write&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  check_date&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 check_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT s_eindt.&lt;/P&gt;&lt;P&gt;    IF NOT s_eindt-high IS INITIAL AND&lt;/P&gt;&lt;P&gt;           s_eindt-high &amp;gt; sy-datum.&lt;/P&gt;&lt;P&gt;      MESSAGE e000 WITH text-017.&lt;/P&gt;&lt;P&gt;    ELSEIF NOT s_eindt-low IS INITIAL AND&lt;/P&gt;&lt;P&gt;               s_eindt-low &amp;gt; sy-datum.&lt;/P&gt;&lt;P&gt;      MESSAGE e000 WITH text-017.&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;ENDFORM.                    " check_date&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  init_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 init_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR   s_eindt.&lt;/P&gt;&lt;P&gt;  REFRESH s_eindt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All POs that are open more than a specified number of days are to be&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;closed automatically. Current day - 5 is defaulted&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  s_eindt-sign   = 'I'.&lt;/P&gt;&lt;P&gt;  s_eindt-option = 'LE'.&lt;/P&gt;&lt;P&gt;  s_eindt-low    = sy-datum.&lt;/P&gt;&lt;P&gt;  APPEND s_eindt.&lt;/P&gt;&lt;P&gt;  CLEAR  s_eindt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  p_days = '5'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " init_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  get_delivery_date&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 get_delivery_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Now, the no. of days to retain the PO is given as a parameter&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Any PO with delivery date prior to this date need to be closed&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Calculate the date based on selection and default the sign to "=&amp;lt;".&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT s_eindt.&lt;/P&gt;&lt;P&gt;    s_eindt-sign   = 'I'.&lt;/P&gt;&lt;P&gt;    s_eindt-option = 'LE'.&lt;/P&gt;&lt;P&gt;    s_eindt-low = s_eindt-low - v_days.&lt;/P&gt;&lt;P&gt;    MODIFY s_eindt.&lt;/P&gt;&lt;P&gt;    CLEAR  s_eindt.&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;ENDFORM.                    " get_delivery_date&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 08 Jun 2007 21:00:09 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-06-08T21:00:09Z</dc:date>
    <item>
      <title>Sample code for bapi po change</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sample-code-for-bapi-po-change/m-p/2367706#M524389</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Anyone plz send me the sample code for po change bapi&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Jun 2007 20:57:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sample-code-for-bapi-po-change/m-p/2367706#M524389</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-08T20:57:47Z</dc:date>
    </item>
    <item>
      <title>Re: Sample code for bapi po change</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sample-code-for-bapi-po-change/m-p/2367707#M524390</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;REPORT zmmi_po_close NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;                          LINE-COUNT 65&lt;/P&gt;&lt;P&gt;                          LINE-SIZE  128&lt;/P&gt;&lt;P&gt;                          MESSAGE-ID zcustrans.&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;                         DATA DECLARATION                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;Table work area&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TABLES: ekko,&lt;/P&gt;&lt;P&gt;        ekpo,&lt;/P&gt;&lt;P&gt;        eket.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF t_po OCCURS 0,&lt;/P&gt;&lt;P&gt;        ebeln LIKE ekko-ebeln,&lt;/P&gt;&lt;P&gt;        ebelp LIKE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;        matnr LIKE ekpo-matnr,&lt;/P&gt;&lt;P&gt;        idnlf LIKE ekpo-idnlf,&lt;/P&gt;&lt;P&gt;        menge LIKE ekpo-menge,&lt;/P&gt;&lt;P&gt;        meins LIKE ekpo-meins,&lt;/P&gt;&lt;P&gt;        netpr LIKE ekpo-netpr,&lt;/P&gt;&lt;P&gt;        eindt LIKE eket-eindt,&lt;/P&gt;&lt;P&gt;        lifnr LIKE ekko-lifnr,&lt;/P&gt;&lt;P&gt;      END OF t_po.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_mess OCCURS 0,&lt;/P&gt;&lt;P&gt;        ebeln        LIKE ekko-ebeln,&lt;/P&gt;&lt;P&gt;        message(100) TYPE c,&lt;/P&gt;&lt;P&gt;      END OF t_mess.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: t_po_dup LIKE t_po          OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: t_return LIKE bapiret2      OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: t_item   LIKE bapimepoitem  OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: t_itemx  LIKE bapimepoitemx OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Variables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: w_col1      TYPE i,&lt;/P&gt;&lt;P&gt;      w_col2      TYPE i,&lt;/P&gt;&lt;P&gt;      w_len       TYPE i,&lt;/P&gt;&lt;P&gt;      w_str       TYPE i,&lt;/P&gt;&lt;P&gt;      w_color     TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Constants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CONSTANTS: c_usd LIKE tcurc-waers VALUE 'USD'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : v_day(2) type c .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : v_days LIKE tvak-vlauf .&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;                          INITIALIZATION                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&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;  PERFORM init_data.&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;LI level="1" type="ul"&gt;&lt;P&gt;                           TOP OF PAGE                               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM get_header.&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;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 b1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: SKIP 1.&lt;/P&gt;&lt;P&gt;  PARAMETERS:     p_werks LIKE ekpo-werks DEFAULT '1000' NO-DISPLAY,&lt;/P&gt;&lt;P&gt;                  p_lgort LIKE ekpo-lgort DEFAULT '1000' NO-DISPLAY,&lt;/P&gt;&lt;P&gt;                  p_bukrs LIKE ekko-bukrs DEFAULT '0011' NO-DISPLAY,&lt;/P&gt;&lt;P&gt;                  p_ekorg LIKE ekko-ekorg DEFAULT '1000'.&lt;/P&gt;&lt;P&gt;  SELECT-OPTIONS: s_lifnr FOR ekko-lifnr,&lt;/P&gt;&lt;P&gt;                  s_ekgrp FOR ekko-ekgrp,&lt;/P&gt;&lt;P&gt;                  s_ebeln FOR ekko-ebeln,&lt;/P&gt;&lt;P&gt;                  s_matnr FOR ekpo-matnr.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: SKIP 1.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: END OF BLOCK b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-020.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: SKIP 1.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN COMMENT 1(79) text-021.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: END OF LINE.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN COMMENT 1(42) text-022.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: END OF LINE.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: SKIP 1.&lt;/P&gt;&lt;P&gt;  SELECT-OPTIONS: s_eindt FOR eket-eindt NO INTERVALS NO-EXTENSION&lt;/P&gt;&lt;P&gt;                                         OBLIGATORY.&lt;/P&gt;&lt;P&gt;  PARAMETERS:     p_days LIKE v_day OBLIGATORY.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: SKIP 1.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: END OF BLOCK b2.&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;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;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Ensure the delivery date is only in past&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM check_date.&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;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;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;&amp;lt; Start delete &amp;gt;&amp;gt;  Rajs-02/17/2005&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;New rules have been created as variant. Do not need it any more&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;Over-write delivery date if run in background&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF NOT sy-batch IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM init_data.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE i000 WITH text-018 text-019.&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;&amp;lt;&amp;lt; End delete &amp;gt;&amp;gt;&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;Pass the value to Decmal variable&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;v_days = p_days.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Calculate date for selection:  Rajs-04/08/2005&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM get_delivery_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Extract and process data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM get_data.&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;LI level="1" type="ul"&gt;&lt;P&gt;                         END 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;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Screen output&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM display_report.&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;LI level="1" type="ul"&gt;&lt;P&gt;                        AT LINE 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;AT LINE-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display PO document&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF NOT t_po_dup-ebeln IS INITIAL.&lt;/P&gt;&lt;P&gt;    SET PARAMETER ID 'BES' FIELD t_po_dup-ebeln.&lt;/P&gt;&lt;P&gt;    CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;    CLEAR: t_po_dup-ebeln.&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;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                            SUB ROUTINES                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;      Form  get_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 get_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR  : t_po, t_po_dup, t_return, t_mess.&lt;/P&gt;&lt;P&gt;  REFRESH: t_po, t_po_dup, t_return, t_mess.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Extract open PO items in past that have schedule delivery as given in&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;selection&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT a~ebeln&lt;/P&gt;&lt;P&gt;         b&lt;SUB&gt;ebelp b&lt;/SUB&gt;matnr b&lt;SUB&gt;idnlf b&lt;/SUB&gt;menge b&lt;SUB&gt;meins b&lt;/SUB&gt;netpr&lt;/P&gt;&lt;P&gt;         c&lt;SUB&gt;eindt a&lt;/SUB&gt;lifnr&lt;/P&gt;&lt;P&gt;         INTO TABLE t_po&lt;/P&gt;&lt;P&gt;         FROM ( ( ekko AS a INNER JOIN ekpo&lt;/P&gt;&lt;P&gt;                       AS b ON a&lt;SUB&gt;ebeln = b&lt;/SUB&gt;ebeln )&lt;/P&gt;&lt;P&gt;                            INNER JOIN eket&lt;/P&gt;&lt;P&gt;                       AS c ON b&lt;SUB&gt;ebeln = c&lt;/SUB&gt;ebeln AND&lt;/P&gt;&lt;P&gt;                               b&lt;SUB&gt;ebelp = c&lt;/SUB&gt;ebelp )&lt;/P&gt;&lt;P&gt;         WHERE a~ebeln IN s_ebeln AND&lt;/P&gt;&lt;P&gt;               a~bstyp  = 'F'     AND&lt;/P&gt;&lt;P&gt;               a~bsart  = 'NB'    AND&lt;/P&gt;&lt;P&gt;               a~loekz  = space   AND&lt;/P&gt;&lt;P&gt;               a~lifnr IN s_lifnr AND&lt;/P&gt;&lt;P&gt;               a~ekorg  = p_ekorg AND&lt;/P&gt;&lt;P&gt;               a~ekgrp IN s_ekgrp AND&lt;/P&gt;&lt;P&gt;               b~loekz  = space   AND&lt;/P&gt;&lt;P&gt;               b~matnr IN s_matnr AND&lt;/P&gt;&lt;P&gt;               b~werks  = p_werks AND&lt;/P&gt;&lt;P&gt;               b~lgort  = p_lgort AND&lt;/P&gt;&lt;P&gt;               b~elikz  = space   AND&lt;/P&gt;&lt;P&gt;               c~eindt IN s_eindt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc = 0.&lt;/P&gt;&lt;P&gt;  t_po_dup[] = t_po[].&lt;/P&gt;&lt;P&gt;  SORT: t_po, t_po_dup.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_po.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get items&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    t_item-po_item    = t_po-ebelp.&lt;/P&gt;&lt;P&gt;    t_item-material   = t_po-matnr.&lt;/P&gt;&lt;P&gt;    t_item-plant      = p_werks.&lt;/P&gt;&lt;P&gt;    t_item-stge_loc   = p_lgort.&lt;/P&gt;&lt;P&gt;    t_item-no_more_gr = 'X'.&lt;/P&gt;&lt;P&gt;    APPEND t_item.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set item changes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    t_itemx-po_item   = t_po-ebelp.&lt;/P&gt;&lt;P&gt;    t_itemx-no_more_gr = 'X'.&lt;/P&gt;&lt;P&gt;    APPEND t_itemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AT END OF ebeln.&lt;/P&gt;&lt;P&gt;      CLEAR  : t_return.&lt;/P&gt;&lt;P&gt;      REFRESH: t_return.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set delivery complete indicator for items in a PO&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CALL FUNCTION 'BAPI_PO_CHANGE'&lt;/P&gt;&lt;P&gt;           EXPORTING&lt;/P&gt;&lt;P&gt;                purchaseorder = t_po-ebeln&lt;/P&gt;&lt;P&gt;           TABLES&lt;/P&gt;&lt;P&gt;                return        = t_return&lt;/P&gt;&lt;P&gt;                poitem        = t_item&lt;/P&gt;&lt;P&gt;                poitemx       = t_itemx.&lt;/P&gt;&lt;P&gt;      LOOP AT t_return WHERE type = 'A' OR&lt;/P&gt;&lt;P&gt;                             type = 'E'.&lt;/P&gt;&lt;P&gt;        MOVE: t_po-ebeln       TO t_mess-ebeln,&lt;/P&gt;&lt;P&gt;              t_return-message TO t_mess-message.&lt;/P&gt;&lt;P&gt;        APPEND t_mess.&lt;/P&gt;&lt;P&gt;        CLEAR  t_mess.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Commit if there is no error&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF sy-subrc &amp;lt;&amp;gt; 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 = 'X'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This table contains only POs that are successfully processed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        DELETE t_po_dup WHERE ebeln = t_po-ebeln.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CLEAR  : t_item, t_itemx.&lt;/P&gt;&lt;P&gt;      REFRESH: t_item, t_itemx.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;    CLEAR t_po.&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;ENDFORM.                    " get_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  get_header&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 get_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_HEADING INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;  PERFORM calc_col_and_write USING text-002&lt;/P&gt;&lt;P&gt;                                   sy-linsz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM calc_col_and_write USING sy-title&lt;/P&gt;&lt;P&gt;                                   sy-linsz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;User id&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  w_col1 = 2.&lt;/P&gt;&lt;P&gt;  WRITE: AT /w_col1 'UserId    : ', sy-uname.&lt;/P&gt;&lt;P&gt;  w_len = sy-linsz - 1.&lt;/P&gt;&lt;P&gt;  WRITE AT sy-colno(w_len) space.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Run date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  w_col2 = sy-linsz - 16.&lt;/P&gt;&lt;P&gt;  WRITE: AT w_col2 'Date: ', sy-datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Report name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  WRITE: AT /w_col1 'Report Id : ', sy-repid.&lt;/P&gt;&lt;P&gt;  WRITE AT sy-colno(w_len) space.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Run time&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  w_col2 = sy-linsz - 16.&lt;/P&gt;&lt;P&gt;  WRITE: AT w_col2 'Time: ', sy-uzeit.&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;Delivery date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE: AT /w_col1 'Delivery date: ', p_vdatu.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE AT sy-colno(w_len) space.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Page number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  w_col2 = sy-linsz - 16.&lt;/P&gt;&lt;P&gt;  WRITE: AT /w_col2 'Page: ', sy-pagno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FORMAT RESET.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt;  SKIP 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Note&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF NOT t_po[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_NEGATIVE INVERSE ON.&lt;/P&gt;&lt;P&gt;    WRITE: /2 text-012.&lt;/P&gt;&lt;P&gt;    WRITE: /2 text-011.&lt;/P&gt;&lt;P&gt;    FORMAT RESET.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  SKIP 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_HEADING INVERSE OFF INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Column heading&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  WRITE: /1   sy-vline, 2   text-003,&lt;/P&gt;&lt;P&gt;          14  sy-vline, 15  text-004,&lt;/P&gt;&lt;P&gt;          22  sy-vline, 23  text-005,&lt;/P&gt;&lt;P&gt;          34  sy-vline, 35  text-010,&lt;/P&gt;&lt;P&gt;          72  sy-vline, 73  text-006,&lt;/P&gt;&lt;P&gt;          92  sy-vline, 93  text-007,&lt;/P&gt;&lt;P&gt;          98  sy-vline, 99  text-008,&lt;/P&gt;&lt;P&gt;          115 sy-vline, 116 text-009,&lt;/P&gt;&lt;P&gt;          128 sy-vline.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt;  FORMAT RESET.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_header&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  display_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 display_report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF t_po[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SKIP 2.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_NEGATIVE INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;    WRITE: / text-015.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;List of PO items closed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT t_po_dup.&lt;/P&gt;&lt;P&gt;      IF w_color IS INITIAL.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR COL_NORMAL INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;        w_color = 'X'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR COL_NORMAL INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;        CLEAR w_color.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      WRITE: /1   sy-vline, 2   t_po_dup-ebeln,&lt;/P&gt;&lt;P&gt;              14  sy-vline, 15  t_po_dup-ebelp,&lt;/P&gt;&lt;P&gt;              22  sy-vline, 23  t_po_dup-matnr NO-ZERO,&lt;/P&gt;&lt;P&gt;              34  sy-vline, 35  t_po_dup-idnlf,&lt;/P&gt;&lt;P&gt;              72  sy-vline, 73  t_po_dup-menge UNIT t_po_dup-meins,&lt;/P&gt;&lt;P&gt;              92  sy-vline, 93  t_po_dup-meins,&lt;/P&gt;&lt;P&gt;              98  sy-vline, 99  t_po_dup-netpr CURRENCY c_usd,&lt;/P&gt;&lt;P&gt;              115 sy-vline, 116 t_po_dup-lifnr,&lt;/P&gt;&lt;P&gt;              128 sy-vline.&lt;/P&gt;&lt;P&gt;      HIDE : t_po_dup.&lt;/P&gt;&lt;P&gt;      CLEAR: t_po_dup.&lt;/P&gt;&lt;P&gt;      AT LAST.&lt;/P&gt;&lt;P&gt;        ULINE.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      SKIP 2.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_NEGATIVE INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;      WRITE: / text-013.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Error messages - List of PO items not closed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT t_mess.&lt;/P&gt;&lt;P&gt;      AT FIRST.&lt;/P&gt;&lt;P&gt;        SKIP 2.&lt;/P&gt;&lt;P&gt;        ULINE.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR COL_HEADING INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;        WRITE: /1   sy-vline, 2  text-003,&lt;/P&gt;&lt;P&gt;                14  sy-vline, 15 text-014,&lt;/P&gt;&lt;P&gt;                115 sy-vline.&lt;/P&gt;&lt;P&gt;        ULINE.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;      IF w_color IS INITIAL.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR COL_NEGATIVE INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;        w_color = 'X'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;        CLEAR w_color.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      WRITE: /1   sy-vline, 2  t_mess-ebeln,&lt;/P&gt;&lt;P&gt;              14  sy-vline, 15 t_mess-message,&lt;/P&gt;&lt;P&gt;              115 sy-vline.&lt;/P&gt;&lt;P&gt;      HIDE : t_mess.&lt;/P&gt;&lt;P&gt;      CLEAR: t_mess.&lt;/P&gt;&lt;P&gt;      AT LAST.&lt;/P&gt;&lt;P&gt;        ULINE.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      SKIP 2.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_POSITIVE INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;      WRITE: / text-016.&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;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " display_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;P&gt;*&amp;amp;      Form  calc_col_and_write&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_TEXT_002  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_SY_LINSZ  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 calc_col_and_write USING    p_text&lt;/P&gt;&lt;P&gt;                                 p_linsz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_str  = strlen( p_text ).&lt;/P&gt;&lt;P&gt;  w_col1 = ( p_linsz / 2 ) - ( w_str / 2 ).&lt;/P&gt;&lt;P&gt;  w_len  = p_linsz - w_col1 + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE: AT /w_col1 p_text.&lt;/P&gt;&lt;P&gt;  WRITE AT sy-colno(w_len) space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " calc_col_and_write&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  check_date&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 check_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT s_eindt.&lt;/P&gt;&lt;P&gt;    IF NOT s_eindt-high IS INITIAL AND&lt;/P&gt;&lt;P&gt;           s_eindt-high &amp;gt; sy-datum.&lt;/P&gt;&lt;P&gt;      MESSAGE e000 WITH text-017.&lt;/P&gt;&lt;P&gt;    ELSEIF NOT s_eindt-low IS INITIAL AND&lt;/P&gt;&lt;P&gt;               s_eindt-low &amp;gt; sy-datum.&lt;/P&gt;&lt;P&gt;      MESSAGE e000 WITH text-017.&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;ENDFORM.                    " check_date&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  init_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 init_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR   s_eindt.&lt;/P&gt;&lt;P&gt;  REFRESH s_eindt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All POs that are open more than a specified number of days are to be&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;closed automatically. Current day - 5 is defaulted&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  s_eindt-sign   = 'I'.&lt;/P&gt;&lt;P&gt;  s_eindt-option = 'LE'.&lt;/P&gt;&lt;P&gt;  s_eindt-low    = sy-datum.&lt;/P&gt;&lt;P&gt;  APPEND s_eindt.&lt;/P&gt;&lt;P&gt;  CLEAR  s_eindt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  p_days = '5'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " init_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  get_delivery_date&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 get_delivery_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Now, the no. of days to retain the PO is given as a parameter&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Any PO with delivery date prior to this date need to be closed&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Calculate the date based on selection and default the sign to "=&amp;lt;".&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT s_eindt.&lt;/P&gt;&lt;P&gt;    s_eindt-sign   = 'I'.&lt;/P&gt;&lt;P&gt;    s_eindt-option = 'LE'.&lt;/P&gt;&lt;P&gt;    s_eindt-low = s_eindt-low - v_days.&lt;/P&gt;&lt;P&gt;    MODIFY s_eindt.&lt;/P&gt;&lt;P&gt;    CLEAR  s_eindt.&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;ENDFORM.                    " get_delivery_date&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Jun 2007 21:00:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sample-code-for-bapi-po-change/m-p/2367707#M524390</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-08T21:00:09Z</dc:date>
    </item>
    <item>
      <title>Re: Sample code for bapi po change</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sample-code-for-bapi-po-change/m-p/2367708#M524391</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Sanmugam,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Look at the below link for a sample program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/abap/sample-abap-code-on-bapi-po-change.htm" target="test_blank"&gt;http://www.sap-img.com/abap/sample-abap-code-on-bapi-po-change.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Aneesh.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Jun 2007 21:05:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sample-code-for-bapi-po-change/m-p/2367708#M524391</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-08T21:05:09Z</dc:date>
    </item>
    <item>
      <title>Re: Sample code for bapi po change</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sample-code-for-bapi-po-change/m-p/2367709#M524392</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;am forwarding link, it containing the code for changing the po order using BAPI&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;u&amp;gt;&amp;lt;b&amp;gt;'BAPI_PO_CHANGE'&amp;lt;/b&amp;gt;&amp;lt;/u&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/abap/sample-abap-code-on-bapi-po-change.htm" target="test_blank"&gt;http://www.sap-img.com/abap/sample-abap-code-on-bapi-po-change.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;Ashokreddy.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Jun 2007 21:12:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sample-code-for-bapi-po-change/m-p/2367709#M524392</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-08T21:12:26Z</dc:date>
    </item>
    <item>
      <title>Re: Sample code for bapi po change</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sample-code-for-bapi-po-change/m-p/2367710#M524393</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Sanmugam Ganesh,  &lt;SPAN __jive_emoticon_name="happy"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Find the code below.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&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;PROGRAM    : zpo_bapi_purchord_tej                                   *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TITLE      : Purchase Order BAPI                                     *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;AUTHOR     : Shree Tejus C                                           *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DESCRIPTION: report that displays the top 10 Sales Orders in terms   *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              of Net Value of the Sales Order in Document Currency.  *&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;                M O D I F I C A T I O N   L O G :                    *&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;Date      Correction  Programmer       Description of Change         *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;========  ==========  ===========     ============================== *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;29/03/2007            Shree Tejus C    Initial Implementation        *&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;REPORT  zpo_bapi_purchord_tej.&lt;/P&gt;&lt;P&gt;&lt;/P&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;                     DATA DECLARATIONS                               *&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;TYPE-POOLS slis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_table,&lt;/P&gt;&lt;P&gt;          v_legacy(8),&lt;/P&gt;&lt;P&gt;          vendor        TYPE bapimepoheader-vendor,&lt;/P&gt;&lt;P&gt;          purch_org     TYPE bapimepoheader-purch_org,&lt;/P&gt;&lt;P&gt;          pur_group     TYPE bapimepoheader-pur_group,&lt;/P&gt;&lt;P&gt;          material      TYPE bapimepoitem-material,&lt;/P&gt;&lt;P&gt;          quantity(13),&lt;/P&gt;&lt;P&gt;          delivery_date TYPE bapimeposchedule-delivery_date,&lt;/P&gt;&lt;P&gt;          net_price(23),&lt;/P&gt;&lt;P&gt;          plant         TYPE bapimepoitem-plant,&lt;/P&gt;&lt;P&gt;       END OF ty_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_alv,&lt;/P&gt;&lt;P&gt;          v_legs(8),&lt;/P&gt;&lt;P&gt;          success(10),&lt;/P&gt;&lt;P&gt;          v_legf(8),&lt;/P&gt;&lt;P&gt;       END OF ty_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_alv1,&lt;/P&gt;&lt;P&gt;         v_legf1(8),&lt;/P&gt;&lt;P&gt;         v_msg(500),&lt;/P&gt;&lt;P&gt;       END OF ty_alv1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-----Work area declarations.&lt;/P&gt;&lt;P&gt;DATA: x_table         TYPE ty_table,&lt;/P&gt;&lt;P&gt;      x_header        TYPE bapimepoheader,&lt;/P&gt;&lt;P&gt;      x_headerx       TYPE bapimepoheaderx,&lt;/P&gt;&lt;P&gt;      x_item          TYPE bapimepoitem,&lt;/P&gt;&lt;P&gt;      x_itemx         TYPE bapimepoitemx,&lt;/P&gt;&lt;P&gt;      x_sched         TYPE bapimeposchedule,&lt;/P&gt;&lt;P&gt;      x_schedx        TYPE bapimeposchedulx,&lt;/P&gt;&lt;P&gt;      x_commatable(255),&lt;/P&gt;&lt;P&gt;      x_alv           TYPE ty_alv,&lt;/P&gt;&lt;P&gt;      x_alv1          TYPE ty_alv1,&lt;/P&gt;&lt;P&gt;      x_alv2          TYPE ty_alv1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-----Internal table declarations.&lt;/P&gt;&lt;P&gt;DATA: it_table        TYPE TABLE OF ty_table,&lt;/P&gt;&lt;P&gt;      it_commatable   LIKE TABLE OF x_commatable,&lt;/P&gt;&lt;P&gt;      it_item         TYPE TABLE OF bapimepoitem,&lt;/P&gt;&lt;P&gt;      it_itemx        TYPE TABLE OF bapimepoitemx,&lt;/P&gt;&lt;P&gt;      it_sched        TYPE TABLE OF bapimeposchedule,&lt;/P&gt;&lt;P&gt;      it_schedx       TYPE TABLE OF bapimeposchedulx,&lt;/P&gt;&lt;P&gt;      it_alv          TYPE TABLE OF ty_alv,&lt;/P&gt;&lt;P&gt;      it_alv1         TYPE TABLE OF ty_alv1,&lt;/P&gt;&lt;P&gt;      it_alv2         TYPE TABLE OF ty_alv1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: po_number       TYPE bapimepoheader-po_number,&lt;/P&gt;&lt;P&gt;      x_return        TYPE bapiret2,&lt;/P&gt;&lt;P&gt;      it_return       TYPE TABLE OF bapiret2,&lt;/P&gt;&lt;P&gt;      v_file TYPE string,&lt;/P&gt;&lt;P&gt;      v_temp(8),&lt;/P&gt;&lt;P&gt;      v_succsount TYPE i VALUE 0,&lt;/P&gt;&lt;P&gt;      v_failcount TYPE i VALUE 0,&lt;/P&gt;&lt;P&gt;      v_total     TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: v_temp1(5) TYPE n VALUE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:   x_event             TYPE slis_t_event,&lt;/P&gt;&lt;P&gt;        x_fieldcat          TYPE slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;        x_list_header       TYPE slis_t_listheader,&lt;/P&gt;&lt;P&gt;        x_event1            LIKE LINE OF x_event,&lt;/P&gt;&lt;P&gt;        x_layout1           TYPE slis_layout_alv,&lt;/P&gt;&lt;P&gt;        x_variant1          TYPE disvariant,&lt;/P&gt;&lt;P&gt;        x_repid2            LIKE sy-repid.&lt;/P&gt;&lt;P&gt;DATA : it_fieldcat TYPE TABLE OF slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&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;                       SELECTION-SCREEN                              *&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;SELECTION-SCREEN BEGIN OF BLOCK v_b1 WITH FRAME.&lt;/P&gt;&lt;P&gt;*-----To fetch the flat file.&lt;/P&gt;&lt;P&gt;   PARAMETERS: p_file  TYPE rlgrap-filename.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK v_b1.&lt;/P&gt;&lt;P&gt;&lt;/P&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;                      AT SELECTION-SCREEN                            *&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;AT SELECTION-SCREEN.&lt;/P&gt;&lt;P&gt;  IF p_file IS INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE text-001 TYPE 'E'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.&lt;/P&gt;&lt;P&gt;*-----To use F4 help to find file path.&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_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;v_file = p_file.&lt;/P&gt;&lt;P&gt;&lt;/P&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;                     START-OF-SELECTION                              *&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;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM gui_upload.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT it_table INTO x_table.&lt;/P&gt;&lt;P&gt;  PERFORM header_details.&lt;/P&gt;&lt;P&gt;  v_temp = x_table-v_legacy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT it_table INTO x_table WHERE v_legacy = v_temp.&lt;/P&gt;&lt;P&gt;      PERFORM lineitem.&lt;/P&gt;&lt;P&gt;      PERFORM schedule.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DELETE it_table WHERE v_legacy = v_temp.&lt;/P&gt;&lt;P&gt;  PERFORM bapicall.&lt;/P&gt;&lt;P&gt;  MOVE po_number TO x_alv-success.&lt;/P&gt;&lt;P&gt;    APPEND x_alv TO it_alv.&lt;/P&gt;&lt;P&gt;    CLEAR x_alv.&lt;/P&gt;&lt;P&gt;*-----To clear the item details in internal table after the operation for a header.&lt;/P&gt;&lt;P&gt;REFRESH:  it_item,&lt;/P&gt;&lt;P&gt;          it_itemx,&lt;/P&gt;&lt;P&gt;          it_sched,&lt;/P&gt;&lt;P&gt;          it_schedx.&lt;/P&gt;&lt;P&gt;CLEAR:    v_temp1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;v_total = v_succsount + v_failcount.&lt;/P&gt;&lt;P&gt;PERFORM display_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&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;     FORM  GUI_UPLOAD                                               *&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 gui_upload .&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                      = v_file&lt;/P&gt;&lt;P&gt;   filetype                      = 'ASC'&lt;/P&gt;&lt;P&gt;  TABLES&lt;/P&gt;&lt;P&gt;    data_tab                      = it_commatable&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;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;*-----To fetch the comma seperated flat file into an internal table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; LOOP AT it_commatable INTO x_commatable.&lt;/P&gt;&lt;P&gt;  IF x_commatable IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    SPLIT x_commatable AT ',' INTO&lt;/P&gt;&lt;P&gt;      x_table-v_legacy&lt;/P&gt;&lt;P&gt;      x_table-vendor&lt;/P&gt;&lt;P&gt;      x_table-purch_org&lt;/P&gt;&lt;P&gt;      x_table-pur_group&lt;/P&gt;&lt;P&gt;      x_table-material&lt;/P&gt;&lt;P&gt;      x_table-quantity&lt;/P&gt;&lt;P&gt;      x_table-delivery_date&lt;/P&gt;&lt;P&gt;      x_table-net_price&lt;/P&gt;&lt;P&gt;      x_table-plant.&lt;/P&gt;&lt;P&gt;   APPEND x_table TO it_table.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR x_table.&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;ENDFORM.                    " gui_upload&lt;/P&gt;&lt;P&gt;&lt;/P&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;       FORM HEADER_DETAILS                                          *&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 header_details .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE 'NB'              TO x_header-doc_type.&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         = x_table-vendor&lt;/P&gt;&lt;P&gt;  IMPORTING&lt;/P&gt;&lt;P&gt;    output        = x_table-vendor&lt;/P&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;MOVE x_table-vendor    TO x_header-vendor.&lt;/P&gt;&lt;P&gt;MOVE x_table-purch_org TO x_header-purch_org.&lt;/P&gt;&lt;P&gt;MOVE x_table-pur_group TO x_header-pur_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;x_headerx-doc_type   = 'X'.&lt;/P&gt;&lt;P&gt;x_headerx-vendor     = 'X'.&lt;/P&gt;&lt;P&gt;x_headerx-purch_org  = 'X'.&lt;/P&gt;&lt;P&gt;x_headerx-pur_group  = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " header_details&lt;/P&gt;&lt;P&gt;&lt;/P&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;     FORM  LINEITEM                                                 *&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 lineitem .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;v_temp1 = v_temp1 + 10.&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         = v_temp1&lt;/P&gt;&lt;P&gt;  IMPORTING&lt;/P&gt;&lt;P&gt;    output        = v_temp1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     MOVE  v_temp1 TO x_item-po_item.&lt;/P&gt;&lt;P&gt;&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         = x_table-material&lt;/P&gt;&lt;P&gt;  IMPORTING&lt;/P&gt;&lt;P&gt;    output         = x_table-material.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE x_table-material TO x_item-material.&lt;/P&gt;&lt;P&gt;    MOVE x_table-quantity TO x_item-quantity.&lt;/P&gt;&lt;P&gt;    MOVE x_table-net_price TO x_item-net_price.&lt;/P&gt;&lt;P&gt;    MOVE x_table-plant TO x_item-plant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; x_itemx-po_item    = v_temp1.&lt;/P&gt;&lt;P&gt; x_itemx-material   = 'X'.&lt;/P&gt;&lt;P&gt; x_itemx-quantity   = 'X'.&lt;/P&gt;&lt;P&gt; x_itemx-net_price  = 'X'.&lt;/P&gt;&lt;P&gt; x_itemx-plant      = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND x_item TO it_item.&lt;/P&gt;&lt;P&gt;APPEND x_itemx TO it_itemx.&lt;/P&gt;&lt;P&gt;CLEAR: x_item, x_itemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " lineitem1&lt;/P&gt;&lt;P&gt;&lt;/P&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;     FORM  SCHEDULE                                                 *&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 schedule .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE x_table-delivery_date TO x_sched-delivery_date.&lt;/P&gt;&lt;P&gt;MOVE v_temp1 TO x_sched-po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;x_schedx-delivery_date  = 'X'.&lt;/P&gt;&lt;P&gt;x_schedx-po_item        = v_temp1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND x_sched TO it_sched.&lt;/P&gt;&lt;P&gt;APPEND x_schedx TO it_schedx.&lt;/P&gt;&lt;P&gt;CLEAR: x_sched, x_schedx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " schedule&lt;/P&gt;&lt;P&gt;&lt;/P&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;     FORM  BAPICALL                                                 *&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 bapicall .&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                     = x_header&lt;/P&gt;&lt;P&gt;   poheaderx                     = x_headerx&lt;/P&gt;&lt;P&gt; IMPORTING&lt;/P&gt;&lt;P&gt;   exppurchaseorder              = po_number&lt;/P&gt;&lt;P&gt; TABLES&lt;/P&gt;&lt;P&gt;   return                        = it_return&lt;/P&gt;&lt;P&gt;   poitem                        = it_item&lt;/P&gt;&lt;P&gt;   poitemx                       = it_itemx&lt;/P&gt;&lt;P&gt;   poschedule                    = it_sched&lt;/P&gt;&lt;P&gt;   poschedulex                   = it_schedx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF po_number IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;  v_succsount = v_succsount + 1.&lt;/P&gt;&lt;P&gt;  MOVE x_table-v_legacy TO x_alv-v_legs.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt; v_failcount = v_failcount + 1.&lt;/P&gt;&lt;P&gt; MOVE x_table-v_legacy TO x_alv-v_legf.&lt;/P&gt;&lt;P&gt; MOVE x_table-v_legacy TO x_alv1-v_legf1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT it_return INTO x_return.&lt;/P&gt;&lt;P&gt;IF x_alv1-v_msg IS INITIAL.&lt;/P&gt;&lt;P&gt;  MOVE x_return-message TO x_alv1-v_msg.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;  CONCATENATE x_alv1-v_msg  x_return-message INTO x_alv1-v_msg SEPARATED BY space.&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;APPEND x_alv1 TO it_alv1.&lt;/P&gt;&lt;P&gt;CLEAR x_alv1.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bapicall&lt;/P&gt;&lt;P&gt;&lt;/P&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward Points if useful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Tej..&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 09 Jun 2007 05:43:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sample-code-for-bapi-po-change/m-p/2367710#M524393</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-09T05:43:17Z</dc:date>
    </item>
    <item>
      <title>Re: Sample code for bapi po change</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sample-code-for-bapi-po-change/m-p/2367711#M524394</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;What is aebeln?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Jul 2016 09:15:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sample-code-for-bapi-po-change/m-p/2367711#M524394</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2016-07-11T09:15:19Z</dc:date>
    </item>
  </channel>
</rss>

