<?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 BAPI_ACC_DOCUMENT_POST error : FI/CO interface: Line item entered several times in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-acc-document-post-error-fi-co-interface-line-item-entered-several/m-p/12149342#M1976871</link>
    <description>&lt;P&gt;Hello all,&lt;/P&gt;
  &lt;P&gt;I have been working on a report for GL to GL posting using BAPI_ACC_DOCUMENT_POST. &lt;/P&gt;
  &lt;P&gt;the requirement needs off me to add tax indicator to the bapi and calculate the tax on it.&lt;/P&gt;
  &lt;P&gt;this is the code I have written:&lt;/P&gt; 
  &lt;PRE&gt;&lt;CODE&gt;SPAN {
font-family: "Courier New";
font-size: 10pt;
color: #000000;
background: #FFFFFF;
}
.L0S31 {
font-style: italic;
color: #808080;
}
.L0S32 {
color: #3399FF;
}
.L0S33 {
color: #4DA619;
}
.L0S52 {
color: #0000FF;
}
.L0S55 {
color: #800080;
}
.L0S70 {
color: #808080;
}

CLASS lcl_fi_accpost_bapi DEFINITION.

  PUBLIC SECTION.

    TYPES : BEGIN OF ts_exceldata,        "EXCEL STRUCTURE

              itemno_acc   TYPE posnr_acc,    "ITEM NUMBER

*          DOC_DATE   TYPE BLART,        "DOCUMENT DATE

              doc_date(10) TYPE c,        "DOCUMENT DATE

              pstng_date   TYPE budat,        "POSTING DATE

              doc_type     TYPE blart,        "Document Type

              comp_code    TYPE bukrs,        "Company Code

              fisc_year    TYPE gjahr,        "Fiscal Year

              fis_period   TYPE monat,        "Posting Period

              header_txt   TYPE bktxt,        "Header Text

              ref_doc_no   TYPE xblnr,        "Reference Document Number

              gl_account   TYPE hkont,        "Account

              de_cre_ind   TYPE bschl,        "Dr/Cr Indicator

              currency     TYPE waers,        "Currency

              amt_doccur   TYPE bapidoccur,   "Amount in Document Currency

              tax_code     TYPE mwskz,        "Tax Code

              costcenter   TYPE kostl,        "Cost Center

              item_text    TYPE sgtxt,        "Item Text

              ref_key_1    TYPE xref1,        "Reference Key 1

              ref_key_2    TYPE xref2,        "Reference Key 2

              ref_key_3    TYPE xref3,        "Reference Key 3

*          DOC_STATUS TYPE BAPI_ACC_DOC_STATUS,    "Doc Status

              bus_place    TYPE valuepart,



            END OF ts_exceldata,



            BEGIN OF ts_ere,

              doc         TYPE char20,

              comp_code   TYPE char20,

              fiscal_year TYPE char20,

              msg_type    TYPE bapiret2-id,

              description TYPE bapiret2-message,

            END OF ts_ere,



            BEGIN OF ts_tbsl,

              bschl TYPE bschl,

              shkzg TYPE shkzg,

            END OF ts_tbsl.



    METHODS : getdata,

      submit_data,

      fieldcat,

      display.

ENDCLASS.

DATA : lt_exdata         TYPE TABLE OF lcl_fi_accpost_bapi=&amp;gt;ts_exceldata,

       ls_exdata         TYPE          lcl_fi_accpost_bapi=&amp;gt;ts_exceldata,

       lt_ere            TYPE TABLE OF lcl_fi_accpost_bapi=&amp;gt;ts_ere,

       ls_ere            TYPE          lcl_fi_accpost_bapi=&amp;gt;ts_ere,

       lt_tbsl           TYPE TABLE OF lcl_fi_accpost_bapi=&amp;gt;ts_tbsl,

       ls_tbsl           TYPE          lcl_fi_accpost_bapi=&amp;gt;ts_tbsl,

       row_data          TYPE          truxs_t_text_data,

       lt_accountgl      TYPE TABLE OF bapiacgl09,

       ls_accountgl      TYPE          bapiacgl09,

       lt_accounttax     TYPE TABLE OF bapiactx09,

       ls_accounttax     TYPE bapiactx09,

       lt_documentheader TYPE TABLE OF bapiache09,

       ls_documentheader TYPE          bapiache09,

       lt_currencyamount TYPE TABLE OF bapiaccr09,

       ls_currencyamount TYPE          bapiaccr09,

       lt_return         TYPE TABLE OF bapiret2,

       ls_return         TYPE          bapiret2,

       ls_obj_key        TYPE          bapiache09-obj_key,

       ls_obj_type       TYPE          bapiache09-obj_type,

       ls_obj_sys        TYPE          bapiache09-obj_sys,

       lt_extension2     TYPE TABLE OF bapiparex,

       ls_extension2     TYPE          bapiparex,

       lt_fcat           TYPE          slis_t_fieldcat_alv,

       ls_fcat           TYPE          slis_fieldcat_alv,

       ls_layout         TYPE          slis_layout_alv,

       doc_date1(11)     TYPE          c,

       lv_itemno_acc     TYPE n VALUE 0,

       obj               TYPE REF TO   lcl_fi_accpost_bapi.



