Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

BAPI_INCOMINGINVOICE_CREATE

Former Member
0 Likes
934

Hi ,

I am creating invoice through this bapi, but when i am excuting i am getting error message as

E

Document contains same order item more than once

Code:

REPORT ztest.

*----


  • Internal table declaration *

----


DATA: gt_headerdata TYPE STANDARD TABLE OF bapi_incinv_create_header

INITIAL SIZE 0,

gt_itemdata TYPE STANDARD TABLE OF bapi_incinv_create_item

INITIAL SIZE 0,

gt_accountingdata TYPE STANDARD TABLE OF bapi_incinv_create_account

INITIAL SIZE 0,

gt_return TYPE STANDARD TABLE OF bapiret2

INITIAL SIZE 0.

DATA: gs_headerdata LIKE bapi_incinv_create_header.

DATA: gs_itemdata LIKE bapi_incinv_create_item.

DATA: gs_accountingdata TYPE bapi_incinv_create_account.

DATA: gs_return TYPE bapiret2.

DATA: l_date TYPE sy-datum.

l_date = sy-datum.

  • Error flag *

DATA: l_errflag(1) TYPE c.

*----


  • Build Invoice header

*----


  • Document Type (Invoice)

gs_headerdata-invoice_ind = 'X'.

*gs_headerdata-doc_type = 51. "RK

  • Document Date

gs_headerdata-doc_date = l_date.

  • Posting Date

gs_headerdata-pstng_date = l_date.

  • Reference Document No

gs_headerdata-ref_doc_no = 'T2'.

gs_headerdata-gross_amount = 60.

  • Currency

gs_headerdata-currency = 'USD'.

  • Company Code

gs_headerdata-comp_code = '1002'.

    • Baseline Date

gs_headerdata-bline_date = l_date.

*

*Tax Indicator

gs_headerdata-calc_tax_ind = 'X'. "RK

*----


  • Build order item(s) - Only 1 is used in this example

*----


  • Document Item

gs_itemdata-invoice_doc_item = 000001.

  • Purchase Order Number

gs_itemdata-po_number = 4500000017.

  • Purchase Order Item

gs_itemdata-po_item = '00020'.

  • Item Amount

gs_itemdata-item_amount = 30.

  • Quantity

gs_itemdata-quantity = 10.

gs_itemdata-po_unit = 'EA'.

gs_itemdata-tax_code = 'E0'.

*gs_itemdata-taxjurcode = '0100000000'. "RK

APPEND gs_itemdata TO gt_itemdata.

  • Document Item

gs_itemdata-invoice_doc_item = 000002.

  • Purchase Order Number

gs_itemdata-po_number = 4500000017.

  • Purchase Order Item

gs_itemdata-po_item = '00020'.

  • Item Amount

gs_itemdata-item_amount = 30.

  • Quantity

gs_itemdata-quantity = 10.

gs_itemdata-po_unit = 'EA'.

gs_itemdata-tax_code = 'E0'.

*gs_itemdata-taxjurcode = '0100000000'. "RK

APPEND gs_itemdata TO gt_itemdata.

*Call the BAPI to Create the Return Order

data: gv_INVOICE type BAPI_INCINV_FLD-INV_DOC_NO,

gv_YEAR type BAPI_INCINV_FLD-FISC_YEAR.

CALL FUNCTION 'BAPI_INCOMINGINVOICE_CREATE'

EXPORTING

headerdata = gs_headerdata

IMPORTING

INVOICEDOCNUMBER = gv_INVOICE

FISCALYEAR = gv_YEAR

TABLES

return = gt_return

itemdata = gt_itemdata.

  • accountingdata = gt_accountingdata.

PERFORM error.

*----


  • Check and write Return table

*----


FORM error.

LEAVE TO LIST-PROCESSING.

CLEAR l_errflag.

LOOP AT gt_return INTO gs_return.

WRITE: / gs_return-type, gs_return-message(200).

IF gs_return-type = 'E'.

l_errflag = 'X'.

ENDIF.

ENDLOOP.

PERFORM commit.

ENDFORM. " ERROR INPUT

*----


  • No errors - Commit

*----


FORM commit.

IF l_errflag IS INITIAL.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

ENDIF.

ENDFORM. " COMMIT INPUT

1 REPLY 1
Read only

