<?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: query regarding BAPI_PO_CHANGE in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/query-regarding-bapi-po-change/m-p/3260307#M778868</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Check this program: I have sent the details of the PO Create in the earlier post. The include program is the same for both.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION Z_BC1_BAPI_PO_CHANGE02.&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;/STRONG&gt;"Local Interface:&lt;/P&gt;&lt;P&gt;*"  IMPORTING&lt;/P&gt;&lt;P&gt;*"     VALUE(PURCHASEORDER) TYPE  BAPIMEPOHEADER-PO_NUMBER&lt;/P&gt;&lt;P&gt;*"     VALUE(POADDRVENDOR) TYPE  BAPIMEPOADDRVENDOR&lt;/P&gt;&lt;P&gt;*"     VALUE(TESTRUN) TYPE  BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*"     VALUE(MEMORY_UNCOMPLETE) TYPE  BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*"     VALUE(MEMORY_COMPLETE) TYPE  BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*"     VALUE(POEXPIMPHEADER) TYPE  BAPIEIKP&lt;/P&gt;&lt;P&gt;*"     VALUE(POEXPIMPHEADERX) TYPE  BAPIEIKPX&lt;/P&gt;&lt;P&gt;*"     VALUE(VERSIONS) TYPE  BAPIMEDCM&lt;/P&gt;&lt;P&gt;*"     VALUE(NO_MESSAGING) TYPE  BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*"     VALUE(NO_MESSAGE_REQ) TYPE  BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*"     VALUE(NO_AUTHORITY) TYPE  BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*"     VALUE(NO_PRICE_FROM_PO) TYPE  BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*"  EXPORTING&lt;/P&gt;&lt;P&gt;*"     VALUE(EXPHEADER) TYPE  BAPIMEPOHEADER&lt;/P&gt;&lt;P&gt;*"     VALUE(EXPPOEXPIMPHEADER) TYPE  BAPIEIKPX&lt;/P&gt;&lt;P&gt;*"  TABLES&lt;/P&gt;&lt;P&gt;*"      RETURN STRUCTURE  BAPIRET2&lt;/P&gt;&lt;P&gt;*"      POITEM STRUCTURE  BAPIMEPOITEM&lt;/P&gt;&lt;P&gt;*"      POITEMX STRUCTURE  BAPIMEPOITEMX&lt;/P&gt;&lt;P&gt;*"      POADDRDELIVERY STRUCTURE  BAPIMEPOADDRDELIVERY&lt;/P&gt;&lt;P&gt;*"      POSCHEDULE STRUCTURE  BAPIMEPOSCHEDULE&lt;/P&gt;&lt;P&gt;*"      POSCHEDULEX STRUCTURE  BAPIMEPOSCHEDULX&lt;/P&gt;&lt;P&gt;*"      POACCOUNT STRUCTURE  BAPIMEPOACCOUNT&lt;/P&gt;&lt;P&gt;*"      POACCOUNTPROFITSEGMENT STRUCTURE  BAPIMEPOACCOUNTPROFITSEGMENT&lt;/P&gt;&lt;P&gt;*"      POACCOUNTX STRUCTURE  BAPIMEPOACCOUNTX&lt;/P&gt;&lt;P&gt;*"      POCONDHEADER STRUCTURE  BAPIMEPOCONDHEADER&lt;/P&gt;&lt;P&gt;*"      POCONDHEADERX STRUCTURE  BAPIMEPOCONDHEADERX&lt;/P&gt;&lt;P&gt;*"      POCOND STRUCTURE  BAPIMEPOCOND&lt;/P&gt;&lt;P&gt;*"      POCONDX STRUCTURE  BAPIMEPOCONDX&lt;/P&gt;&lt;P&gt;*"      POLIMITS STRUCTURE  BAPIESUHC&lt;/P&gt;&lt;P&gt;*"      POCONTRACTLIMITS STRUCTURE  BAPIESUCC&lt;/P&gt;&lt;P&gt;*"      POSERVICES STRUCTURE  BAPIESLLC&lt;/P&gt;&lt;P&gt;*"      POSRVACCESSVALUES STRUCTURE  BAPIESKLC&lt;/P&gt;&lt;P&gt;*"      POSERVICESTEXT STRUCTURE  BAPIESLLTX&lt;/P&gt;&lt;P&gt;*"      EXTENSIONIN STRUCTURE  BAPIPAREX&lt;/P&gt;&lt;P&gt;*"      EXTENSIONOUT STRUCTURE  BAPIPAREX&lt;/P&gt;&lt;P&gt;*"      POEXPIMPITEM STRUCTURE  BAPIEIPO&lt;/P&gt;&lt;P&gt;*"      POEXPIMPITEMX STRUCTURE  BAPIEIPOX&lt;/P&gt;&lt;P&gt;*"      POTEXTHEADER STRUCTURE  BAPIMEPOTEXTHEADER&lt;/P&gt;&lt;P&gt;*"      POTEXTITEM STRUCTURE  BAPIMEPOTEXT&lt;/P&gt;&lt;P&gt;*"      ALLVERSIONS STRUCTURE  BAPIMEDCM_ALLVERSIONS&lt;/P&gt;&lt;P&gt;*"      POPARTNER STRUCTURE  BAPIEKKOP&lt;/P&gt;&lt;P&gt;*"      POCOMPONENTS STRUCTURE  BAPIMEPOCOMPONENT&lt;/P&gt;&lt;P&gt;*"      POCOMPONENTSX STRUCTURE  BAPIMEPOCOMPONENTX&lt;/P&gt;&lt;P&gt;*"      POSHIPPING STRUCTURE  BAPIITEMSHIP&lt;/P&gt;&lt;P&gt;*"      POSHIPPINGX STRUCTURE  BAPIITEMSHIPX&lt;/P&gt;&lt;P&gt;*"      POSHIPPINGEXP STRUCTURE  BAPIMEPOSHIPPEXP&lt;/P&gt;&lt;P&gt;*"      POHISTORY STRUCTURE  BAPIEKBE&lt;/P&gt;&lt;P&gt;*"      POHISTORY_TOTALS STRUCTURE  BAPIEKBES&lt;/P&gt;&lt;P&gt;*"      POCONFIRMATION STRUCTURE  BAPIEKES&lt;/P&gt;&lt;P&gt;*"      NFMETALLITMS STRUCTURE  /NFM/BAPIDOCITM&lt;/P&gt;&lt;P&gt;*"  CHANGING&lt;/P&gt;&lt;P&gt;*"     VALUE(POHEADER) TYPE  BAPIMEPOHEADER&lt;/P&gt;&lt;P&gt;*"     VALUE(POHEADERX) TYPE  BAPIMEPOHEADERX&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PROGRAM        Z_BC1_BAPI_PO_CHANGE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TITLE          Function module to Change PO using BAPI&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;AUTHOR         Aveek Ghose&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATE WRITTEN   24.05.2006&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;R/3 RELEASE    4.6C&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;COPIED FROM    N/A&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;This function module is called during PO change in Ariba.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The call to this function module is from WebMethods. The function&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;module performs custom validations on data provided from Ariba and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;then calls BAPI_PO_CHANGE. The error messages are returned to Ariba.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PROGRAM TYPE    Function module&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DEV. CLASS      ZP2P&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;LOGICAL DB      N/A&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;SCREENS         N/A&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GUl TITLE       N/A&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GUl STATUS      N/A&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TRANSACTIONS    N/A&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;USER EXITS      N/A&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;HR originaltext="------------------------------------------------------------------" /&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;       DB-Tables&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;  TABLES: ekkn,        "Account Assignment in Purchasing Document&lt;/P&gt;&lt;P&gt;          ekbe.        "History per Purchasing Document&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        zconstants_new. "Constants for various interfaces&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                               &amp;amp; programs with comp code&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;       Global variables&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;  DATA: g_cnt_poaccount   TYPE i,         "No. of records in POACCOUNT&lt;/P&gt;&lt;P&gt;        g_cnt_ekkn        TYPE i,         "No. of records in EKKN&lt;/P&gt;&lt;P&gt;        g_msgv1 LIKE sy-msgv1.            "Message variable1&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;       Internal Tables&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;  DATA: g_t_poaccount_tmp LIKE poaccount  OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        g_t_poaccount1    LIKE poaccount  OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        g_t_poaccountx1   LIKE poaccountx OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        g_t_poaccount     LIKE poaccount  OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*PVU-20-May-2004 - Changes for SCR1&lt;/P&gt;&lt;P&gt;        g_t_itemx_tmp     LIKE poitemx      OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        g_t_schdx_tmp     LIKE poschedulex  OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        g_t_accntx_tmp    LIKE poaccountx   OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        g_t_condx_tmp     LIKE pocondx      OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      T_Zconstants      LIKE ZCONSTANTS_NEW OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*RD1K911982&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*PVU-20-May-2004 - End Changes for SCR1&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;       Structure&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;  DATA:  g_w_hdrx_tmp LIKE poheaderx. "PVU-20-May-2004 - Changes for SCR1&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; DATA: p_constname TYPE  zconstname,  "Constant Name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       g_constval  TYPE  zconstval,   "Constant Value&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       c_po_ehub_var LIKE ZCONSTANTS_NEW-CONSTname  value 'EHUB_POS%'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA : L_CONST_NAME  LIKE SY-MSGV1,   "Constant name&lt;/P&gt;&lt;P&gt;         L_COMP_CODE   LIKE SY-MSGV2.   "Company code&lt;/P&gt;&lt;P&gt;  DATA:  L_WA_TIMESTAMP TYPE ZP2P_TIMESTAMP.&lt;/P&gt;&lt;P&gt;  data: l_waers type waers.&lt;/P&gt;&lt;P&gt;  DATA: L_EKORG TYPE EKORG.&lt;/P&gt;&lt;P&gt;  DATA: L_SERIAL TYPE I.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : L_VEND_ACTGRP(30) TYPE C,        "Vendor Account Group&lt;/P&gt;&lt;P&gt;         L_VEND_PAYTRM(30) TYPE C,        "Vendor Payment Terms&lt;/P&gt;&lt;P&gt;         L_VEND_RECON(30)  TYPE C,        "Vendor Reconciliation Account&lt;/P&gt;&lt;P&gt;         L_MSGV1           LIKE SY-MSGV1, "Message variable1&lt;/P&gt;&lt;P&gt;         L_WBS_EXTERNAL    LIKE BAPIMEPOACCOUNT-WBS_ELEMENT,&lt;/P&gt;&lt;P&gt;                                           "WBS external format&lt;/P&gt;&lt;P&gt;         L_WBS_INTERNAL    LIKE BAPIMEPOACCOUNT-WBS_ELEMENT,&lt;/P&gt;&lt;P&gt;         L_bukrs type bukrs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Ranges :r_ehub_pos for t_zconstants-constvalu.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Begin of Change SVALIDET(RD1K911990)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; SELECT *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FROM  zconstants_new&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INTO TABLE t_zconstants&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WHERE constname LIKE c_po_ehub_var.  " EHUB_POS%&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc = 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SORT t_zconstants BY constvalu ASCENDING.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   DELETE ADJACENT DUPLICATES FROM t_zconstants&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          COMPARING constvalu.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LOOP AT t_zconstants.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     r_ehub_pos-sign = 'I'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     r_ehub_pos-option = 'EQ'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     r_ehub_pos-low = t_zconstants-constvalu.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     APPEND r_ehub_pos.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR: r_ehub_pos,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            t_zconstants.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDLOOP.&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;**End of Change SVALIDET(RD1K911990)&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;Srini 18-May-2005 Start of changes&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Developer Flexibility to debug issues&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; p_constname = 'BAPI_PO_CHANGE2'.&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; do.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CALL FUNCTION 'ZXA_GET_CONSTANT'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             const_name     = p_constname&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;            comp_code      =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             const_value    = g_constval&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             no_value_found = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             null_value     = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             OTHERS         = 3.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   if g_constval NE 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     exit.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   endif.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; enddo.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*Begin of comment   RD1Kk911990&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF PURCHASEORDER+0(3) EQ '099' AND POHEADER-DOC_TYPE EQ 'ZEHS'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   POHEADER-DOC_TYPE = 'ZEH'.&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;*End  of comment RD1K911990&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;if not poheader-comp_code is initial.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; if poheader-comp_code is initial.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   clear: l_bukrs.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   select single companycode&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   into l_bukrs&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   from zcompanycodes01&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  where companycode = poheader-comp_code and&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   where FSID        = poheader-fsid and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         le          = poheader-le and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         frmrc       = poheader-frmrc.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   if sy-subrc ne 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR L_MSGV1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     L_MSGV1 =   POHEADER-DOC_TYPE.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Please Enter an Account number for line&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               TYPE   = C_MSGTYPE_E&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               CL     = C_MSGID_Z001&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               NUMBER = C_MSGNR_618&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               PAR1   = L_MSGV1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               RETURN = RETURN.&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;     APPEND RETURN.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR  RETURN.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   else.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     poheader-comp_code = l_bukrs.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   endif.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF POHEADER-DOC_TYPE EQ 'ZEHS'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   POHEADER-DOC_TYPE = 'ZEH'.&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;SORT poaccount BY po_item serial_no.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Clear internal tables and global variables&lt;/P&gt;&lt;P&gt;  REFRESH: g_t_poaccount_tmp,&lt;/P&gt;&lt;P&gt;           g_t_poaccount1,&lt;/P&gt;&lt;P&gt;           g_t_poaccountx1,&lt;/P&gt;&lt;P&gt;           g_t_poaccount,&lt;/P&gt;&lt;P&gt;           return,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         g_t_idoc_data,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;           g_t_itemx_tmp,&lt;/P&gt;&lt;P&gt;           g_t_schdx_tmp,&lt;/P&gt;&lt;P&gt;           g_t_accntx_tmp,&lt;/P&gt;&lt;P&gt;           g_t_condx_tmp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: g_cnt_poaccount,&lt;/P&gt;&lt;P&gt;         g_cnt_ekkn,&lt;/P&gt;&lt;P&gt;         g_msgv1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       g_distr_perc,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       g_distr_perc1,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       g_adjust_perc,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        g_idoc_no,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        g_w_hdrx_tmp.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF poheader-po_number+0(1) = 'C'.&lt;/P&gt;&lt;P&gt;    poheader-doc_type = 'ZAC'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF poheader-po_number+0(1) = 'P'.&lt;/P&gt;&lt;P&gt;    poheader-doc_type = 'ZAP'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF poheader-po_number IS INITIAL.&lt;/P&gt;&lt;P&gt;    poheader-doc_type = 'ZAPS'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF purchaseorder(3) &amp;lt;&amp;gt; c_pco.&lt;/P&gt;&lt;P&gt;    g_t_poaccount[] = poaccount[].&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To retrieve the line items with blank GL Account Number&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PERFORM filter_items TABLES g_t_poaccount.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT g_t_poaccount.&lt;/P&gt;&lt;P&gt;      CLEAR g_msgv1.&lt;/P&gt;&lt;P&gt;      g_msgv1 = g_t_poaccount-po_item.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Please Enter an Account number for line&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;P&gt;           EXPORTING&lt;/P&gt;&lt;P&gt;                type   = c_msgtype_e  "E&lt;/P&gt;&lt;P&gt;                cl     = c_msgid_z001                       "Z001&lt;/P&gt;&lt;P&gt;                number = c_msgnr_037  "037&lt;/P&gt;&lt;P&gt;                par1   = g_msgv1&lt;/P&gt;&lt;P&gt;           IMPORTING&lt;/P&gt;&lt;P&gt;                return = return.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND return.&lt;/P&gt;&lt;P&gt;      CLEAR  return.&lt;/P&gt;&lt;P&gt;      loop at return.&lt;/P&gt;&lt;P&gt;        l_wa_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;P&gt;        l_wa_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;P&gt;        l_wa_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;P&gt;        l_wa_ZERRORS-zid        = return-id.&lt;/P&gt;&lt;P&gt;        l_wa_ZERRORS-znumber    = return-number.&lt;/P&gt;&lt;P&gt;        l_wa_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;        l_wa_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;        l_wa_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;P&gt;        l_wa_ZERRORS-ERR_MSG    = return-message.&lt;/P&gt;&lt;P&gt;        append l_wa_ZERRORS to t_errors.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      insert into ZP2P_ERRORS values l_wa_ZP2P_ERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        clear: L_WA_ZERRORS.&lt;/P&gt;&lt;P&gt;      endloop.&lt;/P&gt;&lt;P&gt;      CLEAR g_msgv1.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SORT return BY type.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;On Error, exit the function module&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE return&lt;/P&gt;&lt;P&gt;         WITH KEY type = c_msgtype_e               "E&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;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***Begin of Change - BVIJAYA  01-July-2004  TPR-2239&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; If line item is marked for deletion, Clear the final_inv indicator,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; so that the condition value[conditions tab(po header)] reflects the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; correct gross price for the remaining items.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SORT poitem  BY po_item.&lt;/P&gt;&lt;P&gt;    SORT poitemx BY po_item.&lt;/P&gt;&lt;P&gt;    LOOP AT poitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF NOT poitem-delete_ind IS INITIAL.   "delete ind marked.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;sraman2 07/17/04&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*For item deletion to work properly&lt;/P&gt;&lt;P&gt;*indicator should be 'D'. webmethods passes indicator 'X'.&lt;/P&gt;&lt;P&gt;        poitem-delete_ind = 'D'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;sraman2 07/17/04&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CLEAR poitem-final_inv.&lt;/P&gt;&lt;P&gt;        MODIFY poitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        READ TABLE poitemx WITH KEY po_item = poitem-po_item.&lt;/P&gt;&lt;P&gt;        IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;          poitemx-final_inv = c_checked.   "X&lt;/P&gt;&lt;P&gt;          MODIFY poitemx INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;****************************************************&lt;/P&gt;&lt;P&gt;    DATA: L_TABIX TYPE SY-TABIX.&lt;/P&gt;&lt;P&gt;    LOOP AT POITEM.&lt;/P&gt;&lt;P&gt;      TBX = SY-TABIX.&lt;/P&gt;&lt;P&gt;      l_wa_timestamp-mandt          = SY-MANDT.&lt;/P&gt;&lt;P&gt;      l_wa_timestamp-EBELN          = POHEADER-PO_NUMBER.&lt;/P&gt;&lt;P&gt;      l_wa_timestamp-EBELP          = POITEM-PO_ITEM.&lt;/P&gt;&lt;P&gt;      l_wa_timestamp-CHANGE_IND     = ' '.&lt;/P&gt;&lt;P&gt;      l_wa_timestamp-DATE_TIME_STMP = POITEM-ARIBACRTTIMESTMP.&lt;/P&gt;&lt;P&gt;      insert into ZP2P_TIMESTAMP values l_wa_timestamp.&lt;/P&gt;&lt;P&gt;      clear: poheader-ARIBACRTTIMESTMP,&lt;/P&gt;&lt;P&gt;             poheader-ARIBACHGTIMESTMP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF NOT POITEM-DISTRIB IS INITIAL.&lt;/P&gt;&lt;P&gt;        CLEAR : L_CONST_NAME,&lt;/P&gt;&lt;P&gt;                L_COMP_CODE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        READ TABLE POACCOUNT INDEX L_TABIX.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;          L_CONST_NAME  = POACCOUNT-GL_ACCOUNT.&lt;/P&gt;&lt;P&gt;          L_COMP_CODE   = L_comp_code.&lt;/P&gt;&lt;P&gt;          CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;P&gt;               EXPORTING&lt;/P&gt;&lt;P&gt;                    type   = c_msgtype_e  "E&lt;/P&gt;&lt;P&gt;                    cl     = c_msgid_z001&lt;/P&gt;&lt;P&gt;                    number = c_msgnr_613&lt;/P&gt;&lt;P&gt;                    PAR1   = L_CONST_NAME&lt;/P&gt;&lt;P&gt;                    PAR2   = L_COMP_CODE&lt;/P&gt;&lt;P&gt;               IMPORTING&lt;/P&gt;&lt;P&gt;                    return = t_yreturn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          APPEND t_yreturn.&lt;/P&gt;&lt;P&gt;          CLEAR  t_yreturn.&lt;/P&gt;&lt;P&gt;          loop at t_yreturn.&lt;/P&gt;&lt;P&gt;            L_WA_ZERRORS-OBJECT       = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;P&gt;            L_WA_ZERRORS-serial_no     = sy-tabix.&lt;/P&gt;&lt;P&gt;            L_WA_ZERRORS-COMP_CODE    = poheader-comp_code.&lt;/P&gt;&lt;P&gt;            L_WA_ZERRORS-zid          = t_yreturn-id.&lt;/P&gt;&lt;P&gt;            L_WA_ZERRORS-znumber      = t_yreturn-number.&lt;/P&gt;&lt;P&gt;            L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;            L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;            L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;P&gt;            L_WA_ZERRORS-ERR_MSG    = t_yreturn-message.&lt;/P&gt;&lt;P&gt;            append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        insert into ZP2P_ERRORS values L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            clear: L_WA_ZERRORS.&lt;/P&gt;&lt;P&gt;          endloop.&lt;/P&gt;&lt;P&gt;        ENDIF.&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 poheader-currency is initial.&lt;/P&gt;&lt;P&gt;      if not poheader-vendor is initial.&lt;/P&gt;&lt;P&gt;        loop at pocond.&lt;/P&gt;&lt;P&gt;          SELECT SINGLE WAERS&lt;/P&gt;&lt;P&gt;          INTO L_WAERS&lt;/P&gt;&lt;P&gt;          FROM LFM1 WHERE&lt;/P&gt;&lt;P&gt;          LIFNR = POHEADER-VENDOR&lt;/P&gt;&lt;P&gt;          AND EKORG = POHEADER-PURCH_ORG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;            IF L_WAERS NE  poheader-currency.&lt;/P&gt;&lt;P&gt;              pocond-cond_value = 'PBXX'.&lt;/P&gt;&lt;P&gt;              pocond-currency    = l_waers.&lt;/P&gt;&lt;P&gt;              modify pocond transporting cond_value currency.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        endloop.&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 NOT TESTRUN IS INITIAL.&lt;/P&gt;&lt;P&gt;      POHEADER-VENDOR = '4259999999'.&lt;/P&gt;&lt;P&gt;      poheader-doc_type = 'ZAPS'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF NOT POHEADER-PURCH_ORG IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF POHEADER-PURCH_ORG IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     SELECT SINGLE PUR_ORG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     INTO L_EKORG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     FROM ZPUR_ORG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     WHERE LE    = POHEADER-LE AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           FRMRC = POHEADER-FRMRC AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           FSID  = POHEADER-FSID.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF SY-SUBRC NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR : L_CONST_NAME,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               L_COMP_CODE.&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;       L_CONST_NAME  = C_p2p_pur_ORG.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_COMP_CODE   = POHEADER-COMP_CODE.&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;       CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 TYPE   = c_msgtype_e&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 CL     = c_msgid_z001&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 NUMBER = c_msgnr_619&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 PAR1   = L_CONST_NAME&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 PAR2   = L_COMP_CODE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 RETURN = RETURN.&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;       APPEND RETURN.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR  RETURN.&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;       loop at t_yreturn.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-zid        = t_yreturn-id.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-znumber    = t_yreturn-number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-ERR_MSG    = t_yreturn-message.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       insert into ZP2P_ERRORS values L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         clear: L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       endloop.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       EXIT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       POHEADER-PURCH_ORG = L_EKORG.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF NOT POHEADER-PUR_GROUP IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF POHEADER-PUR_GROUP IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     clear: g_constval.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CALL FUNCTION 'ZXA_GET_CONSTANT'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               const_name     = c_p2p_pur_org&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               comp_code      = POHEADER-COMP_CODE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               const_value    = g_constval&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               no_value_found = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               null_value     = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               OTHERS         = 3.&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;     IF SY-SUBRC NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR : L_CONST_NAME,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               L_COMP_CODE.&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;       L_CONST_NAME  = C_p2p_pur_org.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_COMP_CODE   = POHEADER-COMP_CODE.&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;       CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 TYPE   = c_msgtype_e&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 CL     = c_msgid_z001&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 NUMBER = c_msgnr_046&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 PAR1   = L_CONST_NAME&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 PAR2   = L_COMP_CODE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 RETURN = RETURN.&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;       APPEND RETURN.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR  RETURN.&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;       loop at t_yreturn.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-zid        = t_yreturn-id.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-znumber    = t_yreturn-number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-ERR_MSG    = t_yreturn-message.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       insert into ZP2P_ERRORS values L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         clear: L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       endloop.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       EXIT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       POHEADER-PUR_GROUP = G_CONSTVAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&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;   data: l_werks1 type werks_d.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LOOP AT poitem.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     if poitem-plant is initial.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       clear: l_werks1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       select single plant&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       into l_werks1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       from zpo_plantmapping&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       where COMPANY_CODE = poheader-comp_code and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             PUR_ORG      = poheader-purch_org and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             PUR_GROUP    = poheader-pur_group and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             LE           = poheader-le and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             FSID         = poheader-fsid and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             FRMRC        = poheader-frmrc.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       if sy-subrc ne 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         PERFORM ERROR_HANDLING_PLANT USING   POHEADER&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                              poheader-comp_code&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                              L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         EXIT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       else.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         poitem-plant = l_werks1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         CLEAR: L_WERKS1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       endif.&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;LI level="2" type="ul"&gt;&lt;P&gt;   IF POITEM-NET_PRICE NE POHEADER-CURRENCY.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;     POITEM-NET_PRICE = POHEADER-CURRENCY.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF POITEM-net_price NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       POITEM-IR_IND = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     POITEM-UNLIMITED_DLV = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     POITEM-UNDER_DLV_TOL = 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     clear: poitem-ARIBACRTTIMESTMP,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            poitem-ARIBAUPDTIMESTMP.&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;     MODIFY POITEM TRANSPORTING UNLIMITED_DLV&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                UNDER_DLV_TOL&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                PLANT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                IR_IND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                               ARIBACRTTIMESTMP&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                               ARIBAUPDTIMESTMP.&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;   ENDLOOP.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;***********************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if not poheader-currency is initial.&lt;/P&gt;&lt;P&gt;      if not poheader-vendor is initial.&lt;/P&gt;&lt;P&gt;        loop at pocond.&lt;/P&gt;&lt;P&gt;          SELECT SINGLE WAERS&lt;/P&gt;&lt;P&gt;          INTO L_WAERS&lt;/P&gt;&lt;P&gt;          FROM LFM1 WHERE&lt;/P&gt;&lt;P&gt;          LIFNR = POHEADER-VENDOR&lt;/P&gt;&lt;P&gt;          AND EKORG = POHEADER-PURCH_ORG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;            IF L_WAERS NE  poheader-currency.&lt;/P&gt;&lt;P&gt;              pocond-cond_value = 'PBXX'.&lt;/P&gt;&lt;P&gt;              pocond-currency    = l_waers.&lt;/P&gt;&lt;P&gt;              modify pocond transporting cond_value currency.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        endloop.&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 NOT TESTRUN IS INITIAL.&lt;/P&gt;&lt;P&gt;      POHEADER-VENDOR = '4259999999'.&lt;/P&gt;&lt;P&gt;      poheader-doc_type = 'ZAPS'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF NOT POHEADER-PURCH_ORG IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF POHEADER-PURCH_ORG IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     SELECT SINGLE PUR_ORG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     INTO L_EKORG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     FROM ZPUR_ORG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     WHERE LE    = POHEADER-LE AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           FRMRC = POHEADER-FRMRC AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           FSID  = POHEADER-FSID.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF SY-SUBRC NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR : L_CONST_NAME,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               L_COMP_CODE.&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;       L_CONST_NAME  = C_p2p_pur_ORG.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_COMP_CODE   = POHEADER-COMP_CODE.&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;       CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 TYPE   = c_msgtype_e&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 CL     = c_msgid_z001&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 NUMBER = c_msgnr_619&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 PAR1   = L_CONST_NAME&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 PAR2   = L_COMP_CODE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 RETURN = RETURN.&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;       APPEND RETURN.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR  RETURN.&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;       loop at t_yreturn.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-zid        = t_yreturn-id.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-znumber    = t_yreturn-number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-ERR_MSG    = t_yreturn-message.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       insert into ZP2P_ERRORS values L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         clear: L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       endloop.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       EXIT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       POHEADER-PURCH_ORG = L_EKORG.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&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;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt; IF NOT POHEADER-PUR_GROUP IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF POHEADER-PUR_GROUP IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     clear: g_constval.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CALL FUNCTION 'ZXA_GET_CONSTANT'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               const_name     = c_p2p_pur_org&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               comp_code      = POHEADER-COMP_CODE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               const_value    = g_constval&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               no_value_found = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               null_value     = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               OTHERS         = 3.&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;     IF SY-SUBRC NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR : L_CONST_NAME,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               L_COMP_CODE.&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;       L_CONST_NAME  = C_p2p_pur_org.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_COMP_CODE   = POHEADER-COMP_CODE.&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;       CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 TYPE   = c_msgtype_e&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 CL     = c_msgid_z001&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 NUMBER = c_msgnr_046&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 PAR1   = L_CONST_NAME&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 PAR2   = L_COMP_CODE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 RETURN = RETURN.&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;       APPEND RETURN.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR  RETURN.&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;       loop at return.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-zid        = return-id.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-znumber    = return-number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-ERR_MSG    = return-message.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       insert into ZP2P_ERRORS values L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         clear: L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       endloop.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       EXIT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       POHEADER-PUR_GROUP = G_CONSTVAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;***********************************************************&lt;/P&gt;&lt;P&gt;*-- Retrieve Account Assignment&lt;/P&gt;&lt;P&gt;    PERFORM get_account_assignment TABLES   poitem&lt;/P&gt;&lt;P&gt;                                            poitemx&lt;/P&gt;&lt;P&gt;                                            poaccount&lt;/P&gt;&lt;P&gt;                                            poaccountx&lt;/P&gt;&lt;P&gt;                                            t_yreturn&lt;/P&gt;&lt;P&gt;                                   USING    poheader-comp_code&lt;/P&gt;&lt;P&gt;                                            poheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;****************************************************&lt;/P&gt;&lt;P&gt;    IF NOT t_yreturn[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      APPEND LINES OF t_yreturn TO RETURN.&lt;/P&gt;&lt;P&gt;      loop at return.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-zid        = return-id.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-znumber    = return-number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-ERR_MSG    = return-message.&lt;/P&gt;&lt;P&gt;        append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;P&gt;        clear: L_WA_ZERRORS.&lt;/P&gt;&lt;P&gt;      endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT max( serial_no )&lt;/P&gt;&lt;P&gt;         INTO L_SERIAL&lt;/P&gt;&lt;P&gt;         FROM ZP2P_ERRORS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT T_ERRORS.&lt;/P&gt;&lt;P&gt;        L_SERIAL = L_SERIAL + 1.&lt;/P&gt;&lt;P&gt;        T_ERRORS-serial_no = L_SERIAL.&lt;/P&gt;&lt;P&gt;        MODIFY T_ERRORS TRANSPORTING serial_no.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      INSERT ZP2P_ERRORS FROM TABLE T_ERRORS.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE t_yreturn WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*For Non-PCO Orders, do not update the GR and IR Indicator if the&lt;/P&gt;&lt;P&gt;*indicator passed in the current run is same as in PO.&lt;/P&gt;&lt;P&gt;  SORT poitem BY po_item.&lt;/P&gt;&lt;P&gt;  SORT poitemx BY po_item.&lt;/P&gt;&lt;P&gt;  LOOP AT poitem.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE wepos                  "Goods receipt indicator&lt;/P&gt;&lt;P&gt;                  repos                  "Invoice receipt indicator&lt;/P&gt;&lt;P&gt;    INTO (ekpo-wepos, ekpo-repos)&lt;/P&gt;&lt;P&gt;    FROM ekpo&lt;/P&gt;&lt;P&gt;    WHERE ebeln = purchaseorder AND&lt;/P&gt;&lt;P&gt;          ebelp = poitem-po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      IF ekpo-wepos EQ poitem-gr_ind.&lt;/P&gt;&lt;P&gt;        READ TABLE poitemx&lt;/P&gt;&lt;P&gt;             WITH KEY po_item = poitem-po_item&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;          CLEAR poitemx-gr_ind.&lt;/P&gt;&lt;P&gt;          MODIFY poitemx INDEX sy-tabix.&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 ekpo-repos EQ poitem-ir_ind.&lt;/P&gt;&lt;P&gt;        READ TABLE poitemx&lt;/P&gt;&lt;P&gt;              WITH KEY po_item = poitem-po_item&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;          CLEAR poitemx-ir_ind.&lt;/P&gt;&lt;P&gt;          MODIFY poitemx INDEX sy-tabix.&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;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Logic for addition, deletion and change of records in&lt;/P&gt;&lt;P&gt;*account assignment&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT poaccount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR  g_t_poaccount_tmp.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING poaccount TO g_t_poaccount_tmp.&lt;/P&gt;&lt;P&gt;    APPEND g_t_poaccount_tmp.&lt;/P&gt;&lt;P&gt;    ADD 1 TO g_cnt_poaccount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AT END OF po_item.&lt;/P&gt;&lt;P&gt;      SORT g_t_poaccount_tmp.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For single account assignment, if the goods receipt is not posted,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set the non-valuated indicator to blank.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF g_cnt_poaccount EQ 1.&lt;/P&gt;&lt;P&gt;        SELECT belnr                 "History per Purchasing Document&lt;/P&gt;&lt;P&gt;        INTO ekbe-belnr&lt;/P&gt;&lt;P&gt;        FROM ekbe&lt;/P&gt;&lt;P&gt;        UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;        WHERE ebeln = purchaseorder AND&lt;/P&gt;&lt;P&gt;              ebelp = g_t_poaccount_tmp-po_item AND&lt;/P&gt;&lt;P&gt;              vgabe = 1.&lt;/P&gt;&lt;P&gt;        ENDSELECT.&lt;/P&gt;&lt;P&gt;        IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;*PVU-08-May-2004 - Set the no valuated GR indicator to blank in POITEM&lt;/P&gt;&lt;P&gt;          READ TABLE poitem&lt;/P&gt;&lt;P&gt;               WITH KEY po_item = g_t_poaccount_tmp-po_item&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;            CLEAR poitem-gr_non_val .&lt;/P&gt;&lt;P&gt;            MODIFY poitem INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;*PVU-08-May-2004 - End of Set the no valuated GR indicator to blank&lt;/P&gt;&lt;P&gt;          READ TABLE poitemx&lt;/P&gt;&lt;P&gt;               WITH KEY po_item = g_t_poaccount_tmp-po_item&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;            poitemx-gr_non_val = c_checked.&lt;/P&gt;&lt;P&gt;            MODIFY poitemx INDEX sy-tabix.&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;      CLEAR: ekkn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT * FROM ekkn&lt;/P&gt;&lt;P&gt;      WHERE ebeln = purchaseorder AND&lt;/P&gt;&lt;P&gt;            ebelp = poaccount-po_item&lt;/P&gt;&lt;P&gt;      ORDER BY zekkn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ADD 1 TO g_cnt_ekkn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**BV-12-July-2004- Begin of change - split line accounting&lt;/P&gt;&lt;P&gt;*clear the headerline before data population&lt;/P&gt;&lt;P&gt;        CLEAR : g_t_poaccount1,&lt;/P&gt;&lt;P&gt;                g_t_poaccountx1.&lt;/P&gt;&lt;P&gt;**BV-12-July-2004- End of change - split line accounting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        READ TABLE g_t_poaccount_tmp INDEX g_cnt_ekkn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-po_item     = g_t_poaccount_tmp-po_item.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-serial_no   = ekkn-zekkn.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-quantity    = g_t_poaccount_tmp-quantity.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-gl_account  = g_t_poaccount_tmp-gl_account.&lt;/P&gt;&lt;P&gt;          READ TABLE poitem&lt;/P&gt;&lt;P&gt;               WITH KEY po_item = poaccount-po_item. "dd&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-Set cost center or WBS element depending on acc.assgn.&lt;/P&gt;&lt;P&gt;          IF poitem-acctasscat = c_costcenter.                   "K&lt;/P&gt;&lt;P&gt;            g_t_poaccount1-costcenter  = g_t_poaccount_tmp-costcenter .&lt;/P&gt;&lt;P&gt;          ELSEIF poitem-acctasscat = c_wbs.                      "P&lt;/P&gt;&lt;P&gt;            g_t_poaccount1-wbs_element = g_t_poaccount_tmp-wbs_element.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-End of set cost center or WBS element.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-orderid     = g_t_poaccount_tmp-orderid.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-distr_perc  = g_t_poaccount_tmp-distr_perc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          APPEND g_t_poaccount1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-po_item    = g_t_poaccount_tmp-po_item.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-serial_no  = ekkn-zekkn.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-po_itemx   = c_checked.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-quantity   = c_checked.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-gl_account = c_checked.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-Set cost center or WBS element depending on acc.assgn.&lt;/P&gt;&lt;P&gt;          IF poitem-acctasscat = c_costcenter.                   "K&lt;/P&gt;&lt;P&gt;            g_t_poaccountx1-costcenter = c_checked.&lt;/P&gt;&lt;P&gt;          ELSEIF poitem-acctasscat = c_wbs.                      "P&lt;/P&gt;&lt;P&gt;            g_t_poaccountx1-wbs_element = c_checked.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-End of set cost center or WBS element.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-orderid    = c_checked.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-distr_perc = c_checked.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          APPEND g_t_poaccountx1.&lt;/P&gt;&lt;P&gt;*If line is deleted from account assignment in Ariba&lt;/P&gt;&lt;P&gt;*then delete that line from SAP PO&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-po_item     = g_t_poaccount_tmp-po_item.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-serial_no   = ekkn-zekkn.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-delete_ind  = c_checked.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-quantity    = ekkn-menge.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-gl_account  = ekkn-sakto.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-Set cost center or WBS element depending on acc.assgn.&lt;/P&gt;&lt;P&gt;          IF poitem-acctasscat = c_costcenter.                   "K&lt;/P&gt;&lt;P&gt;            g_t_poaccount1-costcenter  = ekkn-kostl.&lt;/P&gt;&lt;P&gt;          ELSEIF poitem-acctasscat = c_wbs.                      "P&lt;/P&gt;&lt;P&gt;            g_t_poaccount1-wbs_element = ekkn-ps_psp_pnr.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-End of set cost center or WBS element.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-orderid     = ekkn-aufnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          APPEND g_t_poaccount1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-po_item     = g_t_poaccount_tmp-po_item.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-serial_no   = ekkn-zekkn.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-po_itemx    = c_checked.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-delete_ind  = c_checked.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-quantity    = c_checked.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-gl_account  = c_checked.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-Set cost center or WBS element depending on acc.assgn.&lt;/P&gt;&lt;P&gt;          IF poitem-acctasscat = c_costcenter.                   "K&lt;/P&gt;&lt;P&gt;            g_t_poaccountx1-costcenter  = c_checked.&lt;/P&gt;&lt;P&gt;          ELSEIF poitem-acctasscat = c_wbs.                      "P&lt;/P&gt;&lt;P&gt;            g_t_poaccountx1-wbs_element = c_checked.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-End of set cost center or WBS element.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-orderid     = c_checked.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          APPEND g_t_poaccountx1.&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;        SUBTRACT 1 FROM g_cnt_poaccount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**BV-12-July-2004- Begin of change - split line accounting&lt;/P&gt;&lt;P&gt;*clear the headerline before data population&lt;/P&gt;&lt;P&gt;      CLEAR : g_t_poaccount1,&lt;/P&gt;&lt;P&gt;              g_t_poaccountx1.&lt;/P&gt;&lt;P&gt;**BV-12-July-2004- End of change  - split line accounting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If new lines are added to account assignment in Ariba&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add those lines to SAP PO&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF g_cnt_poaccount GT 0.&lt;/P&gt;&lt;P&gt;        g_cnt_ekkn = ekkn-zekkn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SORT g_t_poaccount_tmp DESCENDING BY serial_no.&lt;/P&gt;&lt;P&gt;        LOOP AT g_t_poaccount_tmp.&lt;/P&gt;&lt;P&gt;          ADD 1 TO g_cnt_ekkn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-po_item     = g_t_poaccount_tmp-po_item.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-serial_no   = g_cnt_ekkn.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-quantity    = g_t_poaccount_tmp-quantity.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-gl_account  = g_t_poaccount_tmp-gl_account.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-Set cost center or WBS element depending on acc.assgn.&lt;/P&gt;&lt;P&gt;          IF poitem-acctasscat = c_costcenter.                   "K&lt;/P&gt;&lt;P&gt;            g_t_poaccount1-costcenter  = g_t_poaccount_tmp-costcenter.&lt;/P&gt;&lt;P&gt;          ELSEIF poitem-acctasscat = c_wbs.                      "P&lt;/P&gt;&lt;P&gt;            g_t_poaccount1-wbs_element = g_t_poaccount_tmp-wbs_element.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-End of set cost center or WBS element.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-orderid     = g_t_poaccount_tmp-orderid.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-distr_perc  = g_t_poaccount_tmp-distr_perc.&lt;/P&gt;&lt;P&gt;          APPEND g_t_poaccount1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-po_item    = g_t_poaccount_tmp-po_item.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-serial_no  = g_cnt_ekkn.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-po_itemx   = c_checked.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-quantity   = c_checked.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-gl_account = c_checked.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-Set cost center or WBS element depending on acc.assgn.&lt;/P&gt;&lt;P&gt;          IF poitem-acctasscat = c_costcenter.                   "K&lt;/P&gt;&lt;P&gt;            g_t_poaccountx1-costcenter = c_checked.&lt;/P&gt;&lt;P&gt;          ELSEIF poitem-acctasscat = c_wbs.                      "P&lt;/P&gt;&lt;P&gt;            g_t_poaccountx1-wbs_element = c_checked.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-End of set cost center or WBS element.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-orderid    = c_checked.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-distr_perc = c_checked.&lt;/P&gt;&lt;P&gt;          APPEND g_t_poaccountx1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          SUBTRACT 1 FROM g_cnt_poaccount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF g_cnt_poaccount EQ 0.&lt;/P&gt;&lt;P&gt;            EXIT.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CLEAR: g_cnt_poaccount, g_cnt_ekkn.&lt;/P&gt;&lt;P&gt;      REFRESH g_t_poaccount_tmp.&lt;/P&gt;&lt;P&gt;    ENDAT.&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;  REFRESH: poaccount, poaccountx.&lt;/P&gt;&lt;P&gt;  CLEAR:   poaccount, poaccountx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND LINES OF g_t_poaccount1 TO poaccount.&lt;/P&gt;&lt;P&gt;  APPEND LINES OF g_t_poaccountx1 TO poaccountx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH: g_t_poaccount1, g_t_poaccountx1.&lt;/P&gt;&lt;P&gt;  SORT: poaccount, poaccountx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*For POs Converted from legacy system, populate the item quantity and&lt;/P&gt;&lt;P&gt;*price based on the original purchase order qty/price. Also, populate&lt;/P&gt;&lt;P&gt;*the actual qty and price passed by Ariba in the Net weight and gross&lt;/P&gt;&lt;P&gt;*weight fields.&lt;/P&gt;&lt;P&gt;  LOOP AT poitem.&lt;/P&gt;&lt;P&gt;    CLEAR: ekpo.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE menge                    "Purchase order quantity&lt;/P&gt;&lt;P&gt;                  netpr                    "Net price in PO&lt;/P&gt;&lt;P&gt;    INTO (ekpo-menge, ekpo-netpr)&lt;/P&gt;&lt;P&gt;    FROM ekpo&lt;/P&gt;&lt;P&gt;    WHERE  ebeln EQ purchaseorder   AND&lt;/P&gt;&lt;P&gt;           ebelp EQ poitem-po_item. "AND&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Turn off Final Invoice Indicator if net price or quantity is higher&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;than the existing value.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF poitem-quantity  GT ekpo-menge OR&lt;/P&gt;&lt;P&gt;         poitem-net_price GT ekpo-netpr.&lt;/P&gt;&lt;P&gt;        CLEAR poitem-final_inv.&lt;/P&gt;&lt;P&gt;        READ TABLE poitemx&lt;/P&gt;&lt;P&gt;             WITH KEY po_item = poitem-po_item&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;          poitemx-final_inv   = c_checked.&lt;/P&gt;&lt;P&gt;          MODIFY poitemx INDEX sy-tabix.&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;      MODIFY poitem.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;*endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****Start of changes by Balaji V - 08-June-04&lt;/P&gt;&lt;P&gt;****Zero Pad and Prefix 1 to Vendor.&lt;/P&gt;&lt;P&gt;  DATA : L_LENGTH   TYPE I.&lt;/P&gt;&lt;P&gt;  "Vendor string length.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        L_MSGV1    LIKE SY-MSGV1. "Message variable1&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT POHEADER-VENDOR IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*remove any leading zeros for vendor populated from webmethods&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              INPUT  = POHEADER-VENDOR&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              OUTPUT = POHEADER-VENDOR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    L_LENGTH = STRLEN( POHEADER-VENDOR ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF L_LENGTH &amp;lt; 10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*To pad leading zeros to Vendor&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  = POHEADER-VENDOR&lt;/P&gt;&lt;P&gt;           IMPORTING&lt;/P&gt;&lt;P&gt;                OUTPUT = POHEADER-VENDOR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*To replace first character with 1.&lt;/P&gt;&lt;P&gt;      MOVE '1' TO POHEADER-VENDOR(1).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSE.       "Vendor is 10 char in length&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR L_MSGV1.&lt;/P&gt;&lt;P&gt;      L_MSGV1 = POHEADER-VENDOR.&lt;/P&gt;&lt;P&gt;*Zero Padding and Prefixing 1 Not possible.Vendor is 10 Character&lt;/P&gt;&lt;P&gt;*length&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;P&gt;           EXPORTING&lt;/P&gt;&lt;P&gt;                TYPE   = C_MSGTYPE_I  "I&lt;/P&gt;&lt;P&gt;                CL     = C_MSGID_Z001                       "Z001&lt;/P&gt;&lt;P&gt;                NUMBER = C_MSGNR_040  "040&lt;/P&gt;&lt;P&gt;                PAR1   = L_MSGV1&lt;/P&gt;&lt;P&gt;           IMPORTING&lt;/P&gt;&lt;P&gt;                RETURN = RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND RETURN.&lt;/P&gt;&lt;P&gt;      CLEAR  RETURN.&lt;/P&gt;&lt;P&gt;      loop at return.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-zid        = return-id.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-znumber    = return-number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-ERR_MSG    = return-message.&lt;/P&gt;&lt;P&gt;        append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  insert into ZP2P_ERRORS values L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        clear: L_WA_ZERRORS.&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;  ENDIF.&lt;/P&gt;&lt;P&gt;****End of changes by Balaji V - 08-June-04&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;***********************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;****************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; if not poheader-comp_code is initial.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   select single companycode&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   into l_bukrs&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   from zcompanycodes01&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   where companycode = poheader-comp_code and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         FSID        = poheader-fsid and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         le          = poheader-le and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         frmrc       = poheader-frmrc.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   if sy-subrc ne 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR L_MSGV1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     L_MSGV1 = POACCOUNT-PO_ITEM.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Please Enter an Account number for line&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               TYPE   = C_MSGTYPE_E&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               CL     = C_MSGID_Z001&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               NUMBER = C_MSGNR_618&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               PAR1   = L_MSGV1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               RETURN = RETURN.&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;     APPEND RETURN.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR  RETURN.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     loop at return.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-zid        = return-id.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-znumber    = return-number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-ERR_MSG    = return-message.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  insert into ZP2P_ERRORS values L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       clear: L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     endloop.&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;   ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     poheader-comp_code = l_bukrs.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   endif.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;***********************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not poheader-currency is initial.&lt;/P&gt;&lt;P&gt;    if not poheader-vendor is initial.&lt;/P&gt;&lt;P&gt;      loop at pocond.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE WAERS&lt;/P&gt;&lt;P&gt;        INTO L_WAERS&lt;/P&gt;&lt;P&gt;        FROM LFM1 WHERE&lt;/P&gt;&lt;P&gt;        LIFNR = POHEADER-VENDOR&lt;/P&gt;&lt;P&gt;        AND EKORG = POHEADER-PURCH_ORG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;          IF L_WAERS NE  poheader-currency.&lt;/P&gt;&lt;P&gt;            pocond-cond_value = 'PBXX'.&lt;/P&gt;&lt;P&gt;            pocond-currency    = l_waers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            modify pocond transporting cond_value currency.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      endloop.&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;*mod-003&lt;/P&gt;&lt;P&gt;***********************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF NOT TESTRUN IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   POHEADER-VENDOR = '4259999999'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   poheader-doc_type = 'ZAP'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;***********************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;***********************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF NOT POHEADER-PURCH_ORG IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SELECT SINGLE PUR_ORG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   INTO L_EKORG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   FROM ZPUR_ORG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WHERE LE = POHEADER-LE AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         FRMRC = POHEADER-FRMRC AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         FSID = POHEADER-FSID.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF SY-SUBRC NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR : L_CONST_NAME,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             L_COMP_CODE.&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;     L_CONST_NAME  = C_p2p_pur_ORG.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     L_COMP_CODE   = POHEADER-COMP_CODE.&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;     CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               TYPE   = c_msgtype_e&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               CL     = c_msgid_z001&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               NUMBER = c_msgnr_619&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               PAR1   = L_CONST_NAME&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               PAR2   = L_COMP_CODE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               RETURN = RETURN.&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;     APPEND RETURN.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR  RETURN.&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;     loop at return.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-zid        = return-id.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-znumber    = return-number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-ERR_MSG    = return-message.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  insert into ZP2P_ERRORS values L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       clear: L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     endloop.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     EXIT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     POHEADER-PURCH_ORG = L_EKORG.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;  LOOP AT POITEM.&lt;/P&gt;&lt;P&gt;    l_wa_timestamp-mandt          = SY-MANDT.&lt;/P&gt;&lt;P&gt;    l_wa_timestamp-EBELN          = POHEADER-PO_NUMBER.&lt;/P&gt;&lt;P&gt;    l_wa_timestamp-EBELP          = POITEM-PO_ITEM.&lt;/P&gt;&lt;P&gt;    l_wa_timestamp-CHANGE_IND     = ' '.&lt;/P&gt;&lt;P&gt;    l_wa_timestamp-DATE_TIME_STMP = POHEADER-ARIBACHGTIMESTMP.&lt;/P&gt;&lt;P&gt;    insert into ZP2P_TIMESTAMP values l_wa_timestamp.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: g_constval(10) type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT POHEADER-PUR_GROUP IS INITIAL.&lt;/P&gt;&lt;P&gt;    clear: g_constval.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'ZXA_GET_CONSTANT'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              const_name     = c_p2p_pur_org&lt;/P&gt;&lt;P&gt;              comp_code      = POHEADER-COMP_CODE&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              const_value    = g_constval&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              no_value_found = 1&lt;/P&gt;&lt;P&gt;              null_value     = 2&lt;/P&gt;&lt;P&gt;              OTHERS         = 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;      CLEAR : L_CONST_NAME,&lt;/P&gt;&lt;P&gt;              L_COMP_CODE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      L_CONST_NAME  = C_p2p_pur_org.&lt;/P&gt;&lt;P&gt;      L_COMP_CODE   = POHEADER-COMP_CODE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;P&gt;           EXPORTING&lt;/P&gt;&lt;P&gt;                TYPE   = c_msgtype_e&lt;/P&gt;&lt;P&gt;                CL     = c_msgid_z001&lt;/P&gt;&lt;P&gt;                NUMBER = c_msgnr_619&lt;/P&gt;&lt;P&gt;                PAR1   = L_CONST_NAME&lt;/P&gt;&lt;P&gt;                PAR2   = L_COMP_CODE&lt;/P&gt;&lt;P&gt;           IMPORTING&lt;/P&gt;&lt;P&gt;                RETURN = RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND RETURN.&lt;/P&gt;&lt;P&gt;      CLEAR  RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      loop at return.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-zid        = return-id.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-znumber    = return-number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-ERR_MSG    = return-message.&lt;/P&gt;&lt;P&gt;        append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  insert into ZP2P_ERRORS values L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        clear: L_WA_ZERRORS.&lt;/P&gt;&lt;P&gt;      endloop.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      POHEADER-PUR_GROUP = G_CONSTVAL.&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;*mod-003&lt;/P&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;  IF purchaseorder(3) = c_pco.                       "PCO&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------" /&gt;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Begin of Change: 26-Sep-2005 SDUTTARO RD1K910989     *&amp;amp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------" /&gt;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Map the external fields for ALZA with account assignment&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF poheader-comp_code = c_bukrs_alza.                          "@SDR&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**--    Retrieve Account Assignment&lt;/P&gt;&lt;P&gt;      PERFORM get_account_assignment TABLES   poitem              "@SDR&lt;/P&gt;&lt;P&gt;                                              poitemx             "@SDR&lt;/P&gt;&lt;P&gt;                                              poaccount           "@SDR&lt;/P&gt;&lt;P&gt;                                              poaccountx          "@SDR&lt;/P&gt;&lt;P&gt;                                              t_yreturn           "@SDR&lt;/P&gt;&lt;P&gt;                                     USING    poheader-comp_code  "@SDR&lt;/P&gt;&lt;P&gt;                                              poheader.           "@SDR&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.                                                         "@SDR&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------" /&gt;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**&amp;amp; Begin of Change: 26-Sep-2005 SDUTTARO RD1K910989     *&amp;amp;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;For PCO Order, populate the PO and accounting data into a Z table and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;exit the program run.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM populate_nonpo_document   TABLES   poitem&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                              return&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                              potextheader&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                     USING    purchaseorder&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                              poheader.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM populate_nonpo_accounting TABLES poaccount&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                            return&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                     USING  poheader.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**&amp;amp;&amp;amp;---Begin of Addition: Soumya D Roy: 03/10/2006&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;To make sure that the ztables do not get updated in case of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;checkpoints 1, 2 and get updated only after approval&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF testrun IS INITIAL.                                          "SDR&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**&amp;amp;&amp;amp;---End of Addition: Soumya D Roy: 03/10/2006&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PERFORM update_nonpodocument.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**&amp;amp;&amp;amp;---Begin of Addition: Soumya D Roy: 03/10/2006&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;To delete PCOs. No deletion code is required for CRs &amp;amp; UTs&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;as these two cannot be deleted&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.                                                         "@SDR&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**&amp;amp;&amp;amp;---End of Addition: Soumya D Roy: 03/10/2006&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LOOP AT t_return.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE: t_return-type TO return-type,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           t_return-number TO return-number,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           t_return-message TO return-message.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     APPEND return.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR  return.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDLOOP.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;---- Begin of Addition: Soumya D Roy: 03/02/2006&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Code to build the message table for output to Ariba&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;for PCOs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*GENERATE CUSTOM RETURN MESSAGES BASED ON MESSAGE ID AND NUMBER FROM&lt;/P&gt;&lt;P&gt;*maintenance table ZMESSAGES&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CALL FUNCTION 'Z_MM_BUILD_MESSAGES'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        TABLES&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             return = return.&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;   SORT return BY type id number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   READ TABLE return&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         WITH KEY id = space&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                  number = c_msgnr_000               "000&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         BINARY SEARCH.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF sy-subrc EQ 0 AND sy-tabix NE 1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     DELETE return INDEX sy-tabix.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     INSERT return INDEX 1.&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;**&amp;amp;&amp;amp;&amp;amp;&amp;amp;----- End of Addition: Soumya D Roy: 03/02/2006&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   EXIT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*-- Round off to 100 percent due to small difference in one decimal&lt;/P&gt;&lt;P&gt;*-- point rounding (in Ariba/wM)&lt;/P&gt;&lt;P&gt;  SORT poaccount BY po_item distr_perc.&lt;/P&gt;&lt;P&gt;  LOOP AT poaccount.&lt;/P&gt;&lt;P&gt;    ADD poaccount-distr_perc TO g_distr_perc.&lt;/P&gt;&lt;P&gt;    AT END OF po_item.&lt;/P&gt;&lt;P&gt;*-- Round off to 100 percent due to small difference in one decimal&lt;/P&gt;&lt;P&gt;*-- point rounding (in Ariba/wM)&lt;/P&gt;&lt;P&gt;      IF g_distr_perc GT 0.&lt;/P&gt;&lt;P&gt;        g_distr_perc = 100 - g_distr_perc.&lt;/P&gt;&lt;P&gt;        g_adjust_perc = c_checked.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;    IF g_adjust_perc = c_checked.&lt;/P&gt;&lt;P&gt;      g_distr_perc1 = g_distr_perc + poaccount-distr_perc.&lt;/P&gt;&lt;P&gt;      IF g_distr_perc1 = 100.&lt;/P&gt;&lt;P&gt;        poaccount-distr_perc = 0.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        poaccount-distr_perc = g_distr_perc1.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      MODIFY poaccount.&lt;/P&gt;&lt;P&gt;      CLEAR poaccount.&lt;/P&gt;&lt;P&gt;      CLEAR: g_distr_perc, g_distr_perc1.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLEAR g_adjust_perc.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SORT poaccount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT poschedule BY po_item sched_line.&lt;/P&gt;&lt;P&gt;  SORT poschedulex BY po_item sched_line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*PVU-20-May-2004 - Start Changes for SCR1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***************************************************&lt;/P&gt;&lt;P&gt;**MOD-003&lt;/P&gt;&lt;P&gt;**************************************************&lt;/P&gt;&lt;P&gt;*Populate the change indicator structures before calling BAPI_PO_CHANGE&lt;/P&gt;&lt;P&gt;*so that IDOC can be populated with this data&lt;/P&gt;&lt;P&gt;  IF NOT poheaderx IS INITIAL.&lt;/P&gt;&lt;P&gt;    g_w_hdrx_tmp = poheaderx.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF NOT poitemx[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    g_t_itemx_tmp[] = poitemx[].&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF NOT poschedulex[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    g_t_schdx_tmp[] = poschedulex[].&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF NOT poaccountx[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    g_t_accntx_tmp[] = poaccountx[].&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF NOT pocondx[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    g_t_condx_tmp[] = pocondx[].&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;***************************************************&lt;/P&gt;&lt;P&gt;**MOD-003&lt;/P&gt;&lt;P&gt;**************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*PVU-20-May-2004 - End Changes for SCR1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*sraman2 06/28/04&lt;/P&gt;&lt;P&gt;*-- Default the Material Group to 99 if the incoming commodity&lt;/P&gt;&lt;P&gt;*-- code don't exist in SAP&lt;/P&gt;&lt;P&gt;  LOOP AT poitem.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE matkl INTO t023-matkl FROM t023&lt;/P&gt;&lt;P&gt;      WHERE matkl = poitem-matl_group.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      MOVE: '99' TO poitem-matl_group.&lt;/P&gt;&lt;P&gt;      MODIFY poitem.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLEAR  poitem.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;*sraman2 06/28/04&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;---Begin of Addition: Soumya D Roy: 03/27/2006&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Logic for PO changes which are listed in table ZCONVERTEDPOS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ZCONVERTEDPOS contains Purchase Orders ie. both Material and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Service which have either NONVAL GR checked or GR checked respectively&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and are invoiced. Any changes to these POs from Ariba would not let&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;other quantity or amount or text description changes to flow into SAP.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This piece of code will keep the Indicators' status same as in SAP&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and also let the user perform the change.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*Begin of change by svalidet RD1K911990&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF purchaseorder+0(3) = '099'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF purchaseorder+0(3) in r_ehub_pos[].&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*End of change by svalidet RD1K911990&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'Z_CONVERTED_POS'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              P_PURCHASEORDER = purchaseorder&lt;/P&gt;&lt;P&gt;              P_POHEADER      = poheader&lt;/P&gt;&lt;P&gt;         TABLES&lt;/P&gt;&lt;P&gt;              P_POITEM        = poitem&lt;/P&gt;&lt;P&gt;              P_POITEMX       = poitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**************************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;**************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform get_uom_conversion  tables poitem&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                    POITEMX&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                    poaccount&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                    poaccountx&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                    poschedule&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                    poschedulex&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                           changing poheader&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                    poheaderx.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform get_uom_conversion  tables poitem&lt;/P&gt;&lt;P&gt;                                      POITEMX&lt;/P&gt;&lt;P&gt;                                      poaccount&lt;/P&gt;&lt;P&gt;                                      poaccountx&lt;/P&gt;&lt;P&gt;                                      poschedule&lt;/P&gt;&lt;P&gt;                                      poschedulex&lt;/P&gt;&lt;P&gt;                                      pocond&lt;/P&gt;&lt;P&gt;                                      pocondx&lt;/P&gt;&lt;P&gt;                                      Pocondheader&lt;/P&gt;&lt;P&gt;                                      pocondheaderx&lt;/P&gt;&lt;P&gt;                             changing poheader&lt;/P&gt;&lt;P&gt;                                      poheaderx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**************************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;**************************************************************&lt;/P&gt;&lt;P&gt;*Populate the change indicator structures before calling BAPI_PO_CHANGE&lt;/P&gt;&lt;P&gt;*so that IDOC can be populated with this data&lt;/P&gt;&lt;P&gt;  IF NOT poheaderx IS INITIAL.&lt;/P&gt;&lt;P&gt;    g_w_hdrx_tmp = poheaderx.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF NOT poitemx[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    g_t_itemx_tmp[] = poitemx[].&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF NOT poschedulex[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    g_t_schdx_tmp[] = poschedulex[].&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF NOT poaccountx[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    g_t_accntx_tmp[] = poaccountx[].&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF NOT pocondx[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    g_t_condx_tmp[] = pocondx[].&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;***************************************************&lt;/P&gt;&lt;P&gt;**MOD-003&lt;/P&gt;&lt;P&gt;**************************************************&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          = purchaseorder&lt;/P&gt;&lt;P&gt;      poheader               = poheader&lt;/P&gt;&lt;P&gt;      poheaderx              = poheaderx&lt;/P&gt;&lt;P&gt;      poaddrvendor           = poaddrvendor&lt;/P&gt;&lt;P&gt;      testrun                = testrun&lt;/P&gt;&lt;P&gt;      memory_uncomplete      = memory_uncomplete&lt;/P&gt;&lt;P&gt;      memory_complete        = memory_complete&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     poexpimpheader         = poexpimpheader&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     poexpimpheaderx        = poexpimpheaderx&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     versions               = versions&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     no_messaging           = no_messaging&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     no_message_req         = no_message_req&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     no_authority           = no_authority&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     no_price_from_po       = no_price_from_po&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      expheader              = expheader&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     exppoexpimpheader      = exppoexpimpheader&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      return                 = return&lt;/P&gt;&lt;P&gt;      poitem                 = poitem&lt;/P&gt;&lt;P&gt;      poitemx                = poitemx&lt;/P&gt;&lt;P&gt;      poaddrdelivery         = poaddrdelivery&lt;/P&gt;&lt;P&gt;      poschedule             = poschedule&lt;/P&gt;&lt;P&gt;      poschedulex            = poschedulex&lt;/P&gt;&lt;P&gt;      poaccount              = poaccount&lt;/P&gt;&lt;P&gt;      poaccountprofitsegment = poaccountprofitsegment&lt;/P&gt;&lt;P&gt;      poaccountx             = poaccountx&lt;/P&gt;&lt;P&gt;      pocondheader           = pocondheader&lt;/P&gt;&lt;P&gt;      pocondheaderx          = pocondheaderx&lt;/P&gt;&lt;P&gt;      pocond                 = pocond&lt;/P&gt;&lt;P&gt;      pocondx                = pocondx&lt;/P&gt;&lt;P&gt;      polimits               = polimits&lt;/P&gt;&lt;P&gt;      pocontractlimits       = pocontractlimits&lt;/P&gt;&lt;P&gt;      poservices             = poservices&lt;/P&gt;&lt;P&gt;      posrvaccessvalues      = posrvaccessvalues&lt;/P&gt;&lt;P&gt;      poservicestext         = poservicestext&lt;/P&gt;&lt;P&gt;      extensionin            = extensionin&lt;/P&gt;&lt;P&gt;      extensionout           = extensionout&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     poexpimpitem           = poexpimpitem&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     poexpimpitemx          = poexpimpitemx&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      potextheader           = potextheader&lt;/P&gt;&lt;P&gt;      potextitem             = potextitem .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     allversions            = allversions&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     popartner              = popartner.&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;Code inserted to commit work&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SORT return BY type.&lt;/P&gt;&lt;P&gt;  IF testrun IS INITIAL.&lt;/P&gt;&lt;P&gt;    READ TABLE return&lt;/P&gt;&lt;P&gt;         WITH KEY type = c_msgtype_e               "E.&lt;/P&gt;&lt;P&gt;         BINARY SEARCH.&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;    ELSE.&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.&lt;/P&gt;&lt;P&gt;**PVU-20-May-2004 - Start Changes for SCR1&lt;/P&gt;&lt;P&gt;**To generate inbound IDOC for failed PO&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     perform idoc_create tables poitem&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                g_t_itemx_tmp&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                poaddrdelivery&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                poschedule&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                g_t_schdx_tmp&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                poaccount&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                poaccountprofitsegment&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                g_t_accntx_tmp&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                pocond&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                g_t_condx_tmp&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                polimits&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                pocontractlimits&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                poservices&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                posrvaccessvalues&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                poservicestext&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                extensionin&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                return&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                          using c_flg_pochange              "CHNG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                purchaseorder&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                poheader&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                g_w_hdrx_tmp&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                poaddrvendor&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                testrun&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                memory_uncomplete&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                memory_complete .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*PVU-20-May-2004 - End Changes for SCR1&lt;/P&gt;&lt;P&gt;      loop at return.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-zid        = return-id.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-znumber    = return-number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-ERR_MSG    = return-message.&lt;/P&gt;&lt;P&gt;        append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      insert into ZP2P_ERRORS values L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        clear: L_WA_ZERRORS.&lt;/P&gt;&lt;P&gt;      endloop.&lt;/P&gt;&lt;P&gt;      SELECT max( serial_no )&lt;/P&gt;&lt;P&gt;       INTO L_SERIAL&lt;/P&gt;&lt;P&gt;       FROM ZP2P_ERRORS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT T_ERRORS.&lt;/P&gt;&lt;P&gt;        L_SERIAL = L_SERIAL + 1.&lt;/P&gt;&lt;P&gt;        T_ERRORS-serial_no = L_SERIAL.&lt;/P&gt;&lt;P&gt;        MODIFY T_ERRORS TRANSPORTING serial_no.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      INSERT ZP2P_ERRORS FROM TABLE T_ERRORS.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*GENERATE CUSTOM RETURN MESSAGES BASED ON MESSAGE ID AND NUMBER FROM&lt;/P&gt;&lt;P&gt;*maintenance table ZMESSAGES&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'Z_MM_BUILD_MESSAGES'&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            return = return.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT return BY type id number.&lt;/P&gt;&lt;P&gt;  READ TABLE return&lt;/P&gt;&lt;P&gt;        WITH KEY id = space&lt;/P&gt;&lt;P&gt;                 number = c_msgnr_000               "000&lt;/P&gt;&lt;P&gt;        BINARY SEARCH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0 AND sy-tabix NE 1.&lt;/P&gt;&lt;P&gt;    DELETE return INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;    INSERT return INDEX 1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT max( serial_no )&lt;/P&gt;&lt;P&gt;       INTO L_SERIAL&lt;/P&gt;&lt;P&gt;       FROM ZP2P_ERRORS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT T_ERRORS.&lt;/P&gt;&lt;P&gt;    L_SERIAL = L_SERIAL + 1.&lt;/P&gt;&lt;P&gt;    T_ERRORS-serial_no = L_SERIAL.&lt;/P&gt;&lt;P&gt;    MODIFY T_ERRORS TRANSPORTING serial_no.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  INSERT ZP2P_ERRORS FROM TABLE T_ERRORS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFUNCTION.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 16 Jan 2008 05:06:15 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-01-16T05:06:15Z</dc:date>
    <item>
      <title>query regarding BAPI_PO_CHANGE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/query-regarding-bapi-po-change/m-p/3260306#M778867</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;After a PO has been created I want to change the PO items, is it enough if I just pass the modified PO Item details or do I need to pass all the details?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Jan 2008 04:56:51 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/query-regarding-bapi-po-change/m-p/3260306#M778867</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-16T04:56:51Z</dc:date>
    </item>
    <item>
      <title>Re: query regarding BAPI_PO_CHANGE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/query-regarding-bapi-po-change/m-p/3260307#M778868</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Check this program: I have sent the details of the PO Create in the earlier post. The include program is the same for both.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION Z_BC1_BAPI_PO_CHANGE02.&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;/STRONG&gt;"Local Interface:&lt;/P&gt;&lt;P&gt;*"  IMPORTING&lt;/P&gt;&lt;P&gt;*"     VALUE(PURCHASEORDER) TYPE  BAPIMEPOHEADER-PO_NUMBER&lt;/P&gt;&lt;P&gt;*"     VALUE(POADDRVENDOR) TYPE  BAPIMEPOADDRVENDOR&lt;/P&gt;&lt;P&gt;*"     VALUE(TESTRUN) TYPE  BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*"     VALUE(MEMORY_UNCOMPLETE) TYPE  BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*"     VALUE(MEMORY_COMPLETE) TYPE  BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*"     VALUE(POEXPIMPHEADER) TYPE  BAPIEIKP&lt;/P&gt;&lt;P&gt;*"     VALUE(POEXPIMPHEADERX) TYPE  BAPIEIKPX&lt;/P&gt;&lt;P&gt;*"     VALUE(VERSIONS) TYPE  BAPIMEDCM&lt;/P&gt;&lt;P&gt;*"     VALUE(NO_MESSAGING) TYPE  BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*"     VALUE(NO_MESSAGE_REQ) TYPE  BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*"     VALUE(NO_AUTHORITY) TYPE  BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*"     VALUE(NO_PRICE_FROM_PO) TYPE  BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*"  EXPORTING&lt;/P&gt;&lt;P&gt;*"     VALUE(EXPHEADER) TYPE  BAPIMEPOHEADER&lt;/P&gt;&lt;P&gt;*"     VALUE(EXPPOEXPIMPHEADER) TYPE  BAPIEIKPX&lt;/P&gt;&lt;P&gt;*"  TABLES&lt;/P&gt;&lt;P&gt;*"      RETURN STRUCTURE  BAPIRET2&lt;/P&gt;&lt;P&gt;*"      POITEM STRUCTURE  BAPIMEPOITEM&lt;/P&gt;&lt;P&gt;*"      POITEMX STRUCTURE  BAPIMEPOITEMX&lt;/P&gt;&lt;P&gt;*"      POADDRDELIVERY STRUCTURE  BAPIMEPOADDRDELIVERY&lt;/P&gt;&lt;P&gt;*"      POSCHEDULE STRUCTURE  BAPIMEPOSCHEDULE&lt;/P&gt;&lt;P&gt;*"      POSCHEDULEX STRUCTURE  BAPIMEPOSCHEDULX&lt;/P&gt;&lt;P&gt;*"      POACCOUNT STRUCTURE  BAPIMEPOACCOUNT&lt;/P&gt;&lt;P&gt;*"      POACCOUNTPROFITSEGMENT STRUCTURE  BAPIMEPOACCOUNTPROFITSEGMENT&lt;/P&gt;&lt;P&gt;*"      POACCOUNTX STRUCTURE  BAPIMEPOACCOUNTX&lt;/P&gt;&lt;P&gt;*"      POCONDHEADER STRUCTURE  BAPIMEPOCONDHEADER&lt;/P&gt;&lt;P&gt;*"      POCONDHEADERX STRUCTURE  BAPIMEPOCONDHEADERX&lt;/P&gt;&lt;P&gt;*"      POCOND STRUCTURE  BAPIMEPOCOND&lt;/P&gt;&lt;P&gt;*"      POCONDX STRUCTURE  BAPIMEPOCONDX&lt;/P&gt;&lt;P&gt;*"      POLIMITS STRUCTURE  BAPIESUHC&lt;/P&gt;&lt;P&gt;*"      POCONTRACTLIMITS STRUCTURE  BAPIESUCC&lt;/P&gt;&lt;P&gt;*"      POSERVICES STRUCTURE  BAPIESLLC&lt;/P&gt;&lt;P&gt;*"      POSRVACCESSVALUES STRUCTURE  BAPIESKLC&lt;/P&gt;&lt;P&gt;*"      POSERVICESTEXT STRUCTURE  BAPIESLLTX&lt;/P&gt;&lt;P&gt;*"      EXTENSIONIN STRUCTURE  BAPIPAREX&lt;/P&gt;&lt;P&gt;*"      EXTENSIONOUT STRUCTURE  BAPIPAREX&lt;/P&gt;&lt;P&gt;*"      POEXPIMPITEM STRUCTURE  BAPIEIPO&lt;/P&gt;&lt;P&gt;*"      POEXPIMPITEMX STRUCTURE  BAPIEIPOX&lt;/P&gt;&lt;P&gt;*"      POTEXTHEADER STRUCTURE  BAPIMEPOTEXTHEADER&lt;/P&gt;&lt;P&gt;*"      POTEXTITEM STRUCTURE  BAPIMEPOTEXT&lt;/P&gt;&lt;P&gt;*"      ALLVERSIONS STRUCTURE  BAPIMEDCM_ALLVERSIONS&lt;/P&gt;&lt;P&gt;*"      POPARTNER STRUCTURE  BAPIEKKOP&lt;/P&gt;&lt;P&gt;*"      POCOMPONENTS STRUCTURE  BAPIMEPOCOMPONENT&lt;/P&gt;&lt;P&gt;*"      POCOMPONENTSX STRUCTURE  BAPIMEPOCOMPONENTX&lt;/P&gt;&lt;P&gt;*"      POSHIPPING STRUCTURE  BAPIITEMSHIP&lt;/P&gt;&lt;P&gt;*"      POSHIPPINGX STRUCTURE  BAPIITEMSHIPX&lt;/P&gt;&lt;P&gt;*"      POSHIPPINGEXP STRUCTURE  BAPIMEPOSHIPPEXP&lt;/P&gt;&lt;P&gt;*"      POHISTORY STRUCTURE  BAPIEKBE&lt;/P&gt;&lt;P&gt;*"      POHISTORY_TOTALS STRUCTURE  BAPIEKBES&lt;/P&gt;&lt;P&gt;*"      POCONFIRMATION STRUCTURE  BAPIEKES&lt;/P&gt;&lt;P&gt;*"      NFMETALLITMS STRUCTURE  /NFM/BAPIDOCITM&lt;/P&gt;&lt;P&gt;*"  CHANGING&lt;/P&gt;&lt;P&gt;*"     VALUE(POHEADER) TYPE  BAPIMEPOHEADER&lt;/P&gt;&lt;P&gt;*"     VALUE(POHEADERX) TYPE  BAPIMEPOHEADERX&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PROGRAM        Z_BC1_BAPI_PO_CHANGE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TITLE          Function module to Change PO using BAPI&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;AUTHOR         Aveek Ghose&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATE WRITTEN   24.05.2006&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;R/3 RELEASE    4.6C&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;COPIED FROM    N/A&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;This function module is called during PO change in Ariba.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The call to this function module is from WebMethods. The function&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;module performs custom validations on data provided from Ariba and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;then calls BAPI_PO_CHANGE. The error messages are returned to Ariba.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PROGRAM TYPE    Function module&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DEV. CLASS      ZP2P&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;LOGICAL DB      N/A&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;SCREENS         N/A&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GUl TITLE       N/A&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GUl STATUS      N/A&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TRANSACTIONS    N/A&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;USER EXITS      N/A&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;HR originaltext="------------------------------------------------------------------" /&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;       DB-Tables&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;  TABLES: ekkn,        "Account Assignment in Purchasing Document&lt;/P&gt;&lt;P&gt;          ekbe.        "History per Purchasing Document&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        zconstants_new. "Constants for various interfaces&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                               &amp;amp; programs with comp code&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;       Global variables&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;  DATA: g_cnt_poaccount   TYPE i,         "No. of records in POACCOUNT&lt;/P&gt;&lt;P&gt;        g_cnt_ekkn        TYPE i,         "No. of records in EKKN&lt;/P&gt;&lt;P&gt;        g_msgv1 LIKE sy-msgv1.            "Message variable1&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;       Internal Tables&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;  DATA: g_t_poaccount_tmp LIKE poaccount  OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        g_t_poaccount1    LIKE poaccount  OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        g_t_poaccountx1   LIKE poaccountx OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        g_t_poaccount     LIKE poaccount  OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*PVU-20-May-2004 - Changes for SCR1&lt;/P&gt;&lt;P&gt;        g_t_itemx_tmp     LIKE poitemx      OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        g_t_schdx_tmp     LIKE poschedulex  OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        g_t_accntx_tmp    LIKE poaccountx   OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        g_t_condx_tmp     LIKE pocondx      OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      T_Zconstants      LIKE ZCONSTANTS_NEW OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*RD1K911982&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*PVU-20-May-2004 - End Changes for SCR1&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;       Structure&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;  DATA:  g_w_hdrx_tmp LIKE poheaderx. "PVU-20-May-2004 - Changes for SCR1&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; DATA: p_constname TYPE  zconstname,  "Constant Name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       g_constval  TYPE  zconstval,   "Constant Value&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       c_po_ehub_var LIKE ZCONSTANTS_NEW-CONSTname  value 'EHUB_POS%'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA : L_CONST_NAME  LIKE SY-MSGV1,   "Constant name&lt;/P&gt;&lt;P&gt;         L_COMP_CODE   LIKE SY-MSGV2.   "Company code&lt;/P&gt;&lt;P&gt;  DATA:  L_WA_TIMESTAMP TYPE ZP2P_TIMESTAMP.&lt;/P&gt;&lt;P&gt;  data: l_waers type waers.&lt;/P&gt;&lt;P&gt;  DATA: L_EKORG TYPE EKORG.&lt;/P&gt;&lt;P&gt;  DATA: L_SERIAL TYPE I.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : L_VEND_ACTGRP(30) TYPE C,        "Vendor Account Group&lt;/P&gt;&lt;P&gt;         L_VEND_PAYTRM(30) TYPE C,        "Vendor Payment Terms&lt;/P&gt;&lt;P&gt;         L_VEND_RECON(30)  TYPE C,        "Vendor Reconciliation Account&lt;/P&gt;&lt;P&gt;         L_MSGV1           LIKE SY-MSGV1, "Message variable1&lt;/P&gt;&lt;P&gt;         L_WBS_EXTERNAL    LIKE BAPIMEPOACCOUNT-WBS_ELEMENT,&lt;/P&gt;&lt;P&gt;                                           "WBS external format&lt;/P&gt;&lt;P&gt;         L_WBS_INTERNAL    LIKE BAPIMEPOACCOUNT-WBS_ELEMENT,&lt;/P&gt;&lt;P&gt;         L_bukrs type bukrs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Ranges :r_ehub_pos for t_zconstants-constvalu.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Begin of Change SVALIDET(RD1K911990)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; SELECT *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FROM  zconstants_new&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INTO TABLE t_zconstants&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WHERE constname LIKE c_po_ehub_var.  " EHUB_POS%&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc = 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SORT t_zconstants BY constvalu ASCENDING.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   DELETE ADJACENT DUPLICATES FROM t_zconstants&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          COMPARING constvalu.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LOOP AT t_zconstants.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     r_ehub_pos-sign = 'I'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     r_ehub_pos-option = 'EQ'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     r_ehub_pos-low = t_zconstants-constvalu.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     APPEND r_ehub_pos.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR: r_ehub_pos,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            t_zconstants.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDLOOP.&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;**End of Change SVALIDET(RD1K911990)&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;Srini 18-May-2005 Start of changes&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Developer Flexibility to debug issues&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; p_constname = 'BAPI_PO_CHANGE2'.&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; do.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CALL FUNCTION 'ZXA_GET_CONSTANT'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             const_name     = p_constname&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;            comp_code      =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             const_value    = g_constval&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             no_value_found = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             null_value     = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             OTHERS         = 3.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   if g_constval NE 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     exit.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   endif.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; enddo.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*Begin of comment   RD1Kk911990&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF PURCHASEORDER+0(3) EQ '099' AND POHEADER-DOC_TYPE EQ 'ZEHS'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   POHEADER-DOC_TYPE = 'ZEH'.&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;*End  of comment RD1K911990&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;if not poheader-comp_code is initial.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; if poheader-comp_code is initial.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   clear: l_bukrs.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   select single companycode&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   into l_bukrs&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   from zcompanycodes01&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  where companycode = poheader-comp_code and&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   where FSID        = poheader-fsid and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         le          = poheader-le and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         frmrc       = poheader-frmrc.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   if sy-subrc ne 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR L_MSGV1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     L_MSGV1 =   POHEADER-DOC_TYPE.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Please Enter an Account number for line&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               TYPE   = C_MSGTYPE_E&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               CL     = C_MSGID_Z001&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               NUMBER = C_MSGNR_618&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               PAR1   = L_MSGV1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               RETURN = RETURN.&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;     APPEND RETURN.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR  RETURN.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   else.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     poheader-comp_code = l_bukrs.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   endif.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF POHEADER-DOC_TYPE EQ 'ZEHS'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   POHEADER-DOC_TYPE = 'ZEH'.&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;SORT poaccount BY po_item serial_no.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Clear internal tables and global variables&lt;/P&gt;&lt;P&gt;  REFRESH: g_t_poaccount_tmp,&lt;/P&gt;&lt;P&gt;           g_t_poaccount1,&lt;/P&gt;&lt;P&gt;           g_t_poaccountx1,&lt;/P&gt;&lt;P&gt;           g_t_poaccount,&lt;/P&gt;&lt;P&gt;           return,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         g_t_idoc_data,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;           g_t_itemx_tmp,&lt;/P&gt;&lt;P&gt;           g_t_schdx_tmp,&lt;/P&gt;&lt;P&gt;           g_t_accntx_tmp,&lt;/P&gt;&lt;P&gt;           g_t_condx_tmp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: g_cnt_poaccount,&lt;/P&gt;&lt;P&gt;         g_cnt_ekkn,&lt;/P&gt;&lt;P&gt;         g_msgv1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       g_distr_perc,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       g_distr_perc1,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       g_adjust_perc,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        g_idoc_no,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        g_w_hdrx_tmp.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF poheader-po_number+0(1) = 'C'.&lt;/P&gt;&lt;P&gt;    poheader-doc_type = 'ZAC'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF poheader-po_number+0(1) = 'P'.&lt;/P&gt;&lt;P&gt;    poheader-doc_type = 'ZAP'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF poheader-po_number IS INITIAL.&lt;/P&gt;&lt;P&gt;    poheader-doc_type = 'ZAPS'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF purchaseorder(3) &amp;lt;&amp;gt; c_pco.&lt;/P&gt;&lt;P&gt;    g_t_poaccount[] = poaccount[].&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To retrieve the line items with blank GL Account Number&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PERFORM filter_items TABLES g_t_poaccount.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT g_t_poaccount.&lt;/P&gt;&lt;P&gt;      CLEAR g_msgv1.&lt;/P&gt;&lt;P&gt;      g_msgv1 = g_t_poaccount-po_item.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Please Enter an Account number for line&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;P&gt;           EXPORTING&lt;/P&gt;&lt;P&gt;                type   = c_msgtype_e  "E&lt;/P&gt;&lt;P&gt;                cl     = c_msgid_z001                       "Z001&lt;/P&gt;&lt;P&gt;                number = c_msgnr_037  "037&lt;/P&gt;&lt;P&gt;                par1   = g_msgv1&lt;/P&gt;&lt;P&gt;           IMPORTING&lt;/P&gt;&lt;P&gt;                return = return.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND return.&lt;/P&gt;&lt;P&gt;      CLEAR  return.&lt;/P&gt;&lt;P&gt;      loop at return.&lt;/P&gt;&lt;P&gt;        l_wa_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;P&gt;        l_wa_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;P&gt;        l_wa_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;P&gt;        l_wa_ZERRORS-zid        = return-id.&lt;/P&gt;&lt;P&gt;        l_wa_ZERRORS-znumber    = return-number.&lt;/P&gt;&lt;P&gt;        l_wa_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;        l_wa_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;        l_wa_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;P&gt;        l_wa_ZERRORS-ERR_MSG    = return-message.&lt;/P&gt;&lt;P&gt;        append l_wa_ZERRORS to t_errors.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      insert into ZP2P_ERRORS values l_wa_ZP2P_ERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        clear: L_WA_ZERRORS.&lt;/P&gt;&lt;P&gt;      endloop.&lt;/P&gt;&lt;P&gt;      CLEAR g_msgv1.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SORT return BY type.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;On Error, exit the function module&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE return&lt;/P&gt;&lt;P&gt;         WITH KEY type = c_msgtype_e               "E&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;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***Begin of Change - BVIJAYA  01-July-2004  TPR-2239&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; If line item is marked for deletion, Clear the final_inv indicator,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; so that the condition value[conditions tab(po header)] reflects the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; correct gross price for the remaining items.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SORT poitem  BY po_item.&lt;/P&gt;&lt;P&gt;    SORT poitemx BY po_item.&lt;/P&gt;&lt;P&gt;    LOOP AT poitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF NOT poitem-delete_ind IS INITIAL.   "delete ind marked.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;sraman2 07/17/04&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*For item deletion to work properly&lt;/P&gt;&lt;P&gt;*indicator should be 'D'. webmethods passes indicator 'X'.&lt;/P&gt;&lt;P&gt;        poitem-delete_ind = 'D'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;sraman2 07/17/04&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CLEAR poitem-final_inv.&lt;/P&gt;&lt;P&gt;        MODIFY poitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        READ TABLE poitemx WITH KEY po_item = poitem-po_item.&lt;/P&gt;&lt;P&gt;        IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;          poitemx-final_inv = c_checked.   "X&lt;/P&gt;&lt;P&gt;          MODIFY poitemx INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;****************************************************&lt;/P&gt;&lt;P&gt;    DATA: L_TABIX TYPE SY-TABIX.&lt;/P&gt;&lt;P&gt;    LOOP AT POITEM.&lt;/P&gt;&lt;P&gt;      TBX = SY-TABIX.&lt;/P&gt;&lt;P&gt;      l_wa_timestamp-mandt          = SY-MANDT.&lt;/P&gt;&lt;P&gt;      l_wa_timestamp-EBELN          = POHEADER-PO_NUMBER.&lt;/P&gt;&lt;P&gt;      l_wa_timestamp-EBELP          = POITEM-PO_ITEM.&lt;/P&gt;&lt;P&gt;      l_wa_timestamp-CHANGE_IND     = ' '.&lt;/P&gt;&lt;P&gt;      l_wa_timestamp-DATE_TIME_STMP = POITEM-ARIBACRTTIMESTMP.&lt;/P&gt;&lt;P&gt;      insert into ZP2P_TIMESTAMP values l_wa_timestamp.&lt;/P&gt;&lt;P&gt;      clear: poheader-ARIBACRTTIMESTMP,&lt;/P&gt;&lt;P&gt;             poheader-ARIBACHGTIMESTMP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF NOT POITEM-DISTRIB IS INITIAL.&lt;/P&gt;&lt;P&gt;        CLEAR : L_CONST_NAME,&lt;/P&gt;&lt;P&gt;                L_COMP_CODE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        READ TABLE POACCOUNT INDEX L_TABIX.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;          L_CONST_NAME  = POACCOUNT-GL_ACCOUNT.&lt;/P&gt;&lt;P&gt;          L_COMP_CODE   = L_comp_code.&lt;/P&gt;&lt;P&gt;          CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;P&gt;               EXPORTING&lt;/P&gt;&lt;P&gt;                    type   = c_msgtype_e  "E&lt;/P&gt;&lt;P&gt;                    cl     = c_msgid_z001&lt;/P&gt;&lt;P&gt;                    number = c_msgnr_613&lt;/P&gt;&lt;P&gt;                    PAR1   = L_CONST_NAME&lt;/P&gt;&lt;P&gt;                    PAR2   = L_COMP_CODE&lt;/P&gt;&lt;P&gt;               IMPORTING&lt;/P&gt;&lt;P&gt;                    return = t_yreturn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          APPEND t_yreturn.&lt;/P&gt;&lt;P&gt;          CLEAR  t_yreturn.&lt;/P&gt;&lt;P&gt;          loop at t_yreturn.&lt;/P&gt;&lt;P&gt;            L_WA_ZERRORS-OBJECT       = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;P&gt;            L_WA_ZERRORS-serial_no     = sy-tabix.&lt;/P&gt;&lt;P&gt;            L_WA_ZERRORS-COMP_CODE    = poheader-comp_code.&lt;/P&gt;&lt;P&gt;            L_WA_ZERRORS-zid          = t_yreturn-id.&lt;/P&gt;&lt;P&gt;            L_WA_ZERRORS-znumber      = t_yreturn-number.&lt;/P&gt;&lt;P&gt;            L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;            L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;            L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;P&gt;            L_WA_ZERRORS-ERR_MSG    = t_yreturn-message.&lt;/P&gt;&lt;P&gt;            append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        insert into ZP2P_ERRORS values L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            clear: L_WA_ZERRORS.&lt;/P&gt;&lt;P&gt;          endloop.&lt;/P&gt;&lt;P&gt;        ENDIF.&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 poheader-currency is initial.&lt;/P&gt;&lt;P&gt;      if not poheader-vendor is initial.&lt;/P&gt;&lt;P&gt;        loop at pocond.&lt;/P&gt;&lt;P&gt;          SELECT SINGLE WAERS&lt;/P&gt;&lt;P&gt;          INTO L_WAERS&lt;/P&gt;&lt;P&gt;          FROM LFM1 WHERE&lt;/P&gt;&lt;P&gt;          LIFNR = POHEADER-VENDOR&lt;/P&gt;&lt;P&gt;          AND EKORG = POHEADER-PURCH_ORG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;            IF L_WAERS NE  poheader-currency.&lt;/P&gt;&lt;P&gt;              pocond-cond_value = 'PBXX'.&lt;/P&gt;&lt;P&gt;              pocond-currency    = l_waers.&lt;/P&gt;&lt;P&gt;              modify pocond transporting cond_value currency.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        endloop.&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 NOT TESTRUN IS INITIAL.&lt;/P&gt;&lt;P&gt;      POHEADER-VENDOR = '4259999999'.&lt;/P&gt;&lt;P&gt;      poheader-doc_type = 'ZAPS'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF NOT POHEADER-PURCH_ORG IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF POHEADER-PURCH_ORG IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     SELECT SINGLE PUR_ORG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     INTO L_EKORG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     FROM ZPUR_ORG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     WHERE LE    = POHEADER-LE AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           FRMRC = POHEADER-FRMRC AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           FSID  = POHEADER-FSID.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF SY-SUBRC NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR : L_CONST_NAME,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               L_COMP_CODE.&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;       L_CONST_NAME  = C_p2p_pur_ORG.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_COMP_CODE   = POHEADER-COMP_CODE.&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;       CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 TYPE   = c_msgtype_e&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 CL     = c_msgid_z001&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 NUMBER = c_msgnr_619&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 PAR1   = L_CONST_NAME&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 PAR2   = L_COMP_CODE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 RETURN = RETURN.&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;       APPEND RETURN.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR  RETURN.&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;       loop at t_yreturn.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-zid        = t_yreturn-id.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-znumber    = t_yreturn-number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-ERR_MSG    = t_yreturn-message.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       insert into ZP2P_ERRORS values L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         clear: L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       endloop.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       EXIT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       POHEADER-PURCH_ORG = L_EKORG.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF NOT POHEADER-PUR_GROUP IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF POHEADER-PUR_GROUP IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     clear: g_constval.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CALL FUNCTION 'ZXA_GET_CONSTANT'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               const_name     = c_p2p_pur_org&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               comp_code      = POHEADER-COMP_CODE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               const_value    = g_constval&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               no_value_found = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               null_value     = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               OTHERS         = 3.&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;     IF SY-SUBRC NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR : L_CONST_NAME,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               L_COMP_CODE.&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;       L_CONST_NAME  = C_p2p_pur_org.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_COMP_CODE   = POHEADER-COMP_CODE.&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;       CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 TYPE   = c_msgtype_e&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 CL     = c_msgid_z001&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 NUMBER = c_msgnr_046&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 PAR1   = L_CONST_NAME&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 PAR2   = L_COMP_CODE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 RETURN = RETURN.&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;       APPEND RETURN.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR  RETURN.&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;       loop at t_yreturn.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-zid        = t_yreturn-id.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-znumber    = t_yreturn-number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-ERR_MSG    = t_yreturn-message.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       insert into ZP2P_ERRORS values L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         clear: L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       endloop.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       EXIT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       POHEADER-PUR_GROUP = G_CONSTVAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&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;   data: l_werks1 type werks_d.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LOOP AT poitem.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     if poitem-plant is initial.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       clear: l_werks1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       select single plant&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       into l_werks1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       from zpo_plantmapping&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       where COMPANY_CODE = poheader-comp_code and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             PUR_ORG      = poheader-purch_org and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             PUR_GROUP    = poheader-pur_group and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             LE           = poheader-le and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             FSID         = poheader-fsid and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             FRMRC        = poheader-frmrc.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       if sy-subrc ne 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         PERFORM ERROR_HANDLING_PLANT USING   POHEADER&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                              poheader-comp_code&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                              L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         EXIT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       else.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         poitem-plant = l_werks1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         CLEAR: L_WERKS1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       endif.&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;LI level="2" type="ul"&gt;&lt;P&gt;   IF POITEM-NET_PRICE NE POHEADER-CURRENCY.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;     POITEM-NET_PRICE = POHEADER-CURRENCY.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF POITEM-net_price NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       POITEM-IR_IND = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     POITEM-UNLIMITED_DLV = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     POITEM-UNDER_DLV_TOL = 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     clear: poitem-ARIBACRTTIMESTMP,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            poitem-ARIBAUPDTIMESTMP.&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;     MODIFY POITEM TRANSPORTING UNLIMITED_DLV&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                UNDER_DLV_TOL&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                PLANT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                IR_IND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                               ARIBACRTTIMESTMP&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                               ARIBAUPDTIMESTMP.&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;   ENDLOOP.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;***********************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if not poheader-currency is initial.&lt;/P&gt;&lt;P&gt;      if not poheader-vendor is initial.&lt;/P&gt;&lt;P&gt;        loop at pocond.&lt;/P&gt;&lt;P&gt;          SELECT SINGLE WAERS&lt;/P&gt;&lt;P&gt;          INTO L_WAERS&lt;/P&gt;&lt;P&gt;          FROM LFM1 WHERE&lt;/P&gt;&lt;P&gt;          LIFNR = POHEADER-VENDOR&lt;/P&gt;&lt;P&gt;          AND EKORG = POHEADER-PURCH_ORG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;            IF L_WAERS NE  poheader-currency.&lt;/P&gt;&lt;P&gt;              pocond-cond_value = 'PBXX'.&lt;/P&gt;&lt;P&gt;              pocond-currency    = l_waers.&lt;/P&gt;&lt;P&gt;              modify pocond transporting cond_value currency.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        endloop.&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 NOT TESTRUN IS INITIAL.&lt;/P&gt;&lt;P&gt;      POHEADER-VENDOR = '4259999999'.&lt;/P&gt;&lt;P&gt;      poheader-doc_type = 'ZAPS'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF NOT POHEADER-PURCH_ORG IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF POHEADER-PURCH_ORG IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     SELECT SINGLE PUR_ORG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     INTO L_EKORG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     FROM ZPUR_ORG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     WHERE LE    = POHEADER-LE AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           FRMRC = POHEADER-FRMRC AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           FSID  = POHEADER-FSID.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF SY-SUBRC NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR : L_CONST_NAME,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               L_COMP_CODE.&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;       L_CONST_NAME  = C_p2p_pur_ORG.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_COMP_CODE   = POHEADER-COMP_CODE.&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;       CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 TYPE   = c_msgtype_e&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 CL     = c_msgid_z001&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 NUMBER = c_msgnr_619&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 PAR1   = L_CONST_NAME&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 PAR2   = L_COMP_CODE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 RETURN = RETURN.&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;       APPEND RETURN.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR  RETURN.&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;       loop at t_yreturn.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-zid        = t_yreturn-id.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-znumber    = t_yreturn-number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-ERR_MSG    = t_yreturn-message.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       insert into ZP2P_ERRORS values L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         clear: L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       endloop.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       EXIT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       POHEADER-PURCH_ORG = L_EKORG.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&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;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt; IF NOT POHEADER-PUR_GROUP IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF POHEADER-PUR_GROUP IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     clear: g_constval.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CALL FUNCTION 'ZXA_GET_CONSTANT'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               const_name     = c_p2p_pur_org&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               comp_code      = POHEADER-COMP_CODE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               const_value    = g_constval&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               no_value_found = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               null_value     = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               OTHERS         = 3.&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;     IF SY-SUBRC NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR : L_CONST_NAME,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               L_COMP_CODE.&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;       L_CONST_NAME  = C_p2p_pur_org.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_COMP_CODE   = POHEADER-COMP_CODE.&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;       CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 TYPE   = c_msgtype_e&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 CL     = c_msgid_z001&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 NUMBER = c_msgnr_046&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 PAR1   = L_CONST_NAME&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 PAR2   = L_COMP_CODE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 RETURN = RETURN.&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;       APPEND RETURN.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR  RETURN.&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;       loop at return.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-zid        = return-id.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-znumber    = return-number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         L_WA_ZERRORS-ERR_MSG    = return-message.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       insert into ZP2P_ERRORS values L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         clear: L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       endloop.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       EXIT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       POHEADER-PUR_GROUP = G_CONSTVAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;***********************************************************&lt;/P&gt;&lt;P&gt;*-- Retrieve Account Assignment&lt;/P&gt;&lt;P&gt;    PERFORM get_account_assignment TABLES   poitem&lt;/P&gt;&lt;P&gt;                                            poitemx&lt;/P&gt;&lt;P&gt;                                            poaccount&lt;/P&gt;&lt;P&gt;                                            poaccountx&lt;/P&gt;&lt;P&gt;                                            t_yreturn&lt;/P&gt;&lt;P&gt;                                   USING    poheader-comp_code&lt;/P&gt;&lt;P&gt;                                            poheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;****************************************************&lt;/P&gt;&lt;P&gt;    IF NOT t_yreturn[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      APPEND LINES OF t_yreturn TO RETURN.&lt;/P&gt;&lt;P&gt;      loop at return.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-zid        = return-id.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-znumber    = return-number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-ERR_MSG    = return-message.&lt;/P&gt;&lt;P&gt;        append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;P&gt;        clear: L_WA_ZERRORS.&lt;/P&gt;&lt;P&gt;      endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT max( serial_no )&lt;/P&gt;&lt;P&gt;         INTO L_SERIAL&lt;/P&gt;&lt;P&gt;         FROM ZP2P_ERRORS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT T_ERRORS.&lt;/P&gt;&lt;P&gt;        L_SERIAL = L_SERIAL + 1.&lt;/P&gt;&lt;P&gt;        T_ERRORS-serial_no = L_SERIAL.&lt;/P&gt;&lt;P&gt;        MODIFY T_ERRORS TRANSPORTING serial_no.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      INSERT ZP2P_ERRORS FROM TABLE T_ERRORS.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE t_yreturn WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*For Non-PCO Orders, do not update the GR and IR Indicator if the&lt;/P&gt;&lt;P&gt;*indicator passed in the current run is same as in PO.&lt;/P&gt;&lt;P&gt;  SORT poitem BY po_item.&lt;/P&gt;&lt;P&gt;  SORT poitemx BY po_item.&lt;/P&gt;&lt;P&gt;  LOOP AT poitem.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE wepos                  "Goods receipt indicator&lt;/P&gt;&lt;P&gt;                  repos                  "Invoice receipt indicator&lt;/P&gt;&lt;P&gt;    INTO (ekpo-wepos, ekpo-repos)&lt;/P&gt;&lt;P&gt;    FROM ekpo&lt;/P&gt;&lt;P&gt;    WHERE ebeln = purchaseorder AND&lt;/P&gt;&lt;P&gt;          ebelp = poitem-po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      IF ekpo-wepos EQ poitem-gr_ind.&lt;/P&gt;&lt;P&gt;        READ TABLE poitemx&lt;/P&gt;&lt;P&gt;             WITH KEY po_item = poitem-po_item&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;          CLEAR poitemx-gr_ind.&lt;/P&gt;&lt;P&gt;          MODIFY poitemx INDEX sy-tabix.&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 ekpo-repos EQ poitem-ir_ind.&lt;/P&gt;&lt;P&gt;        READ TABLE poitemx&lt;/P&gt;&lt;P&gt;              WITH KEY po_item = poitem-po_item&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;          CLEAR poitemx-ir_ind.&lt;/P&gt;&lt;P&gt;          MODIFY poitemx INDEX sy-tabix.&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;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Logic for addition, deletion and change of records in&lt;/P&gt;&lt;P&gt;*account assignment&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT poaccount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR  g_t_poaccount_tmp.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING poaccount TO g_t_poaccount_tmp.&lt;/P&gt;&lt;P&gt;    APPEND g_t_poaccount_tmp.&lt;/P&gt;&lt;P&gt;    ADD 1 TO g_cnt_poaccount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AT END OF po_item.&lt;/P&gt;&lt;P&gt;      SORT g_t_poaccount_tmp.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For single account assignment, if the goods receipt is not posted,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set the non-valuated indicator to blank.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF g_cnt_poaccount EQ 1.&lt;/P&gt;&lt;P&gt;        SELECT belnr                 "History per Purchasing Document&lt;/P&gt;&lt;P&gt;        INTO ekbe-belnr&lt;/P&gt;&lt;P&gt;        FROM ekbe&lt;/P&gt;&lt;P&gt;        UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;        WHERE ebeln = purchaseorder AND&lt;/P&gt;&lt;P&gt;              ebelp = g_t_poaccount_tmp-po_item AND&lt;/P&gt;&lt;P&gt;              vgabe = 1.&lt;/P&gt;&lt;P&gt;        ENDSELECT.&lt;/P&gt;&lt;P&gt;        IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;*PVU-08-May-2004 - Set the no valuated GR indicator to blank in POITEM&lt;/P&gt;&lt;P&gt;          READ TABLE poitem&lt;/P&gt;&lt;P&gt;               WITH KEY po_item = g_t_poaccount_tmp-po_item&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;            CLEAR poitem-gr_non_val .&lt;/P&gt;&lt;P&gt;            MODIFY poitem INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;*PVU-08-May-2004 - End of Set the no valuated GR indicator to blank&lt;/P&gt;&lt;P&gt;          READ TABLE poitemx&lt;/P&gt;&lt;P&gt;               WITH KEY po_item = g_t_poaccount_tmp-po_item&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;            poitemx-gr_non_val = c_checked.&lt;/P&gt;&lt;P&gt;            MODIFY poitemx INDEX sy-tabix.&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;      CLEAR: ekkn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT * FROM ekkn&lt;/P&gt;&lt;P&gt;      WHERE ebeln = purchaseorder AND&lt;/P&gt;&lt;P&gt;            ebelp = poaccount-po_item&lt;/P&gt;&lt;P&gt;      ORDER BY zekkn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ADD 1 TO g_cnt_ekkn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**BV-12-July-2004- Begin of change - split line accounting&lt;/P&gt;&lt;P&gt;*clear the headerline before data population&lt;/P&gt;&lt;P&gt;        CLEAR : g_t_poaccount1,&lt;/P&gt;&lt;P&gt;                g_t_poaccountx1.&lt;/P&gt;&lt;P&gt;**BV-12-July-2004- End of change - split line accounting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        READ TABLE g_t_poaccount_tmp INDEX g_cnt_ekkn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-po_item     = g_t_poaccount_tmp-po_item.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-serial_no   = ekkn-zekkn.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-quantity    = g_t_poaccount_tmp-quantity.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-gl_account  = g_t_poaccount_tmp-gl_account.&lt;/P&gt;&lt;P&gt;          READ TABLE poitem&lt;/P&gt;&lt;P&gt;               WITH KEY po_item = poaccount-po_item. "dd&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-Set cost center or WBS element depending on acc.assgn.&lt;/P&gt;&lt;P&gt;          IF poitem-acctasscat = c_costcenter.                   "K&lt;/P&gt;&lt;P&gt;            g_t_poaccount1-costcenter  = g_t_poaccount_tmp-costcenter .&lt;/P&gt;&lt;P&gt;          ELSEIF poitem-acctasscat = c_wbs.                      "P&lt;/P&gt;&lt;P&gt;            g_t_poaccount1-wbs_element = g_t_poaccount_tmp-wbs_element.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-End of set cost center or WBS element.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-orderid     = g_t_poaccount_tmp-orderid.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-distr_perc  = g_t_poaccount_tmp-distr_perc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          APPEND g_t_poaccount1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-po_item    = g_t_poaccount_tmp-po_item.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-serial_no  = ekkn-zekkn.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-po_itemx   = c_checked.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-quantity   = c_checked.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-gl_account = c_checked.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-Set cost center or WBS element depending on acc.assgn.&lt;/P&gt;&lt;P&gt;          IF poitem-acctasscat = c_costcenter.                   "K&lt;/P&gt;&lt;P&gt;            g_t_poaccountx1-costcenter = c_checked.&lt;/P&gt;&lt;P&gt;          ELSEIF poitem-acctasscat = c_wbs.                      "P&lt;/P&gt;&lt;P&gt;            g_t_poaccountx1-wbs_element = c_checked.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-End of set cost center or WBS element.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-orderid    = c_checked.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-distr_perc = c_checked.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          APPEND g_t_poaccountx1.&lt;/P&gt;&lt;P&gt;*If line is deleted from account assignment in Ariba&lt;/P&gt;&lt;P&gt;*then delete that line from SAP PO&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-po_item     = g_t_poaccount_tmp-po_item.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-serial_no   = ekkn-zekkn.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-delete_ind  = c_checked.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-quantity    = ekkn-menge.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-gl_account  = ekkn-sakto.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-Set cost center or WBS element depending on acc.assgn.&lt;/P&gt;&lt;P&gt;          IF poitem-acctasscat = c_costcenter.                   "K&lt;/P&gt;&lt;P&gt;            g_t_poaccount1-costcenter  = ekkn-kostl.&lt;/P&gt;&lt;P&gt;          ELSEIF poitem-acctasscat = c_wbs.                      "P&lt;/P&gt;&lt;P&gt;            g_t_poaccount1-wbs_element = ekkn-ps_psp_pnr.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-End of set cost center or WBS element.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-orderid     = ekkn-aufnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          APPEND g_t_poaccount1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-po_item     = g_t_poaccount_tmp-po_item.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-serial_no   = ekkn-zekkn.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-po_itemx    = c_checked.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-delete_ind  = c_checked.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-quantity    = c_checked.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-gl_account  = c_checked.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-Set cost center or WBS element depending on acc.assgn.&lt;/P&gt;&lt;P&gt;          IF poitem-acctasscat = c_costcenter.                   "K&lt;/P&gt;&lt;P&gt;            g_t_poaccountx1-costcenter  = c_checked.&lt;/P&gt;&lt;P&gt;          ELSEIF poitem-acctasscat = c_wbs.                      "P&lt;/P&gt;&lt;P&gt;            g_t_poaccountx1-wbs_element = c_checked.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-End of set cost center or WBS element.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-orderid     = c_checked.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          APPEND g_t_poaccountx1.&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;        SUBTRACT 1 FROM g_cnt_poaccount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**BV-12-July-2004- Begin of change - split line accounting&lt;/P&gt;&lt;P&gt;*clear the headerline before data population&lt;/P&gt;&lt;P&gt;      CLEAR : g_t_poaccount1,&lt;/P&gt;&lt;P&gt;              g_t_poaccountx1.&lt;/P&gt;&lt;P&gt;**BV-12-July-2004- End of change  - split line accounting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If new lines are added to account assignment in Ariba&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add those lines to SAP PO&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF g_cnt_poaccount GT 0.&lt;/P&gt;&lt;P&gt;        g_cnt_ekkn = ekkn-zekkn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SORT g_t_poaccount_tmp DESCENDING BY serial_no.&lt;/P&gt;&lt;P&gt;        LOOP AT g_t_poaccount_tmp.&lt;/P&gt;&lt;P&gt;          ADD 1 TO g_cnt_ekkn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-po_item     = g_t_poaccount_tmp-po_item.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-serial_no   = g_cnt_ekkn.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-quantity    = g_t_poaccount_tmp-quantity.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-gl_account  = g_t_poaccount_tmp-gl_account.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-Set cost center or WBS element depending on acc.assgn.&lt;/P&gt;&lt;P&gt;          IF poitem-acctasscat = c_costcenter.                   "K&lt;/P&gt;&lt;P&gt;            g_t_poaccount1-costcenter  = g_t_poaccount_tmp-costcenter.&lt;/P&gt;&lt;P&gt;          ELSEIF poitem-acctasscat = c_wbs.                      "P&lt;/P&gt;&lt;P&gt;            g_t_poaccount1-wbs_element = g_t_poaccount_tmp-wbs_element.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-End of set cost center or WBS element.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-orderid     = g_t_poaccount_tmp-orderid.&lt;/P&gt;&lt;P&gt;          g_t_poaccount1-distr_perc  = g_t_poaccount_tmp-distr_perc.&lt;/P&gt;&lt;P&gt;          APPEND g_t_poaccount1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-po_item    = g_t_poaccount_tmp-po_item.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-serial_no  = g_cnt_ekkn.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-po_itemx   = c_checked.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-quantity   = c_checked.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-gl_account = c_checked.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-Set cost center or WBS element depending on acc.assgn.&lt;/P&gt;&lt;P&gt;          IF poitem-acctasscat = c_costcenter.                   "K&lt;/P&gt;&lt;P&gt;            g_t_poaccountx1-costcenter = c_checked.&lt;/P&gt;&lt;P&gt;          ELSEIF poitem-acctasscat = c_wbs.                      "P&lt;/P&gt;&lt;P&gt;            g_t_poaccountx1-wbs_element = c_checked.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;*PVU-11-May-2004-End of set cost center or WBS element.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-orderid    = c_checked.&lt;/P&gt;&lt;P&gt;          g_t_poaccountx1-distr_perc = c_checked.&lt;/P&gt;&lt;P&gt;          APPEND g_t_poaccountx1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          SUBTRACT 1 FROM g_cnt_poaccount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF g_cnt_poaccount EQ 0.&lt;/P&gt;&lt;P&gt;            EXIT.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CLEAR: g_cnt_poaccount, g_cnt_ekkn.&lt;/P&gt;&lt;P&gt;      REFRESH g_t_poaccount_tmp.&lt;/P&gt;&lt;P&gt;    ENDAT.&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;  REFRESH: poaccount, poaccountx.&lt;/P&gt;&lt;P&gt;  CLEAR:   poaccount, poaccountx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND LINES OF g_t_poaccount1 TO poaccount.&lt;/P&gt;&lt;P&gt;  APPEND LINES OF g_t_poaccountx1 TO poaccountx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH: g_t_poaccount1, g_t_poaccountx1.&lt;/P&gt;&lt;P&gt;  SORT: poaccount, poaccountx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*For POs Converted from legacy system, populate the item quantity and&lt;/P&gt;&lt;P&gt;*price based on the original purchase order qty/price. Also, populate&lt;/P&gt;&lt;P&gt;*the actual qty and price passed by Ariba in the Net weight and gross&lt;/P&gt;&lt;P&gt;*weight fields.&lt;/P&gt;&lt;P&gt;  LOOP AT poitem.&lt;/P&gt;&lt;P&gt;    CLEAR: ekpo.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE menge                    "Purchase order quantity&lt;/P&gt;&lt;P&gt;                  netpr                    "Net price in PO&lt;/P&gt;&lt;P&gt;    INTO (ekpo-menge, ekpo-netpr)&lt;/P&gt;&lt;P&gt;    FROM ekpo&lt;/P&gt;&lt;P&gt;    WHERE  ebeln EQ purchaseorder   AND&lt;/P&gt;&lt;P&gt;           ebelp EQ poitem-po_item. "AND&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Turn off Final Invoice Indicator if net price or quantity is higher&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;than the existing value.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF poitem-quantity  GT ekpo-menge OR&lt;/P&gt;&lt;P&gt;         poitem-net_price GT ekpo-netpr.&lt;/P&gt;&lt;P&gt;        CLEAR poitem-final_inv.&lt;/P&gt;&lt;P&gt;        READ TABLE poitemx&lt;/P&gt;&lt;P&gt;             WITH KEY po_item = poitem-po_item&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;          poitemx-final_inv   = c_checked.&lt;/P&gt;&lt;P&gt;          MODIFY poitemx INDEX sy-tabix.&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;      MODIFY poitem.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;*endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****Start of changes by Balaji V - 08-June-04&lt;/P&gt;&lt;P&gt;****Zero Pad and Prefix 1 to Vendor.&lt;/P&gt;&lt;P&gt;  DATA : L_LENGTH   TYPE I.&lt;/P&gt;&lt;P&gt;  "Vendor string length.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        L_MSGV1    LIKE SY-MSGV1. "Message variable1&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT POHEADER-VENDOR IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*remove any leading zeros for vendor populated from webmethods&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              INPUT  = POHEADER-VENDOR&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              OUTPUT = POHEADER-VENDOR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    L_LENGTH = STRLEN( POHEADER-VENDOR ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF L_LENGTH &amp;lt; 10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*To pad leading zeros to Vendor&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  = POHEADER-VENDOR&lt;/P&gt;&lt;P&gt;           IMPORTING&lt;/P&gt;&lt;P&gt;                OUTPUT = POHEADER-VENDOR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*To replace first character with 1.&lt;/P&gt;&lt;P&gt;      MOVE '1' TO POHEADER-VENDOR(1).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSE.       "Vendor is 10 char in length&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR L_MSGV1.&lt;/P&gt;&lt;P&gt;      L_MSGV1 = POHEADER-VENDOR.&lt;/P&gt;&lt;P&gt;*Zero Padding and Prefixing 1 Not possible.Vendor is 10 Character&lt;/P&gt;&lt;P&gt;*length&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;P&gt;           EXPORTING&lt;/P&gt;&lt;P&gt;                TYPE   = C_MSGTYPE_I  "I&lt;/P&gt;&lt;P&gt;                CL     = C_MSGID_Z001                       "Z001&lt;/P&gt;&lt;P&gt;                NUMBER = C_MSGNR_040  "040&lt;/P&gt;&lt;P&gt;                PAR1   = L_MSGV1&lt;/P&gt;&lt;P&gt;           IMPORTING&lt;/P&gt;&lt;P&gt;                RETURN = RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND RETURN.&lt;/P&gt;&lt;P&gt;      CLEAR  RETURN.&lt;/P&gt;&lt;P&gt;      loop at return.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-zid        = return-id.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-znumber    = return-number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-ERR_MSG    = return-message.&lt;/P&gt;&lt;P&gt;        append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  insert into ZP2P_ERRORS values L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        clear: L_WA_ZERRORS.&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;  ENDIF.&lt;/P&gt;&lt;P&gt;****End of changes by Balaji V - 08-June-04&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;***********************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;****************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; if not poheader-comp_code is initial.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   select single companycode&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   into l_bukrs&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   from zcompanycodes01&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   where companycode = poheader-comp_code and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         FSID        = poheader-fsid and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         le          = poheader-le and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         frmrc       = poheader-frmrc.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   if sy-subrc ne 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR L_MSGV1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     L_MSGV1 = POACCOUNT-PO_ITEM.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Please Enter an Account number for line&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               TYPE   = C_MSGTYPE_E&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               CL     = C_MSGID_Z001&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               NUMBER = C_MSGNR_618&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               PAR1   = L_MSGV1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               RETURN = RETURN.&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;     APPEND RETURN.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR  RETURN.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     loop at return.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-zid        = return-id.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-znumber    = return-number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-ERR_MSG    = return-message.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  insert into ZP2P_ERRORS values L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       clear: L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     endloop.&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;   ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     poheader-comp_code = l_bukrs.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   endif.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;***********************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not poheader-currency is initial.&lt;/P&gt;&lt;P&gt;    if not poheader-vendor is initial.&lt;/P&gt;&lt;P&gt;      loop at pocond.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE WAERS&lt;/P&gt;&lt;P&gt;        INTO L_WAERS&lt;/P&gt;&lt;P&gt;        FROM LFM1 WHERE&lt;/P&gt;&lt;P&gt;        LIFNR = POHEADER-VENDOR&lt;/P&gt;&lt;P&gt;        AND EKORG = POHEADER-PURCH_ORG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;          IF L_WAERS NE  poheader-currency.&lt;/P&gt;&lt;P&gt;            pocond-cond_value = 'PBXX'.&lt;/P&gt;&lt;P&gt;            pocond-currency    = l_waers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            modify pocond transporting cond_value currency.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      endloop.&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;*mod-003&lt;/P&gt;&lt;P&gt;***********************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF NOT TESTRUN IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   POHEADER-VENDOR = '4259999999'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   poheader-doc_type = 'ZAP'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;***********************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;***********************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF NOT POHEADER-PURCH_ORG IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SELECT SINGLE PUR_ORG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   INTO L_EKORG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   FROM ZPUR_ORG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WHERE LE = POHEADER-LE AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         FRMRC = POHEADER-FRMRC AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         FSID = POHEADER-FSID.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF SY-SUBRC NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR : L_CONST_NAME,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             L_COMP_CODE.&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;     L_CONST_NAME  = C_p2p_pur_ORG.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     L_COMP_CODE   = POHEADER-COMP_CODE.&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;     CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               TYPE   = c_msgtype_e&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               CL     = c_msgid_z001&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               NUMBER = c_msgnr_619&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               PAR1   = L_CONST_NAME&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               PAR2   = L_COMP_CODE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               RETURN = RETURN.&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;     APPEND RETURN.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR  RETURN.&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;     loop at return.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-zid        = return-id.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-znumber    = return-number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       L_WA_ZERRORS-ERR_MSG    = return-message.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  insert into ZP2P_ERRORS values L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       clear: L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     endloop.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     EXIT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     POHEADER-PURCH_ORG = L_EKORG.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;  LOOP AT POITEM.&lt;/P&gt;&lt;P&gt;    l_wa_timestamp-mandt          = SY-MANDT.&lt;/P&gt;&lt;P&gt;    l_wa_timestamp-EBELN          = POHEADER-PO_NUMBER.&lt;/P&gt;&lt;P&gt;    l_wa_timestamp-EBELP          = POITEM-PO_ITEM.&lt;/P&gt;&lt;P&gt;    l_wa_timestamp-CHANGE_IND     = ' '.&lt;/P&gt;&lt;P&gt;    l_wa_timestamp-DATE_TIME_STMP = POHEADER-ARIBACHGTIMESTMP.&lt;/P&gt;&lt;P&gt;    insert into ZP2P_TIMESTAMP values l_wa_timestamp.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: g_constval(10) type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT POHEADER-PUR_GROUP IS INITIAL.&lt;/P&gt;&lt;P&gt;    clear: g_constval.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'ZXA_GET_CONSTANT'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              const_name     = c_p2p_pur_org&lt;/P&gt;&lt;P&gt;              comp_code      = POHEADER-COMP_CODE&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              const_value    = g_constval&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              no_value_found = 1&lt;/P&gt;&lt;P&gt;              null_value     = 2&lt;/P&gt;&lt;P&gt;              OTHERS         = 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;      CLEAR : L_CONST_NAME,&lt;/P&gt;&lt;P&gt;              L_COMP_CODE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      L_CONST_NAME  = C_p2p_pur_org.&lt;/P&gt;&lt;P&gt;      L_COMP_CODE   = POHEADER-COMP_CODE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'BALW_BAPIRETURN_GET2'&lt;/P&gt;&lt;P&gt;           EXPORTING&lt;/P&gt;&lt;P&gt;                TYPE   = c_msgtype_e&lt;/P&gt;&lt;P&gt;                CL     = c_msgid_z001&lt;/P&gt;&lt;P&gt;                NUMBER = c_msgnr_619&lt;/P&gt;&lt;P&gt;                PAR1   = L_CONST_NAME&lt;/P&gt;&lt;P&gt;                PAR2   = L_COMP_CODE&lt;/P&gt;&lt;P&gt;           IMPORTING&lt;/P&gt;&lt;P&gt;                RETURN = RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND RETURN.&lt;/P&gt;&lt;P&gt;      CLEAR  RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      loop at return.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-zid        = return-id.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-znumber    = return-number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-ERR_MSG    = return-message.&lt;/P&gt;&lt;P&gt;        append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  insert into ZP2P_ERRORS values L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        clear: L_WA_ZERRORS.&lt;/P&gt;&lt;P&gt;      endloop.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      POHEADER-PUR_GROUP = G_CONSTVAL.&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;*mod-003&lt;/P&gt;&lt;P&gt;**********************************************************&lt;/P&gt;&lt;P&gt;  IF purchaseorder(3) = c_pco.                       "PCO&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------" /&gt;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Begin of Change: 26-Sep-2005 SDUTTARO RD1K910989     *&amp;amp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------" /&gt;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Map the external fields for ALZA with account assignment&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF poheader-comp_code = c_bukrs_alza.                          "@SDR&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**--    Retrieve Account Assignment&lt;/P&gt;&lt;P&gt;      PERFORM get_account_assignment TABLES   poitem              "@SDR&lt;/P&gt;&lt;P&gt;                                              poitemx             "@SDR&lt;/P&gt;&lt;P&gt;                                              poaccount           "@SDR&lt;/P&gt;&lt;P&gt;                                              poaccountx          "@SDR&lt;/P&gt;&lt;P&gt;                                              t_yreturn           "@SDR&lt;/P&gt;&lt;P&gt;                                     USING    poheader-comp_code  "@SDR&lt;/P&gt;&lt;P&gt;                                              poheader.           "@SDR&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.                                                         "@SDR&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------" /&gt;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**&amp;amp; Begin of Change: 26-Sep-2005 SDUTTARO RD1K910989     *&amp;amp;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;For PCO Order, populate the PO and accounting data into a Z table and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;exit the program run.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM populate_nonpo_document   TABLES   poitem&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                              return&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                              potextheader&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                     USING    purchaseorder&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                              poheader.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM populate_nonpo_accounting TABLES poaccount&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                            return&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                     USING  poheader.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**&amp;amp;&amp;amp;---Begin of Addition: Soumya D Roy: 03/10/2006&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;To make sure that the ztables do not get updated in case of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;checkpoints 1, 2 and get updated only after approval&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF testrun IS INITIAL.                                          "SDR&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**&amp;amp;&amp;amp;---End of Addition: Soumya D Roy: 03/10/2006&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PERFORM update_nonpodocument.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**&amp;amp;&amp;amp;---Begin of Addition: Soumya D Roy: 03/10/2006&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;To delete PCOs. No deletion code is required for CRs &amp;amp; UTs&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;as these two cannot be deleted&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.                                                         "@SDR&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**&amp;amp;&amp;amp;---End of Addition: Soumya D Roy: 03/10/2006&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LOOP AT t_return.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE: t_return-type TO return-type,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           t_return-number TO return-number,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           t_return-message TO return-message.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     APPEND return.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR  return.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDLOOP.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;---- Begin of Addition: Soumya D Roy: 03/02/2006&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Code to build the message table for output to Ariba&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;for PCOs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*GENERATE CUSTOM RETURN MESSAGES BASED ON MESSAGE ID AND NUMBER FROM&lt;/P&gt;&lt;P&gt;*maintenance table ZMESSAGES&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CALL FUNCTION 'Z_MM_BUILD_MESSAGES'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        TABLES&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             return = return.&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;   SORT return BY type id number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   READ TABLE return&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         WITH KEY id = space&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                  number = c_msgnr_000               "000&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         BINARY SEARCH.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF sy-subrc EQ 0 AND sy-tabix NE 1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     DELETE return INDEX sy-tabix.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     INSERT return INDEX 1.&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;**&amp;amp;&amp;amp;&amp;amp;&amp;amp;----- End of Addition: Soumya D Roy: 03/02/2006&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   EXIT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*-- Round off to 100 percent due to small difference in one decimal&lt;/P&gt;&lt;P&gt;*-- point rounding (in Ariba/wM)&lt;/P&gt;&lt;P&gt;  SORT poaccount BY po_item distr_perc.&lt;/P&gt;&lt;P&gt;  LOOP AT poaccount.&lt;/P&gt;&lt;P&gt;    ADD poaccount-distr_perc TO g_distr_perc.&lt;/P&gt;&lt;P&gt;    AT END OF po_item.&lt;/P&gt;&lt;P&gt;*-- Round off to 100 percent due to small difference in one decimal&lt;/P&gt;&lt;P&gt;*-- point rounding (in Ariba/wM)&lt;/P&gt;&lt;P&gt;      IF g_distr_perc GT 0.&lt;/P&gt;&lt;P&gt;        g_distr_perc = 100 - g_distr_perc.&lt;/P&gt;&lt;P&gt;        g_adjust_perc = c_checked.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;    IF g_adjust_perc = c_checked.&lt;/P&gt;&lt;P&gt;      g_distr_perc1 = g_distr_perc + poaccount-distr_perc.&lt;/P&gt;&lt;P&gt;      IF g_distr_perc1 = 100.&lt;/P&gt;&lt;P&gt;        poaccount-distr_perc = 0.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        poaccount-distr_perc = g_distr_perc1.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      MODIFY poaccount.&lt;/P&gt;&lt;P&gt;      CLEAR poaccount.&lt;/P&gt;&lt;P&gt;      CLEAR: g_distr_perc, g_distr_perc1.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLEAR g_adjust_perc.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SORT poaccount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT poschedule BY po_item sched_line.&lt;/P&gt;&lt;P&gt;  SORT poschedulex BY po_item sched_line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*PVU-20-May-2004 - Start Changes for SCR1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***************************************************&lt;/P&gt;&lt;P&gt;**MOD-003&lt;/P&gt;&lt;P&gt;**************************************************&lt;/P&gt;&lt;P&gt;*Populate the change indicator structures before calling BAPI_PO_CHANGE&lt;/P&gt;&lt;P&gt;*so that IDOC can be populated with this data&lt;/P&gt;&lt;P&gt;  IF NOT poheaderx IS INITIAL.&lt;/P&gt;&lt;P&gt;    g_w_hdrx_tmp = poheaderx.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF NOT poitemx[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    g_t_itemx_tmp[] = poitemx[].&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF NOT poschedulex[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    g_t_schdx_tmp[] = poschedulex[].&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF NOT poaccountx[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    g_t_accntx_tmp[] = poaccountx[].&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF NOT pocondx[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    g_t_condx_tmp[] = pocondx[].&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;***************************************************&lt;/P&gt;&lt;P&gt;**MOD-003&lt;/P&gt;&lt;P&gt;**************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*PVU-20-May-2004 - End Changes for SCR1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*sraman2 06/28/04&lt;/P&gt;&lt;P&gt;*-- Default the Material Group to 99 if the incoming commodity&lt;/P&gt;&lt;P&gt;*-- code don't exist in SAP&lt;/P&gt;&lt;P&gt;  LOOP AT poitem.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE matkl INTO t023-matkl FROM t023&lt;/P&gt;&lt;P&gt;      WHERE matkl = poitem-matl_group.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      MOVE: '99' TO poitem-matl_group.&lt;/P&gt;&lt;P&gt;      MODIFY poitem.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLEAR  poitem.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;*sraman2 06/28/04&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;---Begin of Addition: Soumya D Roy: 03/27/2006&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Logic for PO changes which are listed in table ZCONVERTEDPOS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ZCONVERTEDPOS contains Purchase Orders ie. both Material and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Service which have either NONVAL GR checked or GR checked respectively&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and are invoiced. Any changes to these POs from Ariba would not let&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;other quantity or amount or text description changes to flow into SAP.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This piece of code will keep the Indicators' status same as in SAP&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and also let the user perform the change.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*Begin of change by svalidet RD1K911990&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF purchaseorder+0(3) = '099'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF purchaseorder+0(3) in r_ehub_pos[].&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*End of change by svalidet RD1K911990&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'Z_CONVERTED_POS'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              P_PURCHASEORDER = purchaseorder&lt;/P&gt;&lt;P&gt;              P_POHEADER      = poheader&lt;/P&gt;&lt;P&gt;         TABLES&lt;/P&gt;&lt;P&gt;              P_POITEM        = poitem&lt;/P&gt;&lt;P&gt;              P_POITEMX       = poitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**************************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;**************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform get_uom_conversion  tables poitem&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                    POITEMX&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                    poaccount&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                    poaccountx&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                    poschedule&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                    poschedulex&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                           changing poheader&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                    poheaderx.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform get_uom_conversion  tables poitem&lt;/P&gt;&lt;P&gt;                                      POITEMX&lt;/P&gt;&lt;P&gt;                                      poaccount&lt;/P&gt;&lt;P&gt;                                      poaccountx&lt;/P&gt;&lt;P&gt;                                      poschedule&lt;/P&gt;&lt;P&gt;                                      poschedulex&lt;/P&gt;&lt;P&gt;                                      pocond&lt;/P&gt;&lt;P&gt;                                      pocondx&lt;/P&gt;&lt;P&gt;                                      Pocondheader&lt;/P&gt;&lt;P&gt;                                      pocondheaderx&lt;/P&gt;&lt;P&gt;                             changing poheader&lt;/P&gt;&lt;P&gt;                                      poheaderx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**************************************************************&lt;/P&gt;&lt;P&gt;*mod-003&lt;/P&gt;&lt;P&gt;**************************************************************&lt;/P&gt;&lt;P&gt;*Populate the change indicator structures before calling BAPI_PO_CHANGE&lt;/P&gt;&lt;P&gt;*so that IDOC can be populated with this data&lt;/P&gt;&lt;P&gt;  IF NOT poheaderx IS INITIAL.&lt;/P&gt;&lt;P&gt;    g_w_hdrx_tmp = poheaderx.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF NOT poitemx[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    g_t_itemx_tmp[] = poitemx[].&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF NOT poschedulex[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    g_t_schdx_tmp[] = poschedulex[].&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF NOT poaccountx[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    g_t_accntx_tmp[] = poaccountx[].&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF NOT pocondx[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    g_t_condx_tmp[] = pocondx[].&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;***************************************************&lt;/P&gt;&lt;P&gt;**MOD-003&lt;/P&gt;&lt;P&gt;**************************************************&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          = purchaseorder&lt;/P&gt;&lt;P&gt;      poheader               = poheader&lt;/P&gt;&lt;P&gt;      poheaderx              = poheaderx&lt;/P&gt;&lt;P&gt;      poaddrvendor           = poaddrvendor&lt;/P&gt;&lt;P&gt;      testrun                = testrun&lt;/P&gt;&lt;P&gt;      memory_uncomplete      = memory_uncomplete&lt;/P&gt;&lt;P&gt;      memory_complete        = memory_complete&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     poexpimpheader         = poexpimpheader&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     poexpimpheaderx        = poexpimpheaderx&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     versions               = versions&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     no_messaging           = no_messaging&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     no_message_req         = no_message_req&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     no_authority           = no_authority&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     no_price_from_po       = no_price_from_po&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      expheader              = expheader&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     exppoexpimpheader      = exppoexpimpheader&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      return                 = return&lt;/P&gt;&lt;P&gt;      poitem                 = poitem&lt;/P&gt;&lt;P&gt;      poitemx                = poitemx&lt;/P&gt;&lt;P&gt;      poaddrdelivery         = poaddrdelivery&lt;/P&gt;&lt;P&gt;      poschedule             = poschedule&lt;/P&gt;&lt;P&gt;      poschedulex            = poschedulex&lt;/P&gt;&lt;P&gt;      poaccount              = poaccount&lt;/P&gt;&lt;P&gt;      poaccountprofitsegment = poaccountprofitsegment&lt;/P&gt;&lt;P&gt;      poaccountx             = poaccountx&lt;/P&gt;&lt;P&gt;      pocondheader           = pocondheader&lt;/P&gt;&lt;P&gt;      pocondheaderx          = pocondheaderx&lt;/P&gt;&lt;P&gt;      pocond                 = pocond&lt;/P&gt;&lt;P&gt;      pocondx                = pocondx&lt;/P&gt;&lt;P&gt;      polimits               = polimits&lt;/P&gt;&lt;P&gt;      pocontractlimits       = pocontractlimits&lt;/P&gt;&lt;P&gt;      poservices             = poservices&lt;/P&gt;&lt;P&gt;      posrvaccessvalues      = posrvaccessvalues&lt;/P&gt;&lt;P&gt;      poservicestext         = poservicestext&lt;/P&gt;&lt;P&gt;      extensionin            = extensionin&lt;/P&gt;&lt;P&gt;      extensionout           = extensionout&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     poexpimpitem           = poexpimpitem&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     poexpimpitemx          = poexpimpitemx&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      potextheader           = potextheader&lt;/P&gt;&lt;P&gt;      potextitem             = potextitem .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     allversions            = allversions&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     popartner              = popartner.&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;Code inserted to commit work&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SORT return BY type.&lt;/P&gt;&lt;P&gt;  IF testrun IS INITIAL.&lt;/P&gt;&lt;P&gt;    READ TABLE return&lt;/P&gt;&lt;P&gt;         WITH KEY type = c_msgtype_e               "E.&lt;/P&gt;&lt;P&gt;         BINARY SEARCH.&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;    ELSE.&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.&lt;/P&gt;&lt;P&gt;**PVU-20-May-2004 - Start Changes for SCR1&lt;/P&gt;&lt;P&gt;**To generate inbound IDOC for failed PO&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     perform idoc_create tables poitem&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                g_t_itemx_tmp&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                poaddrdelivery&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                poschedule&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                g_t_schdx_tmp&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                poaccount&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                poaccountprofitsegment&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                g_t_accntx_tmp&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                pocond&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                g_t_condx_tmp&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                polimits&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                pocontractlimits&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                poservices&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                posrvaccessvalues&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                poservicestext&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                extensionin&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                return&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                          using c_flg_pochange              "CHNG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                purchaseorder&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                poheader&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                g_w_hdrx_tmp&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                poaddrvendor&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                testrun&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                memory_uncomplete&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                memory_complete .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*PVU-20-May-2004 - End Changes for SCR1&lt;/P&gt;&lt;P&gt;      loop at return.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-OBJECT     = 'PURCHASE_ORDER'.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-serial_no   = sy-tabix.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-COMP_CODE  = poheader-comp_code.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-zid        = return-id.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-znumber    = return-number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-BEACON_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-SRC_DOC_NO = poheader-po_number.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-ZDATE      = sy-datum.&lt;/P&gt;&lt;P&gt;        L_WA_ZERRORS-ERR_MSG    = return-message.&lt;/P&gt;&lt;P&gt;        append L_WA_ZERRORS to t_errors.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      insert into ZP2P_ERRORS values L_WA_ZERRORS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        clear: L_WA_ZERRORS.&lt;/P&gt;&lt;P&gt;      endloop.&lt;/P&gt;&lt;P&gt;      SELECT max( serial_no )&lt;/P&gt;&lt;P&gt;       INTO L_SERIAL&lt;/P&gt;&lt;P&gt;       FROM ZP2P_ERRORS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT T_ERRORS.&lt;/P&gt;&lt;P&gt;        L_SERIAL = L_SERIAL + 1.&lt;/P&gt;&lt;P&gt;        T_ERRORS-serial_no = L_SERIAL.&lt;/P&gt;&lt;P&gt;        MODIFY T_ERRORS TRANSPORTING serial_no.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      INSERT ZP2P_ERRORS FROM TABLE T_ERRORS.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*GENERATE CUSTOM RETURN MESSAGES BASED ON MESSAGE ID AND NUMBER FROM&lt;/P&gt;&lt;P&gt;*maintenance table ZMESSAGES&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'Z_MM_BUILD_MESSAGES'&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            return = return.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT return BY type id number.&lt;/P&gt;&lt;P&gt;  READ TABLE return&lt;/P&gt;&lt;P&gt;        WITH KEY id = space&lt;/P&gt;&lt;P&gt;                 number = c_msgnr_000               "000&lt;/P&gt;&lt;P&gt;        BINARY SEARCH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0 AND sy-tabix NE 1.&lt;/P&gt;&lt;P&gt;    DELETE return INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;    INSERT return INDEX 1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT max( serial_no )&lt;/P&gt;&lt;P&gt;       INTO L_SERIAL&lt;/P&gt;&lt;P&gt;       FROM ZP2P_ERRORS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT T_ERRORS.&lt;/P&gt;&lt;P&gt;    L_SERIAL = L_SERIAL + 1.&lt;/P&gt;&lt;P&gt;    T_ERRORS-serial_no = L_SERIAL.&lt;/P&gt;&lt;P&gt;    MODIFY T_ERRORS TRANSPORTING serial_no.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  INSERT ZP2P_ERRORS FROM TABLE T_ERRORS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFUNCTION.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Jan 2008 05:06:15 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/query-regarding-bapi-po-change/m-p/3260307#M778868</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-16T05:06:15Z</dc:date>
    </item>
    <item>
      <title>Re: query regarding BAPI_PO_CHANGE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/query-regarding-bapi-po-change/m-p/3260308#M778869</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You need to look at this part of the FM:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION Z_BC1_BAPI_PO_CHANGE02.&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;""Local Interface:&lt;/P&gt;&lt;P&gt;*" IMPORTING&lt;/P&gt;&lt;P&gt;*" VALUE(PURCHASEORDER) TYPE BAPIMEPOHEADER-PO_NUMBER&lt;/P&gt;&lt;P&gt;*" VALUE(POADDRVENDOR) TYPE BAPIMEPOADDRVENDOR&lt;/P&gt;&lt;P&gt;*" VALUE(TESTRUN) TYPE BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*" VALUE(MEMORY_UNCOMPLETE) TYPE BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*" VALUE(MEMORY_COMPLETE) TYPE BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*" VALUE(POEXPIMPHEADER) TYPE BAPIEIKP&lt;/P&gt;&lt;P&gt;*" VALUE(POEXPIMPHEADERX) TYPE BAPIEIKPX&lt;/P&gt;&lt;P&gt;*" VALUE(VERSIONS) TYPE BAPIMEDCM&lt;/P&gt;&lt;P&gt;*" VALUE(NO_MESSAGING) TYPE BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*" VALUE(NO_MESSAGE_REQ) TYPE BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*" VALUE(NO_AUTHORITY) TYPE BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*" VALUE(NO_PRICE_FROM_PO) TYPE BAPIFLAG-BAPIFLAG&lt;/P&gt;&lt;P&gt;*" EXPORTING&lt;/P&gt;&lt;P&gt;*" VALUE(EXPHEADER) TYPE BAPIMEPOHEADER&lt;/P&gt;&lt;P&gt;*" VALUE(EXPPOEXPIMPHEADER) TYPE BAPIEIKPX&lt;/P&gt;&lt;P&gt;*" TABLES&lt;/P&gt;&lt;P&gt;*" RETURN STRUCTURE BAPIRET2&lt;/P&gt;&lt;P&gt;*" POITEM STRUCTURE BAPIMEPOITEM&lt;/P&gt;&lt;P&gt;*" POITEMX STRUCTURE BAPIMEPOITEMX&lt;/P&gt;&lt;P&gt;*" POADDRDELIVERY STRUCTURE BAPIMEPOADDRDELIVERY&lt;/P&gt;&lt;P&gt;*" POSCHEDULE STRUCTURE BAPIMEPOSCHEDULE&lt;/P&gt;&lt;P&gt;*" POSCHEDULEX STRUCTURE BAPIMEPOSCHEDULX&lt;/P&gt;&lt;P&gt;*" POACCOUNT STRUCTURE BAPIMEPOACCOUNT&lt;/P&gt;&lt;P&gt;*" POACCOUNTPROFITSEGMENT STRUCTURE BAPIMEPOACCOUNTPROFITSEGMENT&lt;/P&gt;&lt;P&gt;*" POACCOUNTX STRUCTURE BAPIMEPOACCOUNTX&lt;/P&gt;&lt;P&gt;*" POCONDHEADER STRUCTURE BAPIMEPOCONDHEADER&lt;/P&gt;&lt;P&gt;*" POCONDHEADERX STRUCTURE BAPIMEPOCONDHEADERX&lt;/P&gt;&lt;P&gt;*" POCOND STRUCTURE BAPIMEPOCOND&lt;/P&gt;&lt;P&gt;*" POCONDX STRUCTURE BAPIMEPOCONDX&lt;/P&gt;&lt;P&gt;*" POLIMITS STRUCTURE BAPIESUHC&lt;/P&gt;&lt;P&gt;*" POCONTRACTLIMITS STRUCTURE BAPIESUCC&lt;/P&gt;&lt;P&gt;*" POSERVICES STRUCTURE BAPIESLLC&lt;/P&gt;&lt;P&gt;*" POSRVACCESSVALUES STRUCTURE BAPIESKLC&lt;/P&gt;&lt;P&gt;*" POSERVICESTEXT STRUCTURE BAPIESLLTX&lt;/P&gt;&lt;P&gt;*" EXTENSIONIN STRUCTURE BAPIPAREX&lt;/P&gt;&lt;P&gt;*" EXTENSIONOUT STRUCTURE BAPIPAREX&lt;/P&gt;&lt;P&gt;*" POEXPIMPITEM STRUCTURE BAPIEIPO&lt;/P&gt;&lt;P&gt;*" POEXPIMPITEMX STRUCTURE BAPIEIPOX&lt;/P&gt;&lt;P&gt;*" POTEXTHEADER STRUCTURE BAPIMEPOTEXTHEADER&lt;/P&gt;&lt;P&gt;*" POTEXTITEM STRUCTURE BAPIMEPOTEXT&lt;/P&gt;&lt;P&gt;*" ALLVERSIONS STRUCTURE BAPIMEDCM_ALLVERSIONS&lt;/P&gt;&lt;P&gt;*" POPARTNER STRUCTURE BAPIEKKOP&lt;/P&gt;&lt;P&gt;*" POCOMPONENTS STRUCTURE BAPIMEPOCOMPONENT&lt;/P&gt;&lt;P&gt;*" POCOMPONENTSX STRUCTURE BAPIMEPOCOMPONENTX&lt;/P&gt;&lt;P&gt;*" POSHIPPING STRUCTURE BAPIITEMSHIP&lt;/P&gt;&lt;P&gt;*" POSHIPPINGX STRUCTURE BAPIITEMSHIPX&lt;/P&gt;&lt;P&gt;*" POSHIPPINGEXP STRUCTURE BAPIMEPOSHIPPEXP&lt;/P&gt;&lt;P&gt;*" POHISTORY STRUCTURE BAPIEKBE&lt;/P&gt;&lt;P&gt;*" POHISTORY_TOTALS STRUCTURE BAPIEKBES&lt;/P&gt;&lt;P&gt;*" POCONFIRMATION STRUCTURE BAPIEKES&lt;/P&gt;&lt;P&gt;*" NFMETALLITMS STRUCTURE /NFM/BAPIDOCITM&lt;/P&gt;&lt;P&gt;*" CHANGING&lt;/P&gt;&lt;P&gt;*" VALUE(POHEADER) TYPE BAPIMEPOHEADER&lt;/P&gt;&lt;P&gt;*" VALUE(POHEADERX) TYPE BAPIMEPOHEADERX&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cheers&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Aveek&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Jan 2008 05:32:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/query-regarding-bapi-po-change/m-p/3260308#M778869</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-16T05:32:42Z</dc:date>
    </item>
  </channel>
</rss>

