<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Bapi_salesorder_change in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-salesorder-change/m-p/2301475#M502973</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;See the sample report using the same BAPI&lt;/P&gt;&lt;P&gt;and change the code as per your logic&lt;/P&gt;&lt;P&gt;REPORT Z_SALES_ORDER_CHANGE&lt;/P&gt;&lt;P&gt;NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;LINE-SIZE 132&lt;/P&gt;&lt;P&gt;LINE-COUNT 65(0)&lt;/P&gt;&lt;P&gt;MESSAGE-ID ZZ.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES: VBAP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;V_FILEIN(90) TYPE C,&lt;/P&gt;&lt;P&gt;V_RECIN TYPE I,&lt;/P&gt;&lt;P&gt;V_RECVBAP TYPE I,&lt;/P&gt;&lt;P&gt;V_RECORDER TYPE I,&lt;/P&gt;&lt;P&gt;V_VBELN LIKE VBAP-VBELN,&lt;/P&gt;&lt;P&gt;ORDERHEADERINX LIKE BAPISDH1X.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF I_ORDERS OCCURS 0,&lt;/P&gt;&lt;P&gt;VBELN LIKE VBAK-VBELN,&lt;/P&gt;&lt;P&gt;POSNR LIKE VBAP-POSNR,&lt;/P&gt;&lt;P&gt;BRGEW(18) TYPE C,&lt;/P&gt;&lt;P&gt;VOLUM(18) TYPE C,&lt;/P&gt;&lt;P&gt;END OF I_ORDERS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF I_OUTPUT OCCURS 0,&lt;/P&gt;&lt;P&gt;VBELN LIKE VBAK-VBELN,&lt;/P&gt;&lt;P&gt;POSNR LIKE VBAP-POSNR,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GEWEI LIKE VBAP-GEWEI,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;BRGEW LIKE VBAP-BRGEW,&lt;/P&gt;&lt;P&gt;VOLUM LIKE VBAP-VOLUM,&lt;/P&gt;&lt;P&gt;CKWGT TYPE C,&lt;/P&gt;&lt;P&gt;CKVOL TYPE C,&lt;/P&gt;&lt;P&gt;END OF I_OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF ORDERITEMIN OCCURS 0.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE BAPISDITM.&lt;/P&gt;&lt;P&gt;DATA: END OF ORDERITEMIN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF ORDERITEMINX OCCURS 0.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE BAPISDITMX.&lt;/P&gt;&lt;P&gt;DATA: END OF ORDERITEMINX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF RETURN OCCURS 0.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE BAPIRET2.&lt;/P&gt;&lt;P&gt;DATA: END OF RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF BAPIRETURN OCCURS 0.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE BAPIRET2.&lt;/P&gt;&lt;P&gt;DATA: END OF BAPIRETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;P_PATH(45) TYPE C DEFAULT '/usr/users/ftpsapom/' LOWER CASE,&lt;/P&gt;&lt;P&gt;P_FNAME(32) TYPE C DEFAULT '/sweetjo.txt' LOWER CASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CONCATENATE PATH AND FILE NAME INTO ONE VARIABLE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CONCATENATE P_PATH P_FNAME INTO V_FILEIN.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OPEN DATASET&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF V_FILEIN IS INITIAL.&lt;/P&gt;&lt;P&gt;MESSAGE E002 WITH 'FILE' V_FILEIN 'DOES NOT CONTAIN ANY DATA!'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;amp; &amp;amp; &amp;amp; &amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;OPEN DATASET V_FILEIN&lt;/P&gt;&lt;P&gt;FOR INPUT&lt;/P&gt;&lt;P&gt;IN TEXT MODE.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;READ DATASET&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DO.&lt;/P&gt;&lt;P&gt;READ DATASET V_FILEIN INTO I_ORDERS.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;APPEND I_ORDERS.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDDO.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CLOSE DATASET&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLOSE DATASET V_FILEIN.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;MESSAGE E002 WITH 'ERROR - CLOSING' V_FILEIN.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;amp; &amp;amp; &amp;amp; &amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;MESSAGE E002 WITH 'ERROR - COULD NOT OPEN' V_FILEIN.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;amp; &amp;amp; &amp;amp; &amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SORT AND REMOVE DUPLICATES FROM I_ORDERS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SORT I_ORDERS BY VBELN POSNR.&lt;/P&gt;&lt;P&gt;DELETE ADJACENT DUPLICATES FROM I_ORDERS.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;POPULATE I_OUTPUT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT I_ORDERS.&lt;/P&gt;&lt;P&gt;SHIFT I_ORDERS-POSNR LEFT DELETING LEADING SPACE.&lt;/P&gt;&lt;P&gt;CONCATENATE '0' I_ORDERS-POSNR INTO I_ORDERS-POSNR.&lt;/P&gt;&lt;P&gt;SELECT SINGLE BRGEW VOLUM&lt;/P&gt;&lt;P&gt;FROM VBAP&lt;/P&gt;&lt;P&gt;INTO (VBAP-BRGEW, VBAP-VOLUM)&lt;/P&gt;&lt;P&gt;WHERE VBELN = I_ORDERS-VBELN&lt;/P&gt;&lt;P&gt;AND POSNR = I_ORDERS-POSNR.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;IF VBAP-BRGEW = 0.&lt;/P&gt;&lt;P&gt;I_OUTPUT-CKWGT = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;IF VBAP-VOLUM = 0.&lt;/P&gt;&lt;P&gt;I_OUTPUT-CKVOL = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;I_OUTPUT-VBELN = I_ORDERS-VBELN.&lt;/P&gt;&lt;P&gt;I_OUTPUT-POSNR = I_ORDERS-POSNR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_OUTPUT-GEWEI = 'ST'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;I_OUTPUT-BRGEW = I_ORDERS-BRGEW.&lt;/P&gt;&lt;P&gt;I_OUTPUT-VOLUM = I_ORDERS-VOLUM.&lt;/P&gt;&lt;P&gt;APPEND I_OUTPUT.&lt;/P&gt;&lt;P&gt;CLEAR: I_OUTPUT.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;V_RECIN = V_RECIN + 1.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;POPULATE BAPI DATA AND RUN BAPI&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR: ORDERHEADERINX, ORDERITEMIN, ORDERITEMINX,&lt;/P&gt;&lt;P&gt;RETURN, BAPIRETURN.&lt;/P&gt;&lt;P&gt;REFRESH: ORDERITEMIN, ORDERITEMINX, RETURN, BAPIRETURN.&lt;/P&gt;&lt;P&gt;ORDERHEADERINX-UPDATEFLAG = 'U'.&lt;/P&gt;&lt;P&gt;LOOP AT I_OUTPUT WHERE CKWGT = 'X' OR CKVOL = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;V_RECVBAP = V_RECVBAP + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF I_OUTPUT-VBELN &amp;lt;&amp;gt; V_VBELN AND SY-TABIX &amp;lt;&amp;gt; 1.&lt;/P&gt;&lt;P&gt;V_RECORDER = V_RECORDER + 1.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BAPI_SALESORDER_CHANGE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;SALESDOCUMENT = V_VBELN&lt;/P&gt;&lt;P&gt;ORDER_HEADER_INX = ORDERHEADERINX&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;RETURN = RETURN&lt;/P&gt;&lt;P&gt;ORDER_ITEM_IN = ORDERITEMIN&lt;/P&gt;&lt;P&gt;ORDER_ITEM_INX = ORDERITEMINX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;WAIT = 'X'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;RETURN = BAPIRETURN.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRITE OUT RETURN&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT RETURN.&lt;/P&gt;&lt;P&gt;WRITE: / RETURN.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;WRITE: / BAPIRETURN.&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;P&gt;CLEAR: ORDERITEMIN, ORDERITEMINX,&lt;/P&gt;&lt;P&gt;RETURN, BAPIRETURN.&lt;/P&gt;&lt;P&gt;REFRESH: ORDERITEMIN, ORDERITEMINX, RETURN, BAPIRETURN.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ORDERITEMIN-ITM_NUMBER = I_OUTPUT-POSNR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ORDERITEMIN-UNTOF_WGHT = I_OUTPUT-GEWEI.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF NOT I_OUTPUT-CKWGT IS INITIAL.&lt;/P&gt;&lt;P&gt;ORDERITEMIN-GROSS_WGHT = I_OUTPUT-BRGEW.&lt;/P&gt;&lt;P&gt;ORDERITEMINX-GROSS_WGHT = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;IF NOT I_OUTPUT-CKVOL IS INITIAL.&lt;/P&gt;&lt;P&gt;ORDERITEMIN-VOLUME = I_OUTPUT-VOLUM.&lt;/P&gt;&lt;P&gt;ORDERITEMINX-VOLUME = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;APPEND ORDERITEMIN.&lt;/P&gt;&lt;P&gt;ORDERITEMINX-ITM_NUMBER = I_OUTPUT-POSNR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ORDERITEMINX-UNTOF_WGHT = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ORDERITEMINX-UPDATEFLAG = 'U'.&lt;/P&gt;&lt;P&gt;APPEND ORDERITEMINX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;V_VBELN = I_OUTPUT-VBELN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;RUN BAPI ON LAST ORDER&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF NOT ORDERITEMIN IS INITIAL.&lt;/P&gt;&lt;P&gt;V_RECORDER = V_RECORDER + 1.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BAPI_SALESORDER_CHANGE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;SALESDOCUMENT = V_VBELN&lt;/P&gt;&lt;P&gt;ORDER_HEADER_INX = ORDERHEADERINX&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;RETURN = RETURN&lt;/P&gt;&lt;P&gt;ORDER_ITEM_IN = ORDERITEMIN&lt;/P&gt;&lt;P&gt;ORDER_ITEM_INX = ORDERITEMINX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;WAIT = 'X'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;RETURN = BAPIRETURN.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRITE OUT RETURN&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT RETURN.&lt;/P&gt;&lt;P&gt;WRITE: / RETURN.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;WRITE: / BAPIRETURN.&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRITE OUT RECORD COUNT FROM FILE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;WRITE: / 'RECORD COUNT FROM FILE ', V_RECIN.&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRITE OUT RECORD COUNT FROM FILE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;WRITE: / 'RECORD COUNT OF LINES TO CHANGE ', V_RECVBAP.&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRITE OUT RECORD COUNT FROM FILE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;WRITE: / 'RECORD COUNT OF ORDERS TO CHANGE ', V_RECORDER.&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TOP OF PAGE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;WRITE:/1(5) TEXT-H01, 6(8) SY-DATUM MM/DD/YY,&lt;/P&gt;&lt;P&gt;100(8) TEXT-H02, 126(8) SY-PAGNO.&lt;/P&gt;&lt;P&gt;WRITE:/1(5) TEXT-H03, 6(8) SY-UZEIT USING EDIT MASK '__:__:__',&lt;/P&gt;&lt;P&gt;20(77) TEXT-H04,&lt;/P&gt;&lt;P&gt;100(8) TEXT-H05, 108(25) SY-REPID.&lt;/P&gt;&lt;P&gt;WRITE:/1(6) TEXT-H06, 8(12) SY-UNAME,&lt;/P&gt;&lt;P&gt;20(4) TEXT-H07, 25(32) SY-HOST,&lt;/P&gt;&lt;P&gt;100(13) TEXT-H08, 121(8) SY-SYSID,&lt;/P&gt;&lt;P&gt;129 '/', 130(3) SY-MANDT.&lt;/P&gt;&lt;P&gt;ULINE.&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points if useful&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Anji&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 31 May 2007 05:26:01 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-05-31T05:26:01Z</dc:date>
    <item>
      <title>Bapi_salesorder_change</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-salesorder-change/m-p/2301474#M502972</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hii Everybody,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Im a fresher n i got an assignment to change sales order using bapi_salesorder_change,&lt;/P&gt;&lt;P&gt;i want to change usage indicator but when i do so rest all the columans for dat particular posnr gets blank....i dot want to change dat...i want to retain their values..&lt;/P&gt;&lt;P&gt;plz help me&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks in advance&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 May 2007 05:21:12 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-salesorder-change/m-p/2301474#M502972</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-31T05:21:12Z</dc:date>
    </item>
    <item>
      <title>Re: Bapi_salesorder_change</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-salesorder-change/m-p/2301475#M502973</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;See the sample report using the same BAPI&lt;/P&gt;&lt;P&gt;and change the code as per your logic&lt;/P&gt;&lt;P&gt;REPORT Z_SALES_ORDER_CHANGE&lt;/P&gt;&lt;P&gt;NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;LINE-SIZE 132&lt;/P&gt;&lt;P&gt;LINE-COUNT 65(0)&lt;/P&gt;&lt;P&gt;MESSAGE-ID ZZ.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES: VBAP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;V_FILEIN(90) TYPE C,&lt;/P&gt;&lt;P&gt;V_RECIN TYPE I,&lt;/P&gt;&lt;P&gt;V_RECVBAP TYPE I,&lt;/P&gt;&lt;P&gt;V_RECORDER TYPE I,&lt;/P&gt;&lt;P&gt;V_VBELN LIKE VBAP-VBELN,&lt;/P&gt;&lt;P&gt;ORDERHEADERINX LIKE BAPISDH1X.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF I_ORDERS OCCURS 0,&lt;/P&gt;&lt;P&gt;VBELN LIKE VBAK-VBELN,&lt;/P&gt;&lt;P&gt;POSNR LIKE VBAP-POSNR,&lt;/P&gt;&lt;P&gt;BRGEW(18) TYPE C,&lt;/P&gt;&lt;P&gt;VOLUM(18) TYPE C,&lt;/P&gt;&lt;P&gt;END OF I_ORDERS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF I_OUTPUT OCCURS 0,&lt;/P&gt;&lt;P&gt;VBELN LIKE VBAK-VBELN,&lt;/P&gt;&lt;P&gt;POSNR LIKE VBAP-POSNR,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GEWEI LIKE VBAP-GEWEI,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;BRGEW LIKE VBAP-BRGEW,&lt;/P&gt;&lt;P&gt;VOLUM LIKE VBAP-VOLUM,&lt;/P&gt;&lt;P&gt;CKWGT TYPE C,&lt;/P&gt;&lt;P&gt;CKVOL TYPE C,&lt;/P&gt;&lt;P&gt;END OF I_OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF ORDERITEMIN OCCURS 0.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE BAPISDITM.&lt;/P&gt;&lt;P&gt;DATA: END OF ORDERITEMIN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF ORDERITEMINX OCCURS 0.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE BAPISDITMX.&lt;/P&gt;&lt;P&gt;DATA: END OF ORDERITEMINX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF RETURN OCCURS 0.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE BAPIRET2.&lt;/P&gt;&lt;P&gt;DATA: END OF RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF BAPIRETURN OCCURS 0.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE BAPIRET2.&lt;/P&gt;&lt;P&gt;DATA: END OF BAPIRETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;P_PATH(45) TYPE C DEFAULT '/usr/users/ftpsapom/' LOWER CASE,&lt;/P&gt;&lt;P&gt;P_FNAME(32) TYPE C DEFAULT '/sweetjo.txt' LOWER CASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CONCATENATE PATH AND FILE NAME INTO ONE VARIABLE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CONCATENATE P_PATH P_FNAME INTO V_FILEIN.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OPEN DATASET&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF V_FILEIN IS INITIAL.&lt;/P&gt;&lt;P&gt;MESSAGE E002 WITH 'FILE' V_FILEIN 'DOES NOT CONTAIN ANY DATA!'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;amp; &amp;amp; &amp;amp; &amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;OPEN DATASET V_FILEIN&lt;/P&gt;&lt;P&gt;FOR INPUT&lt;/P&gt;&lt;P&gt;IN TEXT MODE.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;READ DATASET&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DO.&lt;/P&gt;&lt;P&gt;READ DATASET V_FILEIN INTO I_ORDERS.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;APPEND I_ORDERS.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDDO.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CLOSE DATASET&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLOSE DATASET V_FILEIN.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;MESSAGE E002 WITH 'ERROR - CLOSING' V_FILEIN.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;amp; &amp;amp; &amp;amp; &amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;MESSAGE E002 WITH 'ERROR - COULD NOT OPEN' V_FILEIN.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;amp; &amp;amp; &amp;amp; &amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SORT AND REMOVE DUPLICATES FROM I_ORDERS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SORT I_ORDERS BY VBELN POSNR.&lt;/P&gt;&lt;P&gt;DELETE ADJACENT DUPLICATES FROM I_ORDERS.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;POPULATE I_OUTPUT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT I_ORDERS.&lt;/P&gt;&lt;P&gt;SHIFT I_ORDERS-POSNR LEFT DELETING LEADING SPACE.&lt;/P&gt;&lt;P&gt;CONCATENATE '0' I_ORDERS-POSNR INTO I_ORDERS-POSNR.&lt;/P&gt;&lt;P&gt;SELECT SINGLE BRGEW VOLUM&lt;/P&gt;&lt;P&gt;FROM VBAP&lt;/P&gt;&lt;P&gt;INTO (VBAP-BRGEW, VBAP-VOLUM)&lt;/P&gt;&lt;P&gt;WHERE VBELN = I_ORDERS-VBELN&lt;/P&gt;&lt;P&gt;AND POSNR = I_ORDERS-POSNR.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;IF VBAP-BRGEW = 0.&lt;/P&gt;&lt;P&gt;I_OUTPUT-CKWGT = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;IF VBAP-VOLUM = 0.&lt;/P&gt;&lt;P&gt;I_OUTPUT-CKVOL = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;I_OUTPUT-VBELN = I_ORDERS-VBELN.&lt;/P&gt;&lt;P&gt;I_OUTPUT-POSNR = I_ORDERS-POSNR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_OUTPUT-GEWEI = 'ST'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;I_OUTPUT-BRGEW = I_ORDERS-BRGEW.&lt;/P&gt;&lt;P&gt;I_OUTPUT-VOLUM = I_ORDERS-VOLUM.&lt;/P&gt;&lt;P&gt;APPEND I_OUTPUT.&lt;/P&gt;&lt;P&gt;CLEAR: I_OUTPUT.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;V_RECIN = V_RECIN + 1.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;POPULATE BAPI DATA AND RUN BAPI&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR: ORDERHEADERINX, ORDERITEMIN, ORDERITEMINX,&lt;/P&gt;&lt;P&gt;RETURN, BAPIRETURN.&lt;/P&gt;&lt;P&gt;REFRESH: ORDERITEMIN, ORDERITEMINX, RETURN, BAPIRETURN.&lt;/P&gt;&lt;P&gt;ORDERHEADERINX-UPDATEFLAG = 'U'.&lt;/P&gt;&lt;P&gt;LOOP AT I_OUTPUT WHERE CKWGT = 'X' OR CKVOL = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;V_RECVBAP = V_RECVBAP + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF I_OUTPUT-VBELN &amp;lt;&amp;gt; V_VBELN AND SY-TABIX &amp;lt;&amp;gt; 1.&lt;/P&gt;&lt;P&gt;V_RECORDER = V_RECORDER + 1.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BAPI_SALESORDER_CHANGE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;SALESDOCUMENT = V_VBELN&lt;/P&gt;&lt;P&gt;ORDER_HEADER_INX = ORDERHEADERINX&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;RETURN = RETURN&lt;/P&gt;&lt;P&gt;ORDER_ITEM_IN = ORDERITEMIN&lt;/P&gt;&lt;P&gt;ORDER_ITEM_INX = ORDERITEMINX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;WAIT = 'X'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;RETURN = BAPIRETURN.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRITE OUT RETURN&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT RETURN.&lt;/P&gt;&lt;P&gt;WRITE: / RETURN.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;WRITE: / BAPIRETURN.&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;P&gt;CLEAR: ORDERITEMIN, ORDERITEMINX,&lt;/P&gt;&lt;P&gt;RETURN, BAPIRETURN.&lt;/P&gt;&lt;P&gt;REFRESH: ORDERITEMIN, ORDERITEMINX, RETURN, BAPIRETURN.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ORDERITEMIN-ITM_NUMBER = I_OUTPUT-POSNR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ORDERITEMIN-UNTOF_WGHT = I_OUTPUT-GEWEI.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF NOT I_OUTPUT-CKWGT IS INITIAL.&lt;/P&gt;&lt;P&gt;ORDERITEMIN-GROSS_WGHT = I_OUTPUT-BRGEW.&lt;/P&gt;&lt;P&gt;ORDERITEMINX-GROSS_WGHT = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;IF NOT I_OUTPUT-CKVOL IS INITIAL.&lt;/P&gt;&lt;P&gt;ORDERITEMIN-VOLUME = I_OUTPUT-VOLUM.&lt;/P&gt;&lt;P&gt;ORDERITEMINX-VOLUME = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;APPEND ORDERITEMIN.&lt;/P&gt;&lt;P&gt;ORDERITEMINX-ITM_NUMBER = I_OUTPUT-POSNR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ORDERITEMINX-UNTOF_WGHT = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ORDERITEMINX-UPDATEFLAG = 'U'.&lt;/P&gt;&lt;P&gt;APPEND ORDERITEMINX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;V_VBELN = I_OUTPUT-VBELN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;RUN BAPI ON LAST ORDER&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF NOT ORDERITEMIN IS INITIAL.&lt;/P&gt;&lt;P&gt;V_RECORDER = V_RECORDER + 1.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BAPI_SALESORDER_CHANGE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;SALESDOCUMENT = V_VBELN&lt;/P&gt;&lt;P&gt;ORDER_HEADER_INX = ORDERHEADERINX&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;RETURN = RETURN&lt;/P&gt;&lt;P&gt;ORDER_ITEM_IN = ORDERITEMIN&lt;/P&gt;&lt;P&gt;ORDER_ITEM_INX = ORDERITEMINX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;WAIT = 'X'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;RETURN = BAPIRETURN.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRITE OUT RETURN&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT RETURN.&lt;/P&gt;&lt;P&gt;WRITE: / RETURN.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;WRITE: / BAPIRETURN.&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRITE OUT RECORD COUNT FROM FILE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;WRITE: / 'RECORD COUNT FROM FILE ', V_RECIN.&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRITE OUT RECORD COUNT FROM FILE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;WRITE: / 'RECORD COUNT OF LINES TO CHANGE ', V_RECVBAP.&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRITE OUT RECORD COUNT FROM FILE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;WRITE: / 'RECORD COUNT OF ORDERS TO CHANGE ', V_RECORDER.&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TOP OF PAGE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;WRITE:/1(5) TEXT-H01, 6(8) SY-DATUM MM/DD/YY,&lt;/P&gt;&lt;P&gt;100(8) TEXT-H02, 126(8) SY-PAGNO.&lt;/P&gt;&lt;P&gt;WRITE:/1(5) TEXT-H03, 6(8) SY-UZEIT USING EDIT MASK '__:__:__',&lt;/P&gt;&lt;P&gt;20(77) TEXT-H04,&lt;/P&gt;&lt;P&gt;100(8) TEXT-H05, 108(25) SY-REPID.&lt;/P&gt;&lt;P&gt;WRITE:/1(6) TEXT-H06, 8(12) SY-UNAME,&lt;/P&gt;&lt;P&gt;20(4) TEXT-H07, 25(32) SY-HOST,&lt;/P&gt;&lt;P&gt;100(13) TEXT-H08, 121(8) SY-SYSID,&lt;/P&gt;&lt;P&gt;129 '/', 130(3) SY-MANDT.&lt;/P&gt;&lt;P&gt;ULINE.&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points if useful&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Anji&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 May 2007 05:26:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-salesorder-change/m-p/2301475#M502973</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-31T05:26:01Z</dc:date>
    </item>
    <item>
      <title>Re: Bapi_salesorder_change</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-salesorder-change/m-p/2301476#M502974</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;here is the sample code which may help u.&lt;/P&gt;&lt;P&gt;REPORT z_sd_salesorder_create&lt;/P&gt;&lt;P&gt;NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;LINE-SIZE 150&lt;/P&gt;&lt;P&gt;MESSAGE-ID zz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;S T R U C T U R E D E C L A R A T I O N S *&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;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF x_ppl,&lt;/P&gt;&lt;P&gt;ppl_order(18), " ppl Orderno&lt;/P&gt;&lt;P&gt;auart(4), " Sales Doc Type&lt;/P&gt;&lt;P&gt;vkorg(4), " Sales Organization&lt;/P&gt;&lt;P&gt;vtweg(2), " Distribution Channel&lt;/P&gt;&lt;P&gt;spart(2), " Division&lt;/P&gt;&lt;P&gt;div(3), " Division&lt;/P&gt;&lt;P&gt;kunnr(10), " Sold-to Party&lt;/P&gt;&lt;P&gt;date(10), " Doc Dt&lt;/P&gt;&lt;P&gt;matnr(18), " Item Matnr#&lt;/P&gt;&lt;P&gt;uom(3), " UOM&lt;/P&gt;&lt;P&gt;qty(15), " Qty&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;kschl(4), " Pricing condiiton type&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;kbetr(11), " Rate&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;END OF x_ppl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF x_file,&lt;/P&gt;&lt;P&gt;loc(30), " Location&lt;/P&gt;&lt;P&gt;div(3), " Division&lt;/P&gt;&lt;P&gt;ppl_order(18), " ppl Orderno&lt;/P&gt;&lt;P&gt;kunnr(10), " Sold-to Party&lt;/P&gt;&lt;P&gt;date(10), " Doc Dt&lt;/P&gt;&lt;P&gt;matnr(20), " Item Matnr#&lt;/P&gt;&lt;P&gt;qty(15), " Qty&lt;/P&gt;&lt;P&gt;uom(3), " UOM&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;kbetr(11), " Rate&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;discount(5), " Discount&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;END OF x_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF x_output,&lt;/P&gt;&lt;P&gt;ppl_order(18), " ppl Orderno&lt;/P&gt;&lt;P&gt;mesg(130), " Mesg Success/Error&lt;/P&gt;&lt;P&gt;END OF x_output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF x_werks,&lt;/P&gt;&lt;P&gt;name2(30), " Location&lt;/P&gt;&lt;P&gt;werks TYPE werks_ext, " Plant&lt;/P&gt;&lt;P&gt;END OF x_werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF x_info,&lt;/P&gt;&lt;P&gt;vkorg TYPE vkorg , " Sales org&lt;/P&gt;&lt;P&gt;vtweg TYPE vtweg, " Dist channel&lt;/P&gt;&lt;P&gt;werks TYPE werks_ext," Plant&lt;/P&gt;&lt;P&gt;spart TYPE spart, " Storage Loc&lt;/P&gt;&lt;P&gt;END OF x_info.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF x_material,&lt;/P&gt;&lt;P&gt;ppl_prdid(20), " ppl Prd id&lt;/P&gt;&lt;P&gt;matnr TYPE matnr, " Material (SAP)&lt;/P&gt;&lt;P&gt;END OF x_material.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I N T E R N A L T A B L E D E C L A R A T I O N S *&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;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: it_file TYPE STANDARD TABLE OF x_file WITH HEADER LINE." File Data&lt;/P&gt;&lt;P&gt;DATA: it_data TYPE STANDARD TABLE OF x_ppl WITH HEADER LINE." ppl File&lt;/P&gt;&lt;P&gt;DATA: it_out TYPE STANDARD TABLE OF x_output WITH HEADER LINE. " Outcome&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: it_werks TYPE STANDARD TABLE OF x_werks WITH HEADER LINE. " Plant&lt;/P&gt;&lt;P&gt;DATA: it_info TYPE STANDARD TABLE OF x_info WITH HEADER LINE. " Othr Info&lt;/P&gt;&lt;P&gt;DATA: it_matnr TYPE STANDARD TABLE OF x_material WITH HEADER LINE. " Material Info&lt;/P&gt;&lt;P&gt;DATA: it_item TYPE STANDARD TABLE OF bapiitemin WITH HEADER LINE. "Order Itm data&lt;/P&gt;&lt;P&gt;DATA: it_partner TYPE STANDARD TABLE OF bapipartnr WITH HEADER LINE. "Order Partner data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;V A R I A B L E S D E C L A R A T I O N S *&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;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : v_correct TYPE i,&lt;/P&gt;&lt;P&gt;v_error TYPE i,&lt;/P&gt;&lt;P&gt;v_total TYPE i,&lt;/P&gt;&lt;P&gt;v_return LIKE bapireturn1,&lt;/P&gt;&lt;P&gt;v_index LIKE sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Return values&lt;/P&gt;&lt;P&gt;DATA: it_orderh TYPE bapisdhead, "Order Hdr data&lt;/P&gt;&lt;P&gt;order TYPE bapivbeln-vbeln,&lt;/P&gt;&lt;P&gt;soldto TYPE bapisoldto,&lt;/P&gt;&lt;P&gt;shipto TYPE bapishipto,&lt;/P&gt;&lt;P&gt;return TYPE bapireturn1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: hdate TYPE sy-datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;U S E R I N P U T S S C R E E N *&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;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK blk01 WITH FRAME TITLE text-t01.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_file TYPE rlgrap-filename OBLIGATORY. " File name&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK blk01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;S E L E C T I O N S C R E E N *&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;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.&lt;/P&gt;&lt;P&gt;PERFORM get_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;S t a r t o f S e l e c t i o n *&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;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;PERFORM get_upload.&lt;/P&gt;&lt;P&gt;PERFORM validate_data. " Validate the data&lt;/P&gt;&lt;P&gt;PERFORM data_swap. " Prepare the data for processing&lt;/P&gt;&lt;P&gt;IF NOT it_data[] IS INITIAL.&lt;/P&gt;&lt;P&gt;PERFORM get_update. " Create SalesOrders&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;MESSAGE i001(zz) WITH text-001.&lt;/P&gt;&lt;P&gt;STOP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;E n d o f S e l e c t i o n *&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;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;IF NOT it_data[] IS INITIAL.&lt;/P&gt;&lt;P&gt;PERFORM get_write.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form get_file&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get File name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_file .&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'KD_GET_FILENAME_ON_F4'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;program_name = syst-repid&lt;/P&gt;&lt;P&gt;mask = '*'&lt;/P&gt;&lt;P&gt;CHANGING&lt;/P&gt;&lt;P&gt;file_name = p_file&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;mask_too_long = 1&lt;/P&gt;&lt;P&gt;OTHERS = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " get_file&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form get_upload&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to upload the file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_upload .&lt;/P&gt;&lt;P&gt;DATA l_file TYPE string.&lt;/P&gt;&lt;P&gt;CLEAR: it_file, it_file[].&lt;/P&gt;&lt;P&gt;l_file = p_file.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;filename = l_file&lt;/P&gt;&lt;P&gt;filetype = 'ASC'&lt;/P&gt;&lt;P&gt;has_field_separator = 'X'&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;data_tab = it_file&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;file_open_error = 1&lt;/P&gt;&lt;P&gt;file_read_error = 2&lt;/P&gt;&lt;P&gt;no_batch = 3&lt;/P&gt;&lt;P&gt;gui_refuse_filetransfer = 4&lt;/P&gt;&lt;P&gt;invalid_type = 5&lt;/P&gt;&lt;P&gt;no_authority = 6&lt;/P&gt;&lt;P&gt;unknown_error = 7&lt;/P&gt;&lt;P&gt;bad_data_format = 8&lt;/P&gt;&lt;P&gt;header_not_allowed = 9&lt;/P&gt;&lt;P&gt;separator_not_allowed = 10&lt;/P&gt;&lt;P&gt;header_too_long = 11&lt;/P&gt;&lt;P&gt;unknown_dp_error = 12&lt;/P&gt;&lt;P&gt;access_denied = 13&lt;/P&gt;&lt;P&gt;dp_out_of_memory = 14&lt;/P&gt;&lt;P&gt;disk_full = 15&lt;/P&gt;&lt;P&gt;dp_timeout = 16&lt;/P&gt;&lt;P&gt;OTHERS = 17.&lt;/P&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;ELSEIF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;SORT it_file BY loc ppl_order.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM. " get_upload&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form get_update&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Creating mapping Data in Z table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_update .&lt;/P&gt;&lt;P&gt;DATA: l_itemno(2) TYPE n,&lt;/P&gt;&lt;P&gt;l_partner TYPE parvw,&lt;/P&gt;&lt;P&gt;l_kunnr TYPE kunnr,&lt;/P&gt;&lt;P&gt;l_matnr TYPE matnr,&lt;/P&gt;&lt;P&gt;l_mesg TYPE string,&lt;/P&gt;&lt;P&gt;l_kbetr TYPE p DECIMALS 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: l_in_qty LIKE vbap-zmeng,&lt;/P&gt;&lt;P&gt;l_meins LIKE mara-meins,&lt;/P&gt;&lt;P&gt;l_qty LIKE vbap-zmeng.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR: v_correct, v_error, v_total.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SORT it_data BY ppl_order.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT it_data.&lt;/P&gt;&lt;P&gt;CLEAR v_index.&lt;/P&gt;&lt;P&gt;v_index = sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- New SalesOrder&lt;/P&gt;&lt;P&gt;AT NEW ppl_order.&lt;/P&gt;&lt;P&gt;READ TABLE it_data INDEX v_index.&lt;/P&gt;&lt;P&gt;CLEAR: it_orderh, it_item, it_partner,&lt;/P&gt;&lt;P&gt;order, soldto, shipto, return,&lt;/P&gt;&lt;P&gt;it_item[], it_partner[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;v_total = v_total + 1. "Increment Total SalesOrders counter&lt;/P&gt;&lt;P&gt;CLEAR l_itemno.&lt;/P&gt;&lt;P&gt;l_itemno = '10'.&lt;/P&gt;&lt;P&gt;*- Covert date fields into Internal format&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONVERT_DATE_TO_INTERN_FORMAT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;datum = it_data-date&lt;/P&gt;&lt;P&gt;dtype = 'DATS'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;idate = it_data-date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Populate SalesOrder header data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONVERSION_EXIT_AUART_INPUT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;input = it_data-auart&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;output = it_data-auart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_orderh-doc_type = it_data-auart.&lt;/P&gt;&lt;P&gt;it_orderh-sales_org = it_data-vkorg.&lt;/P&gt;&lt;P&gt;it_orderh-distr_chan = it_data-vtweg.&lt;/P&gt;&lt;P&gt;it_orderh-division = it_data-spart.&lt;/P&gt;&lt;P&gt;it_orderh-purch_no = 'DEPOT'.&lt;/P&gt;&lt;P&gt;it_orderh-price_date = it_data-date. "Doc Dt&lt;/P&gt;&lt;P&gt;it_orderh-req_date_h = it_data-date. "Del.Dt&lt;/P&gt;&lt;P&gt;it_orderh-purch_no_s = it_data-ppl_order.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Partner data&lt;/P&gt;&lt;P&gt;CLEAR: l_partner, l_kunnr.&lt;/P&gt;&lt;P&gt;*- Convert Partner type into internal format&lt;/P&gt;&lt;P&gt;l_partner = 'SP'. "SoldTo Party&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONVERSION_EXIT_PARVW_INPUT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;input = l_partner&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;output = l_partner.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Convert Customer into internal format&lt;/P&gt;&lt;P&gt;l_kunnr = it_data-kunnr.&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 = l_kunnr&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;output = l_kunnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_partner-partn_role = l_partner.&lt;/P&gt;&lt;P&gt;it_partner-partn_numb = l_kunnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND it_partner.&lt;/P&gt;&lt;P&gt;CLEAR it_partner.&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Item data&lt;/P&gt;&lt;P&gt;it_item-itm_number = l_itemno.&lt;/P&gt;&lt;P&gt;*- Convert material number into internal format&lt;/P&gt;&lt;P&gt;CLEAR l_matnr.&lt;/P&gt;&lt;P&gt;l_matnr = it_data-matnr.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;input = l_matnr&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;output = l_matnr&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;length_error = 1&lt;/P&gt;&lt;P&gt;OTHERS = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_item-material = l_matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Call FM to get new qty based on SAP UOM&lt;/P&gt;&lt;P&gt;CLEAR: l_meins, l_qty, l_in_qty.&lt;/P&gt;&lt;P&gt;l_in_qty = it_data-qty.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'Z_GET_QTY_FROM_UOM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;matnr = it_item-material&lt;/P&gt;&lt;P&gt;in_meins = it_data-uom&lt;/P&gt;&lt;P&gt;in_qty = l_in_qty&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;out_meins = l_meins&lt;/P&gt;&lt;P&gt;quantity = l_qty.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;it_data-qty = l_qty.&lt;/P&gt;&lt;P&gt;it_data-uom = l_meins.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;it_data-qty = it_data-qty * 1000.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_item-req_qty = it_data-qty.&lt;/P&gt;&lt;P&gt;it_item-sales_unit = it_data-uom.&lt;/P&gt;&lt;P&gt;it_item-req_date = it_data-date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Pricing data&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;it_item-cond_type = it_data-kschl. "Pricing condition&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CLEAR l_kbetr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;l_kbetr = it_data-kbetr / 10. "Price (Rate)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;it_item-cond_value = l_kbetr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND it_item.&lt;/P&gt;&lt;P&gt;CLEAR it_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Increment Item counter.&lt;/P&gt;&lt;P&gt;l_itemno = l_itemno + 10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- At end of SalesOrder&lt;/P&gt;&lt;P&gt;AT END OF ppl_order.&lt;/P&gt;&lt;P&gt;READ TABLE it_data INDEX v_index.&lt;/P&gt;&lt;P&gt;*- Call the BAPI for SalesOrder creation&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT1'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;order_header_in = it_orderh&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;salesdocument = order&lt;/P&gt;&lt;P&gt;sold_to_party = soldto&lt;/P&gt;&lt;P&gt;ship_to_party = shipto&lt;/P&gt;&lt;P&gt;return = return&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;order_items_in = it_item&lt;/P&gt;&lt;P&gt;order_partners = it_partner.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;COMMIT WORK.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;v_return = return+0(1).&lt;/P&gt;&lt;P&gt;IF v_return = 'E'.&lt;/P&gt;&lt;P&gt;v_error = v_error + 1.&lt;/P&gt;&lt;P&gt;CLEAR l_mesg.&lt;/P&gt;&lt;P&gt;l_mesg = return.&lt;/P&gt;&lt;P&gt;CONDENSE l_mesg.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;v_correct = v_correct + 1.&lt;/P&gt;&lt;P&gt;CLEAR l_mesg.&lt;/P&gt;&lt;P&gt;CONCATENATE 'Salesorder'(007) order 'successfully created.'(008)&lt;/P&gt;&lt;P&gt;INTO l_mesg SEPARATED BY space.&lt;/P&gt;&lt;P&gt;CONDENSE l_mesg.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;*- Populate the output table&lt;/P&gt;&lt;P&gt;CLEAR it_out.&lt;/P&gt;&lt;P&gt;it_out-ppl_order = it_data-ppl_order.&lt;/P&gt;&lt;P&gt;it_out-mesg = l_mesg.&lt;/P&gt;&lt;P&gt;APPEND it_out.&lt;/P&gt;&lt;P&gt;CLEAR it_out.&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM. " get_update&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form get_write&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Write the results&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_write .&lt;/P&gt;&lt;P&gt;WRITE:/ 'Total Number of Records :'(002), v_total COLOR 1.&lt;/P&gt;&lt;P&gt;WRITE:/ 'Total Correct Records :'(003), v_correct COLOR 3.&lt;/P&gt;&lt;P&gt;WRITE:/ 'Total Error Records :'(004), v_error COLOR 6.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SKIP 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT it_out[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE:/5 'ppl Order #'(005),&lt;/P&gt;&lt;P&gt;28 'Message'(006).&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SKIP 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT it_out.&lt;/P&gt;&lt;P&gt;WRITE:/5 it_out-ppl_order,&lt;/P&gt;&lt;P&gt;28 it_out-mesg.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM. " get_write&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form validate_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validate the data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM validate_data .&lt;/P&gt;&lt;P&gt;DATA: l_bstkde TYPE bstkd_e.&lt;/P&gt;&lt;P&gt;LOOP AT it_file.&lt;/P&gt;&lt;P&gt;SELECT bstkd_e INTO l_bstkde&lt;/P&gt;&lt;P&gt;UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;FROM vbkd&lt;/P&gt;&lt;P&gt;WHERE bstkd_e = it_file-ppl_order.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0. " This ppl Order is already been created in SAP, so delete record&lt;/P&gt;&lt;P&gt;DELETE it_file.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;SORT it_file BY ppl_order.&lt;/P&gt;&lt;P&gt;ENDFORM. " validate_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form data_swap&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Prepare the data for processing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM data_swap .&lt;/P&gt;&lt;P&gt;CLEAR: it_werks, it_info, it_matnr, it_data,&lt;/P&gt;&lt;P&gt;it_werks[], it_info[], it_matnr[], it_data[].&lt;/P&gt;&lt;P&gt;IF NOT it_file[] IS INITIAL.&lt;/P&gt;&lt;P&gt;*- Get the plant from location&lt;/P&gt;&lt;P&gt;SELECT name2&lt;/P&gt;&lt;P&gt;werks&lt;/P&gt;&lt;P&gt;INTO CORRESPONDING FIELDS OF TABLE it_werks&lt;/P&gt;&lt;P&gt;FROM t001w FOR ALL ENTRIES IN it_file&lt;/P&gt;&lt;P&gt;WHERE name2 = it_file-loc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;SORT it_werks BY name2 werks.&lt;/P&gt;&lt;P&gt;*- Get the Sales Org, Division and Distribution Channel&lt;/P&gt;&lt;P&gt;IF NOT it_werks[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT vkorg&lt;/P&gt;&lt;P&gt;vtweg&lt;/P&gt;&lt;P&gt;werks&lt;/P&gt;&lt;P&gt;INTO CORRESPONDING FIELDS OF TABLE it_info&lt;/P&gt;&lt;P&gt;FROM tvkwz FOR ALL ENTRIES IN it_werks&lt;/P&gt;&lt;P&gt;WHERE werks = it_werks-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;LOOP AT it_info.&lt;/P&gt;&lt;P&gt;it_info-spart = '99'.&lt;/P&gt;&lt;P&gt;MODIFY it_info INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;SORT it_info BY vkorg vtweg werks.&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;*- Get material from ppl material&lt;/P&gt;&lt;P&gt;SELECT ppl_prdid&lt;/P&gt;&lt;P&gt;matnr&lt;/P&gt;&lt;P&gt;FROM zppl_master&lt;/P&gt;&lt;P&gt;INTO TABLE it_matnr FOR ALL ENTRIES IN it_file&lt;/P&gt;&lt;P&gt;WHERE ppl_prdid = it_file-matnr.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;SORT it_matnr BY ppl_prdid matnr.&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;*- Update the data in it_data&lt;/P&gt;&lt;P&gt;LOOP AT it_file.&lt;/P&gt;&lt;P&gt;CLEAR it_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;it_data-auart = 'OR'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;it_data-auart = 'OR'. " CHANGED BY Jo ON 3103005&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE it_werks WITH KEY name2 = it_file-loc BINARY SEARCH.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;READ TABLE it_info WITH KEY werks = it_werks-werks BINARY SEARCH.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;it_data-vkorg = it_info-vkorg.&lt;/P&gt;&lt;P&gt;it_data-vtweg = it_info-vtweg.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;*- Material&lt;/P&gt;&lt;P&gt;READ TABLE it_matnr WITH KEY ppl_prdid = it_file-matnr BINARY SEARCH.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;it_data-matnr = it_matnr-matnr.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_data-ppl_order = it_file-ppl_order.&lt;/P&gt;&lt;P&gt;it_data-date = it_file-date.&lt;/P&gt;&lt;P&gt;CONCATENATE it_file-kunnr it_file-loc+1(2) INTO it_data-kunnr.&lt;/P&gt;&lt;P&gt;it_data-qty = it_file-qty.&lt;/P&gt;&lt;P&gt;it_data-uom = it_file-uom.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;it_data-kbetr = it_file-kbetr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Pricing condition&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;it_data-kschl = 'PR00'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CASE it_file-div.&lt;/P&gt;&lt;P&gt;WHEN 'BRN'.&lt;/P&gt;&lt;P&gt;it_data-div = '04'.&lt;/P&gt;&lt;P&gt;WHEN 'GEN'.&lt;/P&gt;&lt;P&gt;it_data-div = '03'.&lt;/P&gt;&lt;P&gt;WHEN 'IVF'.&lt;/P&gt;&lt;P&gt;it_data-div = '02'.&lt;/P&gt;&lt;P&gt;WHEN 'OPH'.&lt;/P&gt;&lt;P&gt;it_data-div = '01'.&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;it_data-spart = it_data-div.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND it_data.&lt;/P&gt;&lt;P&gt;CLEAR it_data.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM. " data_swap &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;P&gt;ravish&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;plz dont forget to reward points if helpful&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 May 2007 05:29:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-salesorder-change/m-p/2301476#M502974</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-31T05:29:48Z</dc:date>
    </item>
  </channel>
</rss>