DATA: lv_wrbtr TYPE bseg-wrbtr,

      lv_fwste TYPE bset-fwste,

      lt_MWDAT TYPE TABLE OF RTAX1U15,

      ls_MWDAT TYPE  RTAX1U15,

      lv_itemno_tax TYPE n LENGTH 6 VALUE '000001'.



FIELD-SYMBOLS : &amp;lt;fs_amt_base&amp;gt; TYPE any.

CREATE OBJECT obj.

*======================================================================*

* Selection Screen to get input from user                              *

*======================================================================*

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.

PARAMETERS : p_file TYPE rlgrap-filename.

SELECTION-SCREEN COMMENT /01(50) TEXT-002.

SELECTION-SCREEN END OF BLOCK b1.



*&amp;amp;====================================================================*

*&amp;amp; AT SELECTION-SCREEN                                           *

*&amp;amp;====================================================================*

AT SELECTION-SCREEN.

  IF p_file IS INITIAL.

    MESSAGE e000(/aag362/fi_accpost).  "Please enter path for log file

  ENDIF.



***************************************************************

******PERFORM CALL_DIALOG_BOX.

***************************************************************



AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

  CALL FUNCTION 'F4_FILENAME'

    EXPORTING

      field_name = 'P_FILE'

    IMPORTING

      file_name  = p_file.





  DEFINE m_fieldcat.

    ls_fcat-fieldname  = &amp;amp;1.

    ls_fcat-seltext_l  = &amp;amp;2.

    APPEND ls_fcat TO lt_fcat.

    CLEAR ls_fcat.

  END-OF-DEFINITION.
&lt;/CODE&gt;&lt;/PRE&gt; 
  &lt;PRE&gt;&lt;CODE&gt;SPAN {
font-family: "Courier New";
font-size: 10pt;
color: #000000;
background: #FFFFFF;
}
.L0S31 {
font-style: italic;
color: #808080;
}
.L0S32 {
color: #3399FF;
}
.L0S33 {
color: #4DA619;
}
.L0S52 {
color: #0000FF;
}
.L0S55 {
color: #800080;
}
.L0S70 {
color: #808080;
}

CLASS lcl_fi_accpost_bapi IMPLEMENTATION.

*======================================================================*

*            METHOD GET DATA                                           *

*======================================================================*

  METHOD getdata.

    CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'

      EXPORTING

*       I_FIELD_SEPERATOR    =

        i_line_header        = 'X'

        i_tab_raw_data       = row_data

        i_filename           = p_file

      TABLES

        i_tab_converted_data = lt_exdata[]

      EXCEPTIONS

        conversion_failed    = 1

        OTHERS               = 2.

    IF sy-subrc &amp;lt;&amp;gt; 0.

* Implement suitable error handling here

    ENDIF.

    IF lt_exdata IS NOT INITIAL.

      SELECT  bschl shkzg

        FROM tbsl

        INTO TABLE lt_tbsl

        FOR ALL ENTRIES IN lt_exdata

        WHERE bschl = lt_exdata-de_cre_ind.

    ENDIF.



  ENDMETHOD.

  METHOD submit_data.

    LOOP AT lt_exdata INTO ls_exdata.



      CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'

        EXPORTING

          date_external            = ls_exdata-doc_date

*         ACCEPT_INITIAL_DATE      =

        IMPORTING

          date_internal            = doc_date1

        EXCEPTIONS

          date_external_is_invalid = 1

          OTHERS                   = 2.

      IF sy-subrc &amp;lt;&amp;gt; 0.

