<?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: can u send me any bapi program in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/can-u-send-me-any-bapi-program/m-p/3293111#M787980</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;BAPI (Business Application Programming Interface) is an API method of a business object which intern is a RFC enabled Function Module.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Business Objects are the Objects which has business sence associated to it. Ex. Sales Orders, Purchase Orders etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The Properties of BAPI are:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Every BAPI name should start with letters 'BAPI'. &lt;/P&gt;&lt;P&gt;It is an API method of a Business Object. &lt;/P&gt;&lt;P&gt;it does not contain a internal COMMIT statement in the Function Module. &lt;/P&gt;&lt;P&gt;It does not contain "CALL TRANSACTION" statements. &lt;/P&gt;&lt;P&gt;BAPI do not raise 'EXCEPTIONS'. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;a RETURN structure is defined as an interface parameter of a BAPI which is used to log all the errors, warnings and the successful processes tha are triggered in the course of execution of a BAPI.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A successful execution of a BAPI requires the data to be commited and this process of performing a COMMIT is achieved by calling the BAPI_TRANSACTION_COMMIT' explicitly if there are no errors logged in the RETURN structure.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are two types of BAPI's: Instance Dependent &amp;amp; Instance Independent.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPI provides an access to the SAP system for external applications to have the business data processed in the form of web services. When BAPI's are used to post the data in SAP system these are used as Function Modules.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for further information check following:&lt;/P&gt;&lt;P&gt;Go to the below link for BAPI.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nw04/helpdata/en/e0/9eb2370f9cbe68e10000009b38f8cf/frameset.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw04/helpdata/en/e0/9eb2370f9cbe68e10000009b38f8cf/frameset.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;BAPI&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nw2004s/helpdata/en/7e/5e114a4a1611d1894c0000e829fbbd/frameset.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw2004s/helpdata/en/7e/5e114a4a1611d1894c0000e829fbbd/frameset.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapgenie.com/abap/bapi/example.htm" target="test_blank"&gt;http://www.sapgenie.com/abap/bapi/example.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_46c/helpdata/en/9b/417f07ee2211d1ad14080009b0fb56/frameset.htm" target="test_blank"&gt;http://help.sap.com/saphelp_46c/helpdata/en/9b/417f07ee2211d1ad14080009b0fb56/frameset.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html" target="test_blank"&gt;http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html" target="test_blank"&gt;http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://techrepublic.com.com/5100-6329-1051160.html#" target="test_blank"&gt;http://techrepublic.com.com/5100-6329-1051160.html#&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/bapi.htm" target="test_blank"&gt;http://www.sap-img.com/bapi.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/abap/bapi-conventions.htm" target="test_blank"&gt;http://www.sap-img.com/abap/bapi-conventions.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sappoint.com/abap/bapiintro.pdf" target="test_blank"&gt;http://www.sappoint.com/abap/bapiintro.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapgenie.com/abap/bapi/example.htm" target="test_blank"&gt;http://www.sapgenie.com/abap/bapi/example.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf" target="test_blank"&gt;http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf" target="test_blank"&gt;http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf" target="test_blank"&gt;http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf" target="test_blank"&gt;http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf" target="test_blank"&gt;http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rewards if useful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 04 Jan 2008 05:52:49 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-01-04T05:52:49Z</dc:date>
    <item>
      <title>can u send me any bapi program</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/can-u-send-me-any-bapi-program/m-p/3293110#M787979</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;i am learning bapi through this site .but i don't know how i use my bapi object in program . can anyone please send me &lt;/P&gt;&lt;P&gt;a bapi program .&lt;/P&gt;&lt;P&gt;for this i will greatful to u.&lt;/P&gt;&lt;P&gt;thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 Jan 2008 05:48:22 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/can-u-send-me-any-bapi-program/m-p/3293110#M787979</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-04T05:48:22Z</dc:date>
    </item>
    <item>
      <title>Re: can u send me any bapi program</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/can-u-send-me-any-bapi-program/m-p/3293111#M787980</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;BAPI (Business Application Programming Interface) is an API method of a business object which intern is a RFC enabled Function Module.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Business Objects are the Objects which has business sence associated to it. Ex. Sales Orders, Purchase Orders etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The Properties of BAPI are:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Every BAPI name should start with letters 'BAPI'. &lt;/P&gt;&lt;P&gt;It is an API method of a Business Object. &lt;/P&gt;&lt;P&gt;it does not contain a internal COMMIT statement in the Function Module. &lt;/P&gt;&lt;P&gt;It does not contain "CALL TRANSACTION" statements. &lt;/P&gt;&lt;P&gt;BAPI do not raise 'EXCEPTIONS'. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;a RETURN structure is defined as an interface parameter of a BAPI which is used to log all the errors, warnings and the successful processes tha are triggered in the course of execution of a BAPI.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A successful execution of a BAPI requires the data to be commited and this process of performing a COMMIT is achieved by calling the BAPI_TRANSACTION_COMMIT' explicitly if there are no errors logged in the RETURN structure.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are two types of BAPI's: Instance Dependent &amp;amp; Instance Independent.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPI provides an access to the SAP system for external applications to have the business data processed in the form of web services. When BAPI's are used to post the data in SAP system these are used as Function Modules.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for further information check following:&lt;/P&gt;&lt;P&gt;Go to the below link for BAPI.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nw04/helpdata/en/e0/9eb2370f9cbe68e10000009b38f8cf/frameset.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw04/helpdata/en/e0/9eb2370f9cbe68e10000009b38f8cf/frameset.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;BAPI&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nw2004s/helpdata/en/7e/5e114a4a1611d1894c0000e829fbbd/frameset.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw2004s/helpdata/en/7e/5e114a4a1611d1894c0000e829fbbd/frameset.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapgenie.com/abap/bapi/example.htm" target="test_blank"&gt;http://www.sapgenie.com/abap/bapi/example.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_46c/helpdata/en/9b/417f07ee2211d1ad14080009b0fb56/frameset.htm" target="test_blank"&gt;http://help.sap.com/saphelp_46c/helpdata/en/9b/417f07ee2211d1ad14080009b0fb56/frameset.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html" target="test_blank"&gt;http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html" target="test_blank"&gt;http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://techrepublic.com.com/5100-6329-1051160.html#" target="test_blank"&gt;http://techrepublic.com.com/5100-6329-1051160.html#&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/bapi.htm" target="test_blank"&gt;http://www.sap-img.com/bapi.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/abap/bapi-conventions.htm" target="test_blank"&gt;http://www.sap-img.com/abap/bapi-conventions.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sappoint.com/abap/bapiintro.pdf" target="test_blank"&gt;http://www.sappoint.com/abap/bapiintro.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapgenie.com/abap/bapi/example.htm" target="test_blank"&gt;http://www.sapgenie.com/abap/bapi/example.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf" target="test_blank"&gt;http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf" target="test_blank"&gt;http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf" target="test_blank"&gt;http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf" target="test_blank"&gt;http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf" target="test_blank"&gt;http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rewards if useful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 Jan 2008 05:52:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/can-u-send-me-any-bapi-program/m-p/3293111#M787980</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-04T05:52:49Z</dc:date>
    </item>
    <item>
      <title>Re: can u send me any bapi program</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/can-u-send-me-any-bapi-program/m-p/3293112#M787981</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hello sir,&lt;/P&gt;&lt;P&gt;thanks for giving answer. but i want some bapi program.&lt;/P&gt;&lt;P&gt;as i don't know where i use my bapi as i have created my bapi&lt;/P&gt;&lt;P&gt;which details i will giving u:&lt;/P&gt;&lt;P&gt;                                                                 &lt;/P&gt;&lt;P&gt; Object name        ZBAPI_MARA                                                                                &lt;/P&gt;&lt;P&gt;Short description  BAPI FOR FUNCTION          MODULE "ZBAPI_FMMARA"                                                                                &lt;/P&gt;&lt;P&gt;Object type        ZBAPI_MARA                                                                                &lt;/P&gt;&lt;P&gt;plz give any program using bapi .&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 Jan 2008 06:32:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/can-u-send-me-any-bapi-program/m-p/3293112#M787981</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-04T06:32:03Z</dc:date>
    </item>
    <item>
      <title>Re: can u send me any bapi program</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/can-u-send-me-any-bapi-program/m-p/3293113#M787982</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi Zuhi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT ZAUTO_DEBIT_VENDOR NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;                                     LINE-SIZE 250&lt;/P&gt;&lt;P&gt;                                     LINE-COUNT 65(2)&lt;/P&gt;&lt;P&gt;                                     MESSAGE-ID ZSCM.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Program name 		: ZAUTO_DEBIT_VENDOR&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Type                	: Report&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Description         	: Automatic Vendor Dedit Postings&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&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;                   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: VBAK,&lt;/P&gt;&lt;P&gt;        ADR6,&lt;/P&gt;&lt;P&gt;        TRDYSE01CM.&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;                   INCLUDE&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;INCLUDE ZZUTI_STD_HEADER_FOOTER. "Standard header and footer&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;TYPES DECLARATION&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;TYPES:&lt;/P&gt;&lt;P&gt;  BEGIN OF T_CRMEMO,&lt;/P&gt;&lt;P&gt;    VBELN TYPE VBAK-VBELN,&lt;/P&gt;&lt;P&gt;    POSNR TYPE VBAP-POSNR,&lt;/P&gt;&lt;P&gt;    ERDAT TYPE VBAK-ERDAT,&lt;/P&gt;&lt;P&gt;    AUART TYPE VBAK-AUART,&lt;/P&gt;&lt;P&gt;    AUGRU TYPE VBAK-AUGRU,&lt;/P&gt;&lt;P&gt;    WAERK TYPE VBAK-WAERK,&lt;/P&gt;&lt;P&gt;    VKORG TYPE VBAK-VKORG,&lt;/P&gt;&lt;P&gt;    VTWEG TYPE VBAK-VTWEG,&lt;/P&gt;&lt;P&gt;    SPART TYPE VBAK-SPART,&lt;/P&gt;&lt;P&gt;    VDATU TYPE VBAK-VDATU,&lt;/P&gt;&lt;P&gt;    BSTNK TYPE VBAK-BSTNK,&lt;/P&gt;&lt;P&gt;    BSARK TYPE VBAK-BSARK,&lt;/P&gt;&lt;P&gt;    BSTDK TYPE VBAK-BSTDK,&lt;/P&gt;&lt;P&gt;    AEDAT TYPE VBAK-AEDAT,&lt;/P&gt;&lt;P&gt;    BUKRS_VF TYPE VBAK-BUKRS_VF,&lt;/P&gt;&lt;P&gt;    MATNR TYPE VBAP-MATNR,&lt;/P&gt;&lt;P&gt;    ZMENG TYPE VBAP-ZMENG,&lt;/P&gt;&lt;P&gt;    ZIEME TYPE VBAP-ZIEME,&lt;/P&gt;&lt;P&gt;  END OF T_CRMEMO,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  BEGIN OF T_CRMEMO_CHANGE,&lt;/P&gt;&lt;P&gt;    VBELN(90) TYPE C,&lt;/P&gt;&lt;P&gt;    POSNR TYPE VBAP-POSNR,&lt;/P&gt;&lt;P&gt;    ERDAT TYPE VBAK-ERDAT,&lt;/P&gt;&lt;P&gt;    AUART TYPE VBAK-AUART,&lt;/P&gt;&lt;P&gt;    AUGRU TYPE VBAK-AUGRU,&lt;/P&gt;&lt;P&gt;    WAERK TYPE VBAK-WAERK,&lt;/P&gt;&lt;P&gt;    VKORG TYPE VBAK-VKORG,&lt;/P&gt;&lt;P&gt;    VTWEG TYPE VBAK-VTWEG,&lt;/P&gt;&lt;P&gt;    SPART TYPE VBAK-SPART,&lt;/P&gt;&lt;P&gt;    VDATU TYPE VBAK-VDATU,&lt;/P&gt;&lt;P&gt;    BSTNK TYPE VBAK-BSTNK,&lt;/P&gt;&lt;P&gt;    BSARK TYPE VBAK-BSARK,&lt;/P&gt;&lt;P&gt;    BSTDK TYPE VBAK-BSTDK,&lt;/P&gt;&lt;P&gt;    AEDAT TYPE VBAK-AEDAT,&lt;/P&gt;&lt;P&gt;    BUKRS_VF TYPE VBAK-BUKRS_VF,&lt;/P&gt;&lt;P&gt;    MATNR TYPE VBAP-MATNR,&lt;/P&gt;&lt;P&gt;    ZMENG TYPE VBAP-ZMENG,&lt;/P&gt;&lt;P&gt;    ZIEME TYPE VBAP-ZIEME,&lt;/P&gt;&lt;P&gt;  END OF T_CRMEMO_CHANGE,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  BEGIN OF T_MVKE,&lt;/P&gt;&lt;P&gt;    MATNR  TYPE MVKE-MATNR,&lt;/P&gt;&lt;P&gt;    VKORG  TYPE MVKE-VKORG,&lt;/P&gt;&lt;P&gt;    VTWEG  TYPE MVKE-VTWEG,&lt;/P&gt;&lt;P&gt;    MTPOS  TYPE MVKE-MTPOS,&lt;/P&gt;&lt;P&gt;  END OF T_MVKE,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  BEGIN OF T_ORDERS,&lt;/P&gt;&lt;P&gt;    VBELV   TYPE VBFA-VBELV,&lt;/P&gt;&lt;P&gt;    POSNV   TYPE VBFA-POSNV,&lt;/P&gt;&lt;P&gt;    VBELN   TYPE VBFA-VBELN,&lt;/P&gt;&lt;P&gt;    POSNN   TYPE VBFA-POSNN,&lt;/P&gt;&lt;P&gt;    VBTYP_N TYPE VBFA-VBTYP_N,&lt;/P&gt;&lt;P&gt;  END OF T_ORDERS,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  BEGIN OF T_EKPO,&lt;/P&gt;&lt;P&gt;    EBELN   TYPE EKKO-EBELN,&lt;/P&gt;&lt;P&gt;    EBELP   TYPE EKPO-EBELP,&lt;/P&gt;&lt;P&gt;    WAERS   TYPE EKKO-WAERS,&lt;/P&gt;&lt;P&gt;    MENGE   TYPE EKPO-MENGE,&lt;/P&gt;&lt;P&gt;    MEINS   TYPE EKPO-MEINS,&lt;/P&gt;&lt;P&gt;    NETPR   TYPE EKPO-NETPR,&lt;/P&gt;&lt;P&gt;    PEINH   TYPE EKPO-PEINH,&lt;/P&gt;&lt;P&gt;    mwskz   TYPE EKPO-mwskz,&lt;/P&gt;&lt;P&gt;    TXJCD   TYPE EKPO-TXJCD,&lt;/P&gt;&lt;P&gt;  END OF T_EKPO,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  BEGIN OF T_EKBE,&lt;/P&gt;&lt;P&gt;    EBELN   TYPE EKBE-EBELN,&lt;/P&gt;&lt;P&gt;    EBELP   TYPE EKBE-EBELP,&lt;/P&gt;&lt;P&gt;    ZEKKN   TYPE EKBE-ZEKKN,&lt;/P&gt;&lt;P&gt;    VGABE   TYPE EKBE-VGABE,&lt;/P&gt;&lt;P&gt;    GJAHR   TYPE EKBE-GJAHR,&lt;/P&gt;&lt;P&gt;    BELNR   TYPE EKBE-BELNR,&lt;/P&gt;&lt;P&gt;    BUZEI   TYPE EKBE-BUZEI,&lt;/P&gt;&lt;P&gt;  END OF T_EKBE,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  BEGIN OF T_RBKP,&lt;/P&gt;&lt;P&gt;    BELNR   TYPE RBKP-BELNR,&lt;/P&gt;&lt;P&gt;    GJAHR   TYPE RBKP-GJAHR,&lt;/P&gt;&lt;P&gt;    BLDAT   TYPE RBKP-BLDAT,&lt;/P&gt;&lt;P&gt;    BUDAT   TYPE RBKP-BUDAT,&lt;/P&gt;&lt;P&gt;    XBLNR   TYPE RBKP-XBLNR,&lt;/P&gt;&lt;P&gt;    LIFNR   TYPE RBKP-LIFNR,&lt;/P&gt;&lt;P&gt;    RMWWR   TYPE RBKP-RMWWR,&lt;/P&gt;&lt;P&gt;    WMWST1  TYPE RBKP-WMWST1,&lt;/P&gt;&lt;P&gt;    XRECH   TYPE RBKP-XRECH,&lt;/P&gt;&lt;P&gt;    STBLG   TYPE RBKP-STBLG,&lt;/P&gt;&lt;P&gt;  END OF T_RBKP,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  BEGIN OF T_CDHDR,&lt;/P&gt;&lt;P&gt;    OBJECTCLAS TYPE CDHDR-OBJECTCLAS,&lt;/P&gt;&lt;P&gt;    OBJECTID   TYPE CDHDR-OBJECTID,&lt;/P&gt;&lt;P&gt;    CHANGENR   TYPE CDHDR-CHANGENR,&lt;/P&gt;&lt;P&gt;    UDATE      TYPE CDHDR-UDATE,&lt;/P&gt;&lt;P&gt;    UTIME      TYPE CDHDR-UTIME,&lt;/P&gt;&lt;P&gt;  END OF T_CDHDR,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  BEGIN OF T_CDPOS,&lt;/P&gt;&lt;P&gt;    OBJECTCLAS TYPE CDHDR-OBJECTCLAS,&lt;/P&gt;&lt;P&gt;    OBJECTID   TYPE CDHDR-OBJECTID,&lt;/P&gt;&lt;P&gt;    CHANGENR   TYPE CDHDR-CHANGENR,&lt;/P&gt;&lt;P&gt;    TABNAME    TYPE CDPOS-TABNAME,&lt;/P&gt;&lt;P&gt;    TABKEY     TYPE CDPOS-TABKEY,&lt;/P&gt;&lt;P&gt;    FNAME      TYPE CDPOS-FNAME,&lt;/P&gt;&lt;P&gt;    CHNGIND    TYPE CDPOS-CHNGIND,&lt;/P&gt;&lt;P&gt;    VALUE_NEW  TYPE CDPOS-VALUE_NEW,&lt;/P&gt;&lt;P&gt;    VALUE_OLD  TYPE CDPOS-VALUE_OLD,&lt;/P&gt;&lt;P&gt;  END OF T_CDPOS,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  BEGIN OF T_CHANGE_DOCS,&lt;/P&gt;&lt;P&gt;    OBJECTCLAS TYPE CDHDR-OBJECTCLAS,&lt;/P&gt;&lt;P&gt;    OBJECTID   TYPE CDHDR-OBJECTID,&lt;/P&gt;&lt;P&gt;    CHANGENR   TYPE CDHDR-CHANGENR,&lt;/P&gt;&lt;P&gt;    UDATE      TYPE CDHDR-UDATE,&lt;/P&gt;&lt;P&gt;    UTIME      TYPE CDHDR-UTIME,&lt;/P&gt;&lt;P&gt;    TABNAME    TYPE CDPOS-TABNAME,&lt;/P&gt;&lt;P&gt;    TABKEY     TYPE CDPOS-TABKEY,&lt;/P&gt;&lt;P&gt;    FNAME      TYPE CDPOS-FNAME,&lt;/P&gt;&lt;P&gt;    CHNGIND    TYPE CDPOS-CHNGIND,&lt;/P&gt;&lt;P&gt;    VALUE_NEW  TYPE CDPOS-VALUE_NEW,&lt;/P&gt;&lt;P&gt;    VALUE_OLD  TYPE CDPOS-VALUE_OLD,&lt;/P&gt;&lt;P&gt;  END OF T_CHANGE_DOCS,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  BEGIN OF T_SUCCESS,&lt;/P&gt;&lt;P&gt;    crmemo    TYPE VBAK-vbeln,&lt;/P&gt;&lt;P&gt;    cmemo     TYPE VBAK-vbeln,&lt;/P&gt;&lt;P&gt;    orders    TYPE VBAK-vbeln,&lt;/P&gt;&lt;P&gt;    po        TYPE VBAK-vbeln,&lt;/P&gt;&lt;P&gt;    miro_no   TYPE VBAK-vbeln,&lt;/P&gt;&lt;P&gt;    text(20)  TYPE C,&lt;/P&gt;&lt;P&gt;  END OF T_SUCCESS,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  BEGIN OF T_ERROR,&lt;/P&gt;&lt;P&gt;    crmemo  TYPE VBAK-vbeln,&lt;/P&gt;&lt;P&gt;    cmemo     TYPE VBAK-vbeln,&lt;/P&gt;&lt;P&gt;    orders    TYPE VBAK-vbeln,&lt;/P&gt;&lt;P&gt;    po        TYPE VBAK-vbeln,&lt;/P&gt;&lt;P&gt;    miro_no   TYPE VBAK-vbeln,&lt;/P&gt;&lt;P&gt;    text(100) TYPE C,&lt;/P&gt;&lt;P&gt;  END OF T_ERROR.&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;                      WORKAREA DECLARATION&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:&lt;/P&gt;&lt;P&gt;  WA_CRMEMO  TYPE T_CRMEMO,&lt;/P&gt;&lt;P&gt;  WA_CRMEMO_CHANGE TYPE T_CRMEMO_CHANGE,&lt;/P&gt;&lt;P&gt;  WA_MVKE    TYPE T_MVKE,&lt;/P&gt;&lt;P&gt;  WA_ORDERS  TYPE T_ORDERS,&lt;/P&gt;&lt;P&gt;  WA_CMEMO   TYPE  T_ORDERS,&lt;/P&gt;&lt;P&gt;  WA_PO      TYPE T_ORDERS,&lt;/P&gt;&lt;P&gt;  WA_EKPO    TYPE T_EKPO,&lt;/P&gt;&lt;P&gt;  WA_EKBE    TYPE T_EKBE,&lt;/P&gt;&lt;P&gt;  WA_EKBE_TEMP TYPE T_EKBE,&lt;/P&gt;&lt;P&gt;  WA_RBKP    TYPE T_RBKP,&lt;/P&gt;&lt;P&gt;  WA_RBKP_TMP TYPE T_RBKP,&lt;/P&gt;&lt;P&gt;  WA_CDHDR   TYPE T_CDHDR,&lt;/P&gt;&lt;P&gt;  WA_CDPOS   TYPE T_CDPOS,&lt;/P&gt;&lt;P&gt;  WA_CHANGE_DOCS TYPE T_CHANGE_DOCS,&lt;/P&gt;&lt;P&gt;  WA_CRMEMO_MR8M  TYPE T_CRMEMO,&lt;/P&gt;&lt;P&gt;  WA_SUCCESS TYPE T_SUCCESS,&lt;/P&gt;&lt;P&gt;  WA_ERROR   TYPE T_ERROR,&lt;/P&gt;&lt;P&gt;  WA_SUCCESS_MR8M TYPE T_SUCCESS,&lt;/P&gt;&lt;P&gt;  WA_ERROR_MR8M   TYPE T_ERROR.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Work area for all the internal tables used for Sending Mail&lt;/P&gt;&lt;P&gt;DATA :&lt;/P&gt;&lt;P&gt;  WA_OBJPACK TYPE SOPCKLSTI1,&lt;/P&gt;&lt;P&gt;  WA_OBJHEAD TYPE SOLISTI1,&lt;/P&gt;&lt;P&gt;  WA_OBJBIN TYPE SOLISTI1,&lt;/P&gt;&lt;P&gt;  WA_OBJTXT TYPE SOLISTI1,&lt;/P&gt;&lt;P&gt;  WA_RECLIST TYPE SOMLRECI1 .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;*-- Structure to hold Invoice Header Data&lt;/P&gt;&lt;P&gt;  x_docheader LIKE bapi_incinv_create_header,&lt;/P&gt;&lt;P&gt;*-- Structure to hold Reversal Posting Data&lt;/P&gt;&lt;P&gt;  x_rev_post LIKE BAPI_INCINV_FLD.&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 TAABLE DECLARATION&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:&lt;/P&gt;&lt;P&gt;  IT_CRMEMO      TYPE STANDARD TABLE OF T_CRMEMO   WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;  IT_CRMEMO_CHANGE TYPE STANDARD TABLE OF T_CRMEMO_CHANGE WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;  IT_MVKE        TYPE STANDARD TABLE OF T_MVKE     WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;  IT_CRMEMO_MIRO TYPE STANDARD TABLE OF T_CRMEMO   WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;  IT_CRMEMO_MR8M TYPE STANDARD TABLE OF T_CRMEMO   WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;  IT_ORDERS      TYPE STANDARD TABLE OF T_ORDERS   WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;  IT_CMEMO       TYPE STANDARD TABLE OF T_ORDERS   WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;  IT_PO          TYPE STANDARD TABLE OF T_ORDERS   WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;  IT_EKPO        TYPE STANDARD TABLE OF T_EKPO     WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;  IT_EKBE        TYPE STANDARD TABLE OF T_EKBE     WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;  IT_EKBE_TEMP    TYPE STANDARD TABLE OF T_EKBE    WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;  IT_RBKP        TYPE STANDARD TABLE OF T_RBKP     WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;  IT_CDHDR       TYPE STANDARD TABLE OF T_CDHDR    WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;  IT_CDPOS       TYPE STANDARD TABLE OF T_CDPOS    WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;  IT_CHANGE_DOCS TYPE STANDARD TABLE OF T_CHANGE_DOCS WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;  IT_SUCCESS     TYPE STANDARD TABLE OF T_SUCCESS  WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;  IT_ERROR       TYPE STANDARD TABLE OF T_ERROR    WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;  IT_SUCCESS_MR8M TYPE STANDARD TABLE OF T_SUCCESS WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;  IT_ERROR_MR8M  TYPE STANDARD TABLE OF T_ERROR    WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Internal table to hold Invoice Item Data&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF it_itemdata OCCURS 0.&lt;/P&gt;&lt;P&gt;       INCLUDE STRUCTURE bapi_incinv_create_item.&lt;/P&gt;&lt;P&gt;DATA:END OF it_itemdata.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Internal table to hold Invoice Acct Assignment Data&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF it_ACCOUNTingdata OCCURS 0.&lt;/P&gt;&lt;P&gt;       INCLUDE STRUCTURE BAPI_INCINV_CREATE_ACCOUNT.&lt;/P&gt;&lt;P&gt;DATA:END OF it_accountingdata.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Internal table to hold BAPI return data&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF it_return OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapiret2.  "Return Parameter.&lt;/P&gt;&lt;P&gt;DATA: END OF it_return.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Internal table to hold BAPI return data&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF it_return_mr8m OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapiret2.  "Return Parameter.&lt;/P&gt;&lt;P&gt;DATA: END OF it_return_mr8m.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--MAIL related Internal tables&lt;/P&gt;&lt;P&gt;DATA: X_DOC_CHNG TYPE SODOCCHGI1,                      " document attributes&lt;/P&gt;&lt;P&gt;      IT_OBJPACK TYPE STANDARD TABLE OF SOPCKLSTI1,    " attachment table&lt;/P&gt;&lt;P&gt;      IT_OBJHEAD TYPE STANDARD TABLE OF SOLISTI1,      " object header table&lt;/P&gt;&lt;P&gt;      IT_OBJBIN TYPE STANDARD TABLE OF SOLISTI1,       " binary table&lt;/P&gt;&lt;P&gt;      IT_OBJTXT TYPE STANDARD TABLE OF SOLISTI1,       " object text&lt;/P&gt;&lt;P&gt;      IT_RECLIST TYPE STANDARD TABLE OF SOMLRECI1,     " mail recipients&lt;/P&gt;&lt;P&gt;      it_compressed_list TYPE STANDARD TABLE OF SOLI,&lt;/P&gt;&lt;P&gt;      it_pdf_list TYPE STANDARD TABLE OF TLINE,&lt;/P&gt;&lt;P&gt;      it_pdf  TYPE tline OCCURS 10 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      it_html  TYPE solisti1   OCCURS 10  WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;*-- Internal table for MIME data (in CHAR format)&lt;/P&gt;&lt;P&gt;      it_temp   TYPE bapiqcmime OCCURS 10 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;*-- Internal table for storing data&lt;/P&gt;&lt;P&gt;      it_mime(255) TYPE c OCCURS 10 WITH HEADER LINE.&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;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: V_PGM_ID      TYPE SY-REPID,                    " Program id&lt;/P&gt;&lt;P&gt;      v_zterm       TYPE lfb1-zterm,                  " Payment Terms&lt;/P&gt;&lt;P&gt;      v_text(75)    TYPE c,                           " To store error or success text&lt;/P&gt;&lt;P&gt;      v_itemno(6)   TYPE n,                           " To Increment Item No. for BAPI&lt;/P&gt;&lt;P&gt;      v_docnr       LIKE bapi_incinv_fld-inv_doc_no,  " For MIRO document number&lt;/P&gt;&lt;P&gt;      v_year1       LIKE bapi_incinv_fld-fisc_year,   " For MIRO Fiscal year&lt;/P&gt;&lt;P&gt;      v_spono       type TSP01-RQIDENT,               " For Spool No.&lt;/P&gt;&lt;P&gt;      v_type        type SOODK-OBJTP,                 " For Spool Type&lt;/P&gt;&lt;P&gt;      V_CRMEMO_QTY  TYPE VBAP-ZMENG,                  " For CR Memo Qty.&lt;/P&gt;&lt;P&gt;      V_LINE_AMOUNT TYPE EKPO-NETPR,                  " For CR Memo Item Qty.&lt;/P&gt;&lt;P&gt;      V_GROSSAMT    TYPE EKPO-NETPR,                  " For CR Memo Grand Qty.&lt;/P&gt;&lt;P&gt;      v_tax_per(3)  type n,                           " For CR Memo Tax amount %&lt;/P&gt;&lt;P&gt;      v_tax_amt     TYPE EKPO-NETPR,                  " For CR Memo Tax amount&lt;/P&gt;&lt;P&gt;      v_flag(1)     type c,                           " Flag to process fruther&lt;/P&gt;&lt;P&gt;      v_tot_s_mr8m  TYPE i,                           " For MR8M Success Records&lt;/P&gt;&lt;P&gt;      v_tot_e_mr8m  TYPE i,                           " For MR8M Error Records&lt;/P&gt;&lt;P&gt;      V_DATE        TYPE SY-DATUM,                    " For Sel. Screen Date&lt;/P&gt;&lt;P&gt;      V_DATE2(10)   TYPE C,                           " For EMail Date&lt;/P&gt;&lt;P&gt;      V_TIME(10)    TYPE C,                           " For EMail Time&lt;/P&gt;&lt;P&gt;      V_TIME2(10)   TYPE C,                           " For EMail Time&lt;/P&gt;&lt;P&gt;      V_INFO(100)   TYPE C,                           " For EMail Body Text&lt;/P&gt;&lt;P&gt;      V_TABLE_LINES TYPE SY-TABIX,                    " To Increment Email Count&lt;/P&gt;&lt;P&gt;      V_TEXT2       TYPE STRING   ,                   " For EMail Id text&lt;/P&gt;&lt;P&gt;      v_lines       TYPE i,                           " To Store PDF Lines&lt;/P&gt;&lt;P&gt;      v_temp(500)   TYPE c,                           " To Convert to 255 char format&lt;/P&gt;&lt;P&gt;      v_offset      TYPE p,                           " To Convert to 255 char format&lt;/P&gt;&lt;P&gt;      v_lineslen    TYPE i,                           " To Convert to 255 char format&lt;/P&gt;&lt;P&gt;      v_mimelen     TYPE i,                           " To Convert to 255 char format&lt;/P&gt;&lt;P&gt;      v_tabix       type sy-tabix.                    " To Convert to 255 char format&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;CONSTANTS                                                            *&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;CONSTANTS:&lt;/P&gt;&lt;P&gt;  C_X(1)            TYPE C          VALUE 'X',       " Constant X or Flag&lt;/P&gt;&lt;P&gt;  C_E(1)            TYPE C          VALUE 'E',       " For Error check&lt;/P&gt;&lt;P&gt;  c_v(1)            TYPE C          VALUE 'V',       " For PO Docs&lt;/P&gt;&lt;P&gt;  c_o(1)            TYPE C          VALUE 'O',       " For Order Docs&lt;/P&gt;&lt;P&gt;  c_c(1)            TYPE C          VALUE 'C',       " For Credit Memo Docs&lt;/P&gt;&lt;P&gt;  c_k(1)            TYPE C          VALUE 'K',       " For CR Memo Docs&lt;/P&gt;&lt;P&gt;  c_u(1)            TYPE C          VALUE 'U',       " For Change tables Update&lt;/P&gt;&lt;P&gt;  c_ali(3)          TYPE C          VALUE 'ALI',     " For ALI Format&lt;/P&gt;&lt;P&gt;  c_vbak(4)         TYPE C          VALUE 'VBAK',    " For Change docs table&lt;/P&gt;&lt;P&gt;  C_01(2)           TYPE C          VALUE '01',      " For Serial No. &amp;amp; Reversal Reason&lt;/P&gt;&lt;P&gt;  C_02(2)           TYPE C          VALUE '02',      " For Reversal Reason&lt;/P&gt;&lt;P&gt;  c_blart           TYPE bkpf-blart VALUE 'RE',      " Document type&lt;/P&gt;&lt;P&gt;  C_MTPOS           TYPE MVKE-MTPOS VALUE 'BANS',    " Item Category group&lt;/P&gt;&lt;P&gt;  C_AUGRU(5)        TYPE C          VALUE 'AUGRU',   " Reason Code&lt;/P&gt;&lt;P&gt;  C_0000500205(10)  TYPE C          VALUE '0000500205', " GL Account #&lt;/P&gt;&lt;P&gt;  C_VERKBELEG(9)    TYPE C          VALUE 'VERKBELEG'.  " For Object Class&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Horizontal tab &amp;amp; line feed constants&lt;/P&gt;&lt;P&gt;CLASS CL_ABAP_CHAR_UTILITIES DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;CONSTANTS:&lt;/P&gt;&lt;P&gt;  C_TAB  TYPE C VALUE CL_ABAP_CHAR_UTILITIES=&amp;gt;HORIZONTAL_TAB,&lt;/P&gt;&lt;P&gt;  C_CR_LF TYPE C VALUE CL_ABAP_CHAR_UTILITIES=&amp;gt;CR_LF .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SELECTION SCREEN&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Select Optons&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK B01 WITH FRAME TITLE TEXT-001.&lt;/P&gt;&lt;P&gt;  SELECT-OPTIONS: S_AUART FOR VBAK-AUART OBLIGATORY NO INTERVALS,&lt;/P&gt;&lt;P&gt;                                                     " Sales Document Type&lt;/P&gt;&lt;P&gt;                  S_AUGRU FOR VBAK-AUGRU OBLIGATORY NO INTERVALS,&lt;/P&gt;&lt;P&gt;                                                     " Order reason&lt;/P&gt;&lt;P&gt;                  S_ERDAT FOR VBAK-ERDAT OBLIGATORY.&lt;/P&gt;&lt;P&gt;                                    " Date on which the record was created&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK B01.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Mail Sending Options&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-004.&lt;/P&gt;&lt;P&gt;  PARAMETERS:P_EMAIL AS CHECKBOX DEFAULT SPACE USER-COMMAND V_COM .&lt;/P&gt;&lt;P&gt;  PARAMETERS : P_MODE TYPE SO_ESCAPE   default 'U' MODIF ID US1.&lt;/P&gt;&lt;P&gt;  SELECT-OPTIONS: S_EMAIL FOR ADR6-SMTP_ADDR&lt;/P&gt;&lt;P&gt;                                      NO INTERVALS MODIF ID US2.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; SELECT-OPTIONS: S_EMAIL FOR TRDYSE01CM-USERNAME&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                     NO INTERVALS MODIF ID US2.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;    SELECTION-SCREEN: COMMENT 55(40) TEXT-019 MODIF ID US2.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN: END OF LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK B2.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&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;           WORK AREA for SELECT-OPTIONS&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 :  X_EMAIL LIKE S_EMAIL.   "Work area for EMAIL select-options&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; INITIALIZATION&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;INITIALIZATION.&lt;/P&gt;&lt;P&gt;*-- Default values for Sales Document Type&lt;/P&gt;&lt;P&gt;  CLEAR S_AUART[].&lt;/P&gt;&lt;P&gt;  S_AUART-SIGN = 'I'.&lt;/P&gt;&lt;P&gt;  S_AUART-OPTION = 'EQ'.&lt;/P&gt;&lt;P&gt;  S_AUART-LOW = 'CR'.&lt;/P&gt;&lt;P&gt;  APPEND S_AUART.&lt;/P&gt;&lt;P&gt;  CLEAR S_AUART.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Default values for Date on which the record was created&lt;/P&gt;&lt;P&gt;  V_DATE = ( SY-DATUM - 1 ).&lt;/P&gt;&lt;P&gt;  CLEAR S_ERDAT[].&lt;/P&gt;&lt;P&gt;  S_ERDAT-SIGN = 'I'.&lt;/P&gt;&lt;P&gt;  S_ERDAT-OPTION = 'EQ'.&lt;/P&gt;&lt;P&gt;  S_ERDAT-LOW =  SY-DATUM.&lt;/P&gt;&lt;P&gt;  S_ERDAT-HIGH =  SY-DATUM.&lt;/P&gt;&lt;P&gt;  APPEND S_ERDAT.&lt;/P&gt;&lt;P&gt;  CLEAR S_ERDAT.&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;                   TOP OF PAGE                                       *&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;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;*-- Displaying standard header.&lt;/P&gt;&lt;P&gt;  PERFORM std_top_of_page USING sy-title.&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;A T  S E L E C T I O N   S C R E E N  O U T P U T&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;*-- For modifying the selection screen layout&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN OUTPUT.&lt;/P&gt;&lt;P&gt;  PERFORM F_MODIFY_SCREEN.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                   AT SELECTION SCREEN.                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN.&lt;/P&gt;&lt;P&gt;*-- Subroutine to Validate selection screen fields&lt;/P&gt;&lt;P&gt;  PERFORM f_validate.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; START-OF-SELECTION                                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;*-- Fetch the Credit Memo Requests documents&lt;/P&gt;&lt;P&gt;  PERFORM F_GET_CREDIT_MEMO_REQUEST.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF NOT IT_CRMEMO[] IS INITIAL.&lt;/P&gt;&lt;P&gt;*-- Fetch Item Category Group&lt;/P&gt;&lt;P&gt;    PERFORM F_GET_MVKE_DOCS.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Fetch Sales Order documents, PO Documents and Credit Memos&lt;/P&gt;&lt;P&gt;    PERFORM F_GET_SO_PO_DOCS.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- If Credit memo request internal table have an change records then&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   fetch the change documents from CDHDR and CDPOS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF NOT IT_CRMEMO_CHANGE[] IS INITIAL.&lt;/P&gt;&lt;P&gt;*-- Fetch Change Documents for CR Memos from CDHDR and CDPOS tables&lt;/P&gt;&lt;P&gt;    PERFORM F_GET_CHANGED_DOCS.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Fetch Purchasing Document Item Details&lt;/P&gt;&lt;P&gt;  IF NOT IT_PO[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    PERFORM F_GET_EKPO.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Fetch MIRO Vendor based on the PO Details&lt;/P&gt;&lt;P&gt;  IF NOT IT_EKPO[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    PERFORM F_GET_VENDOR.&lt;/P&gt;&lt;P&gt;  ENDIF.&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; END-OF-SELECTION                                                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if v_flag is initial.&lt;/P&gt;&lt;P&gt;*-- Process Vendor Debit Postings&lt;/P&gt;&lt;P&gt;    PERFORM F_PROCESS_MIRO.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Process Reversal Postings of Vendor Automatic Debits using TCODE MR8M&lt;/P&gt;&lt;P&gt;    PERFORM F_PROCESS_MR8M.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Send mail,if user enters Email id's and Email Mode is not initial&lt;/P&gt;&lt;P&gt;    IF P_EMAIL = C_X AND P_MODE IS NOT INITIAL AND S_EMAIL[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Get spool id&lt;/P&gt;&lt;P&gt;      perform f_spool_id.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- EMail Logic&lt;/P&gt;&lt;P&gt;      PERFORM F_MAIL_LOGIC.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- display the EMail RSCONN01 and Sussess and Error records of MIRO and MR8M&lt;/P&gt;&lt;P&gt;    perform f_display_report.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;*-- Else exit the process&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;&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  F_MODIFY_SCREEN&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;      A Form routine to modify the screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_MODIFY_SCREEN .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- To Modify Mail Sending Options&lt;/P&gt;&lt;P&gt;  LOOP AT SCREEN.&lt;/P&gt;&lt;P&gt;    IF P_EMAIL = C_X.&lt;/P&gt;&lt;P&gt;      IF SCREEN-GROUP1 = 'US1' .&lt;/P&gt;&lt;P&gt;        SCREEN-INVISIBLE = 0.&lt;/P&gt;&lt;P&gt;        SCREEN-ACTIVE = 1.&lt;/P&gt;&lt;P&gt;        SCREEN-INPUT = 0.&lt;/P&gt;&lt;P&gt;        MODIFY SCREEN.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IF SCREEN-GROUP2 = 'US2' .&lt;/P&gt;&lt;P&gt;        SCREEN-INVISIBLE = 0.&lt;/P&gt;&lt;P&gt;        SCREEN-ACTIVE = 1.&lt;/P&gt;&lt;P&gt;        MODIFY SCREEN.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ELSEIF P_EMAIL = SPACE.&lt;/P&gt;&lt;P&gt;      IF SCREEN-GROUP1 = 'US1' .&lt;/P&gt;&lt;P&gt;        SCREEN-INVISIBLE = 1.&lt;/P&gt;&lt;P&gt;        SCREEN-ACTIVE = 0.&lt;/P&gt;&lt;P&gt;        MODIFY SCREEN.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IF SCREEN-GROUP1 = 'US2' .&lt;/P&gt;&lt;P&gt;        SCREEN-INVISIBLE = 1.&lt;/P&gt;&lt;P&gt;        SCREEN-ACTIVE = 0.&lt;/P&gt;&lt;P&gt;        MODIFY SCREEN.&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;ENDFORM.                    " F_MODIFY_SCREEN&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  f_validate&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;      Validation of Selection-Screen Inputs&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 f_validate .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Validate Sales Document Type&lt;/P&gt;&lt;P&gt;  if not s_AUART[] is initial.&lt;/P&gt;&lt;P&gt;    select  AUART&lt;/P&gt;&lt;P&gt;      into s_AUART-low&lt;/P&gt;&lt;P&gt;      from TVAK up to 1 rows&lt;/P&gt;&lt;P&gt;      where AUART in s_AUART.&lt;/P&gt;&lt;P&gt;    endselect.&lt;/P&gt;&lt;P&gt;    if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      message E000 with 'Invalid Sales Document Type'(e01) .&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;*-- Validate Order reason (reason for the business transaction)&lt;/P&gt;&lt;P&gt;  if not s_AUGRU[] is initial.&lt;/P&gt;&lt;P&gt;    select  AUGRU&lt;/P&gt;&lt;P&gt;      into s_AUGRU-low&lt;/P&gt;&lt;P&gt;      from TVAU up to 1 rows&lt;/P&gt;&lt;P&gt;      where AUGRU in s_AUGRU.&lt;/P&gt;&lt;P&gt;    endselect.&lt;/P&gt;&lt;P&gt;    if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      message E000 with 'Invalid Order reason'(e02) .&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_validate&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  F_GET_CREDIT_MEMO_REQUEST&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;      Fetch Credit memo requests from VBAK &amp;amp; VBAP&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 F_GET_CREDIT_MEMO_REQUEST .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  SELECT A~VBELN&lt;/P&gt;&lt;P&gt;         B~POSNR&lt;/P&gt;&lt;P&gt;         A~ERDAT&lt;/P&gt;&lt;P&gt;         A~AUART&lt;/P&gt;&lt;P&gt;         A~AUGRU&lt;/P&gt;&lt;P&gt;         A~WAERK&lt;/P&gt;&lt;P&gt;         A~VKORG&lt;/P&gt;&lt;P&gt;         A~VTWEG&lt;/P&gt;&lt;P&gt;         A~SPART&lt;/P&gt;&lt;P&gt;         A~VDATU&lt;/P&gt;&lt;P&gt;         A~BSTNK&lt;/P&gt;&lt;P&gt;         A~BSARK&lt;/P&gt;&lt;P&gt;         A~BSTDK&lt;/P&gt;&lt;P&gt;         A~AEDAT&lt;/P&gt;&lt;P&gt;         A~BUKRS_VF&lt;/P&gt;&lt;P&gt;         B~MATNR&lt;/P&gt;&lt;P&gt;         B~ZMENG&lt;/P&gt;&lt;P&gt;         B~ZIEME&lt;/P&gt;&lt;P&gt;    INTO TABLE IT_CRMEMO&lt;/P&gt;&lt;P&gt;    FROM ( VBAK AS A&lt;/P&gt;&lt;P&gt;    INNER JOIN VBAP AS B ON A&lt;SUB&gt;VBELN = B&lt;/SUB&gt;VBELN )&lt;/P&gt;&lt;P&gt;    WHERE ( A~ERDAT IN S_ERDAT&lt;/P&gt;&lt;P&gt;      OR  A~AEDAT IN S_ERDAT )&lt;/P&gt;&lt;P&gt;      AND A~AUART IN S_AUART.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    SORT IT_CRMEMO BY VBELN POSNR.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE I000 WITH 'No Credit Memo Request selected'(002).&lt;/P&gt;&lt;P&gt;    v_flag = C_X.&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;ENDFORM.                    " F_GET_CREDIT_MEMO_REQUEST&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  F_GET_MVKE_DOCS&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;      Fetch Sales Data for Material&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 F_GET_MVKE_DOCS .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DATA: LV_TABIX TYPE SY-TABIX.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Fetch Sales Data for Material&lt;/P&gt;&lt;P&gt;  SELECT MATNR      " Material Number&lt;/P&gt;&lt;P&gt;         VKORG      " Sales Organization&lt;/P&gt;&lt;P&gt;         VTWEG      " Distribution Channel&lt;/P&gt;&lt;P&gt;         MTPOS      " Item category group from material master&lt;/P&gt;&lt;P&gt;    FROM MVKE       " Sales Data for Material&lt;/P&gt;&lt;P&gt;    INTO TABLE IT_MVKE&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN IT_CRMEMO&lt;/P&gt;&lt;P&gt;    WHERE MATNR = IT_CRMEMO-MATNR&lt;/P&gt;&lt;P&gt;      AND VKORG = IT_CRMEMO-VKORG&lt;/P&gt;&lt;P&gt;      AND VTWEG = IT_CRMEMO-VTWEG.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    SORT IT_MVKE BY MATNR VKORG VTWEG MTPOS.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Validate Item category group if MVKE-MTOPS &amp;lt;&amp;gt; 'BANS' then ignore CM Request line item&lt;/P&gt;&lt;P&gt;  LOOP AT IT_CRMEMO INTO WA_CRMEMO.&lt;/P&gt;&lt;P&gt;    LV_TABIX = SY-TABIX.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_MVKE INTO WA_MVKE WITH KEY MATNR = WA_CRMEMO-MATNR&lt;/P&gt;&lt;P&gt;                                             VKORG = WA_CRMEMO-VKORG&lt;/P&gt;&lt;P&gt;                                             VTWEG = WA_CRMEMO-VTWEG&lt;/P&gt;&lt;P&gt;                                             MTPOS = C_MTPOS&lt;/P&gt;&lt;P&gt;                                             BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      DELETE IT_CRMEMO INDEX LV_TABIX.    " Delete CR memo records&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;*-- Else check for credit memo request change date is not initial, and&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  append those records to IT_CRMEMO_CHANGE internal table to retrive&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  change documents&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF NOT WA_CRMEMO-AEDAT IS INITIAL.&lt;/P&gt;&lt;P&gt;        WA_CRMEMO_CHANGE-VBELN = WA_CRMEMO-VBELN.&lt;/P&gt;&lt;P&gt;        WA_CRMEMO_CHANGE-POSNR = WA_CRMEMO-POSNR.&lt;/P&gt;&lt;P&gt;        WA_CRMEMO_CHANGE-ERDAT = WA_CRMEMO-ERDAT.&lt;/P&gt;&lt;P&gt;        WA_CRMEMO_CHANGE-AUART = WA_CRMEMO-AUART.&lt;/P&gt;&lt;P&gt;        WA_CRMEMO_CHANGE-AUGRU = WA_CRMEMO-AUGRU.&lt;/P&gt;&lt;P&gt;        WA_CRMEMO_CHANGE-WAERK = WA_CRMEMO-WAERK.&lt;/P&gt;&lt;P&gt;        WA_CRMEMO_CHANGE-VKORG = WA_CRMEMO-VKORG.&lt;/P&gt;&lt;P&gt;        WA_CRMEMO_CHANGE-VTWEG = WA_CRMEMO-VTWEG.&lt;/P&gt;&lt;P&gt;        WA_CRMEMO_CHANGE-SPART = WA_CRMEMO-SPART.&lt;/P&gt;&lt;P&gt;        WA_CRMEMO_CHANGE-VDATU = WA_CRMEMO-VDATU.&lt;/P&gt;&lt;P&gt;        WA_CRMEMO_CHANGE-BSTNK = WA_CRMEMO-BSTNK.&lt;/P&gt;&lt;P&gt;        WA_CRMEMO_CHANGE-BSARK = WA_CRMEMO-BSARK.&lt;/P&gt;&lt;P&gt;        WA_CRMEMO_CHANGE-BSTDK = WA_CRMEMO-BSTDK.&lt;/P&gt;&lt;P&gt;        WA_CRMEMO_CHANGE-AEDAT = WA_CRMEMO-AEDAT.&lt;/P&gt;&lt;P&gt;        WA_CRMEMO_CHANGE-BUKRS_VF = WA_CRMEMO-BUKRS_VF.&lt;/P&gt;&lt;P&gt;        WA_CRMEMO_CHANGE-MATNR = WA_CRMEMO-MATNR.&lt;/P&gt;&lt;P&gt;        WA_CRMEMO_CHANGE-ZMENG = WA_CRMEMO-ZMENG.&lt;/P&gt;&lt;P&gt;        WA_CRMEMO_CHANGE-ZIEME = WA_CRMEMO-ZIEME.&lt;/P&gt;&lt;P&gt;        APPEND WA_CRMEMO_CHANGE TO IT_CRMEMO_CHANGE.&lt;/P&gt;&lt;P&gt;        CLEAR WA_CRMEMO_CHANGE.&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;ENDFORM.                    " F_GET_MVKE_DOCS&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  F_GET_SO_PO_DOCS&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;      Fetch the Sales Order documents, PO documents, &amp;amp; Credit Memo&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 F_GET_SO_PO_DOCS.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Fetch Preceding sales orders based on the credit memo request&lt;/P&gt;&lt;P&gt;  SELECT VBELV&lt;/P&gt;&lt;P&gt;         POSNV&lt;/P&gt;&lt;P&gt;         VBELN&lt;/P&gt;&lt;P&gt;         POSNN&lt;/P&gt;&lt;P&gt;         VBTYP_N&lt;/P&gt;&lt;P&gt;    FROM VBFA&lt;/P&gt;&lt;P&gt;    INTO TABLE IT_ORDERS&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN IT_CRMEMO&lt;/P&gt;&lt;P&gt;    WHERE VBELN = IT_CRMEMO-VBELN&lt;/P&gt;&lt;P&gt;      AND POSNN = IT_CRMEMO-POSNR&lt;/P&gt;&lt;P&gt;      AND VBTYP_N = C_K&lt;/P&gt;&lt;P&gt;      AND VBTYP_V = C_C.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    SORT IT_ORDERS BY VBELV POSNV.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Fetch Subsequent PO documents &amp;amp; Credit Memo based on the sales orders&lt;/P&gt;&lt;P&gt;    SELECT VBELV&lt;/P&gt;&lt;P&gt;           POSNV&lt;/P&gt;&lt;P&gt;           VBELN&lt;/P&gt;&lt;P&gt;           POSNN&lt;/P&gt;&lt;P&gt;           VBTYP_N&lt;/P&gt;&lt;P&gt;      FROM VBFA&lt;/P&gt;&lt;P&gt;      INTO TABLE IT_PO&lt;/P&gt;&lt;P&gt;      FOR ALL ENTRIES IN IT_ORDERS&lt;/P&gt;&lt;P&gt;      WHERE VBELV = IT_ORDERS-VBELV&lt;/P&gt;&lt;P&gt;        AND POSNV = IT_ORDERS-POSNV&lt;/P&gt;&lt;P&gt;        AND VBTYP_N IN (C_V,C_O)&lt;/P&gt;&lt;P&gt;        AND VBTYP_V = C_C.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      SORT IT_PO BY VBTYP_N.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Copy the IT_PO internal table contents to IT_CMEMO internal table&lt;/P&gt;&lt;P&gt;      IT_CMEMO[] = IT_PO[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Delete PO documents from IT_CMEMO internal table&lt;/P&gt;&lt;P&gt;      DELETE IT_CMEMO WHERE VBTYP_N = C_V.&lt;/P&gt;&lt;P&gt;      SORT IT_CMEMO BY VBELN POSNN.&lt;/P&gt;&lt;P&gt;      IF IT_CMEMO[] IS INITIAL.&lt;/P&gt;&lt;P&gt;        MESSAGE I000 WITH 'No Credit Memo are available for CM Request'(003).&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       v_flag = c_x.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       stop.&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;*-- Delete Credit Memo documents from IT_PO internal table&lt;/P&gt;&lt;P&gt;      DELETE IT_PO WHERE VBTYP_N = C_O.&lt;/P&gt;&lt;P&gt;      SORT IT_PO BY VBELN POSNN.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " F_GET_SO_PO_DOCS&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  F_GET_CHANGED_DOCS&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;      Fetch Change Documents for CR Memos from CDHDR and CDPOS 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;FORM F_GET_CHANGED_DOCS .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Fetch Change Documents for CR Memos from CDHDR&lt;/P&gt;&lt;P&gt;  SELECT OBJECTCLAS&lt;/P&gt;&lt;P&gt;         OBJECTID&lt;/P&gt;&lt;P&gt;         CHANGENR&lt;/P&gt;&lt;P&gt;         UDATE&lt;/P&gt;&lt;P&gt;         UTIME&lt;/P&gt;&lt;P&gt;  FROM CDHDR&lt;/P&gt;&lt;P&gt;  INTO TABLE IT_CDHDR&lt;/P&gt;&lt;P&gt;  FOR ALL ENTRIES IN IT_CRMEMO_CHANGE&lt;/P&gt;&lt;P&gt;  WHERE OBJECTCLAS = C_VERKBELEG&lt;/P&gt;&lt;P&gt;    AND OBJECTID   = IT_CRMEMO_CHANGE-VBELN&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   AND UDATE      = IT_CRMEMO_CHANGE-AEDAT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    .&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    SORT IT_CDHDR BY OBJECTCLAS OBJECTID CHANGENR.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Fetch Change Documents for CR Memos from CDPOS&lt;/P&gt;&lt;P&gt;    SELECT OBJECTCLAS&lt;/P&gt;&lt;P&gt;           OBJECTID&lt;/P&gt;&lt;P&gt;           CHANGENR&lt;/P&gt;&lt;P&gt;           TABNAME&lt;/P&gt;&lt;P&gt;           TABKEY&lt;/P&gt;&lt;P&gt;           FNAME&lt;/P&gt;&lt;P&gt;           CHNGIND&lt;/P&gt;&lt;P&gt;           VALUE_NEW&lt;/P&gt;&lt;P&gt;           VALUE_OLD&lt;/P&gt;&lt;P&gt;      FROM CDPOS&lt;/P&gt;&lt;P&gt;      INTO TABLE IT_CDPOS&lt;/P&gt;&lt;P&gt;      FOR ALL ENTRIES IN IT_CDHDR&lt;/P&gt;&lt;P&gt;      WHERE OBJECTCLAS = C_VERKBELEG&lt;/P&gt;&lt;P&gt;        AND OBJECTID   = IT_CDHDR-OBJECTID&lt;/P&gt;&lt;P&gt;        AND CHANGENR   = IT_CDHDR-CHANGENR&lt;/P&gt;&lt;P&gt;        AND TABNAME    = C_VBAK&lt;/P&gt;&lt;P&gt;        AND FNAME      = C_AUGRU&lt;/P&gt;&lt;P&gt;        AND CHNGIND    = C_U.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      SORT IT_CDPOS BY OBJECTCLAS OBJECTID CHANGENR.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " F_GET_CHANGED_DOCS&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  F_GET_EKPO&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;      Fetch Purchasing Document Item Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_GET_EKPO .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Fetch Purchasing Document Item Details&lt;/P&gt;&lt;P&gt;  SELECT A~EBELN&lt;/P&gt;&lt;P&gt;         B~EBELP&lt;/P&gt;&lt;P&gt;         A~WAERS&lt;/P&gt;&lt;P&gt;         B~MENGE&lt;/P&gt;&lt;P&gt;         B~MEINS&lt;/P&gt;&lt;P&gt;         B~NETPR&lt;/P&gt;&lt;P&gt;         B~PEINH&lt;/P&gt;&lt;P&gt;         B~mwskz&lt;/P&gt;&lt;P&gt;         B~TXJCD&lt;/P&gt;&lt;P&gt;  INTO TABLE IT_EKPO&lt;/P&gt;&lt;P&gt;  FROM ( EKKO AS A&lt;/P&gt;&lt;P&gt;  INNER JOIN EKPO AS B ON A&lt;SUB&gt;EBELN = B&lt;/SUB&gt;EBELN )&lt;/P&gt;&lt;P&gt;  FOR ALL ENTRIES IN IT_PO&lt;/P&gt;&lt;P&gt;  WHERE A~EBELN = IT_PO-VBELN&lt;/P&gt;&lt;P&gt;    AND B~EBELP = IT_PO-POSNN+1(5).&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    SORT IT_EKPO BY EBELN EBELP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " F_GET_EKPO&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  F_GET_VENDOR&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;      Fetch MIRO Vendor details based on the PO Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_GET_VENDOR .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;DATA: LV_TABIX TYPE SY-TABIX.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Fetch History per Purchasing Document records for all the PO records&lt;/P&gt;&lt;P&gt;  SELECT EBELN&lt;/P&gt;&lt;P&gt;         EBELP&lt;/P&gt;&lt;P&gt;         ZEKKN&lt;/P&gt;&lt;P&gt;         VGABE&lt;/P&gt;&lt;P&gt;         GJAHR&lt;/P&gt;&lt;P&gt;         BELNR&lt;/P&gt;&lt;P&gt;         BUZEI&lt;/P&gt;&lt;P&gt;  FROM EKBE&lt;/P&gt;&lt;P&gt;  INTO TABLE IT_EKBE&lt;/P&gt;&lt;P&gt;  FOR ALL ENTRIES IN IT_EKPO&lt;/P&gt;&lt;P&gt;  WHERE EBELN = IT_EKPO-EBELN&lt;/P&gt;&lt;P&gt;    AND EBELP = IT_EKPO-EBELP&lt;/P&gt;&lt;P&gt;    AND VGABE = '2'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   and STBLG = space.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    SORT IT_EKBE BY BELNR GJAHR.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Fetch the vendor details based on table IT_EKBE internal table&lt;/P&gt;&lt;P&gt;    SELECT BELNR&lt;/P&gt;&lt;P&gt;           GJAHR&lt;/P&gt;&lt;P&gt;           BLDAT&lt;/P&gt;&lt;P&gt;           BUDAT&lt;/P&gt;&lt;P&gt;           XBLNR&lt;/P&gt;&lt;P&gt;           LIFNR&lt;/P&gt;&lt;P&gt;           RMWWR&lt;/P&gt;&lt;P&gt;           WMWST1&lt;/P&gt;&lt;P&gt;           XRECH&lt;/P&gt;&lt;P&gt;           STBLG&lt;/P&gt;&lt;P&gt;    FROM RBKP&lt;/P&gt;&lt;P&gt;    INTO TABLE IT_RBKP&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN IT_EKBE&lt;/P&gt;&lt;P&gt;    WHERE BELNR = IT_EKBE-BELNR&lt;/P&gt;&lt;P&gt;      AND GJAHR = IT_EKBE-GJAHR.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      SORT IT_RBKP BY BELNR GJAHR.&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;*-- Sort PO History documents based on PO # and PO Item&lt;/P&gt;&lt;P&gt;  SORT IT_EKBE BY EBELN EBELP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Copy the PO History documents into IT_EKBE_TEMP internal table&lt;/P&gt;&lt;P&gt;  IT_EKBE_TEMP[] = IT_EKBE[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Delete PO History documents from IT_EKBE_TEMP internal table&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  comparing with IT_RBKP where (STBLG) Reversal document number&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  is initial&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT IT_EKBE_TEMP INTO WA_EKBE_TEMP.&lt;/P&gt;&lt;P&gt;    LV_TABIX = SY-TABIX.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_RBKP INTO WA_RBKP WITH KEY BELNR = WA_EKBE_TEMP-BELNR&lt;/P&gt;&lt;P&gt;                                             GJAHR = WA_EKBE_TEMP-GJAHR&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                            XRECH = SPACE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                                             STBLG = SPACE.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      DELETE IT_EKBE_TEMP INDEX LV_TABIX.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLEAR: WA_EKBE_TEMP, WA_RBKP.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " F_GET_VENDOR&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  F_PROCESS_MIRO&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;      Process MIRO&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 F_PROCESS_MIRO .&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    lv_itemno         TYPE i,&lt;/P&gt;&lt;P&gt;    lv_tabix          type sy-index,&lt;/P&gt;&lt;P&gt;    lc_check(1)       TYPE c VALUE 'X',&lt;/P&gt;&lt;P&gt;    V_FILL_ITEM,&lt;/P&gt;&lt;P&gt;    lv_rbkp_bldat type sy-datum.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  clear : it_itemdata, it_accountingdata, IT_CRMEMO_MIRO, IT_CRMEMO_MR8M.&lt;/P&gt;&lt;P&gt;  refresh : it_itemdata, it_accountingdata, IT_CRMEMO_MIRO, IT_CRMEMO_MR8M.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Copy all the CR Memo Docs and delete order reason not in S_AUGRU&lt;/P&gt;&lt;P&gt;  IT_CRMEMO_MR8M[] = IT_CRMEMO[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Delete Reversal postings which are not in S_AUGRU&lt;/P&gt;&lt;P&gt;  DELETE IT_CRMEMO_MR8M WHERE AUGRU IN S_AUGRU.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Delete Reversal postings where AEDAT is initial&lt;/P&gt;&lt;P&gt;  DELETE IT_CRMEMO_MR8M where aedat is initial.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Delete order reason which are not in S_AUGRU&lt;/P&gt;&lt;P&gt;  DELETE IT_CRMEMO WHERE AUGRU NOT IN S_AUGRU.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Loop through the credit memo request records&lt;/P&gt;&lt;P&gt;  LOOP AT IT_CRMEMO INTO WA_CRMEMO.&lt;/P&gt;&lt;P&gt;    lv_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- If credit memo request change date is not initial then&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  send change date (AEDAT) to lv_rbkp_bldat&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if not WA_CRMEMO-aedat is initial.&lt;/P&gt;&lt;P&gt;      lv_rbkp_bldat =  WA_CRMEMO-aedat.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;*-- If credit memo request change date is initial then&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  send create date (ERDAT) to lv_rbkp_bldat&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      lv_rbkp_bldat =  WA_CRMEMO-erdat.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    READ TABLE IT_ORDERS INTO WA_ORDERS WITH KEY VBELN = WA_CRMEMO-VBELN&lt;/P&gt;&lt;P&gt;                                                 POSNN = WA_CRMEMO-POSNR.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      READ TABLE IT_PO INTO WA_PO WITH KEY VBELV = WA_ORDERS-VBELV&lt;/P&gt;&lt;P&gt;                                           POSNV = WA_ORDERS-POSNV.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;        READ TABLE IT_EKPO INTO WA_EKPO WITH KEY EBELN = WA_PO-VBELN&lt;/P&gt;&lt;P&gt;                                                 EBELP = WA_PO-POSNN.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;*-- Read IT_EKBE_TEMP internal table which contains records which are not reversed&lt;/P&gt;&lt;P&gt;          READ TABLE IT_EKBE_TEMP INTO WA_EKBE_TEMP WITH KEY EBELN = WA_EKPO-EBELN&lt;/P&gt;&lt;P&gt;                                                             EBELP = WA_EKPO-EBELP.&lt;/P&gt;&lt;P&gt;          IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;*-- Read IT_RBKP internal table with XRECH (Indicator: post invoice) = 'X' ,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  check for invoice records for the correspnding CR Memo records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            READ TABLE IT_RBKP INTO WA_RBKP WITH KEY BELNR = WA_EKBE_TEMP-BELNR&lt;/P&gt;&lt;P&gt;                                                     GJAHR = WA_EKBE_TEMP-GJAHR&lt;/P&gt;&lt;P&gt;                                                     XRECH = C_X.&lt;/P&gt;&lt;P&gt;            IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;*-- Read IT_RBKP internal table with XRECH (Indicator: post invoice) = SPACE,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  and document date = CR Memo creation date&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  and reference document number = PO number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              READ TABLE IT_RBKP INTO WA_RBKP_TMP WITH KEY BELNR = WA_EKBE_TEMP-BELNR&lt;/P&gt;&lt;P&gt;                                                           GJAHR = WA_EKBE_TEMP-GJAHR&lt;/P&gt;&lt;P&gt;                                                           BLDAT = WA_CRMEMO-ERDAT&lt;/P&gt;&lt;P&gt;                                                           XRECH = ' '&lt;/P&gt;&lt;P&gt;                                                           XBLNR+0(10) = WA_EKBE_TEMP-ebeln.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                                          STBLG = SPACE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;                CONTINUE.&lt;/P&gt;&lt;P&gt;              ELSE.&lt;/P&gt;&lt;P&gt;*-- Quantity Conversion (Get the Credit Memo Quantity by passing CMR unit per one PO unit)&lt;/P&gt;&lt;P&gt;                perform f_quantity_conv.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Filling the Line items data&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Incrementing the item no&lt;/P&gt;&lt;P&gt;                lv_itemno = lv_itemno + 1.&lt;/P&gt;&lt;P&gt;                v_itemno  = lv_itemno.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                it_itemdata-invoice_doc_item  = v_itemno.&lt;/P&gt;&lt;P&gt;                it_itemdata-po_number         = WA_ekPO-ebeln.&lt;/P&gt;&lt;P&gt;                it_itemdata-po_item           = WA_EKPO-EBELP.&lt;/P&gt;&lt;P&gt;                it_itemdata-tax_code          = WA_ekpo-mwskz.&lt;/P&gt;&lt;P&gt;                it_itemdata-TAXJURCODE        = WA_ekpo-TXJCD.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Converting SAP amount to BAPI format by passing line item amount and currency&lt;/P&gt;&lt;P&gt;                PERFORM f_currency_amount_sap_to_bapi USING    WA_EKPO-waers&lt;/P&gt;&lt;P&gt;                                                               V_LINE_AMOUNT&lt;/P&gt;&lt;P&gt;                                                      CHANGING it_itemdata-item_amount .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                it_itemdata-quantity          = ( WA_CRMEMO-ZMENG * V_CRMEMO_QTY ).&lt;/P&gt;&lt;P&gt;                it_itemdata-po_unit           = WA_EKPO-MEINS.&lt;/P&gt;&lt;P&gt;                APPEND it_itemdata.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Populate Account Assignment data&lt;/P&gt;&lt;P&gt;                IT_ACCOUNTINGDATA-INVOICE_DOC_ITEM = v_itemno.&lt;/P&gt;&lt;P&gt;                IT_ACCOUNTINGDATA-XUNPL       = space.&lt;/P&gt;&lt;P&gt;                IT_ACCOUNTINGDATA-SERIAL_NO   = C_01.&lt;/P&gt;&lt;P&gt;                IT_ACCOUNTINGDATA-TAX_CODE    = it_itemdata-tax_code.&lt;/P&gt;&lt;P&gt;                IT_ACCOUNTINGDATA-TAXJURCODE  = it_itemdata-TAXJURCODE.&lt;/P&gt;&lt;P&gt;                IT_ACCOUNTINGDATA-ITEM_AMOUNT = it_itemdata-item_amount.&lt;/P&gt;&lt;P&gt;                IT_ACCOUNTINGDATA-QUANTITY    = it_itemdata-quantity.&lt;/P&gt;&lt;P&gt;                IT_ACCOUNTINGDATA-PO_UNIT     = it_itemdata-po_unit.&lt;/P&gt;&lt;P&gt;                IT_ACCOUNTINGDATA-GL_ACCOUNT  = C_0000500205.&lt;/P&gt;&lt;P&gt;                append IT_ACCOUNTINGDATA.&lt;/P&gt;&lt;P&gt;                clear IT_ACCOUNTINGDATA.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                CLEAR it_itemdata.&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;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;*-- At end of each credit memo request fill the header details of BAPI FM and&lt;/P&gt;&lt;P&gt;*-- post the BAPI&lt;/P&gt;&lt;P&gt;    AT END OF VBELN.&lt;/P&gt;&lt;P&gt;      read table it_crmemo into wa_crmemo index lv_tabix.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Populate the document Header&lt;/P&gt;&lt;P&gt;*-- Getting the header data for invoice&lt;/P&gt;&lt;P&gt;      x_docheader-invoice_ind  = space.&lt;/P&gt;&lt;P&gt;      x_docheader-doc_type     = c_blart.&lt;/P&gt;&lt;P&gt;      x_docheader-doc_date     = lv_rbkp_bldat.&lt;/P&gt;&lt;P&gt;      x_docheader-pstng_date   = lv_rbkp_bldat.&lt;/P&gt;&lt;P&gt;      x_docheader-ref_doc_no   = WA_RBKP-XBLNR.&lt;/P&gt;&lt;P&gt;      x_docheader-comp_code    = WA_CRMEMO-BUKRS_VF.&lt;/P&gt;&lt;P&gt;      x_docheader-CURRENCY     = WA_CRMEMO-WAERK.&lt;/P&gt;&lt;P&gt;      x_docheader-calc_tax_ind = lc_check.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Logic to find the Tax %&lt;/P&gt;&lt;P&gt;      v_tax_per = ( WA_RBKP-WMWST1 / ( WA_RBKP-RMWWR - WA_RBKP-WMWST1 ) ) * 100.&lt;/P&gt;&lt;P&gt;      v_tax_amt = ( V_GROSSAMT *  v_tax_per ) / 100.&lt;/P&gt;&lt;P&gt;      V_GROSSAMT =  ( V_GROSSAMT + v_tax_amt ).&lt;/P&gt;&lt;P&gt;      x_docheader-gross_amount = V_GROSSAMT.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      CLEAR:v_docnr, v_year1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Calling BAPI to create PO invoice document&lt;/P&gt;&lt;P&gt;      CHECK NOT IT_ITEMDATA[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'BAPI_INCOMINGINVOICE_CREATE'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          headerdata       = x_docheader&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          invoicedocnumber = v_docnr&lt;/P&gt;&lt;P&gt;          fiscalyear       = v_year1&lt;/P&gt;&lt;P&gt;        TABLES&lt;/P&gt;&lt;P&gt;          itemdata         = it_itemdata[]&lt;/P&gt;&lt;P&gt;          ACCOUNTingDATA    = it_ACCOUNTingDATA[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         GLACCOUNTDATA    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         taxdata          =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          return           = it_return.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Commit work&lt;/P&gt;&lt;P&gt;      IF NOT v_docnr IS INITIAL.&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;*-- Move the data to Success Internal Table&lt;/P&gt;&lt;P&gt;        wa_success-crmemo  = wa_crmemo-vbeln.&lt;/P&gt;&lt;P&gt;        wa_success-cmemo   = wa_cmemo-vbeln.&lt;/P&gt;&lt;P&gt;        wa_success-orders  = wa_orders-vbelv.&lt;/P&gt;&lt;P&gt;        wa_success-po      = wa_po-vbeln.&lt;/P&gt;&lt;P&gt;        wa_success-miro_no = v_docnr.&lt;/P&gt;&lt;P&gt;        wa_success-text    = 'MIRO is Posted'.&lt;/P&gt;&lt;P&gt;        append wa_success TO it_success.&lt;/P&gt;&lt;P&gt;        clear wa_success.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;*--   Read the values in the table IT_RETURN.&lt;/P&gt;&lt;P&gt;      CLEAR it_return.&lt;/P&gt;&lt;P&gt;      READ TABLE it_return INDEX 1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  If message type is error then roll back the work&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF it_return-type = C_E.&lt;/P&gt;&lt;P&gt;*-- Roll back&lt;/P&gt;&lt;P&gt;        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Move the data to Error Internal Table&lt;/P&gt;&lt;P&gt;        wa_error-crmemo = wa_crmemo-vbeln.&lt;/P&gt;&lt;P&gt;        wa_error-cmemo  = wa_cmemo-vbeln.&lt;/P&gt;&lt;P&gt;        wa_error-orders = wa_orders-vbelv.&lt;/P&gt;&lt;P&gt;        wa_error-po     = wa_po-vbeln.&lt;/P&gt;&lt;P&gt;        wa_error-text   = it_return-MESSAGE.&lt;/P&gt;&lt;P&gt;        append wa_error TO it_error.&lt;/P&gt;&lt;P&gt;        clear wa_error.&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;      refresh: it_return, it_itemdata, it_accountingdata.&lt;/P&gt;&lt;P&gt;      clear: V_GROSSAMT, it_return, it_itemdata, wa_crmemo, wa_orders, wa_po,&lt;/P&gt;&lt;P&gt;             wa_ekpo, WA_EKBE_TEMP, wa_rbkp, wa_rbkp_tmp, v_docnr, v_year1, WA_SUCCESS,&lt;/P&gt;&lt;P&gt;             WA_ERROR, it_accountingdata, v_tax_per, v_tax_amt, V_FILL_ITEM, lv_rbkp_bldat.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " F_PROCESS_MIRO&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  f_quantity_conv&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;      Quantity Conversion&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 f_quantity_conv .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Quantity Conversion (Get the Credit Memo Quantity by passing CMR unit per one PO unit)&lt;/P&gt;&lt;P&gt;  CLEAR: V_LINE_AMOUNT, V_CRMEMO_QTY.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  call function 'MC_UNIT_CONVERSION'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      MATNR                = WA_CRMEMO-MATNR&lt;/P&gt;&lt;P&gt;      nach_meins           = WA_EKPO-MEINS&lt;/P&gt;&lt;P&gt;      von_meins            = WA_CRMEMO-ZIEME&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      UMREF                = V_CRMEMO_QTY&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      CONVERSION_NOT_FOUND = 1&lt;/P&gt;&lt;P&gt;      MATERIAL_NOT_FOUND   = 2&lt;/P&gt;&lt;P&gt;      NACH_MEINS_MISSING   = 3&lt;/P&gt;&lt;P&gt;      OVERFLOW             = 4&lt;/P&gt;&lt;P&gt;      VON_MEINS_MISSING    = 5&lt;/P&gt;&lt;P&gt;      OTHERS               = 6.&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;  ELSE.&lt;/P&gt;&lt;P&gt;    V_LINE_AMOUNT = ( V_CRMEMO_QTY  * WA_CRMEMO-ZMENG * WA_EKPO-peinh * WA_EKPO-NETPR ).&lt;/P&gt;&lt;P&gt;    V_GROSSAMT    = V_GROSSAMT + V_LINE_AMOUNT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_quantity_conv&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  f_currency_amount_sap_to_bapi&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      SAP Amount to BAPI Amount&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 f_currency_amount_sap_to_bapi  USING    p_waers&lt;/P&gt;&lt;P&gt;                                             p_kbetr&lt;/P&gt;&lt;P&gt;                                    CHANGING p_amt_doccur.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DATA : lv_waers LIKE  tcurc-waers,&lt;/P&gt;&lt;P&gt;         lv_sapamount LIKE bapicurr-bapicurr,&lt;/P&gt;&lt;P&gt;         lv_bapi_amount LIKE bapicurr-bapicurr.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  lv_waers = p_waers.&lt;/P&gt;&lt;P&gt;  lv_sapamount = p_kbetr.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'CURRENCY_AMOUNT_SAP_TO_BAPI'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      currency    = lv_waers&lt;/P&gt;&lt;P&gt;      sap_amount  = lv_sapamount&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      bapi_amount = lv_bapi_amount.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  p_amt_doccur = lv_bapi_amount.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_currency_amount_sap_to_bapi&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  f_display_report&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Display Report&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 f_display_report .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Success Report&lt;/P&gt;&lt;P&gt;  IF NOT IT_SUCCESS[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    ULINE AT /1(129).&lt;/P&gt;&lt;P&gt;    WRITE:/1 sy-vline, 'CR Memo',&lt;/P&gt;&lt;P&gt;           19 sy-vline, 'Credit Memo',&lt;/P&gt;&lt;P&gt;           39 sy-vline, 'Sales Order',&lt;/P&gt;&lt;P&gt;           59 sy-vline, 'Purchase Order',&lt;/P&gt;&lt;P&gt;           79 sy-vline, 'MIRO Number',&lt;/P&gt;&lt;P&gt;           99 sy-vline, 'Text',&lt;/P&gt;&lt;P&gt;           129 sy-vline.&lt;/P&gt;&lt;P&gt;    ULINE AT /1(129).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    LOOP AT it_success into wa_success.&lt;/P&gt;&lt;P&gt;      WRITE:/1 sy-vline, wa_success-crmemo,&lt;/P&gt;&lt;P&gt;             19 sy-vline, wa_success-cmemo,&lt;/P&gt;&lt;P&gt;             39 sy-vline, wa_success-orders,&lt;/P&gt;&lt;P&gt;             59 sy-vline, wa_success-po,&lt;/P&gt;&lt;P&gt;             79 sy-vline, wa_success-miro_no,&lt;/P&gt;&lt;P&gt;             99 sy-vline, wa_success-text,&lt;/P&gt;&lt;P&gt;             129 sy-vline.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    ULINE AT /1(129).&lt;/P&gt;&lt;P&gt;    SKIP 2.&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;*-- Error Report&lt;/P&gt;&lt;P&gt;  IF NOT IT_ERROR[] IS INITIAL.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    ULINE AT /1(179).&lt;/P&gt;&lt;P&gt;    WRITE:/1 sy-vline,  'CR Memo',&lt;/P&gt;&lt;P&gt;           19 sy-vline, 'Credit Memo',&lt;/P&gt;&lt;P&gt;           39 sy-vline, 'Sales Order',&lt;/P&gt;&lt;P&gt;           59 sy-vline, 'Purchase Order',&lt;/P&gt;&lt;P&gt;           79 sy-vline, 'Error Text',&lt;/P&gt;&lt;P&gt;           179 sy-vline.&lt;/P&gt;&lt;P&gt;    ULINE AT /1(179).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    LOOP AT IT_ERROR into WA_ERROR.&lt;/P&gt;&lt;P&gt;      WRITE:/1 sy-vline, WA_ERROR-crmemo,&lt;/P&gt;&lt;P&gt;             19 sy-vline, WA_ERROR-cmemo,&lt;/P&gt;&lt;P&gt;             39 sy-vline, WA_ERROR-orders,&lt;/P&gt;&lt;P&gt;             59 sy-vline, WA_ERROR-po,&lt;/P&gt;&lt;P&gt;             79 sy-vline, WA_ERROR-text,&lt;/P&gt;&lt;P&gt;             179 sy-vline.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    ULINE AT /1(179).&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; &lt;/P&gt;&lt;P&gt;  IF NOT IT_SUCCESS_MR8M[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    ULINE AT /1(129).&lt;/P&gt;&lt;P&gt;    WRITE:/1 sy-vline, 'CR Memo',&lt;/P&gt;&lt;P&gt;           19 sy-vline, 'Credit Memo',&lt;/P&gt;&lt;P&gt;           39 sy-vline, 'Sales Order',&lt;/P&gt;&lt;P&gt;           59 sy-vline, 'Purchase Order',&lt;/P&gt;&lt;P&gt;           79 sy-vline, 'Reversal Posting No.',&lt;/P&gt;&lt;P&gt;           99 sy-vline, 'Text',&lt;/P&gt;&lt;P&gt;           129 sy-vline.&lt;/P&gt;&lt;P&gt;    ULINE AT /1(129).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    LOOP AT it_success_mr8m into wa_success_mr8m.&lt;/P&gt;&lt;P&gt;      WRITE:/1 sy-vline, wa_success_mr8m-crmemo,&lt;/P&gt;&lt;P&gt;             19 sy-vline, wa_success_mr8m-cmemo,&lt;/P&gt;&lt;P&gt;             39 sy-vline, wa_success_mr8m-orders,&lt;/P&gt;&lt;P&gt;             59 sy-vline, wa_success_mr8m-po,&lt;/P&gt;&lt;P&gt;             79 sy-vline, wa_success_mr8m-miro_no,&lt;/P&gt;&lt;P&gt;             99 sy-vline, wa_success_mr8m-text,&lt;/P&gt;&lt;P&gt;             129 sy-vline.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    ULINE AT /1(129).&lt;/P&gt;&lt;P&gt;    SKIP 2.&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;*-- Error Report&lt;/P&gt;&lt;P&gt;  IF NOT IT_ERROR_MR8M[] IS INITIAL.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    ULINE AT /1(179).&lt;/P&gt;&lt;P&gt;    WRITE:/1 sy-vline,  'CR Memo',&lt;/P&gt;&lt;P&gt;           19 sy-vline, 'Credit Memo',&lt;/P&gt;&lt;P&gt;           39 sy-vline, 'Sales Order',&lt;/P&gt;&lt;P&gt;           59 sy-vline, 'Purchase Order',&lt;/P&gt;&lt;P&gt;           79 sy-vline, 'Error Text',&lt;/P&gt;&lt;P&gt;           179 sy-vline.&lt;/P&gt;&lt;P&gt;    ULINE AT /1(179).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    LOOP AT IT_ERROR_MR8M into WA_ERROR_MR8M.&lt;/P&gt;&lt;P&gt;      WRITE:/1 sy-vline, WA_ERROR_MR8M-crmemo,&lt;/P&gt;&lt;P&gt;             19 sy-vline, WA_ERROR_MR8M-cmemo,&lt;/P&gt;&lt;P&gt;             39 sy-vline, WA_ERROR_MR8M-orders,&lt;/P&gt;&lt;P&gt;             59 sy-vline, WA_ERROR_MR8M-po,&lt;/P&gt;&lt;P&gt;             79 sy-vline, WA_ERROR_MR8M-text,&lt;/P&gt;&lt;P&gt;             179 sy-vline.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    ULINE AT /1(179).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_display_report&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  F_PROCESS_MR8M&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;      Process Reversal postings&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 F_PROCESS_MR8M .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  clear: wa_CRMEMO_MR8M.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LOOP AT IT_CRMEMO_MR8M into WA_CRMEMO_MR8M.&lt;/P&gt;&lt;P&gt;   read table it_cdpos into wa_cdpos with key OBJECTID = WA_CRMEMO_MR8M-VBELN.&lt;/P&gt;&lt;P&gt;   if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;     CONTINUE.&lt;/P&gt;&lt;P&gt;   ELSE.&lt;/P&gt;&lt;P&gt;   if wa_cdpos-value_old in s_augru.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_ORDERS INTO WA_ORDERS WITH KEY VBELN = wa_CRMEMO_MR8M-VBELN&lt;/P&gt;&lt;P&gt;                                                 POSNN = wa_CRMEMO_MR8M-POSNR.&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 TABLE IT_CMEMO INTO WA_CMEMO WITH KEY VBELV = WA_ORDERS-VBELV&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                                POSNV = WA_ORDERS-POSNV.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF SY-SUBRC = 0.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        READ TABLE IT_PO INTO WA_PO WITH KEY VBELV = WA_ORDERS-VBELV&lt;/P&gt;&lt;P&gt;                                             POSNV = WA_ORDERS-POSNV.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;          READ TABLE IT_EKPO INTO WA_EKPO WITH KEY EBELN = WA_PO-VBELN&lt;/P&gt;&lt;P&gt;                                                   EBELP = WA_PO-POSNN.&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 TABLE IT_EKBE INTO WA_EKBE WITH KEY EBELN = WA_EKPO-EBELN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                                  EBELP = WA_EKPO-EBELP.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         IF SY-SUBRC = 0.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            LOOP AT IT_EKBE into WA_EKBE WHERE EBELN = WA_EKPO-EBELN&lt;/P&gt;&lt;P&gt;                                         AND   EBELP = WA_EKPO-EBELP.&lt;/P&gt;&lt;P&gt;              READ TABLE IT_RBKP INTO WA_RBKP WITH KEY BELNR = WA_EKBE-BELNR&lt;/P&gt;&lt;P&gt;                                                       GJAHR = WA_EKBE-GJAHR&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                                    BLDAT = WA_CRMEMO_MR8M-AEDAT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                                                       XBLNR+0(10) = WA_EKBE-EBELN&lt;/P&gt;&lt;P&gt;                                                       XRECH = SPACE&lt;/P&gt;&lt;P&gt;                                                       STBLG = SPACE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;              IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;                move: WA_RBKP-BELNR   TO X_REV_POST-INV_DOC_NO,&lt;/P&gt;&lt;P&gt;                      WA_RBKP-GJAHR   TO X_REV_POST-FISC_YEAR,&lt;/P&gt;&lt;P&gt;                      WA_RBKP-BUDAT   TO X_REV_POST-PSTNG_DATE.&lt;/P&gt;&lt;P&gt;                IF WA_RBKP-BUDAT&lt;EM&gt;4(2) = SY-DATUM&lt;/EM&gt;4(2).&lt;/P&gt;&lt;P&gt;                  X_REV_POST-REASON_REV = C_01.&lt;/P&gt;&lt;P&gt;                ELSE.&lt;/P&gt;&lt;P&gt;                  X_REV_POST-REASON_REV = C_02.&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;*-- Call the FM for MIRO reversal&lt;/P&gt;&lt;P&gt;              CALL FUNCTION 'BAPI_INCOMINGINVOICE_CANCEL'&lt;/P&gt;&lt;P&gt;              EXPORTING&lt;/P&gt;&lt;P&gt;                INVOICEDOCNUMBER          = X_REV_POST-INV_DOC_NO&lt;/P&gt;&lt;P&gt;                FISCALYEAR                = X_REV_POST-FISC_YEAR&lt;/P&gt;&lt;P&gt;                REASONREVERSAL            = X_REV_POST-REASON_REV&lt;/P&gt;&lt;P&gt;                POSTINGDATE               = X_REV_POST-PSTNG_DATE&lt;/P&gt;&lt;P&gt;              IMPORTING&lt;/P&gt;&lt;P&gt;                INVOICEDOCNUMBER_REVERSAL = X_REV_POST-INV_DOC_NO&lt;/P&gt;&lt;P&gt;                FISCALYEAR_REVERSAL       = X_REV_POST-FISC_YEAR&lt;/P&gt;&lt;P&gt;              TABLES&lt;/P&gt;&lt;P&gt;                RETURN                    = it_return_mr8m.&lt;/P&gt;&lt;P&gt;*-- Commit work&lt;/P&gt;&lt;P&gt;            IF NOT X_REV_POST-INV_DOC_NO IS INITIAL.&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;*-- Move the data to Success Internal Table&lt;/P&gt;&lt;P&gt;              wa_success_mr8m-crmemo  = wa_crmemo-vbeln.&lt;/P&gt;&lt;P&gt;              wa_success_mr8m-cmemo   = wa_cmemo-vbeln.&lt;/P&gt;&lt;P&gt;              wa_success_mr8m-orders  = wa_orders-vbelv.&lt;/P&gt;&lt;P&gt;              wa_success_mr8m-po      = wa_po-vbeln.&lt;/P&gt;&lt;P&gt;              wa_success_mr8m-text    = 'MR8M Done'.&lt;/P&gt;&lt;P&gt;              append wa_success_mr8m TO it_success_mr8m.&lt;/P&gt;&lt;P&gt;              clear wa_success_mr8m.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;*-- Read the values in the table IT_RETURN.&lt;/P&gt;&lt;P&gt;            CLEAR it_return_mr8m.&lt;/P&gt;&lt;P&gt;            READ TABLE it_return_mr8m INDEX 1.&lt;/P&gt;&lt;P&gt;*-- If message type is error then roll back the work&lt;/P&gt;&lt;P&gt;            IF it_return_mr8m-type = 'E' .&lt;/P&gt;&lt;P&gt;*-- Roll back&lt;/P&gt;&lt;P&gt;              CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.&lt;/P&gt;&lt;P&gt;*-- Move the data to Error Internal Table&lt;/P&gt;&lt;P&gt;              wa_error_mr8m-crmemo = wa_crmemo-vbeln.&lt;/P&gt;&lt;P&gt;              wa_error_mr8m-cmemo  = wa_cmemo-vbeln.&lt;/P&gt;&lt;P&gt;              wa_error_mr8m-orders = wa_orders-vbelv.&lt;/P&gt;&lt;P&gt;              wa_error_mr8m-po     = wa_po-vbeln.&lt;/P&gt;&lt;P&gt;              wa_error_mr8m-text   = it_return_mr8m-MESSAGE.&lt;/P&gt;&lt;P&gt;              append wa_error_mr8m TO it_error_mr8m.&lt;/P&gt;&lt;P&gt;              clear wa_error_mr8m.&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;           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;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&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;    ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLEAR: wa_error_mr8m, wa_SUCCESS_mr8m, X_REV_POST, wa_CRMEMO_MR8M,&lt;/P&gt;&lt;P&gt;           wa_orders, wa_po, wa_ekpo, wa_ekbe, wa_rbkp, wa_cmemo.&lt;/P&gt;&lt;P&gt;    REFRESH: IT_RETURN_MR8M.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " F_PROCESS_MR8M&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  F_spool_id&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;      Create a new spool ID&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 F_spool_id .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Create a new spool from the data in data_tab&lt;/P&gt;&lt;P&gt;*--  new-page line-size sy-linsz print on&lt;/P&gt;&lt;P&gt;  new-page line-size 255 print on&lt;/P&gt;&lt;P&gt;  destination 'LOCL'(p19) "&amp;lt;&amp;lt;== my printer&lt;/P&gt;&lt;P&gt;*-- receiver 'TJOSVOB'&lt;/P&gt;&lt;P&gt;  cover text 'Spool title'(p20) " &amp;lt;&amp;lt;== Title or Spool req. name&lt;/P&gt;&lt;P&gt;  list name 'List name'(p21)&lt;/P&gt;&lt;P&gt;  list dataset 'List Dataset'(p22)&lt;/P&gt;&lt;P&gt;  immediately ' '                  " X means print now&lt;/P&gt;&lt;P&gt;  keep in spool c_x                " X means keep spool&lt;/P&gt;&lt;P&gt;  new list identification c_x&lt;/P&gt;&lt;P&gt;  no dialog .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Writing Report&lt;/P&gt;&lt;P&gt;*-- In this  perform you will write the code for displaying the list&lt;/P&gt;&lt;P&gt;  perform f_display_report.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--  new-page print off&lt;/P&gt;&lt;P&gt;  new-page print off.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " F_spool_id&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  F_MAIL_LOGIC&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;      Logic to send a mail for the given Email ID's&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 F_MAIL_LOGIC .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  data : wa_tsp01sys type tsp01sys.&lt;/P&gt;&lt;P&gt;  clear v_spono.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  v_spono = sy-spono.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; v_attach_desc = sy-title.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*-- Convert the Spool ID into PDF format&lt;/P&gt;&lt;P&gt;  perform f_pdf_conversion tables it_compressed_list&lt;/P&gt;&lt;P&gt;                                  it_pdf_list&lt;/P&gt;&lt;P&gt;                                  using  v_spono.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Send the Mail in PDF Format&lt;/P&gt;&lt;P&gt;  perform f_send_mail.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " F_MAIL_LOGIC&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  f_pdf_conversion&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;      Read the spool and convert into PDF format&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_ITAB_COMPRESSED_LIST  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_ITAB_PDF_LIST  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_V_SPONO  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_pdf_conversion  TABLES   it_compressed_list structure soli&lt;/P&gt;&lt;P&gt;                                it_pdf_list structure tline&lt;/P&gt;&lt;P&gt;                       using    lv_spooln type tsp01-rqident.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;clear: it_compressed_list, it_pdf_list.&lt;/P&gt;&lt;P&gt;refresh: it_compressed_list, it_pdf_list.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Call the FM "RSPO_RETURN_SPOOLJOB" to read the spool by passing the spool number&lt;/P&gt;&lt;P&gt;  call function 'RSPO_RETURN_SPOOLJOB'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            rqident              = lv_spooln&lt;/P&gt;&lt;P&gt;            desired_type         = v_type&lt;/P&gt;&lt;P&gt;       importing&lt;/P&gt;&lt;P&gt;            real_type            = v_type&lt;/P&gt;&lt;P&gt;       tables&lt;/P&gt;&lt;P&gt;            buffer               = it_compressed_list&lt;/P&gt;&lt;P&gt;            buffer_pdf           = it_pdf_list&lt;/P&gt;&lt;P&gt;       exceptions&lt;/P&gt;&lt;P&gt;            no_such_job          = 1&lt;/P&gt;&lt;P&gt;            job_contains_no_data = 2&lt;/P&gt;&lt;P&gt;            selection_empty      = 3&lt;/P&gt;&lt;P&gt;            no_permission        = 4&lt;/P&gt;&lt;P&gt;            can_not_access       = 5&lt;/P&gt;&lt;P&gt;            read_error           = 6&lt;/P&gt;&lt;P&gt;            type_no_match        = 7&lt;/P&gt;&lt;P&gt;            others               = 8.&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    message I000 with 'Error in spool reading'(017).&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- If the List type is ALI call the FM "CONVERT_ABAPSPOOLJOB_2_PDF"&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  to convert list into PDF Format&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if  v_type = c_ali.                          " for List it is ALI&lt;/P&gt;&lt;P&gt;    call function 'CONVERT_ABAPSPOOLJOB_2_PDF'&lt;/P&gt;&lt;P&gt;         exporting&lt;/P&gt;&lt;P&gt;              src_spoolid              = lv_spooln&lt;/P&gt;&lt;P&gt;         tables&lt;/P&gt;&lt;P&gt;              pdf                      = it_pdf&lt;/P&gt;&lt;P&gt;         exceptions&lt;/P&gt;&lt;P&gt;              err_no_abap_spooljob     = 1&lt;/P&gt;&lt;P&gt;              err_no_spooljob          = 2&lt;/P&gt;&lt;P&gt;              err_no_permission        = 3&lt;/P&gt;&lt;P&gt;              err_conv_not_possible    = 4&lt;/P&gt;&lt;P&gt;              err_bad_destdevice       = 5&lt;/P&gt;&lt;P&gt;              user_cancelled           = 6&lt;/P&gt;&lt;P&gt;              err_spoolerror           = 7&lt;/P&gt;&lt;P&gt;              err_temseerror           = 8&lt;/P&gt;&lt;P&gt;              err_btcjob_open_failed   = 9&lt;/P&gt;&lt;P&gt;              err_btcjob_submit_failed = 10&lt;/P&gt;&lt;P&gt;              err_btcjob_close_failed  = 11&lt;/P&gt;&lt;P&gt;              others                   = 12.&lt;/P&gt;&lt;P&gt;    if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      message e000&lt;/P&gt;&lt;P&gt;              with'Error in convertion of list into PDF format'(018).&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Logic to convert the given format into 255 character format in IT_PDF&lt;/P&gt;&lt;P&gt;    describe table it_pdf lines v_lines.&lt;/P&gt;&lt;P&gt;    describe field it_pdf length v_lineslen  IN character MODE.&lt;/P&gt;&lt;P&gt;    describe field it_temp length v_mimelen IN character MODE.&lt;/P&gt;&lt;P&gt;    LOOP AT it_pdf.&lt;/P&gt;&lt;P&gt;      v_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;      MOVE it_pdf TO v_temp+v_offset.&lt;/P&gt;&lt;P&gt;      IF v_tabix = v_lines.&lt;/P&gt;&lt;P&gt;        v_lineslen = strlen( it_pdf ).&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      v_offset = v_offset + v_lineslen.&lt;/P&gt;&lt;P&gt;      IF v_offset GE v_mimelen.&lt;/P&gt;&lt;P&gt;        CLEAR it_temp.&lt;/P&gt;&lt;P&gt;        it_temp = v_temp(v_mimelen).&lt;/P&gt;&lt;P&gt;        APPEND it_temp.&lt;/P&gt;&lt;P&gt;        SHIFT v_temp BY v_mimelen PLACES.&lt;/P&gt;&lt;P&gt;        v_offset = v_offset - v_mimelen.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      IF v_tabix = v_lines.&lt;/P&gt;&lt;P&gt;        IF v_offset GT 0.&lt;/P&gt;&lt;P&gt;          CLEAR it_temp.&lt;/P&gt;&lt;P&gt;          it_temp = v_temp(v_offset).&lt;/P&gt;&lt;P&gt;          APPEND it_temp.&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; &lt;/P&gt;&lt;P&gt;    LOOP AT it_temp.&lt;/P&gt;&lt;P&gt;      it_mime(255) = it_temp-line.&lt;/P&gt;&lt;P&gt;      APPEND it_mime.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Final Data to send to EMail&lt;/P&gt;&lt;P&gt;    it_html[] = it_mime[].&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_pdf_conversion&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  f_send_mail&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;      Send EMail Logic&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 f_send_mail .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;data : wa_tsp01sys type tsp01sys.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Populate Mail Id's&lt;/P&gt;&lt;P&gt;  WA_RECLIST-REC_TYPE = P_MODE.&lt;/P&gt;&lt;P&gt;  WA_RECLIST-EXPRESS  = C_X.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Loop through the Emial select options&lt;/P&gt;&lt;P&gt;  LOOP AT S_EMAIL INTO X_EMAIL.&lt;/P&gt;&lt;P&gt;    WA_RECLIST-RECEIVER = X_EMAIL-LOW.&lt;/P&gt;&lt;P&gt;*-- append receiver table&lt;/P&gt;&lt;P&gt;    APPEND WA_RECLIST TO IT_RECLIST.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- If receiver table is not initial&lt;/P&gt;&lt;P&gt;  CHECK IT_RECLIST[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;*--To check Mail ID's internal table should not be Empty.&lt;/P&gt;&lt;P&gt;*--populate document attributes&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Mail subject line&lt;/P&gt;&lt;P&gt;  CLEAR: X_DOC_CHNG.&lt;/P&gt;&lt;P&gt;  X_DOC_CHNG-OBJ_NAME = 'HEADING'.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'Automatic Vendor Dedit Postings'(005)&lt;/P&gt;&lt;P&gt;              SY-DATUM&lt;/P&gt;&lt;P&gt;              INTO X_DOC_CHNG-OBJ_DESCR SEPARATED BY SPACE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Mail body&lt;/P&gt;&lt;P&gt;  CONCATENATE 'Automatic Vendor Dedit Postings'(005)&lt;/P&gt;&lt;P&gt;             ' is attached.'(006)&lt;/P&gt;&lt;P&gt;             INTO WA_OBJTXT SEPARATED BY SPACE.&lt;/P&gt;&lt;P&gt;  APPEND WA_OBJTXT TO IT_OBJTXT.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Append Date and Time into Body of email.&lt;/P&gt;&lt;P&gt;  MOVE 'File is generated on'(007)&lt;/P&gt;&lt;P&gt;        TO V_INFO.&lt;/P&gt;&lt;P&gt;  V_TIME = SY-UZEIT.&lt;/P&gt;&lt;P&gt;  CONCATENATE V_TIME+0(2)&lt;/P&gt;&lt;P&gt;              V_TIME+2(2)&lt;/P&gt;&lt;P&gt;              V_TIME+4(2)&lt;/P&gt;&lt;P&gt;              INTO&lt;/P&gt;&lt;P&gt;              V_TIME2 SEPARATED BY ':'.&lt;/P&gt;&lt;P&gt;  CONCATENATE SY-DATUM+4(2)&lt;/P&gt;&lt;P&gt;              '/'&lt;/P&gt;&lt;P&gt;              SY-DATUM+6(2)&lt;/P&gt;&lt;P&gt;              '/'&lt;/P&gt;&lt;P&gt;              SY-DATUM+0(4)&lt;/P&gt;&lt;P&gt;              INTO V_DATE2.&lt;/P&gt;&lt;P&gt;  CONCATENATE V_INFO&lt;/P&gt;&lt;P&gt;              V_DATE2&lt;/P&gt;&lt;P&gt;              'At'&lt;/P&gt;&lt;P&gt;              V_TIME2&lt;/P&gt;&lt;P&gt;              INTO V_INFO&lt;/P&gt;&lt;P&gt;              SEPARATED BY SPACE.&lt;/P&gt;&lt;P&gt;  WA_OBJTXT = V_INFO.&lt;/P&gt;&lt;P&gt;  APPEND WA_OBJTXT TO IT_OBJTXT.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Document size&lt;/P&gt;&lt;P&gt;  CLEAR : V_TABLE_LINES.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE IT_OBJTXT LINES V_TABLE_LINES.&lt;/P&gt;&lt;P&gt;  READ TABLE IT_OBJTXT INTO WA_OBJTXT INDEX V_TABLE_LINES .&lt;/P&gt;&lt;P&gt;  X_DOC_CHNG-DOC_SIZE =&lt;/P&gt;&lt;P&gt;                 ( V_TABLE_LINES - 1 ) * 255 + STRLEN( WA_OBJTXT ).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Populate packing list for body text&lt;/P&gt;&lt;P&gt;  WA_OBJPACK-HEAD_START = 1.&lt;/P&gt;&lt;P&gt;  WA_OBJPACK-HEAD_NUM = 0.&lt;/P&gt;&lt;P&gt;  WA_OBJPACK-BODY_START = 1.&lt;/P&gt;&lt;P&gt;  WA_OBJPACK-BODY_NUM = V_TABLE_LINES.&lt;/P&gt;&lt;P&gt;  WA_OBJPACK-DOC_TYPE = 'RAW'.&lt;/P&gt;&lt;P&gt;  APPEND WA_OBJPACK TO IT_OBJPACK.&lt;/P&gt;&lt;P&gt;  CLEAR WA_OBJPACK.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  if v_type = c_ali.&lt;/P&gt;&lt;P&gt;    loop at it_html.&lt;/P&gt;&lt;P&gt;      wa_objbin-line = it_html-line.&lt;/P&gt;&lt;P&gt;    APPEND WA_OBJBIN TO IT_OBJBIN.&lt;/P&gt;&lt;P&gt;    CLEAR  WA_OBJBIN.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;    v_type = 'PDF'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Get total no.of lines of Object table(attachment)&lt;/P&gt;&lt;P&gt;  CLEAR : V_TABLE_LINES.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE IT_OBJBIN LINES V_TABLE_LINES.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Populate object header(attachment name)&lt;/P&gt;&lt;P&gt;  WA_OBJHEAD = 'Automatic Vendor Dedit Postings log'(014).&lt;/P&gt;&lt;P&gt;  APPEND WA_OBJHEAD TO IT_OBJHEAD.&lt;/P&gt;&lt;P&gt;  CLEAR  WA_OBJHEAD.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Packing list for attachment&lt;/P&gt;&lt;P&gt;  WA_OBJPACK-TRANSF_BIN = C_X.&lt;/P&gt;&lt;P&gt;  WA_OBJPACK-HEAD_START = 1.&lt;/P&gt;&lt;P&gt;  WA_OBJPACK-HEAD_NUM = 1.&lt;/P&gt;&lt;P&gt;  WA_OBJPACK-BODY_START = 1.&lt;/P&gt;&lt;P&gt;  WA_OBJPACK-BODY_NUM = V_TABLE_LINES .&lt;/P&gt;&lt;P&gt;  WA_OBJPACK-DOC_TYPE = v_type .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  WA_OBJPACK-OBJ_NAME = 'Auto_Debit'.&lt;/P&gt;&lt;P&gt;  WA_OBJPACK-OBJ_DESCR = 'attachment'.&lt;/P&gt;&lt;P&gt;  WA_OBJPACK-DOC_SIZE = V_TABLE_LINES * 255.&lt;/P&gt;&lt;P&gt;  APPEND WA_OBJPACK TO IT_OBJPACK.&lt;/P&gt;&lt;P&gt;  CLEAR  WA_OBJPACK.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Sending the EMail document in given format&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      DOCUMENT_DATA              = X_DOC_CHNG&lt;/P&gt;&lt;P&gt;      PUT_IN_OUTBOX              = C_X&lt;/P&gt;&lt;P&gt;      COMMIT_WORK                = C_X&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      PACKING_LIST               = IT_OBJPACK&lt;/P&gt;&lt;P&gt;      OBJECT_HEADER              = IT_OBJHEAD&lt;/P&gt;&lt;P&gt;      CONTENTS_BIN               = IT_OBJBIN&lt;/P&gt;&lt;P&gt;      CONTENTS_TXT               = IT_OBJTXT&lt;/P&gt;&lt;P&gt;      RECEIVERS                  = IT_RECLIST&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      TOO_MANY_RECEIVERS         = 1&lt;/P&gt;&lt;P&gt;      DOCUMENT_NOT_SENT          = 2&lt;/P&gt;&lt;P&gt;      DOCUMENT_TYPE_NOT_EXIST    = 3&lt;/P&gt;&lt;P&gt;      OPERATION_NO_AUTHORIZATION = 4&lt;/P&gt;&lt;P&gt;      PARAMETER_ERROR            = 5&lt;/P&gt;&lt;P&gt;      X_ERROR                    = 6&lt;/P&gt;&lt;P&gt;      ENQUEUE_ERROR              = 7&lt;/P&gt;&lt;P&gt;      OTHERS                     = 8.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE E000 WITH 'Error occurred in sending mail'(015).&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;*-- Wait upto 2 secounds&lt;/P&gt;&lt;P&gt;    wait up to 2 seconds.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-- Call the RSCONN01 (SAPconnect: Start Send Process)&lt;/P&gt;&lt;P&gt;    SUBMIT RSCONN01 WITH MODE = 'INT'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    WITH output = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    AND RETURN.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    PERFORM F_DISPLAY_SENT_MAIL_STATUS.&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;To delete the spool request&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  wa_tsp01sys-rqident = sy-spono.&lt;/P&gt;&lt;P&gt;  call function 'RSPO_IDELETE_SPOOLREQ'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            spoolreq = wa_tsp01sys.&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_send_mail&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  F_DISPLAY_SENT_MAIL_STATUS&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;      Display Mail Sent status to the user&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 F_DISPLAY_SENT_MAIL_STATUS .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  ULINE AT /1(60).&lt;/P&gt;&lt;P&gt;  WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; SY-VLINE,&lt;/P&gt;&lt;P&gt;          'Mail sent Successfully to'(016)&lt;/P&gt;&lt;P&gt;           COLOR 5 INTENSIFIED ON,&lt;/P&gt;&lt;P&gt;           60 SY-VLINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LOOP AT S_EMAIL INTO X_EMAIL.&lt;/P&gt;&lt;P&gt;    V_TABLE_LINES = STRLEN( X_EMAIL-LOW ).&lt;/P&gt;&lt;P&gt;    MOVE X_EMAIL-LOW+0(V_TABLE_LINES) TO V_TEXT2.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; SY-VLINE,&lt;/P&gt;&lt;P&gt;             2 SY-TABIX LEFT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;             5 ')',&lt;/P&gt;&lt;P&gt;               V_TEXT2,&lt;/P&gt;&lt;P&gt;             60 SY-VLINE.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    ULINE AT /1(60).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " F_DISPLAY_SENT_MAIL_STATUS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Hope this is helpful, Do reward.&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 Jan 2008 10:50:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/can-u-send-me-any-bapi-program/m-p/3293113#M787982</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-04T10:50:07Z</dc:date>
    </item>
    <item>
      <title>Re: can u send me any bapi program</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/can-u-send-me-any-bapi-program/m-p/3293114#M787983</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;Check This Link from Help.sap.com..... this will be useful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_46c/helpdata/en/df/0495debd6f11d1ad09080009b0fb56/frameset.htm" target="test_blank"&gt;http://help.sap.com/saphelp_46c/helpdata/en/df/0495debd6f11d1ad09080009b0fb56/frameset.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;Santosh&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 Jan 2008 10:59:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/can-u-send-me-any-bapi-program/m-p/3293114#M787983</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-04T10:59:09Z</dc:date>
    </item>
  </channel>
</rss>

