<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: BAPI for fb65 in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1024007#M81902</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;sample code using BAPI&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 Table and structure Declarations                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Structure to hold header data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: x_docheader LIKE bapiache09.   "Header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold account GL data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF it_accgl OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapiacgl09. "G/L account item.&lt;/P&gt;&lt;P&gt;DATA: END OF it_accgl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold account payee data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF it_accpy OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapiacap09. "Vendor Item.&lt;/P&gt;&lt;P&gt;DATA: END OF it_accpy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold currency amount data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF it_curramt OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapiaccr09. "Currency Items.&lt;/P&gt;&lt;P&gt;DATA: END OF it_curramt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold return data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold input file data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF it_infile OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE z0fi_ap_fads_to_sap. "Input file format&lt;/P&gt;&lt;P&gt;DATA:error(1) TYPE c,                          "error indicator&lt;/P&gt;&lt;P&gt;END OF it_infile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold input file data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF it_errors OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE z0fi_ap_fads_to_sap. "Input file format&lt;/P&gt;&lt;P&gt;DATA: msg(200) TYPE c,                         "message&lt;/P&gt;&lt;P&gt;END OF it_errors.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold GL data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF it_gl OCCURS 0,&lt;/P&gt;&lt;P&gt;sap_gl_account  LIKE zfglt_gl_pri_sub-sap_gl_account, "G/L Account&lt;/P&gt;&lt;P&gt;lgcy_system     LIKE zfglt_gl_pri_sub-lgcy_system,    "Legacy System&lt;/P&gt;&lt;P&gt;lgcy_prime_acct LIKE zfglt_gl_pri_sub-lgcy_prime_acct,"Legacy Account&lt;/P&gt;&lt;P&gt;lgcy_sub_acct   LIKE zfglt_gl_pri_sub-lgcy_sub_acct,  "Legacy Sub Acct&lt;/P&gt;&lt;P&gt;END OF it_gl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold cost center data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF it_costctr OCCURS 0,&lt;/P&gt;&lt;P&gt;cost_object    LIKE zfcft_ctr_dpt_lg-cost_object,     "Cost center&lt;/P&gt;&lt;P&gt;lgcy_ldgr      LIKE zfcft_ctr_dpt_lg-lgcy_ldgr,       "Legacy ledger&lt;/P&gt;&lt;P&gt;lgcy_dept      LIKE zfcft_ctr_dpt_lg-lgcy_dept,       "Legacy Department&lt;/P&gt;&lt;P&gt;END OF it_costctr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold vendor data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF it_lfa1 OCCURS 0,&lt;/P&gt;&lt;P&gt;lifnr TYPE lifnr,                                     "Vendor no&lt;/P&gt;&lt;P&gt;BUKRS TYPE BUKRS,                                     "Company code&lt;/P&gt;&lt;P&gt;stcd1 TYPE stcd1,                                     "Tax ID1&lt;/P&gt;&lt;P&gt;stcd2 TYPE stcd2,                                     "Tax ID2&lt;/P&gt;&lt;P&gt;END OF it_lfa1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold Primary Sub Acct data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF it_subacct OCCURS 0,&lt;/P&gt;&lt;P&gt;pryact1(10) TYPE c,                                    "Pry sub Acct1&lt;/P&gt;&lt;P&gt;pryact2(10) TYPE c,                                    "Pry sub Acct2&lt;/P&gt;&lt;P&gt;END OF it_subacct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold ledger data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF it_ledger OCCURS 0,&lt;/P&gt;&lt;P&gt;lgr_id(4) TYPE C,                                      "Ledger ID&lt;/P&gt;&lt;P&gt;dept(4) TYPE c,                                        "Department&lt;/P&gt;&lt;P&gt;END OF it_ledger.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold tax id&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF it_taxid OCCURS 0,&lt;/P&gt;&lt;P&gt;taxid1(16) TYPE c,                                     "Tax ID1&lt;/P&gt;&lt;P&gt;taxid2(11) TYPE c,                                     "Tax ID2&lt;/P&gt;&lt;P&gt;END OF  it_taxid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold line amounts sum data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF it_sum OCCURS 0,&lt;/P&gt;&lt;P&gt;tax_id_no(10) TYPE c,                                  "Tax Id No&lt;/P&gt;&lt;P&gt;invoice_no(12) TYPE c,                                 "Invoice No&lt;/P&gt;&lt;P&gt;sum2(11) TYPE p DECIMALS 2,                            "Sum&lt;/P&gt;&lt;P&gt;END OF it_sum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold Error records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data:BEGIN OF IT_ERROR OCCURS 0,&lt;/P&gt;&lt;P&gt;tax_id_no(10) TYPE c,                                  "Tax Id No&lt;/P&gt;&lt;P&gt;invoice_no(12) TYPE c,                                 "Invoice No&lt;/P&gt;&lt;P&gt;MSG(200) TYPE C,                                       "Message&lt;/P&gt;&lt;P&gt;END OF IT_eRROR .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold success records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : BEGIN OF it_success OCCURS 0,&lt;/P&gt;&lt;P&gt;        docnum(10) TYPE c,                           "Document No&lt;/P&gt;&lt;P&gt;        bukrs(4) TYPE c,                             "Company code&lt;/P&gt;&lt;P&gt;        fisyr(4) TYPE c,                             "Fiscal year&lt;/P&gt;&lt;P&gt;        msg(100) TYPE c,                             "Message&lt;/P&gt;&lt;P&gt;       END OF it_success.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:begin of it_invno occurs 0,&lt;/P&gt;&lt;P&gt;      xblnr(16) type c,&lt;/P&gt;&lt;P&gt;      end of it_invno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold Invoice Document no's&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF IT_BKPF OCCURS 0,&lt;/P&gt;&lt;P&gt;      bukrs LIKE BKPF-BUKRS,&lt;/P&gt;&lt;P&gt;      belnr LIKE BKPF-BELNR,&lt;/P&gt;&lt;P&gt;      xblnr like bkpf-xblnr,&lt;/P&gt;&lt;P&gt;      END OF IT_BKPF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Structure to hold input file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:x_infile LIKE it_infile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Structure to hold company code &amp;amp; currency data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF x_t001,&lt;/P&gt;&lt;P&gt;bukrs LIKE t001-bukrs,                                "Company code&lt;/P&gt;&lt;P&gt;waers LIKE t001-waers,                                "Currency&lt;/P&gt;&lt;P&gt;END OF x_t001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;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;&lt;/P&gt;&lt;P&gt;DATA: v_pgm_id         LIKE sy-repid,                "Program id&lt;/P&gt;&lt;P&gt;      v_count_infile   TYPE i,                       "Counter&lt;/P&gt;&lt;P&gt;      v_text(100)      TYPE c.                       "Text&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;      v_err            TYPE i,                       "Counter&lt;/P&gt;&lt;P&gt;      v_objkey         LIKE  bapiache09-obj_key,     "object key&lt;/P&gt;&lt;P&gt;      v_err_rec        type i,                       "Error Records&lt;/P&gt;&lt;P&gt;      v_suc_rec        type i.                       "Success Records&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;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;DATA:&lt;/P&gt;&lt;P&gt;     c_itemno(6)   TYPE c VALUE '000001',            "Item no&lt;/P&gt;&lt;P&gt;     c_doctype(2)  TYPE c VALUE 'KU',                "Doc type&lt;/P&gt;&lt;P&gt;     c_busact(4)   TYPE c VALUE 'RMRP',              "Business Account&lt;/P&gt;&lt;P&gt;     c_fads(7)     TYPE c VALUE 'FADS'.              "Legacy system&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Selection Screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK no1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;*Input file name&lt;/P&gt;&lt;P&gt;PARAMETERS:p_bukrs  LIKE t001-bukrs OBLIGATORY,&lt;/P&gt;&lt;P&gt;           p_infile LIKE rlgrap-filename LOWER CASE DEFAULT&lt;/P&gt;&lt;P&gt;                                           'C:\FB60.txt' OBLIGATORY,&lt;/P&gt;&lt;P&gt;*Filename for Error records&lt;/P&gt;&lt;P&gt;            p_err LIKE rlgrap-filename LOWER CASE DEFAULT&lt;/P&gt;&lt;P&gt;  '/int/D01/030/in/REQ853err.txt' OBLIGATORY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*For selecting either a sequential file or local file.&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;           r_pserv RADIOBUTTON GROUP gr1 DEFAULT 'X',&lt;/P&gt;&lt;P&gt;           r_aserv RADIOBUTTON GROUP gr1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK no1.&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;&lt;/P&gt;&lt;P&gt;  v_pgm_id = sy-repid.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validating company code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT SINGLE bukrs&lt;/P&gt;&lt;P&gt;         waers INTO (x_t001-bukrs, x_t001-waers)&lt;/P&gt;&lt;P&gt;         FROM t001 WHERE bukrs = p_bukrs.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e014 WITH 'Invalid Company code'(e01).&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_infile.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Getting help for presentation server files&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF r_pserv = 'X'.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'F4_FILENAME'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              program_name  = v_pgm_id&lt;/P&gt;&lt;P&gt;              dynpro_number = sy-dynnr&lt;/P&gt;&lt;P&gt;              field_name    = ' '&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              file_name     = p_infile.&lt;/P&gt;&lt;P&gt;  ENDIF.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If sequential file is selected&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF r_aserv = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Form to get  data for apllication server&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM f_get_input_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if local file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If sequential file is selected&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM f_get_local_data.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Selecting GL, Costcenter, vendor data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM f_select_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validate the the input file data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM f_validate_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate data to be passed to BAPI&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM f_populate_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the error data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; PERFORM f_error_data.&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;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;   write : / 'Number of success records '(003),&lt;/P&gt;&lt;P&gt;             v_suc_rec LEFT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;   write : / 'Number of error records '(004),&lt;/P&gt;&lt;P&gt;              v_err_rec LEFT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;  IF NOT it_errors[] IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Form to display the error report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM f_display_report.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  if not it_success[] is initial.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Form to display the success report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   perform f_display_suc_report.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;*--Standard footer&lt;/P&gt;&lt;P&gt;  PERFORM std_end_of_report.&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;&lt;/P&gt;&lt;P&gt;*---Standard header&lt;/P&gt;&lt;P&gt;  PERFORM std_top_of_page CHANGING sy-title.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_get_local_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Getting the data from presentation server&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_local_data.&lt;/P&gt;&lt;P&gt;  DATA:lv_filnam TYPE string.     "File name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lv_filnam = p_infile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            filename                = lv_filnam&lt;/P&gt;&lt;P&gt;            filetype                = 'ASC'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           has_field_separator     = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            data_tab                = it_infile&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            file_open_error         = 1&lt;/P&gt;&lt;P&gt;            file_read_error         = 2&lt;/P&gt;&lt;P&gt;            no_batch                = 3&lt;/P&gt;&lt;P&gt;            gui_refuse_filetransfer = 4&lt;/P&gt;&lt;P&gt;            invalid_type            = 5&lt;/P&gt;&lt;P&gt;            no_authority            = 6&lt;/P&gt;&lt;P&gt;            unknown_error           = 7&lt;/P&gt;&lt;P&gt;            bad_data_format         = 8&lt;/P&gt;&lt;P&gt;            header_not_allowed      = 9&lt;/P&gt;&lt;P&gt;            separator_not_allowed   = 10&lt;/P&gt;&lt;P&gt;            header_too_long         = 11&lt;/P&gt;&lt;P&gt;            unknown_dp_error        = 12&lt;/P&gt;&lt;P&gt;            access_denied           = 13&lt;/P&gt;&lt;P&gt;            dp_out_of_memory        = 14&lt;/P&gt;&lt;P&gt;            disk_full               = 15&lt;/P&gt;&lt;P&gt;            dp_timeout              = 16&lt;/P&gt;&lt;P&gt;            OTHERS                  = 17.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR v_count_infile.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE it_infile LINES v_count_infile.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine if input file has data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF v_count_infile EQ 0.&lt;/P&gt;&lt;P&gt;    MESSAGE a001(zfi).&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'Number of records read from input file  '(002)&lt;/P&gt;&lt;P&gt;                p_infile&lt;/P&gt;&lt;P&gt;                ': ' INTO v_text.&lt;/P&gt;&lt;P&gt;    WRITE: / v_text, v_count_infile LEFT-JUSTIFIED.&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_get_local_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_GET_INPUT_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Getting the data from apllication server&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_input_data.&lt;/P&gt;&lt;P&gt;  DATA: lv_filnam LIKE filename-fileextern."File name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lv_filnam = p_infile.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Opening Dataset&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  OPEN DATASET lv_filnam FOR INPUT IN TEXT MODE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Read legacy input file into internal table for furthing processing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO.&lt;/P&gt;&lt;P&gt;    CLEAR it_infile.&lt;/P&gt;&lt;P&gt;    READ DATASET p_infile INTO it_infile.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    ADD 1 TO v_count_infile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine if input file has data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF v_count_infile EQ 0.&lt;/P&gt;&lt;P&gt;    MESSAGE a001(zfi).&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'Number of records read from input file  '(002)&lt;/P&gt;&lt;P&gt;                p_infile&lt;/P&gt;&lt;P&gt;                ': ' INTO v_text.&lt;/P&gt;&lt;P&gt;    WRITE: / v_text, v_count_infile LEFT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;closing dataset&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLOSE DATASET lv_filnam.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  f_populate_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populate data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_populate_data.&lt;/P&gt;&lt;P&gt;  CLEAR: x_infile,it_success,v_suc_rec.&lt;/P&gt;&lt;P&gt;  refresh it_success.&lt;/P&gt;&lt;P&gt;  SORT it_infile BY tax_id_no invoice_no.&lt;/P&gt;&lt;P&gt;LOOP AT it_infile.&lt;/P&gt;&lt;P&gt;    x_infile = it_infile.&lt;/P&gt;&lt;P&gt;    AT NEW invoice_no.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate header data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM f_populate_head_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate vendor header data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM f_acctpayee_data.&lt;/P&gt;&lt;P&gt;      it_curramt-itemno_acc = c_itemno.&lt;/P&gt;&lt;P&gt;      it_curramt-amt_doccur = x_infile-inv_header_amt * -1.&lt;/P&gt;&lt;P&gt;      it_curramt-currency   = x_t001-waers.&lt;/P&gt;&lt;P&gt;      APPEND it_curramt.&lt;/P&gt;&lt;P&gt;      CLEAR it_curramt.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate Account G/L data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM f_acctgl_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate Currency Amount data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM f_curramt_data.&lt;/P&gt;&lt;P&gt;    AT END OF invoice_no.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Call the BAPI to post the document&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM f_call_bapi.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;    CLEAR:x_infile.&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_populate_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  f_populate_head_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populate header data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_populate_head_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  x_docheader-bus_act     = c_busact.&lt;/P&gt;&lt;P&gt;  x_docheader-username    = sy-uname.&lt;/P&gt;&lt;P&gt;  x_docheader-comp_code   = p_bukrs.&lt;/P&gt;&lt;P&gt;  x_docheader-doc_date    = x_infile-invoice_date.&lt;/P&gt;&lt;P&gt;  x_docheader-pstng_date  = sy-datum.&lt;/P&gt;&lt;P&gt;  x_docheader-doc_type    = c_doctype.&lt;/P&gt;&lt;P&gt;  x_docheader-ref_doc_no  = x_infile-invoice_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_populate_head_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  f_acctpayee_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populate vendor data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_acctpayee_data.&lt;/P&gt;&lt;P&gt;  READ TABLE it_lfa1 WITH KEY stcd2 = x_infile-tax_id_no .&lt;/P&gt;&lt;P&gt;  IF sy-subrc  = 0.&lt;/P&gt;&lt;P&gt;    it_accpy-vendor_no   = it_lfa1-lifnr.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    READ TABLE it_lfa1 WITH KEY stcd1 = x_infile-tax_id_no .&lt;/P&gt;&lt;P&gt;    IF sy-subrc  = 0.&lt;/P&gt;&lt;P&gt;      it_accpy-vendor_no   = it_lfa1-lifnr.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  it_accpy-itemno_acc  = c_itemno.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; it_Accpy-item_text   = X_infile-INV_DESC.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  APPEND it_accpy.&lt;/P&gt;&lt;P&gt;  CLEAR it_accpy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_populate_item_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_acctgl_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populate Account G/L data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_acctgl_data.&lt;/P&gt;&lt;P&gt;  DATA:l_lgr_id(4) TYPE c. "ledger id&lt;/P&gt;&lt;P&gt;  CLEAR l_lgr_id.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  it_accgl-itemno_acc = x_infile-inv_line_no + 1.&lt;/P&gt;&lt;P&gt;*Fetching G/L account&lt;/P&gt;&lt;P&gt;  READ TABLE it_gl WITH KEY lgcy_system = c_fads&lt;/P&gt;&lt;P&gt;                 lgcy_prime_acct = x_infile-pri_subacct1&lt;/P&gt;&lt;P&gt;                 lgcy_sub_acct  = x_infile-pri_subacct2.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    it_accgl-gl_account = it_gl-sap_gl_account.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  it_accgl-item_text  = x_infile-inv_desc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE x_infile-ledger_id1 x_infile-ledger_id2 INTO&lt;/P&gt;&lt;P&gt; l_lgr_id.&lt;/P&gt;&lt;P&gt;*Fetching  costcenter&lt;/P&gt;&lt;P&gt;  READ TABLE it_costctr WITH KEY lgcy_ldgr = l_lgr_id&lt;/P&gt;&lt;P&gt;                           lgcy_dept = x_infile-dept_win_ldgr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    it_accgl-costcenter = it_costctr-cost_object.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; it_accgl-tax_code   = c_tax_code.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  APPEND it_accgl.&lt;/P&gt;&lt;P&gt;  CLEAR it_accgl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_acctgl_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  f_curramt_Data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populate Currency Amount data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_curramt_data.&lt;/P&gt;&lt;P&gt;  it_curramt-itemno_acc = x_infile-inv_line_no + 1.&lt;/P&gt;&lt;P&gt;  it_curramt-amt_doccur = x_infile-inv_line_amt.&lt;/P&gt;&lt;P&gt;  it_curramt-currency   = x_t001-waers.&lt;/P&gt;&lt;P&gt;  APPEND it_curramt.&lt;/P&gt;&lt;P&gt;  CLEAR it_curramt.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_curramt_Data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  F_CALL_BAPI&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Calling BAPI&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_call_bapi.&lt;/P&gt;&lt;P&gt;  CLEAR:  it_return."it_success&lt;/P&gt;&lt;P&gt;  REFRESH: it_return. "it_success&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Creating a posting in Accounting.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            documentheader = x_docheader&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            obj_key        = v_objkey&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            accountgl      = it_accgl&lt;/P&gt;&lt;P&gt;            accountpayable = it_accpy&lt;/P&gt;&lt;P&gt;            currencyamount = it_curramt&lt;/P&gt;&lt;P&gt;            return         = it_return.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT v_objkey IS INITIAL AND v_objkey NE '$'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Commit work&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.&lt;/P&gt;&lt;P&gt;    it_success-docnum =  v_objkey+0(10).&lt;/P&gt;&lt;P&gt;    it_success-bukrs =  v_objkey+10(4).&lt;/P&gt;&lt;P&gt;    it_success-fisyr =  v_objkey+14(4).&lt;/P&gt;&lt;P&gt;    READ TABLE it_return INDEX 1.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      it_success-msg =  it_return-message.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    v_suc_rec = v_suc_rec + 1.&lt;/P&gt;&lt;P&gt;    APPEND it_success.&lt;/P&gt;&lt;P&gt;    CLEAR it_success.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    LOOP AT it_return.&lt;/P&gt;&lt;P&gt;      IT_ERROR-TAX_ID_NO = X_infile-TAX_ID_NO.&lt;/P&gt;&lt;P&gt;      IT_ERROR-INVOICE_NO = X_infile-INVOICE_NO.&lt;/P&gt;&lt;P&gt;      it_error-msg = it_return-message.&lt;/P&gt;&lt;P&gt;      APPEND it_error.&lt;/P&gt;&lt;P&gt;      CLEAR it_error.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Roll back&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  REFRESH : it_accgl,it_curramt,it_return,it_accpy.&lt;/P&gt;&lt;P&gt;  CLEAR : x_docheader,it_accgl, it_curramt,it_return,it_accpy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_CALL_BAPI&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  f_display_report&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Display error report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_display_report.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Open the dataset&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  OPEN DATASET p_err FOR OUTPUT IN TEXT MODE.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    LOOP AT it_errors.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Transfer the error records to error file on application server&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      TRANSFER it_errors TO p_err.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Closing the dataset&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLOSE DATASET  p_err.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT it_errors[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR 1 INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;    SKIP 2.&lt;/P&gt;&lt;P&gt;    WRITE:/1(673) 'ERROR REPORT'(H01) CENTERED.&lt;/P&gt;&lt;P&gt;    ULINE /1(673).&lt;/P&gt;&lt;P&gt;    WRITE:/(4)'S.No'(005),&lt;/P&gt;&lt;P&gt;            sy-vline,&lt;/P&gt;&lt;P&gt;           (10) 'Tax Id No'(006),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (12) 'Invoice No'(007),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) 'Rec Type'(008),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (6) 'Seq No'(009),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) 'Batch No'(010),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) 'UserID'(011),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) 'NU1'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (11) 'Inv Amt'(013),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) 'Inv Date'(014),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (10) 'G/L Org ID'(015),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (4) 'NU4'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (4) 'NU5'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (4) 'NU6'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (4) 'NU7'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (11) 'NU8'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (4) 'NU9'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (10) 'PO No'(016),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (30) 'Inv Desc'(017),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (10) 'Voucher No'(018),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (10) 'Inv LinNo'(019),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (11) 'Inv Lin Amt'(020),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (9) 'Led ID-1'(021),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (9) 'Led ID-2'(022),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (15) 'Pri Sub Acc-1'(023),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (15) 'Pri Sub Acc-2'(024),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (15) 'Dept Win Lgr'(025),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (5) 'NU2'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (6) 'NU3'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (11) 'Dist Amt'(026),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) 'Inv Type'(027),&lt;/P&gt;&lt;P&gt;            sy-vline,&lt;/P&gt;&lt;P&gt;           (12) 'PO Line No'(028),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (15) 'Inv Line Amt'(029),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (5) 'NU10'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (13) 'NU11'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (5) 'NU12'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (6) 'NU13'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (5) 'NU14'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (5) 'NU15'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (200) 'Message'(030),&lt;/P&gt;&lt;P&gt;           sy-vline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    FORMAT COLOR 6 INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;    LOOP AT it_errors.&lt;/P&gt;&lt;P&gt;      WRITE:/(4) sy-tabix,&lt;/P&gt;&lt;P&gt;            sy-vline,&lt;/P&gt;&lt;P&gt;           (10) it_errors-TAX_ID_NO,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (12) it_errors-INVOICE_NO,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) it_errors-RECORD_TYPE,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (6) it_errors-SEQ_NO,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) it_errors-BATCH_NO,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) it_errors-USERID,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) it_errors-NU1,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (11) it_errors-INV_HEADER_AMT,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) it_errors-INVOICE_DATE,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (10) it_errors-GL_ORG_ID,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (4) it_errors-NU4,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (4) it_errors-NU5,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (4) it_errors-NU6,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (4) it_errors-NU7,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (11) it_errors-NU8,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (4) it_errors-NU9,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (10) it_errors-PONUMBER,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (30) it_errors-INV_DESC,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (10) it_errors-VOUCHER_NO,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (10) it_errors-INV_LINE_NO,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (11) it_errors-INV_LINE_AMT,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (9) it_errors-LEDGER_ID1,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (9) it_errors-LEDGER_ID2,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (15) it_errors-PRI_SUBACCT1,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (15) it_errors-PRI_SUBACCT2,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (15) it_errors-DEPT_WIN_LDGR,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (5) it_errors-NU2,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (6) it_errors-NU3,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (11) it_errors-DIST_AMT,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) it_errors-INV_TYPE,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (12) it_errors-PO_LINE_NO,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (15) it_errors-INV_LINE_AMT_D,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (5) it_errors-NU10,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (13) it_errors-NU11,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (5) it_errors-NU12,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (6) it_errors-NU13,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (5) it_errors-NU14,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (5) it_errors-NU15,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (200) it_errors-msg,&lt;/P&gt;&lt;P&gt;           sy-vline.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    ULINE /1(673).&lt;/P&gt;&lt;P&gt;  ENDIF.&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_select_data&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 of GL, Costcenter, vendor data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_select_data.&lt;/P&gt;&lt;P&gt;DATA:L_dEPT(4) TYPE N. "Legacy department&lt;/P&gt;&lt;P&gt;  CLEAR:it_gl, it_costctr, it_lfa1, it_subacct, it_taxid , it_sum.&lt;/P&gt;&lt;P&gt;  REFRESH:it_gl, it_costctr, it_lfa1, it_subacct, it_taxid,it_sum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT it_infile BY tax_id_no invoice_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Looping at input file&lt;/P&gt;&lt;P&gt;  LOOP AT it_infile.&lt;/P&gt;&lt;P&gt;    x_infile = it_infile.&lt;/P&gt;&lt;P&gt;*Summing the invoice line items amount and moving the sum to it_sum&lt;/P&gt;&lt;P&gt;    it_sum-tax_id_no = it_infile-tax_id_no.&lt;/P&gt;&lt;P&gt;    it_sum-invoice_no  = it_infile-invoice_no.&lt;/P&gt;&lt;P&gt;    it_sum-sum2 = it_infile-inv_line_amt.&lt;/P&gt;&lt;P&gt;    COLLECT it_sum.&lt;/P&gt;&lt;P&gt;    CLEAR it_sum.&lt;/P&gt;&lt;P&gt;*Storing Primary Sub Account data&lt;/P&gt;&lt;P&gt;    it_subacct-pryact1 = it_infile-pri_subacct1.&lt;/P&gt;&lt;P&gt;    it_subacct-pryact2 = it_infile-pri_subacct2.&lt;/P&gt;&lt;P&gt;    APPEND it_subacct.&lt;/P&gt;&lt;P&gt;    CLEAR it_subacct.&lt;/P&gt;&lt;P&gt;*Storing Ledger ID data&lt;/P&gt;&lt;P&gt;    CONCATENATE it_infile-ledger_id1 it_infile-ledger_id2 INTO&lt;/P&gt;&lt;P&gt;    it_ledger-lgr_id.&lt;/P&gt;&lt;P&gt;    l_dept = it_infile-dept_win_ldgr.&lt;/P&gt;&lt;P&gt;    it_ledger-dept = l_dept.&lt;/P&gt;&lt;P&gt;    APPEND it_ledger.&lt;/P&gt;&lt;P&gt;    CLEAR it_ledger.&lt;/P&gt;&lt;P&gt;*Storing Tax ID data&lt;/P&gt;&lt;P&gt;    it_taxid-taxid1 = it_infile-tax_id_no.&lt;/P&gt;&lt;P&gt;    it_taxid-taxid2 = it_infile-tax_id_no.&lt;/P&gt;&lt;P&gt;    APPEND it_taxid.&lt;/P&gt;&lt;P&gt;    CLEAR it_taxid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    condense it_infile-invoice_no.&lt;/P&gt;&lt;P&gt;    it_invno-xblnr = it_infile-invoice_no.&lt;/P&gt;&lt;P&gt;    append it_invno.&lt;/P&gt;&lt;P&gt;    clear it_invno.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT it_subacct BY pryact1  pryact2.&lt;/P&gt;&lt;P&gt;  SORT it_ledger BY lgr_id dept.&lt;/P&gt;&lt;P&gt;  SORT it_taxid BY taxid1 taxid2.&lt;/P&gt;&lt;P&gt;  SORT it_sum  BY tax_id_no invoice_no.&lt;/P&gt;&lt;P&gt;  sort it_invno by xblnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DELETE ADJACENT DUPLICATES FROM it_subacct COMPARING pryact1  pryact2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DELETE ADJACENT DUPLICATES FROM it_ledger COMPARING lgr_id dept.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DELETE ADJACENT DUPLICATES FROM it_taxid COMPARING taxid1 taxid2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if not it_invno is initial.&lt;/P&gt;&lt;P&gt;   select bukrs&lt;/P&gt;&lt;P&gt;          belnr&lt;/P&gt;&lt;P&gt;          xblnr&lt;/P&gt;&lt;P&gt;          into table it_bkpf&lt;/P&gt;&lt;P&gt;          from bkpf&lt;/P&gt;&lt;P&gt;          for all entries in it_invno&lt;/P&gt;&lt;P&gt;          where bukrs = p_bukrs and&lt;/P&gt;&lt;P&gt;                gjahr = sy-datum+0(4) and&lt;/P&gt;&lt;P&gt;                blart = c_doctype and&lt;/P&gt;&lt;P&gt;                xblnr = it_invno-xblnr.&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;  IF NOT it_subacct[] IS INITIAL.&lt;/P&gt;&lt;P&gt;*Selecting G/L Account from General Ledger Z Table&lt;/P&gt;&lt;P&gt;    SELECT sap_gl_account&lt;/P&gt;&lt;P&gt;    lgcy_system&lt;/P&gt;&lt;P&gt;    lgcy_prime_acct&lt;/P&gt;&lt;P&gt;    lgcy_sub_acct FROM zfglt_gl_pri_sub&lt;/P&gt;&lt;P&gt;    INTO TABLE it_gl&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN it_subacct&lt;/P&gt;&lt;P&gt;    WHERE lgcy_system = c_fads AND&lt;/P&gt;&lt;P&gt;           lgcy_prime_acct = it_subacct-pryact1 AND&lt;/P&gt;&lt;P&gt;           lgcy_sub_acct = it_subacct-pryact2.&lt;/P&gt;&lt;P&gt;    IF sy-subrc  = 0.&lt;/P&gt;&lt;P&gt;      SORT it_gl BY sap_gl_account&lt;/P&gt;&lt;P&gt;      lgcy_system&lt;/P&gt;&lt;P&gt;      lgcy_prime_acct&lt;/P&gt;&lt;P&gt;      lgcy_sub_acct.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT it_ledger[] IS INITIAL.&lt;/P&gt;&lt;P&gt;*Selecting cost center from Cost Center Z Table&lt;/P&gt;&lt;P&gt;      SELECT cost_object&lt;/P&gt;&lt;P&gt;      lgcy_ldgr&lt;/P&gt;&lt;P&gt;      lgcy_dept FROM zfcft_ctr_dpt_lg&lt;/P&gt;&lt;P&gt;      INTO TABLE it_costctr&lt;/P&gt;&lt;P&gt;      FOR ALL ENTRIES IN it_ledger&lt;/P&gt;&lt;P&gt;      WHERE lgcy_ldgr = it_ledger-lgr_id AND&lt;/P&gt;&lt;P&gt;            lgcy_dept = it_ledger-dept.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        SORT it_costctr BY cost_object&lt;/P&gt;&lt;P&gt;        lgcy_ldgr&lt;/P&gt;&lt;P&gt;        lgcy_dept.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT it_taxid[] IS INITIAL.&lt;/P&gt;&lt;P&gt;*Selecting vendor no from vendor master data&lt;/P&gt;&lt;P&gt;      SELECT a~lifnr&lt;/P&gt;&lt;P&gt;             b~bukrs&lt;/P&gt;&lt;P&gt;             a~stcd1&lt;/P&gt;&lt;P&gt;             a~stcd2&lt;/P&gt;&lt;P&gt;             FROM lfa1 as A join lfb1 as B&lt;/P&gt;&lt;P&gt;             on a&lt;SUB&gt;lifnr = b&lt;/SUB&gt;lifnr&lt;/P&gt;&lt;P&gt;             INTO TABLE it_lfa1&lt;/P&gt;&lt;P&gt;             FOR ALL ENTRIES IN it_taxid&lt;/P&gt;&lt;P&gt;             wHERE bukrs = p_bukrs and&lt;/P&gt;&lt;P&gt;            (  stcd1 = it_taxid-taxid1 OR&lt;/P&gt;&lt;P&gt;              stcd2 = it_taxid-taxid2 ).&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;ENDFORM.                    " f_select_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_validate_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         Validation of input file data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_validate_data.&lt;/P&gt;&lt;P&gt;  DATA:l_errflag TYPE c,              "Error flag&lt;/P&gt;&lt;P&gt;       l_dept(4) TYPE n,              "Department&lt;/P&gt;&lt;P&gt;       l_lgr_id(4) TYPE c,            "Ledger ID&lt;/P&gt;&lt;P&gt;       lv_no_of_vendors TYPE i,       "No of vendors&lt;/P&gt;&lt;P&gt;       l_sum(11) TYPE p DECIMALS 2,   "Sum&lt;/P&gt;&lt;P&gt;       lv_msg1(30) TYPE c,            "Message&lt;/P&gt;&lt;P&gt;       lv_msg2(25) TYPE c,            "Message&lt;/P&gt;&lt;P&gt;       lv_msg3(6) TYPE c,             "Message&lt;/P&gt;&lt;P&gt;       lv_msg4(31) TYPE c,            "Message&lt;/P&gt;&lt;P&gt;       lv_msg5(53) TYPE c,            "Message&lt;/P&gt;&lt;P&gt;       lv_msg6(30) TYPE c,            "Message&lt;/P&gt;&lt;P&gt;       lv_msg7(50) TYPE c.            "Message&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT it_infile.&lt;/P&gt;&lt;P&gt;    CLEAR:lv_msg1,lv_msg2, lv_msg3,lv_msg4,lv_msg5, lv_msg6, lv_msg7.&lt;/P&gt;&lt;P&gt;    CLEAR l_errflag.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SORT it_sum BY tax_id_no&lt;/P&gt;&lt;P&gt;                   invoice_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR it_subacct.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validating Primary Sub Acct1 and Acct2.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE it_gl WITH KEY lgcy_system = c_fads&lt;/P&gt;&lt;P&gt;               lgcy_prime_acct = it_infile-pri_subacct1&lt;/P&gt;&lt;P&gt;               lgcy_sub_acct  = it_infile-pri_subacct2 .&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      lv_msg1 = 'Primary Sub Acct1 and Acct2'(035).&lt;/P&gt;&lt;P&gt;      l_errflag = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE it_infile-dept_win_ldgr TO l_dept.&lt;/P&gt;&lt;P&gt;    MOVE l_dept TO it_infile-dept_win_ldgr.&lt;/P&gt;&lt;P&gt;    CONCATENATE it_infile-ledger_id1 it_infile-ledger_id2 INTO&lt;/P&gt;&lt;P&gt;l_lgr_id.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR: it_costctr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validating Ledger id &amp;amp; department&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE it_costctr WITH KEY lgcy_ldgr = l_lgr_id&lt;/P&gt;&lt;P&gt;                             lgcy_dept = it_infile-dept_win_ldgr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      lv_msg2 = 'Ledger id &amp;amp; department'(036).&lt;/P&gt;&lt;P&gt;      l_errflag = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validating Tax ID&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR:it_lfa1.&lt;/P&gt;&lt;P&gt;    READ TABLE it_lfa1 WITH KEY stcd2 = it_infile-tax_id_no..&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      READ TABLE it_lfa1 WITH KEY stcd1 = it_infile-tax_id_no..&lt;/P&gt;&lt;P&gt;      IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        lv_msg3 = 'Tax ID'(041).&lt;/P&gt;&lt;P&gt;        l_errflag = 'X'.&lt;/P&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;Checking for no of vendors selected based on tax id. If no of vendors&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;selected are more than 1 or 0 then error out the record&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    lv_no_of_vendors = 0.&lt;/P&gt;&lt;P&gt;    LOOP AT it_lfa1 WHERE stcd1 = it_infile-tax_id_no OR&lt;/P&gt;&lt;P&gt;                          stcd2 = it_infile-tax_id_no.&lt;/P&gt;&lt;P&gt;      lv_no_of_vendors = lv_no_of_vendors + 1.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF lv_no_of_vendors = 0.&lt;/P&gt;&lt;P&gt;      lv_msg6 = 'No vendor found for TAXID'(037).&lt;/P&gt;&lt;P&gt;      l_errflag = 'X'.&lt;/P&gt;&lt;P&gt;    ELSEIF lv_no_of_vendors &amp;gt; 1.&lt;/P&gt;&lt;P&gt;      lv_msg4 = 'More than one vendor for Tax id'(038).&lt;/P&gt;&lt;P&gt;      l_errflag = 'X'.&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;Checking whether KU Document already exists for this Invoice No&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    clear it_invno.&lt;/P&gt;&lt;P&gt;    read table it_invno with key xblnr = it_infile-invoice_no.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      lv_msg7 = 'KU Document already exists for this Invoice No '(042).&lt;/P&gt;&lt;P&gt;      l_errflag = 'X'.&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;Checking whether the invoice header amt is equal to the line items amt&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR it_sum.&lt;/P&gt;&lt;P&gt;    READ TABLE it_sum WITH KEY tax_id_no = it_infile-tax_id_no&lt;/P&gt;&lt;P&gt;                   invoice_no = it_infile-invoice_no BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    CLEAR l_sum.&lt;/P&gt;&lt;P&gt;    l_sum = it_infile-inv_header_amt.&lt;/P&gt;&lt;P&gt;    IF l_sum &amp;lt;&amp;gt; it_sum-sum2.&lt;/P&gt;&lt;P&gt;  lv_msg5 = 'Header amt is not equal to the sum of all line items'(039).&lt;/P&gt;&lt;P&gt;      l_errflag = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Moving error records to error internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF l_errflag = 'X'.&lt;/P&gt;&lt;P&gt;      MOVE it_infile TO it_errors.&lt;/P&gt;&lt;P&gt; CONCATENATE 'Invalid:'(040) lv_msg1 lv_msg2 lv_msg3 lv_msg4 lv_msg5&lt;/P&gt;&lt;P&gt;lv_msg6 lv_msg7 INTO it_errors-msg SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      APPEND it_errors.&lt;/P&gt;&lt;P&gt;      CLEAR : it_errors.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Deleting all the errors records from the processing internal table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and moving them to error table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      v_err = v_err + 1.&lt;/P&gt;&lt;P&gt;      it_infile-error = 'X'.&lt;/P&gt;&lt;P&gt;      MODIFY it_infile TRANSPORTING error.&lt;/P&gt;&lt;P&gt;      CLEAR it_infile.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  DELETE it_infile WHERE error = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Deleting all the line items from the processing internal table where&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;atleast one line item is error one&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  sort it_errors by tax_id_no&lt;/P&gt;&lt;P&gt;                    invoice_no.&lt;/P&gt;&lt;P&gt;  clear v_err_rec.&lt;/P&gt;&lt;P&gt;  LOOP AT it_errors.&lt;/P&gt;&lt;P&gt;    DELETE it_infile WHERE tax_id_no = it_errors-tax_id_no AND&lt;/P&gt;&lt;P&gt;                           invoice_no = it_errors-invoice_no.&lt;/P&gt;&lt;P&gt;    at new invoice_no.&lt;/P&gt;&lt;P&gt;     v_err_rec = v_err_rec + 1.&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_validate_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_error_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Processing error data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form f_error_data.&lt;/P&gt;&lt;P&gt;  DELETE it_error WHERE msg = 'Error in document: BKPFF $ D01030'(E02).&lt;/P&gt;&lt;P&gt;   sort it_error by tax_id_no invoice_no.&lt;/P&gt;&lt;P&gt;   loop at it_infile.&lt;/P&gt;&lt;P&gt;   x_infile = it_infile.&lt;/P&gt;&lt;P&gt;   READ TABLE IT_ERROR WITH KEY TAX_ID_NO = it_INFILE-TAX_ID_NO&lt;/P&gt;&lt;P&gt;                     INVOICE_NO = it_INFILE-INVOICE_NO binary search.&lt;/P&gt;&lt;P&gt;    if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;     at new invoice_no.&lt;/P&gt;&lt;P&gt;      v_err_rec = v_err_rec + 1.&lt;/P&gt;&lt;P&gt;     endat.&lt;/P&gt;&lt;P&gt;   MOVE x_INFILE TO IT_ERRORS.&lt;/P&gt;&lt;P&gt;   IT_ERRORS-MSG = IT_eRROR-MSG.&lt;/P&gt;&lt;P&gt;   APPEND IT_ERRORS.&lt;/P&gt;&lt;P&gt;   CLEAR IT_ERRORS.&lt;/P&gt;&lt;P&gt;   endif.&lt;/P&gt;&lt;P&gt;   endloop.&lt;/P&gt;&lt;P&gt;endform.                    " f_error_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_display_suc_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 success 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_suc_report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR 1 INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;    SKIP 2.&lt;/P&gt;&lt;P&gt;    WRITE:/1(150) 'SUCCESS REPORT'(S01) CENTERED.&lt;/P&gt;&lt;P&gt;    ULINE /1(150).&lt;/P&gt;&lt;P&gt;    WRITE:/1 sy-vline,&lt;/P&gt;&lt;P&gt;           2 'Doc No'(031),&lt;/P&gt;&lt;P&gt;          13 sy-vline,&lt;/P&gt;&lt;P&gt;          14 'Company code'(032),&lt;/P&gt;&lt;P&gt;          26 sy-vline,&lt;/P&gt;&lt;P&gt;          27 'Fiscal Year'(033),&lt;/P&gt;&lt;P&gt;          40 sy-vline,&lt;/P&gt;&lt;P&gt;          41 'Message'(034),&lt;/P&gt;&lt;P&gt;         150 sy-vline.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR 5 INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT it_success.&lt;/P&gt;&lt;P&gt;      WRITE:/1 sy-vline,&lt;/P&gt;&lt;P&gt;               2 it_success-docnum,&lt;/P&gt;&lt;P&gt;              13 sy-vline,&lt;/P&gt;&lt;P&gt;              14 it_success-bukrs,&lt;/P&gt;&lt;P&gt;              26 sy-vline,&lt;/P&gt;&lt;P&gt;              27 it_success-fisyr,&lt;/P&gt;&lt;P&gt;              40 sy-vline,&lt;/P&gt;&lt;P&gt;              41 it_success-msg,&lt;/P&gt;&lt;P&gt;             150 sy-vline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    ULINE /1(150).&lt;/P&gt;&lt;P&gt;endform.                    " f_display_suc_report&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 26 Oct 2005 14:36:46 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2005-10-26T14:36:46Z</dc:date>
    <item>
      <title>BAPI for fb65</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1023999#M81894</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;I want to call transaction FB65 for the company code , vendor , amount and GL_account.&lt;/P&gt;&lt;P&gt;Is there any BAPI which i can use for this purpose.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Oct 2005 13:17:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1023999#M81894</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-10-26T13:17:07Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI for fb65</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1024000#M81895</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Asit,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is a standard program for FB01, which can be used to post any related FI documents(even for FB65). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try exploring the standard program RFBIBL00 for this.&lt;/P&gt;&lt;P&gt;Myself had used the above program for FB50/FB60 transactions. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ravi.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Oct 2005 13:23:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1024000#M81895</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-10-26T13:23:02Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI for fb65</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1024001#M81896</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ravi ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;Could you please send me some sample code , which you have used for FB50/60?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks again.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Oct 2005 13:36:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1024001#M81896</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-10-26T13:36:09Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI for fb65</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1024002#M81897</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Look the bapi BAPI_ACC_GL_POSTING_POST&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Take care is little bit dangerous.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Frédéric&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;look the &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: Frédéric Girod&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Oct 2005 13:38:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1024002#M81897</guid>
      <dc:creator>FredericGirod</dc:creator>
      <dc:date>2005-10-26T13:38:53Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI for fb65</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1024003#M81898</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;there's a complete  documentation for report RFBIBL00 in SE38&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards Andreas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Oct 2005 13:39:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1024003#M81898</guid>
      <dc:creator>andreas_mann3</dc:creator>
      <dc:date>2005-10-26T13:39:33Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI for fb65</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1024004#M81899</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Asit,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I used LSMW to do the upload both. Create project in LSMW and use this program for upload. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ravi.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Oct 2005 13:46:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1024004#M81899</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-10-26T13:46:34Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI for fb65</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1024005#M81900</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Asit,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        Use BAPI_ACC_DOCUMENT_POST for posting .The fields need to be filled are as specified below:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Headerdata	&lt;/P&gt;&lt;P&gt;	BUS_ACT&lt;/P&gt;&lt;P&gt;	USERNAME&lt;/P&gt;&lt;P&gt;	HEADER_TXT&lt;/P&gt;&lt;P&gt;	COMP_CODE&lt;/P&gt;&lt;P&gt;	DOC_DATE&lt;/P&gt;&lt;P&gt;	PSTNG_DATE&lt;/P&gt;&lt;P&gt;	DOC_TYPE&lt;/P&gt;&lt;P&gt;	REF_DOC_NO&lt;/P&gt;&lt;P&gt;Item Data	&lt;/P&gt;&lt;P&gt;ACCOUNTGL	&lt;/P&gt;&lt;P&gt;	ITEMNO_ACC&lt;/P&gt;&lt;P&gt;	GL_ACCOUNT&lt;/P&gt;&lt;P&gt;	ITEM_TEXT&lt;/P&gt;&lt;P&gt;	TAX_CODE&lt;/P&gt;&lt;P&gt;ACCOUNTPAYABLE	&lt;/P&gt;&lt;P&gt;	ITEMNO_ACC&lt;/P&gt;&lt;P&gt;	VENDOR_NO&lt;/P&gt;&lt;P&gt;	ITEM_TEXT&lt;/P&gt;&lt;P&gt;	TAX_CODE&lt;/P&gt;&lt;P&gt;	&lt;/P&gt;&lt;P&gt;CURRENCYAMOUNT	&lt;/P&gt;&lt;P&gt;	ITEMNO_ACC&lt;/P&gt;&lt;P&gt;	CURRENCY&lt;/P&gt;&lt;P&gt;	AMT_DOCCUR&lt;/P&gt;&lt;P&gt;	AMT_BASE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;u can also use or submit RFBIBLOO&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Oct 2005 14:28:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1024005#M81900</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-10-26T14:28:20Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI for fb65</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1024006#M81901</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;sample code using RFBIBL00&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES : BGR00,    " Batch Input Structure for Session Data&lt;/P&gt;&lt;P&gt;         BBKPF,    " Doc Hdr for Accntng Doc (Batch Input Structure)&lt;/P&gt;&lt;P&gt;         BBSEG,    " Accounting Document Segment (Batch Input Structure)&lt;/P&gt;&lt;P&gt;         USR01.&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 Table and structure Declarations                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold input file data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF IT_INFILE OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE Z0FI_AP_FADS_TO_SAP. "Input file format&lt;/P&gt;&lt;P&gt;DATA:ERROR(1) TYPE C,                          "error indicator&lt;/P&gt;&lt;P&gt;END OF IT_INFILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold input file data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF IT_ERRORS OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE Z0FI_AP_FADS_TO_SAP. "Input file format&lt;/P&gt;&lt;P&gt;DATA: MSG(200) TYPE C,                         "message&lt;/P&gt;&lt;P&gt;END OF IT_ERRORS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold GL data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF IT_GL OCCURS 0,&lt;/P&gt;&lt;P&gt;SAP_GL_ACCOUNT  LIKE ZFGLT_GL_PRI_SUB-SAP_GL_ACCOUNT, "G/L Account&lt;/P&gt;&lt;P&gt;LGCY_SYSTEM     LIKE ZFGLT_GL_PRI_SUB-LGCY_SYSTEM,    "Legacy System&lt;/P&gt;&lt;P&gt;LGCY_PRIME_ACCT LIKE ZFGLT_GL_PRI_SUB-LGCY_PRIME_ACCT,"Legacy Account&lt;/P&gt;&lt;P&gt;LGCY_SUB_ACCT   LIKE ZFGLT_GL_PRI_SUB-LGCY_SUB_ACCT,  "Legacy Sub Acct&lt;/P&gt;&lt;P&gt;END OF IT_GL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold cost center data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF IT_COSTCTR OCCURS 0,&lt;/P&gt;&lt;P&gt;COST_OBJECT    LIKE ZFCFT_CTR_DPT_LG-COST_OBJECT,     "Cost center&lt;/P&gt;&lt;P&gt;LGCY_LDGR      LIKE ZFCFT_CTR_DPT_LG-LGCY_LDGR,       "Legacy ledger&lt;/P&gt;&lt;P&gt;LGCY_DEPT      LIKE ZFCFT_CTR_DPT_LG-LGCY_DEPT,       "Legacy Department&lt;/P&gt;&lt;P&gt;END OF IT_COSTCTR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold vendor data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF IT_LFA1 OCCURS 0,&lt;/P&gt;&lt;P&gt;LIFNR TYPE LIFNR,                                     "Vendor no&lt;/P&gt;&lt;P&gt;BUKRS TYPE BUKRS,                                     "Company code&lt;/P&gt;&lt;P&gt;STCD1 TYPE STCD1,                                           "Tax ID1&lt;/P&gt;&lt;P&gt;STCD2 TYPE STCD2,                                           "Tax ID2&lt;/P&gt;&lt;P&gt;END OF IT_LFA1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold Primary Sub Acct data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF IT_SUBACCT OCCURS 0,&lt;/P&gt;&lt;P&gt;PRYACT1(10) TYPE C,                                    "Pry sub Acct1&lt;/P&gt;&lt;P&gt;PRYACT2(10) TYPE C,                                    "Pry sub Acct2&lt;/P&gt;&lt;P&gt;END OF IT_SUBACCT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold ledger data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF IT_LEDGER OCCURS 0,&lt;/P&gt;&lt;P&gt;LGR_ID(4) TYPE C,                                      "Ledger ID&lt;/P&gt;&lt;P&gt;DEPT(4) TYPE C,                                        "Department&lt;/P&gt;&lt;P&gt;END OF IT_LEDGER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold tax id&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF IT_TAXID OCCURS 0,&lt;/P&gt;&lt;P&gt;TAXID1(16) TYPE C,                                          "Tax ID1&lt;/P&gt;&lt;P&gt;TAXID2(11) TYPE C,                                          "Tax ID2&lt;/P&gt;&lt;P&gt;END OF  IT_TAXID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold line amounts sum data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF IT_SUM OCCURS 0,&lt;/P&gt;&lt;P&gt;TAX_ID_NO(10) TYPE C,                                  "Tax Id No&lt;/P&gt;&lt;P&gt;INVOICE_NO(12) TYPE C,                                 "Invoice No&lt;/P&gt;&lt;P&gt;SUM2(11) TYPE P DECIMALS 2,                            "Sum&lt;/P&gt;&lt;P&gt;END OF IT_SUM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold Error records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF IT_ERROR OCCURS 0,&lt;/P&gt;&lt;P&gt;TAX_ID_NO(10) TYPE C,                                  "Tax Id No&lt;/P&gt;&lt;P&gt;INVOICE_NO(12) TYPE C,                                 "Invoice No&lt;/P&gt;&lt;P&gt;MSG(200) TYPE C,                                       "Message&lt;/P&gt;&lt;P&gt;END OF IT_ERROR .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold success records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : BEGIN OF IT_SUCCESS OCCURS 0,&lt;/P&gt;&lt;P&gt;        DOCNUM(10) TYPE C,                           "Document No&lt;/P&gt;&lt;P&gt;        BUKRS(4) TYPE C,                             "Company code&lt;/P&gt;&lt;P&gt;        FISYR(4) TYPE C,                             "Fiscal year&lt;/P&gt;&lt;P&gt;        MSG(100) TYPE C,                             "Message&lt;/P&gt;&lt;P&gt;       END OF IT_SUCCESS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold invoice no&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF IT_INVNO OCCURS 0,&lt;/P&gt;&lt;P&gt;      XBLNR(16) TYPE C,                              "Ref Doc No&lt;/P&gt;&lt;P&gt;      END OF IT_INVNO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold Invoice Document no's&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF IT_BKPF OCCURS 0,&lt;/P&gt;&lt;P&gt;      BUKRS LIKE BKPF-BUKRS,&lt;/P&gt;&lt;P&gt;      BELNR LIKE BKPF-BELNR,&lt;/P&gt;&lt;P&gt;      XBLNR LIKE BKPF-XBLNR,&lt;/P&gt;&lt;P&gt;      END OF IT_BKPF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to initialise structures&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:    BEGIN OF IT_NAMETAB OCCURS 120.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE DNTAB.&lt;/P&gt;&lt;P&gt;DATA:    END OF IT_NAMETAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold sessions data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF IT_LIST OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE ABAPLIST.&lt;/P&gt;&lt;P&gt;DATA:END OF IT_LIST.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Structure to hold input file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:X_INFILE LIKE IT_INFILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Structure to hold company code &amp;amp; currency data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF X_T001,&lt;/P&gt;&lt;P&gt;BUKRS LIKE T001-BUKRS,                                "Company code&lt;/P&gt;&lt;P&gt;WAERS LIKE T001-WAERS,                                "Currency&lt;/P&gt;&lt;P&gt;END OF X_T001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;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;&lt;/P&gt;&lt;P&gt;DATA: V_PGM_ID         LIKE SY-REPID,                "Program id&lt;/P&gt;&lt;P&gt;      V_COUNT_INFILE   TYPE I,                       "Counter&lt;/P&gt;&lt;P&gt;      V_TEXT(100)      TYPE C,                       "Text&lt;/P&gt;&lt;P&gt;      V_CHAR(61)       TYPE C,                       "Field name&lt;/P&gt;&lt;P&gt;      V_FILE           LIKE RLGRAP-FILENAME.         "File name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;      V_ERR            TYPE I,                       "Counter&lt;/P&gt;&lt;P&gt;      V_OBJKEY         LIKE  BAPIACHE09-OBJ_KEY,     "object key&lt;/P&gt;&lt;P&gt;      V_ERR_REC        TYPE I,                       "Error Records&lt;/P&gt;&lt;P&gt;      V_SUC_REC        TYPE I,                       "Success Records&lt;/P&gt;&lt;P&gt;      V_SESS           LIKE APQI-GROUPID.            "Session name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Field symbols&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FIELD-SYMBOLS: &amp;lt;F1&amp;gt; .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;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;DATA:&lt;/P&gt;&lt;P&gt;     C_ITEMNO(6)   TYPE C VALUE '000001',            "Item no&lt;/P&gt;&lt;P&gt;     C_DOCTYPE(2)  TYPE C VALUE 'KU',                "Doc type&lt;/P&gt;&lt;P&gt;     C_BUSACT(4)   TYPE C VALUE 'RMRP',              "Business Account&lt;/P&gt;&lt;P&gt;     C_FADS(7)     TYPE C VALUE 'FADS',              "Legacy system&lt;/P&gt;&lt;P&gt;     C_COMMA(1)    TYPE C VALUE ',' ,                "Comma&lt;/P&gt;&lt;P&gt;     C_NODATA(1)   TYPE C VALUE '/',                 "NODATA&lt;/P&gt;&lt;P&gt;     C_SESS        LIKE APQI-GROUPID VALUE 'FADS2SAP'."Session&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Selection Screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK NO1 WITH FRAME TITLE TEXT-001.&lt;/P&gt;&lt;P&gt;*Input file name&lt;/P&gt;&lt;P&gt;PARAMETERS:P_BUKRS  LIKE T001-BUKRS OBLIGATORY,&lt;/P&gt;&lt;P&gt;           P_INFILE LIKE RLGRAP-FILENAME LOWER CASE DEFAULT&lt;/P&gt;&lt;P&gt;                                           'C:\FB60.txt' OBLIGATORY,&lt;/P&gt;&lt;P&gt;*Filename for Error records&lt;/P&gt;&lt;P&gt;            P_ERR LIKE RLGRAP-FILENAME LOWER CASE DEFAULT&lt;/P&gt;&lt;P&gt;  '/int/D01/030/in/REQ853err.txt' OBLIGATORY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*For selecting either a sequential file or local file.&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;           R_PSERV RADIOBUTTON GROUP GR1 DEFAULT 'X',&lt;/P&gt;&lt;P&gt;           R_ASERV RADIOBUTTON GROUP GR1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK NO1.&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;&lt;/P&gt;&lt;P&gt;  V_PGM_ID = SY-REPID.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validating company code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT SINGLE BUKRS&lt;/P&gt;&lt;P&gt;         WAERS INTO (X_T001-BUKRS, X_T001-WAERS)&lt;/P&gt;&lt;P&gt;         FROM T001 WHERE BUKRS = P_BUKRS.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE E014 WITH 'Invalid Company code'(E01).&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_INFILE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Getting help for presentation server files&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF R_PSERV = 'X'.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'F4_FILENAME'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              PROGRAM_NAME  = V_PGM_ID&lt;/P&gt;&lt;P&gt;              DYNPRO_NUMBER = SY-DYNNR&lt;/P&gt;&lt;P&gt;              FIELD_NAME    = ' '&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              FILE_NAME     = P_INFILE.&lt;/P&gt;&lt;P&gt;  ENDIF.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If sequential file is selected&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF R_ASERV = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Form to get  data for apllication server&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM F_GET_INPUT_DATA.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if local file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If sequential file is selected&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM F_GET_LOCAL_DATA.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Selecting GL, Costcenter, vendor data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM F_SELECT_DATA.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validate the the input file data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM F_VALIDATE_DATA.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate data to fill structures&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM F_POPULATE_DATA.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the error data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM F_ERROR_DATA.&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;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  IF NOT IT_INFILE[] IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For submitting the program to rfbibloo&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM F_SUBMIT_RFBIBLOO.&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; WRITE : / 'Number of success records '(003),&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           v_suc_rec LEFT-JUSTIFIED.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE : / 'Number of error records '(004),&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            v_err_rec LEFT-JUSTIFIED.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF NOT IT_ERRORS[] IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Form to display the error report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM F_DISPLAY_REPORT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF NOT IT_SUCCESS[] IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Form to display the success report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM F_DISPLAY_SUC_REPORT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*--Standard footer&lt;/P&gt;&lt;P&gt;  PERFORM STD_END_OF_REPORT.&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;&lt;/P&gt;&lt;P&gt;*---Standard header&lt;/P&gt;&lt;P&gt;  PERFORM STD_TOP_OF_PAGE CHANGING SY-TITLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_get_local_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Getting the data from presentation server&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_LOCAL_DATA.&lt;/P&gt;&lt;P&gt;  DATA:LV_FILNAM TYPE STRING.     "File name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LV_FILNAM = P_INFILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            FILENAME                = LV_FILNAM&lt;/P&gt;&lt;P&gt;            FILETYPE                = 'ASC'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           has_field_separator     = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            DATA_TAB                = IT_INFILE&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            FILE_OPEN_ERROR         = 1&lt;/P&gt;&lt;P&gt;            FILE_READ_ERROR         = 2&lt;/P&gt;&lt;P&gt;            NO_BATCH                = 3&lt;/P&gt;&lt;P&gt;            GUI_REFUSE_FILETRANSFER = 4&lt;/P&gt;&lt;P&gt;            INVALID_TYPE            = 5&lt;/P&gt;&lt;P&gt;            NO_AUTHORITY            = 6&lt;/P&gt;&lt;P&gt;            UNKNOWN_ERROR           = 7&lt;/P&gt;&lt;P&gt;            BAD_DATA_FORMAT         = 8&lt;/P&gt;&lt;P&gt;            HEADER_NOT_ALLOWED      = 9&lt;/P&gt;&lt;P&gt;            SEPARATOR_NOT_ALLOWED   = 10&lt;/P&gt;&lt;P&gt;            HEADER_TOO_LONG         = 11&lt;/P&gt;&lt;P&gt;            UNKNOWN_DP_ERROR        = 12&lt;/P&gt;&lt;P&gt;            ACCESS_DENIED           = 13&lt;/P&gt;&lt;P&gt;            DP_OUT_OF_MEMORY        = 14&lt;/P&gt;&lt;P&gt;            DISK_FULL               = 15&lt;/P&gt;&lt;P&gt;            DP_TIMEOUT              = 16&lt;/P&gt;&lt;P&gt;            OTHERS                  = 17.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;P&gt;            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR V_COUNT_INFILE.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE IT_INFILE LINES V_COUNT_INFILE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine if input file has data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF V_COUNT_INFILE EQ 0.&lt;/P&gt;&lt;P&gt;    MESSAGE A001(ZFI).&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'Number of records read from input file  '(002)&lt;/P&gt;&lt;P&gt;                P_INFILE&lt;/P&gt;&lt;P&gt;                ': ' INTO V_TEXT.&lt;/P&gt;&lt;P&gt;    WRITE: / V_TEXT, V_COUNT_INFILE LEFT-JUSTIFIED.&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_get_local_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_GET_INPUT_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Getting the data from apllication server&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_INPUT_DATA.&lt;/P&gt;&lt;P&gt;  DATA: LV_FILNAM LIKE FILENAME-FILEEXTERN."File name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LV_FILNAM = P_INFILE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Opening Dataset&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  OPEN DATASET LV_FILNAM FOR INPUT IN TEXT MODE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Read legacy input file into internal table for furthing processing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO.&lt;/P&gt;&lt;P&gt;    CLEAR IT_INFILE.&lt;/P&gt;&lt;P&gt;    READ DATASET P_INFILE INTO IT_INFILE.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    ADD 1 TO V_COUNT_INFILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine if input file has data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF V_COUNT_INFILE EQ 0.&lt;/P&gt;&lt;P&gt;    MESSAGE A001(ZFI).&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'Number of records read from input file  '(002)&lt;/P&gt;&lt;P&gt;                P_INFILE&lt;/P&gt;&lt;P&gt;                ': ' INTO V_TEXT.&lt;/P&gt;&lt;P&gt;    WRITE: / V_TEXT, V_COUNT_INFILE LEFT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;closing dataset&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLOSE DATASET LV_FILNAM.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  f_populate_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populate data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_POPULATE_DATA.&lt;/P&gt;&lt;P&gt;  CLEAR: X_INFILE,IT_SUCCESS,V_SUC_REC.&lt;/P&gt;&lt;P&gt;  REFRESH IT_SUCCESS.&lt;/P&gt;&lt;P&gt;  SORT IT_INFILE BY TAX_ID_NO INVOICE_NO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE '/int/' SY-SYSID '/' SY-MANDT '/in/IR853_FB01.dat'&lt;/P&gt;&lt;P&gt;                                                     INTO V_FILE.&lt;/P&gt;&lt;P&gt;  CONDENSE V_FILE NO-GAPS.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Open the dataset&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  OPEN DATASET V_FILE FOR OUTPUT IN TEXT MODE.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT IT_INFILE.&lt;/P&gt;&lt;P&gt;      X_INFILE = IT_INFILE.&lt;/P&gt;&lt;P&gt;      AT FIRST.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To populate BGR00 structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        PERFORM F_POPULATE_BGR00.&lt;/P&gt;&lt;P&gt;        TRANSFER BGR00 TO V_FILE.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;      AT NEW INVOICE_NO.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To populate BBKPF structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        PERFORM F_POPULATE_BBKPF.&lt;/P&gt;&lt;P&gt;        TRANSFER BBKPF TO V_FILE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To populate BBSEG structure Credit&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        PERFORM POPULATE_BBSEG_C.&lt;/P&gt;&lt;P&gt;        TRANSFER BBSEG TO V_FILE.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To populate BBKPF structure Debit&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM POPULATE_BBSEG_D.&lt;/P&gt;&lt;P&gt;      TRANSFER BBSEG TO V_FILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR:X_INFILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_populate_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  f_display_report&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Display error report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_DISPLAY_REPORT.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Open the dataset&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  OPEN DATASET P_ERR FOR OUTPUT IN TEXT MODE.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;    LOOP AT IT_ERRORS.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Transfer the error records to error file on application server&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      TRANSFER IT_ERRORS TO P_ERR.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Closing the dataset&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLOSE DATASET  P_ERR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT IT_ERRORS[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR 1 INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;    SKIP 2.&lt;/P&gt;&lt;P&gt;    WRITE:/1(673) 'ERROR REPORT'(H01) CENTERED.&lt;/P&gt;&lt;P&gt;    ULINE /1(673).&lt;/P&gt;&lt;P&gt;    WRITE:/(4)'S.No'(005),&lt;/P&gt;&lt;P&gt;            SY-VLINE,&lt;/P&gt;&lt;P&gt;           (10) 'Tax Id No'(006),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (12) 'Invoice No'(007),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (8) 'Rec Type'(008),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (6) 'Seq No'(009),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (8) 'Batch No'(010),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (8) 'UserID'(011),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (8) 'NU1'(012),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (11) 'Inv Amt'(013),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (8) 'Inv Date'(014),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (10) 'G/L Org ID'(015),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (4) 'NU4'(012),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (4) 'NU5'(012),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (4) 'NU6'(012),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (4) 'NU7'(012),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (11) 'NU8'(012),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (4) 'NU9'(012),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (10) 'PO No'(016),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (30) 'Inv Desc'(017),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (10) 'Voucher No'(018),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (10) 'Inv LinNo'(019),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (11) 'Inv Lin Amt'(020),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (9) 'Led ID-1'(021),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (9) 'Led ID-2'(022),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (15) 'Pri Sub Acc-1'(023),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (15) 'Pri Sub Acc-2'(024),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (15) 'Dept Win Lgr'(025),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (5) 'NU2'(012),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (6) 'NU3'(012),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (11) 'Dist Amt'(026),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (8) 'Inv Type'(027),&lt;/P&gt;&lt;P&gt;            SY-VLINE,&lt;/P&gt;&lt;P&gt;           (12) 'PO Line No'(028),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (15) 'Inv Line Amt'(029),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (5) 'NU10'(012),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (13) 'NU11'(012),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (5) 'NU12'(012),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (6) 'NU13'(012),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (5) 'NU14'(012),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (5) 'NU15'(012),&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (200) 'Message'(030),&lt;/P&gt;&lt;P&gt;           SY-VLINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    FORMAT COLOR 6 INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;    LOOP AT IT_ERRORS.&lt;/P&gt;&lt;P&gt;      WRITE:/(4) SY-TABIX,&lt;/P&gt;&lt;P&gt;            SY-VLINE,&lt;/P&gt;&lt;P&gt;           (10) IT_ERRORS-TAX_ID_NO,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (12) IT_ERRORS-INVOICE_NO,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (8) IT_ERRORS-RECORD_TYPE,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (6) IT_ERRORS-SEQ_NO,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (8) IT_ERRORS-BATCH_NO,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (8) IT_ERRORS-USERID,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (8) IT_ERRORS-NU1,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (11) IT_ERRORS-INV_HEADER_AMT,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (8) IT_ERRORS-INVOICE_DATE,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (10) IT_ERRORS-GL_ORG_ID,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (4) IT_ERRORS-NU4,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (4) IT_ERRORS-NU5,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (4) IT_ERRORS-NU6,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (4) IT_ERRORS-NU7,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (11) IT_ERRORS-NU8,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (4) IT_ERRORS-NU9,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (10) IT_ERRORS-PONUMBER,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (30) IT_ERRORS-INV_DESC,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (10) IT_ERRORS-VOUCHER_NO,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (10) IT_ERRORS-INV_LINE_NO,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (11) IT_ERRORS-INV_LINE_AMT,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (9) IT_ERRORS-LEDGER_ID1,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (9) IT_ERRORS-LEDGER_ID2,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (15) IT_ERRORS-PRI_SUBACCT1,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (15) IT_ERRORS-PRI_SUBACCT2,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (15) IT_ERRORS-DEPT_WIN_LDGR,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (5) IT_ERRORS-NU2,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (6) IT_ERRORS-NU3,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (11) IT_ERRORS-DIST_AMT,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (8) IT_ERRORS-INV_TYPE,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (12) IT_ERRORS-PO_LINE_NO,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (15) IT_ERRORS-INV_LINE_AMT_D,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (5) IT_ERRORS-NU10,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (13) IT_ERRORS-NU11,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (5) IT_ERRORS-NU12,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (6) IT_ERRORS-NU13,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (5) IT_ERRORS-NU14,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (5) IT_ERRORS-NU15,&lt;/P&gt;&lt;P&gt;           SY-VLINE,&lt;/P&gt;&lt;P&gt;           (200) IT_ERRORS-MSG,&lt;/P&gt;&lt;P&gt;           SY-VLINE.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    ULINE /1(673).&lt;/P&gt;&lt;P&gt;  ENDIF.&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_select_data&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 of GL, Costcenter, vendor data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_SELECT_DATA.&lt;/P&gt;&lt;P&gt;  DATA:L_DEPT(4) TYPE N. "Legacy department&lt;/P&gt;&lt;P&gt;  CLEAR:IT_GL, IT_COSTCTR, IT_LFA1, IT_SUBACCT, IT_TAXID , IT_SUM.&lt;/P&gt;&lt;P&gt;  REFRESH:IT_GL, IT_COSTCTR, IT_LFA1, IT_SUBACCT, IT_TAXID,IT_SUM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT IT_INFILE BY TAX_ID_NO INVOICE_NO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Looping at input file&lt;/P&gt;&lt;P&gt;  LOOP AT IT_INFILE.&lt;/P&gt;&lt;P&gt;    X_INFILE = IT_INFILE.&lt;/P&gt;&lt;P&gt;*Summing the invoice line items amount and moving the sum to it_sum&lt;/P&gt;&lt;P&gt;    IT_SUM-TAX_ID_NO = IT_INFILE-TAX_ID_NO.&lt;/P&gt;&lt;P&gt;    IT_SUM-INVOICE_NO  = IT_INFILE-INVOICE_NO.&lt;/P&gt;&lt;P&gt;    IT_SUM-SUM2 = IT_INFILE-INV_LINE_AMT.&lt;/P&gt;&lt;P&gt;    COLLECT IT_SUM.&lt;/P&gt;&lt;P&gt;    CLEAR IT_SUM.&lt;/P&gt;&lt;P&gt;*Storing Primary Sub Account data&lt;/P&gt;&lt;P&gt;    IT_SUBACCT-PRYACT1 = IT_INFILE-PRI_SUBACCT1.&lt;/P&gt;&lt;P&gt;    IT_SUBACCT-PRYACT2 = IT_INFILE-PRI_SUBACCT2.&lt;/P&gt;&lt;P&gt;    APPEND IT_SUBACCT.&lt;/P&gt;&lt;P&gt;    CLEAR IT_SUBACCT.&lt;/P&gt;&lt;P&gt;*Storing Ledger ID data&lt;/P&gt;&lt;P&gt;    CONCATENATE IT_INFILE-LEDGER_ID1 IT_INFILE-LEDGER_ID2 INTO&lt;/P&gt;&lt;P&gt;    IT_LEDGER-LGR_ID.&lt;/P&gt;&lt;P&gt;    L_DEPT = IT_INFILE-DEPT_WIN_LDGR.&lt;/P&gt;&lt;P&gt;    IT_LEDGER-DEPT = L_DEPT.&lt;/P&gt;&lt;P&gt;    APPEND IT_LEDGER.&lt;/P&gt;&lt;P&gt;    CLEAR IT_LEDGER.&lt;/P&gt;&lt;P&gt;*Storing Tax ID data&lt;/P&gt;&lt;P&gt;    IT_TAXID-TAXID1 = IT_INFILE-TAX_ID_NO.&lt;/P&gt;&lt;P&gt;    IT_TAXID-TAXID2 = IT_INFILE-TAX_ID_NO.&lt;/P&gt;&lt;P&gt;    APPEND IT_TAXID.&lt;/P&gt;&lt;P&gt;    CLEAR IT_TAXID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONDENSE IT_INFILE-INVOICE_NO.&lt;/P&gt;&lt;P&gt;    IT_INVNO-XBLNR = IT_INFILE-INVOICE_NO.&lt;/P&gt;&lt;P&gt;    APPEND IT_INVNO.&lt;/P&gt;&lt;P&gt;    CLEAR IT_INVNO.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT IT_SUBACCT BY PRYACT1  PRYACT2.&lt;/P&gt;&lt;P&gt;  SORT IT_LEDGER BY LGR_ID DEPT.&lt;/P&gt;&lt;P&gt;  SORT IT_TAXID BY TAXID1 TAXID2.&lt;/P&gt;&lt;P&gt;  SORT IT_SUM  BY TAX_ID_NO INVOICE_NO.&lt;/P&gt;&lt;P&gt;  SORT IT_INVNO BY XBLNR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DELETE ADJACENT DUPLICATES FROM IT_SUBACCT COMPARING PRYACT1  PRYACT2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DELETE ADJACENT DUPLICATES FROM IT_LEDGER COMPARING LGR_ID DEPT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DELETE ADJACENT DUPLICATES FROM IT_TAXID COMPARING TAXID1 TAXID2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT IT_INVNO[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT BUKRS&lt;/P&gt;&lt;P&gt;           BELNR&lt;/P&gt;&lt;P&gt;           XBLNR&lt;/P&gt;&lt;P&gt;           INTO TABLE IT_BKPF&lt;/P&gt;&lt;P&gt;           FROM BKPF&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN IT_INVNO&lt;/P&gt;&lt;P&gt;           WHERE BUKRS = P_BUKRS AND&lt;/P&gt;&lt;P&gt;                 GJAHR = SY-DATUM+0(4) AND&lt;/P&gt;&lt;P&gt;                 BLART = C_DOCTYPE AND&lt;/P&gt;&lt;P&gt;                 XBLNR = IT_INVNO-XBLNR.&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;  IF NOT IT_SUBACCT[] IS INITIAL.&lt;/P&gt;&lt;P&gt;*Selecting G/L Account from General Ledger Z Table&lt;/P&gt;&lt;P&gt;    SELECT SAP_GL_ACCOUNT&lt;/P&gt;&lt;P&gt;    LGCY_SYSTEM&lt;/P&gt;&lt;P&gt;    LGCY_PRIME_ACCT&lt;/P&gt;&lt;P&gt;    LGCY_SUB_ACCT FROM ZFGLT_GL_PRI_SUB&lt;/P&gt;&lt;P&gt;    INTO TABLE IT_GL&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN IT_SUBACCT&lt;/P&gt;&lt;P&gt;    WHERE LGCY_SYSTEM = C_FADS AND&lt;/P&gt;&lt;P&gt;           LGCY_PRIME_ACCT = IT_SUBACCT-PRYACT1 AND&lt;/P&gt;&lt;P&gt;           LGCY_SUB_ACCT = IT_SUBACCT-PRYACT2.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC  = 0.&lt;/P&gt;&lt;P&gt;      SORT IT_GL BY SAP_GL_ACCOUNT&lt;/P&gt;&lt;P&gt;      LGCY_SYSTEM&lt;/P&gt;&lt;P&gt;      LGCY_PRIME_ACCT&lt;/P&gt;&lt;P&gt;      LGCY_SUB_ACCT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT IT_LEDGER[] IS INITIAL.&lt;/P&gt;&lt;P&gt;*Selecting cost center from Cost Center Z Table&lt;/P&gt;&lt;P&gt;      SELECT COST_OBJECT&lt;/P&gt;&lt;P&gt;      LGCY_LDGR&lt;/P&gt;&lt;P&gt;      LGCY_DEPT FROM ZFCFT_CTR_DPT_LG&lt;/P&gt;&lt;P&gt;      INTO TABLE IT_COSTCTR&lt;/P&gt;&lt;P&gt;      FOR ALL ENTRIES IN IT_LEDGER&lt;/P&gt;&lt;P&gt;      WHERE LGCY_LDGR = IT_LEDGER-LGR_ID AND&lt;/P&gt;&lt;P&gt;            LGCY_DEPT = IT_LEDGER-DEPT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;        SORT IT_COSTCTR BY COST_OBJECT&lt;/P&gt;&lt;P&gt;        LGCY_LDGR&lt;/P&gt;&lt;P&gt;        LGCY_DEPT.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT IT_TAXID[] IS INITIAL.&lt;/P&gt;&lt;P&gt;*Selecting vendor no from vendor master data&lt;/P&gt;&lt;P&gt;      SELECT A~LIFNR&lt;/P&gt;&lt;P&gt;             B~BUKRS&lt;/P&gt;&lt;P&gt;             A~STCD1&lt;/P&gt;&lt;P&gt;             A~STCD2&lt;/P&gt;&lt;P&gt;             FROM LFA1 AS A JOIN LFB1 AS B&lt;/P&gt;&lt;P&gt;             ON A&lt;SUB&gt;LIFNR = B&lt;/SUB&gt;LIFNR&lt;/P&gt;&lt;P&gt;             INTO TABLE IT_LFA1&lt;/P&gt;&lt;P&gt;             FOR ALL ENTRIES IN IT_TAXID&lt;/P&gt;&lt;P&gt;             WHERE BUKRS = P_BUKRS AND&lt;/P&gt;&lt;P&gt;            (  STCD1 = IT_TAXID-TAXID1 OR&lt;/P&gt;&lt;P&gt;              STCD2 = IT_TAXID-TAXID2 ).&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;ENDFORM.                    " f_select_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_validate_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         Validation of input file data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_VALIDATE_DATA.&lt;/P&gt;&lt;P&gt;  DATA:L_ERRFLAG TYPE C,              "Error flag&lt;/P&gt;&lt;P&gt;       L_DEPT(4) TYPE N,              "Department&lt;/P&gt;&lt;P&gt;       L_LGR_ID(4) TYPE C,            "Ledger ID&lt;/P&gt;&lt;P&gt;       LV_NO_OF_VENDORS TYPE I,       "No of vendors&lt;/P&gt;&lt;P&gt;       L_SUM(11) TYPE P DECIMALS 2,   "Sum&lt;/P&gt;&lt;P&gt;       LV_MSG1(30) TYPE C,            "Message&lt;/P&gt;&lt;P&gt;       LV_MSG2(25) TYPE C,            "Message&lt;/P&gt;&lt;P&gt;       LV_MSG3(6) TYPE C,             "Message&lt;/P&gt;&lt;P&gt;       LV_MSG4(31) TYPE C,            "Message&lt;/P&gt;&lt;P&gt;       LV_MSG5(53) TYPE C,            "Message&lt;/P&gt;&lt;P&gt;       LV_MSG6(30) TYPE C,            "Message&lt;/P&gt;&lt;P&gt;       LV_MSG7(50) TYPE C.            "Message&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT IT_INFILE.&lt;/P&gt;&lt;P&gt;    CLEAR:LV_MSG1,LV_MSG2, LV_MSG3,LV_MSG4,LV_MSG5, LV_MSG6, LV_MSG7.&lt;/P&gt;&lt;P&gt;    CLEAR L_ERRFLAG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SORT IT_SUM BY TAX_ID_NO&lt;/P&gt;&lt;P&gt;                   INVOICE_NO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR IT_SUBACCT.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validating Primary Sub Acct1 and Acct2.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE IT_GL WITH KEY LGCY_SYSTEM = C_FADS&lt;/P&gt;&lt;P&gt;               LGCY_PRIME_ACCT = IT_INFILE-PRI_SUBACCT1&lt;/P&gt;&lt;P&gt;               LGCY_SUB_ACCT  = IT_INFILE-PRI_SUBACCT2 .&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      LV_MSG1 = 'Primary Sub Acct1 and Acct2'(035).&lt;/P&gt;&lt;P&gt;      L_ERRFLAG = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE IT_INFILE-DEPT_WIN_LDGR TO L_DEPT.&lt;/P&gt;&lt;P&gt;    MOVE L_DEPT TO IT_INFILE-DEPT_WIN_LDGR.&lt;/P&gt;&lt;P&gt;    CONCATENATE IT_INFILE-LEDGER_ID1 IT_INFILE-LEDGER_ID2 INTO&lt;/P&gt;&lt;P&gt;L_LGR_ID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR: IT_COSTCTR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validating Ledger id &amp;amp; department&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE IT_COSTCTR WITH KEY LGCY_LDGR = L_LGR_ID&lt;/P&gt;&lt;P&gt;                             LGCY_DEPT = IT_INFILE-DEPT_WIN_LDGR.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      LV_MSG2 = 'Ledger id &amp;amp; department'(036).&lt;/P&gt;&lt;P&gt;      L_ERRFLAG = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validating Tax ID&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR:IT_LFA1.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_LFA1 WITH KEY STCD2 = IT_INFILE-TAX_ID_NO..&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      READ TABLE IT_LFA1 WITH KEY STCD1 = IT_INFILE-TAX_ID_NO..&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        LV_MSG3 = 'Tax ID'(041).&lt;/P&gt;&lt;P&gt;        L_ERRFLAG = 'X'.&lt;/P&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;Checking for no of vendors selected based on tax id. If no of vendors&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;selected are more than 1 or 0 then error out the record&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LV_NO_OF_VENDORS = 0.&lt;/P&gt;&lt;P&gt;    LOOP AT IT_LFA1 WHERE STCD1 = IT_INFILE-TAX_ID_NO OR&lt;/P&gt;&lt;P&gt;                          STCD2 = IT_INFILE-TAX_ID_NO.&lt;/P&gt;&lt;P&gt;      LV_NO_OF_VENDORS = LV_NO_OF_VENDORS + 1.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF LV_NO_OF_VENDORS = 0.&lt;/P&gt;&lt;P&gt;      LV_MSG6 = 'No vendor found for TAXID'(037).&lt;/P&gt;&lt;P&gt;      L_ERRFLAG = 'X'.&lt;/P&gt;&lt;P&gt;    ELSEIF LV_NO_OF_VENDORS &amp;gt; 1.&lt;/P&gt;&lt;P&gt;      LV_MSG4 = 'More than one vendor for Tax id'(038).&lt;/P&gt;&lt;P&gt;      L_ERRFLAG = 'X'.&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;Checking whether KU Document already exists for this Invoice No&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR IT_INVNO.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_BKPF WITH KEY XBLNR = IT_INFILE-INVOICE_NO.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      LV_MSG7 = 'KU Document already exists for this Invoice No '(042).&lt;/P&gt;&lt;P&gt;      L_ERRFLAG = 'X'.&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;Checking whether the invoice header amt is equal to the line items amt&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR IT_SUM.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_SUM WITH KEY TAX_ID_NO = IT_INFILE-TAX_ID_NO&lt;/P&gt;&lt;P&gt;                   INVOICE_NO = IT_INFILE-INVOICE_NO BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    CLEAR L_SUM.&lt;/P&gt;&lt;P&gt;    L_SUM = IT_INFILE-INV_HEADER_AMT.&lt;/P&gt;&lt;P&gt;    IF L_SUM &amp;lt;&amp;gt; IT_SUM-SUM2.&lt;/P&gt;&lt;P&gt;  LV_MSG5 = 'Header amt is not equal to the sum of all line items'(039).&lt;/P&gt;&lt;P&gt;      L_ERRFLAG = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Moving error records to error internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF L_ERRFLAG = 'X'.&lt;/P&gt;&lt;P&gt;      MOVE IT_INFILE TO IT_ERRORS.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'Invalid:'(040) LV_MSG1 LV_MSG2 LV_MSG3 LV_MSG4 LV_MSG5&lt;/P&gt;&lt;P&gt;             LV_MSG6 LV_MSG7 INTO IT_ERRORS-MSG SEPARATED BY SPACE.&lt;/P&gt;&lt;P&gt;      APPEND IT_ERRORS.&lt;/P&gt;&lt;P&gt;      CLEAR : IT_ERRORS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Deleting all the errors records from the processing internal table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and moving them to error table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      V_ERR = V_ERR + 1.&lt;/P&gt;&lt;P&gt;      IT_INFILE-ERROR = 'X'.&lt;/P&gt;&lt;P&gt;      MODIFY IT_INFILE TRANSPORTING ERROR.&lt;/P&gt;&lt;P&gt;      CLEAR IT_INFILE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  DELETE IT_INFILE WHERE ERROR = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Deleting all the line items from the processing internal table where&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;atleast one line item is error one&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SORT IT_ERRORS BY TAX_ID_NO&lt;/P&gt;&lt;P&gt;                    INVOICE_NO.&lt;/P&gt;&lt;P&gt;  CLEAR V_ERR_REC.&lt;/P&gt;&lt;P&gt;  LOOP AT IT_ERRORS.&lt;/P&gt;&lt;P&gt;    DELETE IT_INFILE WHERE TAX_ID_NO = IT_ERRORS-TAX_ID_NO AND&lt;/P&gt;&lt;P&gt;                           INVOICE_NO = IT_ERRORS-INVOICE_NO.&lt;/P&gt;&lt;P&gt;    AT NEW INVOICE_NO.&lt;/P&gt;&lt;P&gt;      V_ERR_REC = V_ERR_REC + 1.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_validate_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_error_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Processing error data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_ERROR_DATA.&lt;/P&gt;&lt;P&gt;  DELETE IT_ERROR WHERE MSG = 'Error in document: BKPFF $ D01030'(E02).&lt;/P&gt;&lt;P&gt;  SORT IT_ERROR BY TAX_ID_NO INVOICE_NO.&lt;/P&gt;&lt;P&gt;  LOOP AT IT_INFILE.&lt;/P&gt;&lt;P&gt;    X_INFILE = IT_INFILE.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_ERROR WITH KEY TAX_ID_NO = IT_INFILE-TAX_ID_NO&lt;/P&gt;&lt;P&gt;                      INVOICE_NO = IT_INFILE-INVOICE_NO BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      AT NEW INVOICE_NO.&lt;/P&gt;&lt;P&gt;        V_ERR_REC = V_ERR_REC + 1.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;      MOVE X_INFILE TO IT_ERRORS.&lt;/P&gt;&lt;P&gt;      IT_ERRORS-MSG = IT_ERROR-MSG.&lt;/P&gt;&lt;P&gt;      APPEND IT_ERRORS.&lt;/P&gt;&lt;P&gt;      CLEAR IT_ERRORS.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_error_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_display_suc_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 success 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_SUC_REPORT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;  FORMAT COLOR 1 INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;  SKIP 2.&lt;/P&gt;&lt;P&gt;  WRITE:/1(150) 'SUCCESS REPORT'(S01) CENTERED.&lt;/P&gt;&lt;P&gt;  ULINE /1(150).&lt;/P&gt;&lt;P&gt;  WRITE:/1 SY-VLINE,&lt;/P&gt;&lt;P&gt;         2 'Doc No'(031),&lt;/P&gt;&lt;P&gt;        13 SY-VLINE,&lt;/P&gt;&lt;P&gt;        14 'Company code'(032),&lt;/P&gt;&lt;P&gt;        26 SY-VLINE,&lt;/P&gt;&lt;P&gt;        27 'Fiscal Year'(033),&lt;/P&gt;&lt;P&gt;        40 SY-VLINE,&lt;/P&gt;&lt;P&gt;        41 'Message'(034),&lt;/P&gt;&lt;P&gt;       150 SY-VLINE.&lt;/P&gt;&lt;P&gt;  FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;  FORMAT COLOR 5 INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT IT_SUCCESS.&lt;/P&gt;&lt;P&gt;    WRITE:/1 SY-VLINE,&lt;/P&gt;&lt;P&gt;             2 IT_SUCCESS-DOCNUM,&lt;/P&gt;&lt;P&gt;            13 SY-VLINE,&lt;/P&gt;&lt;P&gt;            14 IT_SUCCESS-BUKRS,&lt;/P&gt;&lt;P&gt;            26 SY-VLINE,&lt;/P&gt;&lt;P&gt;            27 IT_SUCCESS-FISYR,&lt;/P&gt;&lt;P&gt;            40 SY-VLINE,&lt;/P&gt;&lt;P&gt;            41 IT_SUCCESS-MSG,&lt;/P&gt;&lt;P&gt;           150 SY-VLINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  ULINE /1(150).&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_display_suc_report&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_populate_bgr00&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To populate BGR00 structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_POPULATE_BGR00.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM F_INIT_STRUCTURES USING 'BGR00' C_NODATA.&lt;/P&gt;&lt;P&gt;  CLEAR V_SESS.&lt;/P&gt;&lt;P&gt;  CONCATENATE C_SESS SY-DATUM+4(4) INTO V_SESS SEPARATED BY '-'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  BGR00-STYPE  = '0'.&lt;/P&gt;&lt;P&gt;  BGR00-GROUP  = V_SESS.&lt;/P&gt;&lt;P&gt;  BGR00-MANDT  = SY-MANDT.&lt;/P&gt;&lt;P&gt;  BGR00-USNAM  = SY-UNAME.&lt;/P&gt;&lt;P&gt;  BGR00-START  = SPACE.&lt;/P&gt;&lt;P&gt;  BGR00-XKEEP  = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " F_populate_bgr00&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_init_structures&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;   Form to initialise structures&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_INIT_STRUCTURES USING TABNAME  LIKE DNTAB-TABNAME&lt;/P&gt;&lt;P&gt;                           I_NODATA LIKE C_NODATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH IT_NAMETAB.&lt;/P&gt;&lt;P&gt;  CLEAR IT_NAMETAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'NAMETAB_GET'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            LANGU          = SY-LANGU&lt;/P&gt;&lt;P&gt;            TABNAME        = TABNAME&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            NAMETAB        = IT_NAMETAB&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            NO_TEXTS_FOUND = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    LOOP AT IT_NAMETAB.&lt;/P&gt;&lt;P&gt;      CLEAR V_CHAR.&lt;/P&gt;&lt;P&gt;   CONCATENATE  IT_NAMETAB-TABNAME '-' IT_NAMETAB-FIELDNAME INTO V_CHAR.&lt;/P&gt;&lt;P&gt;      ASSIGN (V_CHAR) TO &amp;lt;F1&amp;gt;.&lt;/P&gt;&lt;P&gt;      &amp;lt;F1&amp;gt; = I_NODATA.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " INIT_STRUCTURES&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_populate_bbkpf&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To populate BBKPF structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_POPULATE_BBKPF.&lt;/P&gt;&lt;P&gt;  DATA:LV_DAT LIKE BKPF-BUDAT.&lt;/P&gt;&lt;P&gt;  PERFORM F_INIT_STRUCTURES USING 'BBKPF' C_NODATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To post Header record.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  BBKPF-STYPE = '1'.&lt;/P&gt;&lt;P&gt;  BBKPF-TCODE = 'FB01'.&lt;/P&gt;&lt;P&gt;  CLEAR LV_DAT.&lt;/P&gt;&lt;P&gt;  LV_DAT = SY-DATUM.&lt;/P&gt;&lt;P&gt;  WRITE LV_DAT TO BBKPF-BUDAT.&lt;/P&gt;&lt;P&gt;  CLEAR LV_DAT.&lt;/P&gt;&lt;P&gt;  LV_DAT = X_INFILE-INVOICE_DATE.&lt;/P&gt;&lt;P&gt;  WRITE LV_DAT TO BBKPF-BLDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  BBKPF-BLART = C_DOCTYPE.&lt;/P&gt;&lt;P&gt;  BBKPF-BUKRS = P_BUKRS..&lt;/P&gt;&lt;P&gt;  BBKPF-WAERS = X_T001-WAERS.&lt;/P&gt;&lt;P&gt;  BBKPF-XBLNR = X_INFILE-INVOICE_NO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_populate_bbkpf&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  populate_bbseg_c&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To populate BBSEG structure Credit&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 POPULATE_BBSEG_C.&lt;/P&gt;&lt;P&gt;  PERFORM F_INIT_STRUCTURES USING 'BBSEG' C_NODATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  BBSEG-STYPE = '2'.&lt;/P&gt;&lt;P&gt;  BBSEG-TBNAM = 'BBSEG'.&lt;/P&gt;&lt;P&gt;  BBSEG-NEWBS = '31'.&lt;/P&gt;&lt;P&gt;  READ TABLE IT_LFA1 WITH KEY STCD2 = X_INFILE-TAX_ID_NO .&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC  = 0.&lt;/P&gt;&lt;P&gt;    BBSEG-NEWKO = IT_LFA1-LIFNR.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_LFA1 WITH KEY STCD1 = X_INFILE-TAX_ID_NO .&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC  = 0.&lt;/P&gt;&lt;P&gt;      BBSEG-NEWKO = IT_LFA1-LIFNR.&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;  BBSEG-WRBTR = X_INFILE-INV_HEADER_AMT.&lt;/P&gt;&lt;P&gt;  BBSEG-SGTXT = X_INFILE-INV_DESC.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " populate_bbseg_c&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  POPULATE_BBSEG_D&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To populate BBSEG structure Debit&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 POPULATE_BBSEG_D.&lt;/P&gt;&lt;P&gt;  DATA:L_LGR_ID(4) TYPE C. "ledger id&lt;/P&gt;&lt;P&gt;  CLEAR L_LGR_ID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM F_INIT_STRUCTURES USING 'BBSEG' C_NODATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  BBSEG-STYPE = '2'.&lt;/P&gt;&lt;P&gt;  BBSEG-TBNAM = 'BBSEG'.&lt;/P&gt;&lt;P&gt;  BBSEG-NEWBS = '40'.&lt;/P&gt;&lt;P&gt;*Fetching G/L account&lt;/P&gt;&lt;P&gt;  READ TABLE IT_GL WITH KEY LGCY_SYSTEM = C_FADS&lt;/P&gt;&lt;P&gt;                 LGCY_PRIME_ACCT = X_INFILE-PRI_SUBACCT1&lt;/P&gt;&lt;P&gt;                 LGCY_SUB_ACCT  = X_INFILE-PRI_SUBACCT2.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    BBSEG-NEWKO  = IT_GL-SAP_GL_ACCOUNT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  BBSEG-WRBTR = X_INFILE-INV_LINE_AMT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE X_INFILE-LEDGER_ID1 X_INFILE-LEDGER_ID2 INTO&lt;/P&gt;&lt;P&gt; L_LGR_ID.&lt;/P&gt;&lt;P&gt;*Fetching  costcenter&lt;/P&gt;&lt;P&gt;  READ TABLE IT_COSTCTR WITH KEY LGCY_LDGR = L_LGR_ID&lt;/P&gt;&lt;P&gt;                           LGCY_DEPT = X_INFILE-DEPT_WIN_LDGR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    BBSEG-KOSTL = IT_COSTCTR-COST_OBJECT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  BBSEG-SGTXT = X_INFILE-INV_DESC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " POPULATE_BBSEG_D&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_submit_rfbibloo&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;     Submit the program to rfbibloo&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_SUBMIT_RFBIBLOO.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Submitting the file for RFBIBL00&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SUBMIT RFBIBL00 WITH DS_NAME = V_FILE&lt;/P&gt;&lt;P&gt;                  WITH CALLMODE = 'B'&lt;/P&gt;&lt;P&gt;                  WITH MAX_COMM = '9999'&lt;/P&gt;&lt;P&gt;                  WITH XINF = 'X'&lt;/P&gt;&lt;P&gt;                  AND RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Process the session if created successfully&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    SUBMIT RSBDCSUB  WITH MAPPE    = V_SESS&lt;/P&gt;&lt;P&gt;                     WITH Z_VERARB = 'X'&lt;/P&gt;&lt;P&gt;                     WITH FEHLER = ''&lt;/P&gt;&lt;P&gt;                     EXPORTING LIST TO MEMORY&lt;/P&gt;&lt;P&gt;                     AND RETURN.&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;Displaying the sessions data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM F_SESSION_LIST.&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_submit_rfbibloo&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_session_list&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;      Displaying the sessions data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_SESSION_LIST.&lt;/P&gt;&lt;P&gt;  DATA:LV_UCOMM LIKE SY-UCOMM. "usercommand&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'LIST_FROM_MEMORY'&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            LISTOBJECT = IT_LIST&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            NOT_FOUND  = 1&lt;/P&gt;&lt;P&gt;            OTHERS     = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT IT_LIST[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'DISPLAY_LIST'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FULLSCREEN                  = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CALLER_HANDLES_EVENTS       =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     IMPORTING&lt;/P&gt;&lt;P&gt;       USER_COMMAND                =  LV_UCOMM&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        LISTOBJECT                  = IT_LIST&lt;/P&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;P&gt;     EMPTY_LIST                  = 1&lt;/P&gt;&lt;P&gt;     OTHERS                      = 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;ENDFORM.                    " f_session_list&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Oct 2005 14:34:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1024006#M81901</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-10-26T14:34:25Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI for fb65</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1024007#M81902</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;sample code using BAPI&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 Table and structure Declarations                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Structure to hold header data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: x_docheader LIKE bapiache09.   "Header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold account GL data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF it_accgl OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapiacgl09. "G/L account item.&lt;/P&gt;&lt;P&gt;DATA: END OF it_accgl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold account payee data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF it_accpy OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapiacap09. "Vendor Item.&lt;/P&gt;&lt;P&gt;DATA: END OF it_accpy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold currency amount data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF it_curramt OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapiaccr09. "Currency Items.&lt;/P&gt;&lt;P&gt;DATA: END OF it_curramt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold return data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold input file data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF it_infile OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE z0fi_ap_fads_to_sap. "Input file format&lt;/P&gt;&lt;P&gt;DATA:error(1) TYPE c,                          "error indicator&lt;/P&gt;&lt;P&gt;END OF it_infile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold input file data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF it_errors OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE z0fi_ap_fads_to_sap. "Input file format&lt;/P&gt;&lt;P&gt;DATA: msg(200) TYPE c,                         "message&lt;/P&gt;&lt;P&gt;END OF it_errors.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold GL data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF it_gl OCCURS 0,&lt;/P&gt;&lt;P&gt;sap_gl_account  LIKE zfglt_gl_pri_sub-sap_gl_account, "G/L Account&lt;/P&gt;&lt;P&gt;lgcy_system     LIKE zfglt_gl_pri_sub-lgcy_system,    "Legacy System&lt;/P&gt;&lt;P&gt;lgcy_prime_acct LIKE zfglt_gl_pri_sub-lgcy_prime_acct,"Legacy Account&lt;/P&gt;&lt;P&gt;lgcy_sub_acct   LIKE zfglt_gl_pri_sub-lgcy_sub_acct,  "Legacy Sub Acct&lt;/P&gt;&lt;P&gt;END OF it_gl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold cost center data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF it_costctr OCCURS 0,&lt;/P&gt;&lt;P&gt;cost_object    LIKE zfcft_ctr_dpt_lg-cost_object,     "Cost center&lt;/P&gt;&lt;P&gt;lgcy_ldgr      LIKE zfcft_ctr_dpt_lg-lgcy_ldgr,       "Legacy ledger&lt;/P&gt;&lt;P&gt;lgcy_dept      LIKE zfcft_ctr_dpt_lg-lgcy_dept,       "Legacy Department&lt;/P&gt;&lt;P&gt;END OF it_costctr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold vendor data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF it_lfa1 OCCURS 0,&lt;/P&gt;&lt;P&gt;lifnr TYPE lifnr,                                     "Vendor no&lt;/P&gt;&lt;P&gt;BUKRS TYPE BUKRS,                                     "Company code&lt;/P&gt;&lt;P&gt;stcd1 TYPE stcd1,                                     "Tax ID1&lt;/P&gt;&lt;P&gt;stcd2 TYPE stcd2,                                     "Tax ID2&lt;/P&gt;&lt;P&gt;END OF it_lfa1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold Primary Sub Acct data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF it_subacct OCCURS 0,&lt;/P&gt;&lt;P&gt;pryact1(10) TYPE c,                                    "Pry sub Acct1&lt;/P&gt;&lt;P&gt;pryact2(10) TYPE c,                                    "Pry sub Acct2&lt;/P&gt;&lt;P&gt;END OF it_subacct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold ledger data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF it_ledger OCCURS 0,&lt;/P&gt;&lt;P&gt;lgr_id(4) TYPE C,                                      "Ledger ID&lt;/P&gt;&lt;P&gt;dept(4) TYPE c,                                        "Department&lt;/P&gt;&lt;P&gt;END OF it_ledger.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold tax id&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF it_taxid OCCURS 0,&lt;/P&gt;&lt;P&gt;taxid1(16) TYPE c,                                     "Tax ID1&lt;/P&gt;&lt;P&gt;taxid2(11) TYPE c,                                     "Tax ID2&lt;/P&gt;&lt;P&gt;END OF  it_taxid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold line amounts sum data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF it_sum OCCURS 0,&lt;/P&gt;&lt;P&gt;tax_id_no(10) TYPE c,                                  "Tax Id No&lt;/P&gt;&lt;P&gt;invoice_no(12) TYPE c,                                 "Invoice No&lt;/P&gt;&lt;P&gt;sum2(11) TYPE p DECIMALS 2,                            "Sum&lt;/P&gt;&lt;P&gt;END OF it_sum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold Error records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data:BEGIN OF IT_ERROR OCCURS 0,&lt;/P&gt;&lt;P&gt;tax_id_no(10) TYPE c,                                  "Tax Id No&lt;/P&gt;&lt;P&gt;invoice_no(12) TYPE c,                                 "Invoice No&lt;/P&gt;&lt;P&gt;MSG(200) TYPE C,                                       "Message&lt;/P&gt;&lt;P&gt;END OF IT_eRROR .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold success records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : BEGIN OF it_success OCCURS 0,&lt;/P&gt;&lt;P&gt;        docnum(10) TYPE c,                           "Document No&lt;/P&gt;&lt;P&gt;        bukrs(4) TYPE c,                             "Company code&lt;/P&gt;&lt;P&gt;        fisyr(4) TYPE c,                             "Fiscal year&lt;/P&gt;&lt;P&gt;        msg(100) TYPE c,                             "Message&lt;/P&gt;&lt;P&gt;       END OF it_success.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:begin of it_invno occurs 0,&lt;/P&gt;&lt;P&gt;      xblnr(16) type c,&lt;/P&gt;&lt;P&gt;      end of it_invno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to hold Invoice Document no's&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF IT_BKPF OCCURS 0,&lt;/P&gt;&lt;P&gt;      bukrs LIKE BKPF-BUKRS,&lt;/P&gt;&lt;P&gt;      belnr LIKE BKPF-BELNR,&lt;/P&gt;&lt;P&gt;      xblnr like bkpf-xblnr,&lt;/P&gt;&lt;P&gt;      END OF IT_BKPF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Structure to hold input file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:x_infile LIKE it_infile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Structure to hold company code &amp;amp; currency data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:BEGIN OF x_t001,&lt;/P&gt;&lt;P&gt;bukrs LIKE t001-bukrs,                                "Company code&lt;/P&gt;&lt;P&gt;waers LIKE t001-waers,                                "Currency&lt;/P&gt;&lt;P&gt;END OF x_t001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;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;&lt;/P&gt;&lt;P&gt;DATA: v_pgm_id         LIKE sy-repid,                "Program id&lt;/P&gt;&lt;P&gt;      v_count_infile   TYPE i,                       "Counter&lt;/P&gt;&lt;P&gt;      v_text(100)      TYPE c.                       "Text&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;      v_err            TYPE i,                       "Counter&lt;/P&gt;&lt;P&gt;      v_objkey         LIKE  bapiache09-obj_key,     "object key&lt;/P&gt;&lt;P&gt;      v_err_rec        type i,                       "Error Records&lt;/P&gt;&lt;P&gt;      v_suc_rec        type i.                       "Success Records&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;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;DATA:&lt;/P&gt;&lt;P&gt;     c_itemno(6)   TYPE c VALUE '000001',            "Item no&lt;/P&gt;&lt;P&gt;     c_doctype(2)  TYPE c VALUE 'KU',                "Doc type&lt;/P&gt;&lt;P&gt;     c_busact(4)   TYPE c VALUE 'RMRP',              "Business Account&lt;/P&gt;&lt;P&gt;     c_fads(7)     TYPE c VALUE 'FADS'.              "Legacy system&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Selection Screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK no1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;*Input file name&lt;/P&gt;&lt;P&gt;PARAMETERS:p_bukrs  LIKE t001-bukrs OBLIGATORY,&lt;/P&gt;&lt;P&gt;           p_infile LIKE rlgrap-filename LOWER CASE DEFAULT&lt;/P&gt;&lt;P&gt;                                           'C:\FB60.txt' OBLIGATORY,&lt;/P&gt;&lt;P&gt;*Filename for Error records&lt;/P&gt;&lt;P&gt;            p_err LIKE rlgrap-filename LOWER CASE DEFAULT&lt;/P&gt;&lt;P&gt;  '/int/D01/030/in/REQ853err.txt' OBLIGATORY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*For selecting either a sequential file or local file.&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;           r_pserv RADIOBUTTON GROUP gr1 DEFAULT 'X',&lt;/P&gt;&lt;P&gt;           r_aserv RADIOBUTTON GROUP gr1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK no1.&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;&lt;/P&gt;&lt;P&gt;  v_pgm_id = sy-repid.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validating company code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT SINGLE bukrs&lt;/P&gt;&lt;P&gt;         waers INTO (x_t001-bukrs, x_t001-waers)&lt;/P&gt;&lt;P&gt;         FROM t001 WHERE bukrs = p_bukrs.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e014 WITH 'Invalid Company code'(e01).&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_infile.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Getting help for presentation server files&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF r_pserv = 'X'.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'F4_FILENAME'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              program_name  = v_pgm_id&lt;/P&gt;&lt;P&gt;              dynpro_number = sy-dynnr&lt;/P&gt;&lt;P&gt;              field_name    = ' '&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              file_name     = p_infile.&lt;/P&gt;&lt;P&gt;  ENDIF.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If sequential file is selected&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF r_aserv = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Form to get  data for apllication server&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM f_get_input_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if local file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If sequential file is selected&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM f_get_local_data.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Selecting GL, Costcenter, vendor data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM f_select_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validate the the input file data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM f_validate_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate data to be passed to BAPI&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM f_populate_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the error data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; PERFORM f_error_data.&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;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;   write : / 'Number of success records '(003),&lt;/P&gt;&lt;P&gt;             v_suc_rec LEFT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;   write : / 'Number of error records '(004),&lt;/P&gt;&lt;P&gt;              v_err_rec LEFT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;  IF NOT it_errors[] IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Form to display the error report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM f_display_report.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  if not it_success[] is initial.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Form to display the success report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   perform f_display_suc_report.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;*--Standard footer&lt;/P&gt;&lt;P&gt;  PERFORM std_end_of_report.&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;&lt;/P&gt;&lt;P&gt;*---Standard header&lt;/P&gt;&lt;P&gt;  PERFORM std_top_of_page CHANGING sy-title.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_get_local_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Getting the data from presentation server&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_local_data.&lt;/P&gt;&lt;P&gt;  DATA:lv_filnam TYPE string.     "File name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lv_filnam = p_infile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            filename                = lv_filnam&lt;/P&gt;&lt;P&gt;            filetype                = 'ASC'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           has_field_separator     = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            data_tab                = it_infile&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            file_open_error         = 1&lt;/P&gt;&lt;P&gt;            file_read_error         = 2&lt;/P&gt;&lt;P&gt;            no_batch                = 3&lt;/P&gt;&lt;P&gt;            gui_refuse_filetransfer = 4&lt;/P&gt;&lt;P&gt;            invalid_type            = 5&lt;/P&gt;&lt;P&gt;            no_authority            = 6&lt;/P&gt;&lt;P&gt;            unknown_error           = 7&lt;/P&gt;&lt;P&gt;            bad_data_format         = 8&lt;/P&gt;&lt;P&gt;            header_not_allowed      = 9&lt;/P&gt;&lt;P&gt;            separator_not_allowed   = 10&lt;/P&gt;&lt;P&gt;            header_too_long         = 11&lt;/P&gt;&lt;P&gt;            unknown_dp_error        = 12&lt;/P&gt;&lt;P&gt;            access_denied           = 13&lt;/P&gt;&lt;P&gt;            dp_out_of_memory        = 14&lt;/P&gt;&lt;P&gt;            disk_full               = 15&lt;/P&gt;&lt;P&gt;            dp_timeout              = 16&lt;/P&gt;&lt;P&gt;            OTHERS                  = 17.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR v_count_infile.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE it_infile LINES v_count_infile.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine if input file has data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF v_count_infile EQ 0.&lt;/P&gt;&lt;P&gt;    MESSAGE a001(zfi).&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'Number of records read from input file  '(002)&lt;/P&gt;&lt;P&gt;                p_infile&lt;/P&gt;&lt;P&gt;                ': ' INTO v_text.&lt;/P&gt;&lt;P&gt;    WRITE: / v_text, v_count_infile LEFT-JUSTIFIED.&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_get_local_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_GET_INPUT_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Getting the data from apllication server&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_input_data.&lt;/P&gt;&lt;P&gt;  DATA: lv_filnam LIKE filename-fileextern."File name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lv_filnam = p_infile.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Opening Dataset&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  OPEN DATASET lv_filnam FOR INPUT IN TEXT MODE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Read legacy input file into internal table for furthing processing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO.&lt;/P&gt;&lt;P&gt;    CLEAR it_infile.&lt;/P&gt;&lt;P&gt;    READ DATASET p_infile INTO it_infile.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    ADD 1 TO v_count_infile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine if input file has data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF v_count_infile EQ 0.&lt;/P&gt;&lt;P&gt;    MESSAGE a001(zfi).&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'Number of records read from input file  '(002)&lt;/P&gt;&lt;P&gt;                p_infile&lt;/P&gt;&lt;P&gt;                ': ' INTO v_text.&lt;/P&gt;&lt;P&gt;    WRITE: / v_text, v_count_infile LEFT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;closing dataset&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLOSE DATASET lv_filnam.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  f_populate_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populate data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_populate_data.&lt;/P&gt;&lt;P&gt;  CLEAR: x_infile,it_success,v_suc_rec.&lt;/P&gt;&lt;P&gt;  refresh it_success.&lt;/P&gt;&lt;P&gt;  SORT it_infile BY tax_id_no invoice_no.&lt;/P&gt;&lt;P&gt;LOOP AT it_infile.&lt;/P&gt;&lt;P&gt;    x_infile = it_infile.&lt;/P&gt;&lt;P&gt;    AT NEW invoice_no.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate header data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM f_populate_head_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate vendor header data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM f_acctpayee_data.&lt;/P&gt;&lt;P&gt;      it_curramt-itemno_acc = c_itemno.&lt;/P&gt;&lt;P&gt;      it_curramt-amt_doccur = x_infile-inv_header_amt * -1.&lt;/P&gt;&lt;P&gt;      it_curramt-currency   = x_t001-waers.&lt;/P&gt;&lt;P&gt;      APPEND it_curramt.&lt;/P&gt;&lt;P&gt;      CLEAR it_curramt.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate Account G/L data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM f_acctgl_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate Currency Amount data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM f_curramt_data.&lt;/P&gt;&lt;P&gt;    AT END OF invoice_no.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Call the BAPI to post the document&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM f_call_bapi.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;    CLEAR:x_infile.&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_populate_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  f_populate_head_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populate header data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_populate_head_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  x_docheader-bus_act     = c_busact.&lt;/P&gt;&lt;P&gt;  x_docheader-username    = sy-uname.&lt;/P&gt;&lt;P&gt;  x_docheader-comp_code   = p_bukrs.&lt;/P&gt;&lt;P&gt;  x_docheader-doc_date    = x_infile-invoice_date.&lt;/P&gt;&lt;P&gt;  x_docheader-pstng_date  = sy-datum.&lt;/P&gt;&lt;P&gt;  x_docheader-doc_type    = c_doctype.&lt;/P&gt;&lt;P&gt;  x_docheader-ref_doc_no  = x_infile-invoice_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_populate_head_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  f_acctpayee_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populate vendor data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_acctpayee_data.&lt;/P&gt;&lt;P&gt;  READ TABLE it_lfa1 WITH KEY stcd2 = x_infile-tax_id_no .&lt;/P&gt;&lt;P&gt;  IF sy-subrc  = 0.&lt;/P&gt;&lt;P&gt;    it_accpy-vendor_no   = it_lfa1-lifnr.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    READ TABLE it_lfa1 WITH KEY stcd1 = x_infile-tax_id_no .&lt;/P&gt;&lt;P&gt;    IF sy-subrc  = 0.&lt;/P&gt;&lt;P&gt;      it_accpy-vendor_no   = it_lfa1-lifnr.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  it_accpy-itemno_acc  = c_itemno.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; it_Accpy-item_text   = X_infile-INV_DESC.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  APPEND it_accpy.&lt;/P&gt;&lt;P&gt;  CLEAR it_accpy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_populate_item_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_acctgl_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populate Account G/L data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_acctgl_data.&lt;/P&gt;&lt;P&gt;  DATA:l_lgr_id(4) TYPE c. "ledger id&lt;/P&gt;&lt;P&gt;  CLEAR l_lgr_id.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  it_accgl-itemno_acc = x_infile-inv_line_no + 1.&lt;/P&gt;&lt;P&gt;*Fetching G/L account&lt;/P&gt;&lt;P&gt;  READ TABLE it_gl WITH KEY lgcy_system = c_fads&lt;/P&gt;&lt;P&gt;                 lgcy_prime_acct = x_infile-pri_subacct1&lt;/P&gt;&lt;P&gt;                 lgcy_sub_acct  = x_infile-pri_subacct2.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    it_accgl-gl_account = it_gl-sap_gl_account.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  it_accgl-item_text  = x_infile-inv_desc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE x_infile-ledger_id1 x_infile-ledger_id2 INTO&lt;/P&gt;&lt;P&gt; l_lgr_id.&lt;/P&gt;&lt;P&gt;*Fetching  costcenter&lt;/P&gt;&lt;P&gt;  READ TABLE it_costctr WITH KEY lgcy_ldgr = l_lgr_id&lt;/P&gt;&lt;P&gt;                           lgcy_dept = x_infile-dept_win_ldgr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    it_accgl-costcenter = it_costctr-cost_object.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; it_accgl-tax_code   = c_tax_code.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  APPEND it_accgl.&lt;/P&gt;&lt;P&gt;  CLEAR it_accgl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_acctgl_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  f_curramt_Data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populate Currency Amount data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_curramt_data.&lt;/P&gt;&lt;P&gt;  it_curramt-itemno_acc = x_infile-inv_line_no + 1.&lt;/P&gt;&lt;P&gt;  it_curramt-amt_doccur = x_infile-inv_line_amt.&lt;/P&gt;&lt;P&gt;  it_curramt-currency   = x_t001-waers.&lt;/P&gt;&lt;P&gt;  APPEND it_curramt.&lt;/P&gt;&lt;P&gt;  CLEAR it_curramt.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_curramt_Data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  F_CALL_BAPI&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Calling BAPI&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_call_bapi.&lt;/P&gt;&lt;P&gt;  CLEAR:  it_return."it_success&lt;/P&gt;&lt;P&gt;  REFRESH: it_return. "it_success&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Creating a posting in Accounting.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            documentheader = x_docheader&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            obj_key        = v_objkey&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            accountgl      = it_accgl&lt;/P&gt;&lt;P&gt;            accountpayable = it_accpy&lt;/P&gt;&lt;P&gt;            currencyamount = it_curramt&lt;/P&gt;&lt;P&gt;            return         = it_return.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT v_objkey IS INITIAL AND v_objkey NE '$'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Commit work&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.&lt;/P&gt;&lt;P&gt;    it_success-docnum =  v_objkey+0(10).&lt;/P&gt;&lt;P&gt;    it_success-bukrs =  v_objkey+10(4).&lt;/P&gt;&lt;P&gt;    it_success-fisyr =  v_objkey+14(4).&lt;/P&gt;&lt;P&gt;    READ TABLE it_return INDEX 1.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      it_success-msg =  it_return-message.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    v_suc_rec = v_suc_rec + 1.&lt;/P&gt;&lt;P&gt;    APPEND it_success.&lt;/P&gt;&lt;P&gt;    CLEAR it_success.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    LOOP AT it_return.&lt;/P&gt;&lt;P&gt;      IT_ERROR-TAX_ID_NO = X_infile-TAX_ID_NO.&lt;/P&gt;&lt;P&gt;      IT_ERROR-INVOICE_NO = X_infile-INVOICE_NO.&lt;/P&gt;&lt;P&gt;      it_error-msg = it_return-message.&lt;/P&gt;&lt;P&gt;      APPEND it_error.&lt;/P&gt;&lt;P&gt;      CLEAR it_error.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Roll back&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  REFRESH : it_accgl,it_curramt,it_return,it_accpy.&lt;/P&gt;&lt;P&gt;  CLEAR : x_docheader,it_accgl, it_curramt,it_return,it_accpy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_CALL_BAPI&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  f_display_report&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Display error report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_display_report.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Open the dataset&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  OPEN DATASET p_err FOR OUTPUT IN TEXT MODE.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    LOOP AT it_errors.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Transfer the error records to error file on application server&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      TRANSFER it_errors TO p_err.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Closing the dataset&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLOSE DATASET  p_err.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT it_errors[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR 1 INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;    SKIP 2.&lt;/P&gt;&lt;P&gt;    WRITE:/1(673) 'ERROR REPORT'(H01) CENTERED.&lt;/P&gt;&lt;P&gt;    ULINE /1(673).&lt;/P&gt;&lt;P&gt;    WRITE:/(4)'S.No'(005),&lt;/P&gt;&lt;P&gt;            sy-vline,&lt;/P&gt;&lt;P&gt;           (10) 'Tax Id No'(006),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (12) 'Invoice No'(007),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) 'Rec Type'(008),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (6) 'Seq No'(009),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) 'Batch No'(010),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) 'UserID'(011),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) 'NU1'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (11) 'Inv Amt'(013),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) 'Inv Date'(014),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (10) 'G/L Org ID'(015),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (4) 'NU4'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (4) 'NU5'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (4) 'NU6'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (4) 'NU7'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (11) 'NU8'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (4) 'NU9'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (10) 'PO No'(016),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (30) 'Inv Desc'(017),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (10) 'Voucher No'(018),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (10) 'Inv LinNo'(019),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (11) 'Inv Lin Amt'(020),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (9) 'Led ID-1'(021),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (9) 'Led ID-2'(022),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (15) 'Pri Sub Acc-1'(023),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (15) 'Pri Sub Acc-2'(024),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (15) 'Dept Win Lgr'(025),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (5) 'NU2'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (6) 'NU3'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (11) 'Dist Amt'(026),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) 'Inv Type'(027),&lt;/P&gt;&lt;P&gt;            sy-vline,&lt;/P&gt;&lt;P&gt;           (12) 'PO Line No'(028),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (15) 'Inv Line Amt'(029),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (5) 'NU10'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (13) 'NU11'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (5) 'NU12'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (6) 'NU13'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (5) 'NU14'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (5) 'NU15'(012),&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (200) 'Message'(030),&lt;/P&gt;&lt;P&gt;           sy-vline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    FORMAT COLOR 6 INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;    LOOP AT it_errors.&lt;/P&gt;&lt;P&gt;      WRITE:/(4) sy-tabix,&lt;/P&gt;&lt;P&gt;            sy-vline,&lt;/P&gt;&lt;P&gt;           (10) it_errors-TAX_ID_NO,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (12) it_errors-INVOICE_NO,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) it_errors-RECORD_TYPE,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (6) it_errors-SEQ_NO,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) it_errors-BATCH_NO,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) it_errors-USERID,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) it_errors-NU1,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (11) it_errors-INV_HEADER_AMT,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) it_errors-INVOICE_DATE,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (10) it_errors-GL_ORG_ID,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (4) it_errors-NU4,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (4) it_errors-NU5,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (4) it_errors-NU6,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (4) it_errors-NU7,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (11) it_errors-NU8,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (4) it_errors-NU9,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (10) it_errors-PONUMBER,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (30) it_errors-INV_DESC,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (10) it_errors-VOUCHER_NO,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (10) it_errors-INV_LINE_NO,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (11) it_errors-INV_LINE_AMT,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (9) it_errors-LEDGER_ID1,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (9) it_errors-LEDGER_ID2,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (15) it_errors-PRI_SUBACCT1,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (15) it_errors-PRI_SUBACCT2,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (15) it_errors-DEPT_WIN_LDGR,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (5) it_errors-NU2,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (6) it_errors-NU3,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (11) it_errors-DIST_AMT,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (8) it_errors-INV_TYPE,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (12) it_errors-PO_LINE_NO,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (15) it_errors-INV_LINE_AMT_D,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (5) it_errors-NU10,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (13) it_errors-NU11,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (5) it_errors-NU12,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (6) it_errors-NU13,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (5) it_errors-NU14,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (5) it_errors-NU15,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           (200) it_errors-msg,&lt;/P&gt;&lt;P&gt;           sy-vline.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    ULINE /1(673).&lt;/P&gt;&lt;P&gt;  ENDIF.&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_select_data&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 of GL, Costcenter, vendor data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_select_data.&lt;/P&gt;&lt;P&gt;DATA:L_dEPT(4) TYPE N. "Legacy department&lt;/P&gt;&lt;P&gt;  CLEAR:it_gl, it_costctr, it_lfa1, it_subacct, it_taxid , it_sum.&lt;/P&gt;&lt;P&gt;  REFRESH:it_gl, it_costctr, it_lfa1, it_subacct, it_taxid,it_sum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT it_infile BY tax_id_no invoice_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Looping at input file&lt;/P&gt;&lt;P&gt;  LOOP AT it_infile.&lt;/P&gt;&lt;P&gt;    x_infile = it_infile.&lt;/P&gt;&lt;P&gt;*Summing the invoice line items amount and moving the sum to it_sum&lt;/P&gt;&lt;P&gt;    it_sum-tax_id_no = it_infile-tax_id_no.&lt;/P&gt;&lt;P&gt;    it_sum-invoice_no  = it_infile-invoice_no.&lt;/P&gt;&lt;P&gt;    it_sum-sum2 = it_infile-inv_line_amt.&lt;/P&gt;&lt;P&gt;    COLLECT it_sum.&lt;/P&gt;&lt;P&gt;    CLEAR it_sum.&lt;/P&gt;&lt;P&gt;*Storing Primary Sub Account data&lt;/P&gt;&lt;P&gt;    it_subacct-pryact1 = it_infile-pri_subacct1.&lt;/P&gt;&lt;P&gt;    it_subacct-pryact2 = it_infile-pri_subacct2.&lt;/P&gt;&lt;P&gt;    APPEND it_subacct.&lt;/P&gt;&lt;P&gt;    CLEAR it_subacct.&lt;/P&gt;&lt;P&gt;*Storing Ledger ID data&lt;/P&gt;&lt;P&gt;    CONCATENATE it_infile-ledger_id1 it_infile-ledger_id2 INTO&lt;/P&gt;&lt;P&gt;    it_ledger-lgr_id.&lt;/P&gt;&lt;P&gt;    l_dept = it_infile-dept_win_ldgr.&lt;/P&gt;&lt;P&gt;    it_ledger-dept = l_dept.&lt;/P&gt;&lt;P&gt;    APPEND it_ledger.&lt;/P&gt;&lt;P&gt;    CLEAR it_ledger.&lt;/P&gt;&lt;P&gt;*Storing Tax ID data&lt;/P&gt;&lt;P&gt;    it_taxid-taxid1 = it_infile-tax_id_no.&lt;/P&gt;&lt;P&gt;    it_taxid-taxid2 = it_infile-tax_id_no.&lt;/P&gt;&lt;P&gt;    APPEND it_taxid.&lt;/P&gt;&lt;P&gt;    CLEAR it_taxid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    condense it_infile-invoice_no.&lt;/P&gt;&lt;P&gt;    it_invno-xblnr = it_infile-invoice_no.&lt;/P&gt;&lt;P&gt;    append it_invno.&lt;/P&gt;&lt;P&gt;    clear it_invno.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT it_subacct BY pryact1  pryact2.&lt;/P&gt;&lt;P&gt;  SORT it_ledger BY lgr_id dept.&lt;/P&gt;&lt;P&gt;  SORT it_taxid BY taxid1 taxid2.&lt;/P&gt;&lt;P&gt;  SORT it_sum  BY tax_id_no invoice_no.&lt;/P&gt;&lt;P&gt;  sort it_invno by xblnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DELETE ADJACENT DUPLICATES FROM it_subacct COMPARING pryact1  pryact2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DELETE ADJACENT DUPLICATES FROM it_ledger COMPARING lgr_id dept.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DELETE ADJACENT DUPLICATES FROM it_taxid COMPARING taxid1 taxid2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if not it_invno is initial.&lt;/P&gt;&lt;P&gt;   select bukrs&lt;/P&gt;&lt;P&gt;          belnr&lt;/P&gt;&lt;P&gt;          xblnr&lt;/P&gt;&lt;P&gt;          into table it_bkpf&lt;/P&gt;&lt;P&gt;          from bkpf&lt;/P&gt;&lt;P&gt;          for all entries in it_invno&lt;/P&gt;&lt;P&gt;          where bukrs = p_bukrs and&lt;/P&gt;&lt;P&gt;                gjahr = sy-datum+0(4) and&lt;/P&gt;&lt;P&gt;                blart = c_doctype and&lt;/P&gt;&lt;P&gt;                xblnr = it_invno-xblnr.&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;  IF NOT it_subacct[] IS INITIAL.&lt;/P&gt;&lt;P&gt;*Selecting G/L Account from General Ledger Z Table&lt;/P&gt;&lt;P&gt;    SELECT sap_gl_account&lt;/P&gt;&lt;P&gt;    lgcy_system&lt;/P&gt;&lt;P&gt;    lgcy_prime_acct&lt;/P&gt;&lt;P&gt;    lgcy_sub_acct FROM zfglt_gl_pri_sub&lt;/P&gt;&lt;P&gt;    INTO TABLE it_gl&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN it_subacct&lt;/P&gt;&lt;P&gt;    WHERE lgcy_system = c_fads AND&lt;/P&gt;&lt;P&gt;           lgcy_prime_acct = it_subacct-pryact1 AND&lt;/P&gt;&lt;P&gt;           lgcy_sub_acct = it_subacct-pryact2.&lt;/P&gt;&lt;P&gt;    IF sy-subrc  = 0.&lt;/P&gt;&lt;P&gt;      SORT it_gl BY sap_gl_account&lt;/P&gt;&lt;P&gt;      lgcy_system&lt;/P&gt;&lt;P&gt;      lgcy_prime_acct&lt;/P&gt;&lt;P&gt;      lgcy_sub_acct.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT it_ledger[] IS INITIAL.&lt;/P&gt;&lt;P&gt;*Selecting cost center from Cost Center Z Table&lt;/P&gt;&lt;P&gt;      SELECT cost_object&lt;/P&gt;&lt;P&gt;      lgcy_ldgr&lt;/P&gt;&lt;P&gt;      lgcy_dept FROM zfcft_ctr_dpt_lg&lt;/P&gt;&lt;P&gt;      INTO TABLE it_costctr&lt;/P&gt;&lt;P&gt;      FOR ALL ENTRIES IN it_ledger&lt;/P&gt;&lt;P&gt;      WHERE lgcy_ldgr = it_ledger-lgr_id AND&lt;/P&gt;&lt;P&gt;            lgcy_dept = it_ledger-dept.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        SORT it_costctr BY cost_object&lt;/P&gt;&lt;P&gt;        lgcy_ldgr&lt;/P&gt;&lt;P&gt;        lgcy_dept.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT it_taxid[] IS INITIAL.&lt;/P&gt;&lt;P&gt;*Selecting vendor no from vendor master data&lt;/P&gt;&lt;P&gt;      SELECT a~lifnr&lt;/P&gt;&lt;P&gt;             b~bukrs&lt;/P&gt;&lt;P&gt;             a~stcd1&lt;/P&gt;&lt;P&gt;             a~stcd2&lt;/P&gt;&lt;P&gt;             FROM lfa1 as A join lfb1 as B&lt;/P&gt;&lt;P&gt;             on a&lt;SUB&gt;lifnr = b&lt;/SUB&gt;lifnr&lt;/P&gt;&lt;P&gt;             INTO TABLE it_lfa1&lt;/P&gt;&lt;P&gt;             FOR ALL ENTRIES IN it_taxid&lt;/P&gt;&lt;P&gt;             wHERE bukrs = p_bukrs and&lt;/P&gt;&lt;P&gt;            (  stcd1 = it_taxid-taxid1 OR&lt;/P&gt;&lt;P&gt;              stcd2 = it_taxid-taxid2 ).&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;ENDFORM.                    " f_select_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_validate_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         Validation of input file data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_validate_data.&lt;/P&gt;&lt;P&gt;  DATA:l_errflag TYPE c,              "Error flag&lt;/P&gt;&lt;P&gt;       l_dept(4) TYPE n,              "Department&lt;/P&gt;&lt;P&gt;       l_lgr_id(4) TYPE c,            "Ledger ID&lt;/P&gt;&lt;P&gt;       lv_no_of_vendors TYPE i,       "No of vendors&lt;/P&gt;&lt;P&gt;       l_sum(11) TYPE p DECIMALS 2,   "Sum&lt;/P&gt;&lt;P&gt;       lv_msg1(30) TYPE c,            "Message&lt;/P&gt;&lt;P&gt;       lv_msg2(25) TYPE c,            "Message&lt;/P&gt;&lt;P&gt;       lv_msg3(6) TYPE c,             "Message&lt;/P&gt;&lt;P&gt;       lv_msg4(31) TYPE c,            "Message&lt;/P&gt;&lt;P&gt;       lv_msg5(53) TYPE c,            "Message&lt;/P&gt;&lt;P&gt;       lv_msg6(30) TYPE c,            "Message&lt;/P&gt;&lt;P&gt;       lv_msg7(50) TYPE c.            "Message&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT it_infile.&lt;/P&gt;&lt;P&gt;    CLEAR:lv_msg1,lv_msg2, lv_msg3,lv_msg4,lv_msg5, lv_msg6, lv_msg7.&lt;/P&gt;&lt;P&gt;    CLEAR l_errflag.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SORT it_sum BY tax_id_no&lt;/P&gt;&lt;P&gt;                   invoice_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR it_subacct.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validating Primary Sub Acct1 and Acct2.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE it_gl WITH KEY lgcy_system = c_fads&lt;/P&gt;&lt;P&gt;               lgcy_prime_acct = it_infile-pri_subacct1&lt;/P&gt;&lt;P&gt;               lgcy_sub_acct  = it_infile-pri_subacct2 .&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      lv_msg1 = 'Primary Sub Acct1 and Acct2'(035).&lt;/P&gt;&lt;P&gt;      l_errflag = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE it_infile-dept_win_ldgr TO l_dept.&lt;/P&gt;&lt;P&gt;    MOVE l_dept TO it_infile-dept_win_ldgr.&lt;/P&gt;&lt;P&gt;    CONCATENATE it_infile-ledger_id1 it_infile-ledger_id2 INTO&lt;/P&gt;&lt;P&gt;l_lgr_id.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR: it_costctr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validating Ledger id &amp;amp; department&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE it_costctr WITH KEY lgcy_ldgr = l_lgr_id&lt;/P&gt;&lt;P&gt;                             lgcy_dept = it_infile-dept_win_ldgr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      lv_msg2 = 'Ledger id &amp;amp; department'(036).&lt;/P&gt;&lt;P&gt;      l_errflag = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validating Tax ID&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR:it_lfa1.&lt;/P&gt;&lt;P&gt;    READ TABLE it_lfa1 WITH KEY stcd2 = it_infile-tax_id_no..&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      READ TABLE it_lfa1 WITH KEY stcd1 = it_infile-tax_id_no..&lt;/P&gt;&lt;P&gt;      IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        lv_msg3 = 'Tax ID'(041).&lt;/P&gt;&lt;P&gt;        l_errflag = 'X'.&lt;/P&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;Checking for no of vendors selected based on tax id. If no of vendors&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;selected are more than 1 or 0 then error out the record&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    lv_no_of_vendors = 0.&lt;/P&gt;&lt;P&gt;    LOOP AT it_lfa1 WHERE stcd1 = it_infile-tax_id_no OR&lt;/P&gt;&lt;P&gt;                          stcd2 = it_infile-tax_id_no.&lt;/P&gt;&lt;P&gt;      lv_no_of_vendors = lv_no_of_vendors + 1.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF lv_no_of_vendors = 0.&lt;/P&gt;&lt;P&gt;      lv_msg6 = 'No vendor found for TAXID'(037).&lt;/P&gt;&lt;P&gt;      l_errflag = 'X'.&lt;/P&gt;&lt;P&gt;    ELSEIF lv_no_of_vendors &amp;gt; 1.&lt;/P&gt;&lt;P&gt;      lv_msg4 = 'More than one vendor for Tax id'(038).&lt;/P&gt;&lt;P&gt;      l_errflag = 'X'.&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;Checking whether KU Document already exists for this Invoice No&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    clear it_invno.&lt;/P&gt;&lt;P&gt;    read table it_invno with key xblnr = it_infile-invoice_no.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      lv_msg7 = 'KU Document already exists for this Invoice No '(042).&lt;/P&gt;&lt;P&gt;      l_errflag = 'X'.&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;Checking whether the invoice header amt is equal to the line items amt&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR it_sum.&lt;/P&gt;&lt;P&gt;    READ TABLE it_sum WITH KEY tax_id_no = it_infile-tax_id_no&lt;/P&gt;&lt;P&gt;                   invoice_no = it_infile-invoice_no BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    CLEAR l_sum.&lt;/P&gt;&lt;P&gt;    l_sum = it_infile-inv_header_amt.&lt;/P&gt;&lt;P&gt;    IF l_sum &amp;lt;&amp;gt; it_sum-sum2.&lt;/P&gt;&lt;P&gt;  lv_msg5 = 'Header amt is not equal to the sum of all line items'(039).&lt;/P&gt;&lt;P&gt;      l_errflag = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Moving error records to error internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF l_errflag = 'X'.&lt;/P&gt;&lt;P&gt;      MOVE it_infile TO it_errors.&lt;/P&gt;&lt;P&gt; CONCATENATE 'Invalid:'(040) lv_msg1 lv_msg2 lv_msg3 lv_msg4 lv_msg5&lt;/P&gt;&lt;P&gt;lv_msg6 lv_msg7 INTO it_errors-msg SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      APPEND it_errors.&lt;/P&gt;&lt;P&gt;      CLEAR : it_errors.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Deleting all the errors records from the processing internal table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and moving them to error table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      v_err = v_err + 1.&lt;/P&gt;&lt;P&gt;      it_infile-error = 'X'.&lt;/P&gt;&lt;P&gt;      MODIFY it_infile TRANSPORTING error.&lt;/P&gt;&lt;P&gt;      CLEAR it_infile.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  DELETE it_infile WHERE error = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Deleting all the line items from the processing internal table where&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;atleast one line item is error one&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  sort it_errors by tax_id_no&lt;/P&gt;&lt;P&gt;                    invoice_no.&lt;/P&gt;&lt;P&gt;  clear v_err_rec.&lt;/P&gt;&lt;P&gt;  LOOP AT it_errors.&lt;/P&gt;&lt;P&gt;    DELETE it_infile WHERE tax_id_no = it_errors-tax_id_no AND&lt;/P&gt;&lt;P&gt;                           invoice_no = it_errors-invoice_no.&lt;/P&gt;&lt;P&gt;    at new invoice_no.&lt;/P&gt;&lt;P&gt;     v_err_rec = v_err_rec + 1.&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_validate_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_error_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Processing error data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form f_error_data.&lt;/P&gt;&lt;P&gt;  DELETE it_error WHERE msg = 'Error in document: BKPFF $ D01030'(E02).&lt;/P&gt;&lt;P&gt;   sort it_error by tax_id_no invoice_no.&lt;/P&gt;&lt;P&gt;   loop at it_infile.&lt;/P&gt;&lt;P&gt;   x_infile = it_infile.&lt;/P&gt;&lt;P&gt;   READ TABLE IT_ERROR WITH KEY TAX_ID_NO = it_INFILE-TAX_ID_NO&lt;/P&gt;&lt;P&gt;                     INVOICE_NO = it_INFILE-INVOICE_NO binary search.&lt;/P&gt;&lt;P&gt;    if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;     at new invoice_no.&lt;/P&gt;&lt;P&gt;      v_err_rec = v_err_rec + 1.&lt;/P&gt;&lt;P&gt;     endat.&lt;/P&gt;&lt;P&gt;   MOVE x_INFILE TO IT_ERRORS.&lt;/P&gt;&lt;P&gt;   IT_ERRORS-MSG = IT_eRROR-MSG.&lt;/P&gt;&lt;P&gt;   APPEND IT_ERRORS.&lt;/P&gt;&lt;P&gt;   CLEAR IT_ERRORS.&lt;/P&gt;&lt;P&gt;   endif.&lt;/P&gt;&lt;P&gt;   endloop.&lt;/P&gt;&lt;P&gt;endform.                    " f_error_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_display_suc_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 success 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_suc_report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR 1 INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;    SKIP 2.&lt;/P&gt;&lt;P&gt;    WRITE:/1(150) 'SUCCESS REPORT'(S01) CENTERED.&lt;/P&gt;&lt;P&gt;    ULINE /1(150).&lt;/P&gt;&lt;P&gt;    WRITE:/1 sy-vline,&lt;/P&gt;&lt;P&gt;           2 'Doc No'(031),&lt;/P&gt;&lt;P&gt;          13 sy-vline,&lt;/P&gt;&lt;P&gt;          14 'Company code'(032),&lt;/P&gt;&lt;P&gt;          26 sy-vline,&lt;/P&gt;&lt;P&gt;          27 'Fiscal Year'(033),&lt;/P&gt;&lt;P&gt;          40 sy-vline,&lt;/P&gt;&lt;P&gt;          41 'Message'(034),&lt;/P&gt;&lt;P&gt;         150 sy-vline.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR 5 INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT it_success.&lt;/P&gt;&lt;P&gt;      WRITE:/1 sy-vline,&lt;/P&gt;&lt;P&gt;               2 it_success-docnum,&lt;/P&gt;&lt;P&gt;              13 sy-vline,&lt;/P&gt;&lt;P&gt;              14 it_success-bukrs,&lt;/P&gt;&lt;P&gt;              26 sy-vline,&lt;/P&gt;&lt;P&gt;              27 it_success-fisyr,&lt;/P&gt;&lt;P&gt;              40 sy-vline,&lt;/P&gt;&lt;P&gt;              41 it_success-msg,&lt;/P&gt;&lt;P&gt;             150 sy-vline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    ULINE /1(150).&lt;/P&gt;&lt;P&gt;endform.                    " f_display_suc_report&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Oct 2005 14:36:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1024007#M81902</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-10-26T14:36:46Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI for fb65</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1024008#M81903</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Savitha for sharing your code.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 Nov 2005 09:46:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-fb65/m-p/1024008#M81903</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-11-08T09:46:18Z</dc:date>
    </item>
  </channel>
</rss>