* Implement suitable error handling here

      ENDIF.



      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

        EXPORTING

          input  = ls_exdata-gl_account

        IMPORTING

          output = ls_exdata-gl_account.



      ls_documentheader-username    = sy-uname.

      ls_accountgl-itemno_acc       = ls_exdata-itemno_acc.

      ls_documentheader-doc_date    = doc_date1.

      ls_documentheader-pstng_date  = ls_exdata-pstng_date.

      ls_documentheader-doc_type    = ls_exdata-doc_type.

      ls_documentheader-comp_code   = ls_exdata-comp_code.

      ls_documentheader-fisc_year   = ls_exdata-fisc_year.

      ls_documentheader-fis_period  = ls_exdata-fis_period.

      ls_documentheader-header_txt  = ls_exdata-header_txt.

      ls_documentheader-ref_doc_no  = ls_exdata-ref_doc_no.

      ls_accountgl-gl_account       = ls_exdata-gl_account.

      ls_accountgl-tax_code         = ls_exdata-tax_code.       "Addition of taxcode by Siddharth Shaligram 26.02.2020

*  LS_ACCOUNTGL-DE_CRE_IND       = LS_EXDATA-DE_CRE_IND.





      ls_accountgl-costcenter       = ls_exdata-costcenter.

      ls_accountgl-item_text        = ls_exdata-item_text.

      ls_accountgl-ref_key_1        = ls_exdata-ref_key_1.

      ls_accountgl-ref_key_2        = ls_exdata-ref_key_2.

      ls_accountgl-ref_key_3        = ls_exdata-ref_key_3.

      ls_documentheader-doc_status  = '2'.

*      ls_currencyamount-itemno_acc  = ls_exdata-itemno_acc.

*      ls_currencyamount-amt_base    = ls_exdata-amt_doccur.

      ls_extension2-structure       = 'BAPIPAREX'.

      ls_extension2-valuepart1      = ls_exdata-bus_place.       "zclbadi_acc_document is implemented for pushing business place data in c_accit structure. TR: E40K904671

*  LS_EXTENSION2-VALUEPART2      = '00010'. " '01'. "

*  LS_EXTENSION2-VALUEPART3      = LS_EXDATA-BUS_PLACE. "'PIMP'.



*$*$ Addition to handle taxcode by Siddharth Shaligram 29.02.2020



      ls_accountgl-itemno_tax = '000001'.



      READ TABLE lt_tbsl INTO ls_tbsl WITH  KEY bschl = ls_exdata-de_cre_ind shkzg = 'S'.

      IF sy-subrc EQ 0.

        ls_currencyamount-amt_doccur  = ls_exdata-amt_doccur.

        lv_itemno_acc = lv_itemno_acc + 1.



        ASSIGN ls_currencyamount-amt_doccur TO &amp;lt;fs_amt_base&amp;gt;.

        MOVE &amp;lt;fs_amt_base&amp;gt; TO lv_wrbtr.

        CALL FUNCTION 'CALCULATE_TAX_FROM_GROSSAMOUNT'

          EXPORTING

            i_bukrs                 = ls_documentheader-comp_code

            i_mwskz                 = ls_accountgl-tax_code

            i_waers                 = ls_currencyamount-currency

            i_wrbtr                 = lv_wrbtr

          IMPORTING

            e_fwste                 = lv_fwste

          TABLES

            t_mwdat                 = lt_mwdat

          EXCEPTIONS

            bukrs_not_found         = 1

            country_not_found       = 2

            mwskz_not_defined       = 3

            mwskz_not_valid         = 4

            account_not_found       = 5

            different_discount_base = 6

            different_tax_base      = 7

            txjcd_not_valid         = 8

            not_found               = 9

            ktosl_not_found         = 10

            kalsm_not_found         = 11

            parameter_error         = 12

            knumh_not_found         = 13

            kschl_not_found         = 14

            unknown_error           = 15

            OTHERS                  = 16.

        IF sy-subrc &amp;lt;&amp;gt; 0.

* Implement suitable error handling here

        ENDIF.



        LOOP AT lt_mwdat INTO ls_mwdat.

          ls_currencyamount-itemno_acc  = lv_itemno_tax.

          ls_currencyamount-amt_base    = ls_exdata-amt_doccur.

          ls_currencyamount-tax_amt = ls_mwdat-wmwst.

          ls_currencyamount-amt_base = ls_exdata-amt_doccur.

          ls_currencyamount-currency = ls_exdata-currency.

          ls_currencyamount-amt_doccur = ls_exdata-amt_doccur.