former_member189629
Active Contributor
0 Likes
524

Asha,

Pl try as indicated below...

REPORT ztest.

*----


  • Internal table declaration *

----


DATA: gt_headerdata TYPE STANDARD TABLE OF bapi_incinv_create_header

INITIAL SIZE 0,

gt_itemdata TYPE STANDARD TABLE OF bapi_incinv_create_item

INITIAL SIZE 0,

gt_accountingdata TYPE STANDARD TABLE OF bapi_incinv_create_account

INITIAL SIZE 0,

gt_return TYPE STANDARD TABLE OF bapiret2

INITIAL SIZE 0.

DATA: gs_headerdata LIKE bapi_incinv_create_header.

DATA: gs_itemdata LIKE bapi_incinv_create_item.

DATA: gs_accountingdata TYPE bapi_incinv_create_account.

DATA: gs_return TYPE bapiret2.

DATA: l_date TYPE sy-datum.

l_date = sy-datum.

  • Error flag *

DATA: l_errflag(1) TYPE c.

*----


  • Build Invoice header

*----


  • Document Type (Invoice)

gs_headerdata-invoice_ind = 'X'.

*gs_headerdata-doc_type = 51. "RK

  • Document Date

gs_headerdata-doc_date = l_date.

  • Posting Date

gs_headerdata-pstng_date = l_date.

  • Reference Document No

gs_headerdata-ref_doc_no = 'T2'.

gs_headerdata-gross_amount = 60.

  • Currency

gs_headerdata-currency = 'USD'.

  • Company Code

gs_headerdata-comp_code = '1002'.

    • Baseline Date

gs_headerdata-bline_date = l_date.

*

*Tax Indicator

gs_headerdata-calc_tax_ind = 'X'. "RK

*----


  • Build order item(s) - Only 1 is used in this example

*----


  • Document Item

gs_itemdata-invoice_doc_item = 000001.

  • Purchase Order Number

gs_itemdata-po_number = 4500000017.

  • Purchase Order Item

gs_itemdata-po_item = '00020'.

  • Item Amount

gs_itemdata-item_amount = 30.

  • Quantity

gs_itemdata-quantity = 10.

gs_itemdata-po_unit = 'EA'.

gs_itemdata-tax_code = 'E0'.

*gs_itemdata-taxjurcode = '0100000000'. "RK

APPEND gs_itemdata TO gt_itemdata.

<b>CLEAR: gs_itemdata, gt_itemdata.</b>

  • Document Item

gs_itemdata-invoice_doc_item = 000002.

  • Purchase Order Number

gs_itemdata-po_number = 4500000017.

  • Purchase Order Item

gs_itemdata-po_item = '00020'.

  • Item Amount

gs_itemdata-item_amount = 30.

  • Quantity

gs_itemdata-quantity = 10.

gs_itemdata-po_unit = 'EA'.

gs_itemdata-tax_code = 'E0'.

*gs_itemdata-taxjurcode = '0100000000'. "RK

APPEND gs_itemdata TO gt_itemdata.

<b>CLEAR: gs_itemdata, gt_itemdata.</b>

*Call the BAPI to Create the Return Order

data: gv_INVOICE type BAPI_INCINV_FLD-INV_DOC_NO,

gv_YEAR type BAPI_INCINV_FLD-FISC_YEAR.

CALL FUNCTION 'BAPI_INCOMINGINVOICE_CREATE'

EXPORTING

headerdata = gs_headerdata

IMPORTING

INVOICEDOCNUMBER = gv_INVOICE

FISCALYEAR = gv_YEAR

TABLES

return = gt_return

itemdata = gt_itemdata.

  • accountingdata = gt_accountingdata.

PERFORM error.

*----


  • Check and write Return table

*----


FORM error.

LEAVE TO LIST-PROCESSING.

CLEAR l_errflag.

LOOP AT gt_return INTO gs_return.

WRITE: / gs_return-type, gs_return-message(200).

IF gs_return-type = 'E'.

l_errflag = 'X'.

ENDIF.

ENDLOOP.

PERFORM commit.

ENDFORM. " ERROR INPUT

*----


  • No errors - Commit

*----


FORM commit.

IF l_errflag IS INITIAL.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

ENDIF.

ENDFORM. " COMMIT INPUT

Message was edited by:

Karthik