*          ls_currencyamount-curr_type = '00'.





          ls_accounttax-itemno_acc = lv_itemno_tax.

          ls_accounttax-itemno_tax = lv_itemno_acc.

          ls_accounttax-tax_rate = ls_mwdat-msatz.

          ls_accounttax-acct_key = ls_mwdat-ktosl.

          ls_accounttax-gl_account = ls_mwdat-hkont.

          ls_accounttax-cond_key = ls_mwdat-kschl.

          ls_accounttax-tax_date = ls_exdata-pstng_date.

          ls_accounttax-tax_code = ls_exdata-tax_code.

          APPEND: ls_currencyamount TO lt_currencyamount,

          ls_accounttax TO lt_accounttax.

          lv_itemno_tax = lv_itemno_tax + 1.

        ENDLOOP.



      ELSE.

        READ TABLE lt_tbsl INTO ls_tbsl WITH  KEY bschl = ls_exdata-de_cre_ind shkzg = 'H'.

        IF sy-subrc EQ 0.

          ls_currencyamount-amt_doccur  = ( ls_exdata-amt_doccur * -1 ).

        ENDIF.

      ENDIF.



*$*$*************************************************************



      APPEND: ls_accountgl TO lt_accountgl,

              ls_documentheader TO lt_documentheader,

              ls_extension2     TO lt_extension2.

      CLEAR: ls_exdata , ls_accountgl,ls_currencyamount, ls_extension2, ls_accounttax.



    ENDLOOP.



*READ TABLE LT_DOCUMENTHEADER INTO LS_DOCUMENTHEADER WITH  KEY DOC_STATUS = '2'.

*IF SY-SUBRC EQ 0.

    CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'

      EXPORTING

        documentheader = ls_documentheader

*       CUSTOMERCPD    =

*       CONTRACTHEADER =

      IMPORTING

        obj_type       = ls_obj_type

        obj_key        = ls_obj_key

        obj_sys        = ls_obj_sys

      TABLES

        accountgl      = lt_accountgl

*       ACCOUNTRECEIVABLE       =

*       ACCOUNTPAYABLE =

        accounttax     = lt_accounttax

        currencyamount = lt_currencyamount

*       CRITERIA       =

*       VALUEFIELD     =

*       EXTENSION1     =

        return         = lt_return

*       PAYMENTCARD    =

*       CONTRACTITEM   =

        extension2     = lt_extension2

*       REALESTATE     =

*       ACCOUNTWT      =

      .

*ENDIF.



    READ TABLE lt_return INTO ls_return WITH KEY type = 'E'.

    IF sy-subrc EQ 0.

      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'

*             IMPORTING

*                 RETURN        =

        .

      LOOP AT lt_return INTO ls_return.

        ls_ere-doc        = ' '.

        ls_ere-comp_code  = ' '.

        ls_ere-fiscal_year = ' '.

        ls_ere-msg_type    = 'Error'.

        ls_ere-description = ls_return-message.

        APPEND ls_ere TO lt_ere.

      ENDLOOP.



    ELSE.

      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

        EXPORTING

          wait = 'X'

*         IMPORTING

*         RETURN        =

        .



*****Return the Accounting Document Number and Fiscal Year*****



      LOOP AT lt_return INTO ls_return.

        ls_ere-doc        = ls_obj_key(10).

        ls_ere-comp_code  = ls_obj_key+10(4).

        ls_ere-fiscal_year = ls_obj_key+14(4).

        ls_ere-msg_type    = 'Success'.

        ls_ere-description = ls_return-message.

        APPEND ls_ere TO lt_ere.

      ENDLOOP.



    ENDIF.





  ENDMETHOD.
&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;I am getting this error upon execution.&lt;/P&gt;
  &lt;P&gt;how do I resolve this?&lt;/P&gt;
  &lt;P&gt;please help.&lt;/P&gt;</description>
    <pubDate>Tue, 03 Mar 2020 10:17:29 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2020-03-03T10:17:29Z</dc:date>
    <item>
      <title>BAPI_ACC_DOCUMENT_POST error : FI/CO interface: Line item entered several times</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-acc-document-post-error-fi-co-interface-line-item-entered-several/m-p/12149342#M1976871</link>
      <description>&lt;P&gt;Hello all,&lt;/P&gt;
  &lt;P&gt;I have been working on a report for GL to GL posting using BAPI_ACC_DOCUMENT_POST. &lt;/P&gt;
  &lt;P&gt;the requirement needs off me to add tax indicator to the bapi and calculate the tax on it.&lt;/P&gt;
  &lt;P&gt;this is the code I have written:&lt;/P&gt; 
  &lt;PRE&gt;&lt;CODE&gt;SPAN {
font-family: "Courier New";
font-size: 10pt;
color: #000000;
background: #FFFFFF;
}
.L0S31 {
font-style: italic;
color: #808080;
}
.L0S32 {
color: #3399FF;
}
.L0S33 {
color: #4DA619;
}
.L0S52 {
color: #0000FF;
}
.L0S55 {
color: #800080;
}
.L0S70 {
color: #808080;
}

CLASS lcl_fi_accpost_bapi DEFINITION.

  PUBLIC SECTION.

    TYPES : BEGIN OF ts_exceldata,        "EXCEL STRUCTURE

              itemno_acc   TYPE posnr_acc,    "ITEM NUMBER

*          DOC_DATE   TYPE BLART,        "DOCUMENT DATE

              doc_date(10) TYPE c,        "DOCUMENT DATE

              pstng_date   TYPE budat,        "POSTING DATE

              doc_type     TYPE blart,        "Document Type

              comp_code    TYPE bukrs,        "Company Code

              fisc_year    TYPE gjahr,        "Fiscal Year

              fis_period   TYPE monat,        "Posting Period

              header_txt   TYPE bktxt,        "Header Text

              ref_doc_no   TYPE xblnr,        "Reference Document Number

              gl_account   TYPE hkont,        "Account

              de_cre_ind   TYPE bschl,        "Dr/Cr Indicator

              currency     TYPE waers,        "Currency

              amt_doccur   TYPE bapidoccur,   "Amount in Document Currency

              tax_code     TYPE mwskz,        "Tax Code

              costcenter   TYPE kostl,        "Cost Center

              item_text    TYPE sgtxt,        "Item Text

              ref_key_1    TYPE xref1,        "Reference Key 1

              ref_key_2    TYPE xref2,        "Reference Key 2

              ref_key_3    TYPE xref3,        "Reference Key 3

*          DOC_STATUS TYPE BAPI_ACC_DOC_STATUS,    "Doc Status

              bus_place    TYPE valuepart,



            END OF ts_exceldata,



            BEGIN OF ts_ere,

              doc         TYPE char20,

              comp_code   TYPE char20,

              fiscal_year TYPE char20,

              msg_type    TYPE bapiret2-id,

              description TYPE bapiret2-message,

            END OF ts_ere,



            BEGIN OF ts_tbsl,

              bschl TYPE bschl,

              shkzg TYPE shkzg,

            END OF ts_tbsl.



    METHODS : getdata,

      submit_data,

      fieldcat,

      display.

ENDCLASS.

DATA : lt_exdata         TYPE TABLE OF lcl_fi_accpost_bapi=&amp;gt;ts_exceldata,

       ls_exdata         TYPE          lcl_fi_accpost_bapi=&amp;gt;ts_exceldata,

       lt_ere            TYPE TABLE OF lcl_fi_accpost_bapi=&amp;gt;ts_ere,

       ls_ere            TYPE          lcl_fi_accpost_bapi=&amp;gt;ts_ere,

       lt_tbsl           TYPE TABLE OF lcl_fi_accpost_bapi=&amp;gt;ts_tbsl,

       ls_tbsl           TYPE          lcl_fi_accpost_bapi=&amp;gt;ts_tbsl,

       row_data          TYPE          truxs_t_text_data,

       lt_accountgl      TYPE TABLE OF bapiacgl09,

       ls_accountgl      TYPE          bapiacgl09,

       lt_accounttax     TYPE TABLE OF bapiactx09,

       ls_accounttax     TYPE bapiactx09,

       lt_documentheader TYPE TABLE OF bapiache09,

       ls_documentheader TYPE          bapiache09,

       lt_currencyamount TYPE TABLE OF bapiaccr09,

       ls_currencyamount TYPE          bapiaccr09,

       lt_return         TYPE TABLE OF bapiret2,

       ls_return         TYPE          bapiret2,

       ls_obj_key        TYPE          bapiache09-obj_key,

       ls_obj_type       TYPE          bapiache09-obj_type,

       ls_obj_sys        TYPE          bapiache09-obj_sys,

       lt_extension2     TYPE TABLE OF bapiparex,

       ls_extension2     TYPE          bapiparex,

       lt_fcat           TYPE          slis_t_fieldcat_alv,

       ls_fcat           TYPE          slis_fieldcat_alv,

       ls_layout         TYPE          slis_layout_alv,

       doc_date1(11)     TYPE          c,

       lv_itemno_acc     TYPE n VALUE 0,

       obj               TYPE REF TO   lcl_fi_accpost_bapi.



DATA: lv_wrbtr TYPE bseg-wrbtr,

      lv_fwste TYPE bset-fwste,

      lt_MWDAT TYPE TABLE OF RTAX1U15,

      ls_MWDAT TYPE  RTAX1U15,

      lv_itemno_tax TYPE n LENGTH 6 VALUE '000001'.



FIELD-SYMBOLS : &amp;lt;fs_amt_base&amp;gt; TYPE any.

CREATE OBJECT obj.

*======================================================================*

* Selection Screen to get input from user                              *

*======================================================================*

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.

PARAMETERS : p_file TYPE rlgrap-filename.

SELECTION-SCREEN COMMENT /01(50) TEXT-002.

SELECTION-SCREEN END OF BLOCK b1.



*&amp;amp;====================================================================*

*&amp;amp; AT SELECTION-SCREEN                                           *

*&amp;amp;====================================================================*

AT SELECTION-SCREEN.

  IF p_file IS INITIAL.

    MESSAGE e000(/aag362/fi_accpost).  "Please enter path for log file

  ENDIF.



***************************************************************

******PERFORM CALL_DIALOG_BOX.

***************************************************************



AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

  CALL FUNCTION 'F4_FILENAME'

    EXPORTING

      field_name = 'P_FILE'

    IMPORTING

      file_name  = p_file.





  DEFINE m_fieldcat.

    ls_fcat-fieldname  = &amp;amp;1.

    ls_fcat-seltext_l  = &amp;amp;2.

    APPEND ls_fcat TO lt_fcat.

    CLEAR ls_fcat.

  END-OF-DEFINITION.
&lt;/CODE&gt;&lt;/PRE&gt; 
  &lt;PRE&gt;&lt;CODE&gt;SPAN {
font-family: "Courier New";
font-size: 10pt;
color: #000000;
background: #FFFFFF;
}
.L0S31 {
font-style: italic;
color: #808080;
}
.L0S32 {
color: #3399FF;
}
.L0S33 {
color: #4DA619;
}
.L0S52 {
color: #0000FF;
}
.L0S55 {
color: #800080;
}
.L0S70 {
color: #808080;
}

CLASS lcl_fi_accpost_bapi IMPLEMENTATION.

*======================================================================*

*            METHOD GET DATA                                           *

*======================================================================*

  METHOD getdata.

    CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'

      EXPORTING

*       I_FIELD_SEPERATOR    =

        i_line_header        = 'X'

        i_tab_raw_data       = row_data

        i_filename           = p_file

      TABLES

        i_tab_converted_data = lt_exdata[]

      EXCEPTIONS

        conversion_failed    = 1

        OTHERS               = 2.

    IF sy-subrc &amp;lt;&amp;gt; 0.

* Implement suitable error handling here

    ENDIF.

    IF lt_exdata IS NOT INITIAL.

      SELECT  bschl shkzg

        FROM tbsl

        INTO TABLE lt_tbsl

        FOR ALL ENTRIES IN lt_exdata

        WHERE bschl = lt_exdata-de_cre_ind.

    ENDIF.



  ENDMETHOD.

  METHOD submit_data.

    LOOP AT lt_exdata INTO ls_exdata.



      CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'

        EXPORTING

          date_external            = ls_exdata-doc_date

*         ACCEPT_INITIAL_DATE      =

        IMPORTING

          date_internal            = doc_date1

        EXCEPTIONS

          date_external_is_invalid = 1

          OTHERS                   = 2.

      IF sy-subrc &amp;lt;&amp;gt; 0.

* Implement suitable error handling here

      ENDIF.



      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

        EXPORTING

          input  = ls_exdata-gl_account

        IMPORTING

          output = ls_exdata-gl_account.



      ls_documentheader-username    = sy-uname.

      ls_accountgl-itemno_acc       = ls_exdata-itemno_acc.

      ls_documentheader-doc_date    = doc_date1.

      ls_documentheader-pstng_date  = ls_exdata-pstng_date.

      ls_documentheader-doc_type    = ls_exdata-doc_type.

      ls_documentheader-comp_code   = ls_exdata-comp_code.

      ls_documentheader-fisc_year   = ls_exdata-fisc_year.

      ls_documentheader-fis_period  = ls_exdata-fis_period.

      ls_documentheader-header_txt  = ls_exdata-header_txt.

      ls_documentheader-ref_doc_no  = ls_exdata-ref_doc_no.

      ls_accountgl-gl_account       = ls_exdata-gl_account.

      ls_accountgl-tax_code         = ls_exdata-tax_code.       "Addition of taxcode by Siddharth Shaligram 26.02.2020

*  LS_ACCOUNTGL-DE_CRE_IND       = LS_EXDATA-DE_CRE_IND.





      ls_accountgl-costcenter       = ls_exdata-costcenter.

      ls_accountgl-item_text        = ls_exdata-item_text.

      ls_accountgl-ref_key_1        = ls_exdata-ref_key_1.

      ls_accountgl-ref_key_2        = ls_exdata-ref_key_2.

      ls_accountgl-ref_key_3        = ls_exdata-ref_key_3.

      ls_documentheader-doc_status  = '2'.

*      ls_currencyamount-itemno_acc  = ls_exdata-itemno_acc.

*      ls_currencyamount-amt_base    = ls_exdata-amt_doccur.

      ls_extension2-structure       = 'BAPIPAREX'.

      ls_extension2-valuepart1      = ls_exdata-bus_place.       "zclbadi_acc_document is implemented for pushing business place data in c_accit structure. TR: E40K904671

*  LS_EXTENSION2-VALUEPART2      = '00010'. " '01'. "

*  LS_EXTENSION2-VALUEPART3      = LS_EXDATA-BUS_PLACE. "'PIMP'.



*$*$ Addition to handle taxcode by Siddharth Shaligram 29.02.2020



      ls_accountgl-itemno_tax = '000001'.



      READ TABLE lt_tbsl INTO ls_tbsl WITH  KEY bschl = ls_exdata-de_cre_ind shkzg = 'S'.

      IF sy-subrc EQ 0.

        ls_currencyamount-amt_doccur  = ls_exdata-amt_doccur.

        lv_itemno_acc = lv_itemno_acc + 1.



        ASSIGN ls_currencyamount-amt_doccur TO &amp;lt;fs_amt_base&amp;gt;.

        MOVE &amp;lt;fs_amt_base&amp;gt; TO lv_wrbtr.

        CALL FUNCTION 'CALCULATE_TAX_FROM_GROSSAMOUNT'

          EXPORTING

            i_bukrs                 = ls_documentheader-comp_code

            i_mwskz                 = ls_accountgl-tax_code

            i_waers                 = ls_currencyamount-currency

            i_wrbtr                 = lv_wrbtr

          IMPORTING

            e_fwste                 = lv_fwste

          TABLES

            t_mwdat                 = lt_mwdat

          EXCEPTIONS

            bukrs_not_found         = 1

            country_not_found       = 2

            mwskz_not_defined       = 3

            mwskz_not_valid         = 4

            account_not_found       = 5

            different_discount_base = 6

            different_tax_base      = 7

            txjcd_not_valid         = 8

            not_found               = 9

            ktosl_not_found         = 10

            kalsm_not_found         = 11

            parameter_error         = 12

            knumh_not_found         = 13

            kschl_not_found         = 14

            unknown_error           = 15

            OTHERS                  = 16.

        IF sy-subrc &amp;lt;&amp;gt; 0.

* Implement suitable error handling here

        ENDIF.



        LOOP AT lt_mwdat INTO ls_mwdat.

          ls_currencyamount-itemno_acc  = lv_itemno_tax.

          ls_currencyamount-amt_base    = ls_exdata-amt_doccur.

          ls_currencyamount-tax_amt = ls_mwdat-wmwst.

          ls_currencyamount-amt_base = ls_exdata-amt_doccur.

          ls_currencyamount-currency = ls_exdata-currency.

          ls_currencyamount-amt_doccur = ls_exdata-amt_doccur.

*          ls_currencyamount-curr_type = '00'.





          ls_accounttax-itemno_acc = lv_itemno_tax.

          ls_accounttax-itemno_tax = lv_itemno_acc.

          ls_accounttax-tax_rate = ls_mwdat-msatz.

          ls_accounttax-acct_key = ls_mwdat-ktosl.

          ls_accounttax-gl_account = ls_mwdat-hkont.

          ls_accounttax-cond_key = ls_mwdat-kschl.

          ls_accounttax-tax_date = ls_exdata-pstng_date.

          ls_accounttax-tax_code = ls_exdata-tax_code.

          APPEND: ls_currencyamount TO lt_currencyamount,

          ls_accounttax TO lt_accounttax.

          lv_itemno_tax = lv_itemno_tax + 1.

        ENDLOOP.



      ELSE.

        READ TABLE lt_tbsl INTO ls_tbsl WITH  KEY bschl = ls_exdata-de_cre_ind shkzg = 'H'.

        IF sy-subrc EQ 0.

          ls_currencyamount-amt_doccur  = ( ls_exdata-amt_doccur * -1 ).

        ENDIF.

      ENDIF.



*$*$*************************************************************



      APPEND: ls_accountgl TO lt_accountgl,

              ls_documentheader TO lt_documentheader,

              ls_extension2     TO lt_extension2.

      CLEAR: ls_exdata , ls_accountgl,ls_currencyamount, ls_extension2, ls_accounttax.



    ENDLOOP.



*READ TABLE LT_DOCUMENTHEADER INTO LS_DOCUMENTHEADER WITH  KEY DOC_STATUS = '2'.

*IF SY-SUBRC EQ 0.

    CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'

      EXPORTING

        documentheader = ls_documentheader

*       CUSTOMERCPD    =

*       CONTRACTHEADER =

      IMPORTING

        obj_type       = ls_obj_type

        obj_key        = ls_obj_key

        obj_sys        = ls_obj_sys

      TABLES

        accountgl      = lt_accountgl

*       ACCOUNTRECEIVABLE       =

*       ACCOUNTPAYABLE =

        accounttax     = lt_accounttax

        currencyamount = lt_currencyamount

*       CRITERIA       =

*       VALUEFIELD     =

*       EXTENSION1     =

        return         = lt_return

*       PAYMENTCARD    =

*       CONTRACTITEM   =

        extension2     = lt_extension2

*       REALESTATE     =

*       ACCOUNTWT      =

      .

*ENDIF.



    READ TABLE lt_return INTO ls_return WITH KEY type = 'E'.

    IF sy-subrc EQ 0.

      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'

*             IMPORTING

*                 RETURN        =

        .

      LOOP AT lt_return INTO ls_return.

        ls_ere-doc        = ' '.

        ls_ere-comp_code  = ' '.

        ls_ere-fiscal_year = ' '.

        ls_ere-msg_type    = 'Error'.

        ls_ere-description = ls_return-message.

        APPEND ls_ere TO lt_ere.

      ENDLOOP.



    ELSE.

      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

        EXPORTING

          wait = 'X'

*         IMPORTING

*         RETURN        =

        .



*****Return the Accounting Document Number and Fiscal Year*****



      LOOP AT lt_return INTO ls_return.

        ls_ere-doc        = ls_obj_key(10).

        ls_ere-comp_code  = ls_obj_key+10(4).

        ls_ere-fiscal_year = ls_obj_key+14(4).

        ls_ere-msg_type    = 'Success'.

        ls_ere-description = ls_return-message.

        APPEND ls_ere TO lt_ere.

      ENDLOOP.



    ENDIF.





  ENDMETHOD.
&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;I am getting this error upon execution.&lt;/P&gt;
  &lt;P&gt;how do I resolve this?&lt;/P&gt;
  &lt;P&gt;please help.&lt;/P&gt;</description>
      <pubDate>Tue, 03 Mar 2020 10:17:29 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-acc-document-post-error-fi-co-interface-line-item-entered-several/m-p/12149342#M1976871</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2020-03-03T10:17:29Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_ACC_DOCUMENT_POST error : FI/CO interface: Line item entered several times</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-acc-document-post-error-fi-co-interface-line-item-entered-several/m-p/12149343#M1976872</link>
      <description>&lt;P&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;You might want to put a break point at CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST' and check the structures as there must be same line item no being passed multiple times.&lt;/P&gt;&lt;P&gt;Best regards,&lt;BR /&gt;Jonathan Eemans&lt;/P&gt;</description>
      <pubDate>Tue, 03 Mar 2020 10:33:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-acc-document-post-error-fi-co-interface-line-item-entered-several/m-p/12149343#M1976872</guid>
      <dc:creator>JonathanEemans</dc:creator>
      <dc:date>2020-03-03T10:33:26Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_ACC_DOCUMENT_POST error : FI/CO interface: Line item entered several times</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-acc-document-post-error-fi-co-interface-line-item-entered-several/m-p/12149344#M1976873</link>
      <description>&lt;P&gt;Check the content of your BAPI tables, before executing it, and make sure that the data is correct.&lt;/P&gt;</description>
      <pubDate>Tue, 03 Mar 2020 10:42:31 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-acc-document-post-error-fi-co-interface-line-item-entered-several/m-p/12149344#M1976873</guid>
      <dc:creator>iklovski</dc:creator>
      <dc:date>2020-03-03T10:42:31Z</dc:date>
    </item>
  </channel>
</rss>

