<?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_INCOMINGINVOICE_CREATE - Error in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-incominginvoice-create-error/m-p/3268167#M781122</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Rodrigo,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Invoice data is sent by the vendors in a text file and an inbound&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;interface is required to create Vendor Invoices in SAP. &lt;/P&gt;&lt;P&gt;The file contains the Purchase Order information, material quantity &lt;/P&gt;&lt;P&gt;received from vendor along with the amount. &lt;/P&gt;&lt;P&gt;Here the requirement becomes a little complex as there might be &lt;/P&gt;&lt;P&gt;several ocuurences of same Purchase Order item in one invoice. &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Only a incomplete sample coding is given here and it can only be used &lt;/P&gt;&lt;P&gt;as a base for writing a program. &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Populate internal Table I_ITAB from the data uploaded &lt;/P&gt;&lt;P&gt;from text data file. &lt;/P&gt;&lt;P&gt;*......&lt;/P&gt;&lt;P&gt;*......&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Populate Item Table from item data in data file &lt;/P&gt;&lt;P&gt;*......&lt;/P&gt;&lt;P&gt;*......&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Processing for header records of data file. &lt;/P&gt;&lt;P&gt;set up header data for BAPI call. &lt;/P&gt;&lt;P&gt;Check whwther it's an Incoice or Credit Memo. &lt;/P&gt;&lt;P&gt;And populate Invoice indicator accordingly. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF I_ITAB-TRANS EQ '-'.&lt;/P&gt;&lt;P&gt;I_HEADER-INVOICE_IND = C_X.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;CLEAR I_HEADER-INVOICE_IND.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;I_HEADER-PSTNG_DATE = I_ITAB-BUDAT.&lt;/P&gt;&lt;P&gt;I_HEADER-DOC_DATE = I_ITAB-BLDAT.&lt;/P&gt;&lt;P&gt;I_HEADER-CURRENCY = W_WAERS.&lt;/P&gt;&lt;P&gt;I_HEADER-GROSS_AMOUNT = I_ITAB-DMBTR.&lt;/P&gt;&lt;P&gt;I_HEADER-COMP_CODE = I_ITAB-BUKRS.&lt;/P&gt;&lt;P&gt;I_HEADER-HEADER_TXT = I_ITAB-SGTXT.&lt;/P&gt;&lt;P&gt;I_HEADER-REF_DOC_NO = I_ITAB-XBLNR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT I_ITAB-INV_REC_DATE IS INITIAL.&lt;/P&gt;&lt;P&gt;I_HEADER-INV_REC_DATE = I_ITAB-INV_REC_DATE.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;I_HEADER-INV_REC_DATE = I_ITAB-BLDAT.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_HEADER-PYMT_METH = I_ITAB-ZLSCH.&lt;/P&gt;&lt;P&gt;APPEND I_HEADER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*....&lt;/P&gt;&lt;P&gt;*....&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Populate Item Table from item data in data file &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lv_count = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT I_ITAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Processing for header records of data file. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lv_count = lv_count + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;........... &lt;/P&gt;&lt;P&gt;........... &lt;/P&gt;&lt;P&gt;Item Data &lt;/P&gt;&lt;P&gt;I_ITEM-INVOICE_DOC_ITEM = lv_COUNT.&lt;/P&gt;&lt;P&gt;I_ITEM-PO_NUMBER = I_ITAB-EBELN.&lt;/P&gt;&lt;P&gt;I_ITEM-PO_ITEM = I_ITAB-EBELP.&lt;/P&gt;&lt;P&gt;I_ITEM-TAX_CODE = I_ITAB-MWSKZ2.&lt;/P&gt;&lt;P&gt;I_ITEM-ITEM_AMOUNT = I_ITAB-NETWR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Populate quantities if not a blanket order &lt;/P&gt;&lt;P&gt;IF I_ITAB-BLANKET EQ SPACE.&lt;/P&gt;&lt;P&gt;I_ITEM-QUANTITY = I_ITAB-MENGE.&lt;/P&gt;&lt;P&gt;PERFORM GET_MEINS USING I_ITAB-EBELN " Use table EKPO&lt;/P&gt;&lt;P&gt;I_ITAB-EBELP&lt;/P&gt;&lt;P&gt;CHANGING I_ITEM-PO_UNIT.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-PO_UNIT = I_ITEM-PO_UNIT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF I_ITEM-QUANTITY EQ 0.&lt;/P&gt;&lt;P&gt;I_ITEM-PO_UNIT = SPACE.&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;&lt;/P&gt;&lt;P&gt;Item Text &lt;/P&gt;&lt;P&gt;I_ITEM-ITEM_TEXT = I_ITAB-ITEM_TEXT.&lt;/P&gt;&lt;P&gt;APPEND I_ITEM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Populate Accounting Data &lt;/P&gt;&lt;P&gt;IF I_ITAB-BLANKET EQ SPACE.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-INVOICE_DOC_ITEM = lv_COUNT.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-SERIAL_NO = '01'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-TAX_CODE = I_ITAB-MWSKZ2.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-ITEM_AMOUNT = I_ITAB-NETWR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE SAKTO KOSTL VBELN VBELP ANLN1 ANLN2 DABRZ&lt;/P&gt;&lt;P&gt;FISTL GEBER GRANT_NBR GSBER IMKEY KOKRS KSTRG PAOBJNR&lt;/P&gt;&lt;P&gt;PRCTR PS_PSP_PNR AUFNR MENGE&lt;/P&gt;&lt;P&gt;FROM EKKN&lt;/P&gt;&lt;P&gt;INTO (I_ACCOUNTINGDATA-GL_ACCOUNT, I_ACCOUNTINGDATA-COSTCENTER,&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-SD_DOC, I_ACCOUNTINGDATA-SDOC_ITEM,&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-ASSET_NO, I_ACCOUNTINGDATA-SUB_NUMBER,&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-REF_DATE, I_ACCOUNTINGDATA-FUNDS_CTR,&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-FUND, I_ACCOUNTINGDATA-GRANT_NBR,&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-BUS_AREA, I_ACCOUNTINGDATA-RL_EST_KEY,&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-CO_AREA, I_ACCOUNTINGDATA-COSTOBJECT,&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-PROFIT_SEGM_NO, I_ACCOUNTINGDATA-PROFIT_CTR,&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-WBS_ELEM, I_ACCOUNTINGDATA-ORDERID,&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-QUANTITY)&lt;/P&gt;&lt;P&gt;WHERE EBELN EQ I_ITAB-EBELN&lt;/P&gt;&lt;P&gt;AND EBELP EQ I_ITAB-EBELP&lt;/P&gt;&lt;P&gt;AND ZEKKN EQ '01'.&lt;/P&gt;&lt;P&gt;IF EKKO-BSART NE 'LTV'.&lt;/P&gt;&lt;P&gt;CLEAR I_ACCOUNTINGDATA-QUANTITY.&lt;/P&gt;&lt;P&gt;CLEAR I_ACCOUNTINGDATA-PO_UNIT.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;APPEND I_ACCOUNTINGDATA.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*.....&lt;/P&gt;&lt;P&gt;*.....&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following coding is to solve the problem &lt;/P&gt;&lt;P&gt;mentioned in OSS Note 518338. &lt;/P&gt;&lt;P&gt;Same PO item within several invoice items. &lt;/P&gt;&lt;P&gt;SORT I_ITEM BY PO_NUMBER PO_ITEM.&lt;/P&gt;&lt;P&gt;LOOP AT I_ITEM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ON CHANGE OF I_ITEM-PO_NUMBER OR I_ITEM-PO_ITEM.&lt;/P&gt;&lt;P&gt;W_COUNTER = 1.&lt;/P&gt;&lt;P&gt;LOOP AT I_ITEM WHERE PO_NUMBER = I_ITEM-PO_NUMBER&lt;/P&gt;&lt;P&gt;AND PO_ITEM = I_ITEM-PO_ITEM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF W_COUNTER EQ 1.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-SERIAL_NO = '01'.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-XUNPL = ' '.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-SERIAL_NO = ' '.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-XUNPL = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;MODIFY I_ACCOUNTINGDATA&lt;/P&gt;&lt;P&gt;TRANSPORTING SERIAL_NO XUNPL&lt;/P&gt;&lt;P&gt;WHERE INVOICE_DOC_ITEM = I_ITEM-INVOICE_DOC_ITEM.&lt;/P&gt;&lt;P&gt;W_COUNTER = W_COUNTER + 1.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To solve the repetition of PO item in subsequent invoices. &lt;/P&gt;&lt;P&gt;ELSEIF SY-TABIX EQ 1.&lt;/P&gt;&lt;P&gt;W_COUNTER = 1.&lt;/P&gt;&lt;P&gt;LOOP AT I_ITEM WHERE PO_NUMBER = I_ITEM-PO_NUMBER&lt;/P&gt;&lt;P&gt;AND PO_ITEM = I_ITEM-PO_ITEM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF W_COUNTER EQ 1.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-SERIAL_NO = '01'.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-XUNPL = ' '.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-SERIAL_NO = ' '.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-XUNPL = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;MODIFY I_ACCOUNTINGDATA&lt;/P&gt;&lt;P&gt;TRANSPORTING SERIAL_NO XUNPL&lt;/P&gt;&lt;P&gt;WHERE INVOICE_DOC_ITEM = I_ITEM-INVOICE_DOC_ITEM.&lt;/P&gt;&lt;P&gt;W_COUNTER = W_COUNTER + 1.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDON.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Changes over for OSS Note 518338. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SORT I_ITEM BY INVOICE_DOC_ITEM PO_NUMBER PO_ITEM.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BAPI_INCOMINGINVOICE_CREATE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;HEADERDATA = I_HEADER&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;INVOICEDOCNUMBER = W_BELNR&lt;/P&gt;&lt;P&gt;FISCALYEAR = W_GJAHR&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;ITEMDATA = I_ITEM&lt;/P&gt;&lt;P&gt;ACCOUNTINGDATA = I_ACCOUNTINGDATA&lt;/P&gt;&lt;P&gt;TAXDATA = I_TAX&lt;/P&gt;&lt;P&gt;RETURN = I_RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc 0.&lt;/P&gt;&lt;P&gt;message e999(re) with 'Problem occured'.&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;loop at return.&lt;/P&gt;&lt;P&gt;if not return is initial.&lt;/P&gt;&lt;P&gt;clear bapi_retn_info.&lt;/P&gt;&lt;P&gt;move-corresponding return to bapi_retn_info.&lt;/P&gt;&lt;P&gt;if return-type = 'A' or return-type = 'E'.&lt;/P&gt;&lt;P&gt;error_flag = 'X'.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;append bapi_retn_info.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;if error_flag = 'X'.&lt;/P&gt;&lt;P&gt;message e999(re) with 'Problem occured'.&lt;/P&gt;&lt;P&gt;rollback work.&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Return Table from BAPI call is empty&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;WAIT = 'X'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;RETURN = I_RETURN.&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;kindly reward if found helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cheers,&lt;/P&gt;&lt;P&gt;Hema.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 17 Jan 2008 15:22:52 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-01-17T15:22:52Z</dc:date>
    <item>
      <title>BAPI_INCOMINGINVOICE_CREATE - Error</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-incominginvoice-create-error/m-p/3268166#M781121</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 am using the 'BAPI_INCOMINGINVOICE_CREATE' and it is working perfectly. When the bapi returns message number 534 (Balance not zero: 2,00  debits: XX credits: XX) I need to execute again the bapi with the same information and new value in header-gross_amount (+ 2,00 in this case) on runtime, but ocurrs error, the invoicedocnumber and the table return are initial. The fiscalyear is OK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I closed the program and execute again with the same information and new value in header-gross_amount (+2) OK, the bapi working perfectly, invoicedocnumber and fiscalyear are filled.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ideas?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Jan 2008 15:13:14 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-incominginvoice-create-error/m-p/3268166#M781121</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-17T15:13:14Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_INCOMINGINVOICE_CREATE - Error</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-incominginvoice-create-error/m-p/3268167#M781122</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Rodrigo,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Invoice data is sent by the vendors in a text file and an inbound&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;interface is required to create Vendor Invoices in SAP. &lt;/P&gt;&lt;P&gt;The file contains the Purchase Order information, material quantity &lt;/P&gt;&lt;P&gt;received from vendor along with the amount. &lt;/P&gt;&lt;P&gt;Here the requirement becomes a little complex as there might be &lt;/P&gt;&lt;P&gt;several ocuurences of same Purchase Order item in one invoice. &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Only a incomplete sample coding is given here and it can only be used &lt;/P&gt;&lt;P&gt;as a base for writing a program. &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Populate internal Table I_ITAB from the data uploaded &lt;/P&gt;&lt;P&gt;from text data file. &lt;/P&gt;&lt;P&gt;*......&lt;/P&gt;&lt;P&gt;*......&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Populate Item Table from item data in data file &lt;/P&gt;&lt;P&gt;*......&lt;/P&gt;&lt;P&gt;*......&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Processing for header records of data file. &lt;/P&gt;&lt;P&gt;set up header data for BAPI call. &lt;/P&gt;&lt;P&gt;Check whwther it's an Incoice or Credit Memo. &lt;/P&gt;&lt;P&gt;And populate Invoice indicator accordingly. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF I_ITAB-TRANS EQ '-'.&lt;/P&gt;&lt;P&gt;I_HEADER-INVOICE_IND = C_X.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;CLEAR I_HEADER-INVOICE_IND.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;I_HEADER-PSTNG_DATE = I_ITAB-BUDAT.&lt;/P&gt;&lt;P&gt;I_HEADER-DOC_DATE = I_ITAB-BLDAT.&lt;/P&gt;&lt;P&gt;I_HEADER-CURRENCY = W_WAERS.&lt;/P&gt;&lt;P&gt;I_HEADER-GROSS_AMOUNT = I_ITAB-DMBTR.&lt;/P&gt;&lt;P&gt;I_HEADER-COMP_CODE = I_ITAB-BUKRS.&lt;/P&gt;&lt;P&gt;I_HEADER-HEADER_TXT = I_ITAB-SGTXT.&lt;/P&gt;&lt;P&gt;I_HEADER-REF_DOC_NO = I_ITAB-XBLNR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT I_ITAB-INV_REC_DATE IS INITIAL.&lt;/P&gt;&lt;P&gt;I_HEADER-INV_REC_DATE = I_ITAB-INV_REC_DATE.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;I_HEADER-INV_REC_DATE = I_ITAB-BLDAT.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_HEADER-PYMT_METH = I_ITAB-ZLSCH.&lt;/P&gt;&lt;P&gt;APPEND I_HEADER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*....&lt;/P&gt;&lt;P&gt;*....&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Populate Item Table from item data in data file &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lv_count = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT I_ITAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Processing for header records of data file. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lv_count = lv_count + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;........... &lt;/P&gt;&lt;P&gt;........... &lt;/P&gt;&lt;P&gt;Item Data &lt;/P&gt;&lt;P&gt;I_ITEM-INVOICE_DOC_ITEM = lv_COUNT.&lt;/P&gt;&lt;P&gt;I_ITEM-PO_NUMBER = I_ITAB-EBELN.&lt;/P&gt;&lt;P&gt;I_ITEM-PO_ITEM = I_ITAB-EBELP.&lt;/P&gt;&lt;P&gt;I_ITEM-TAX_CODE = I_ITAB-MWSKZ2.&lt;/P&gt;&lt;P&gt;I_ITEM-ITEM_AMOUNT = I_ITAB-NETWR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Populate quantities if not a blanket order &lt;/P&gt;&lt;P&gt;IF I_ITAB-BLANKET EQ SPACE.&lt;/P&gt;&lt;P&gt;I_ITEM-QUANTITY = I_ITAB-MENGE.&lt;/P&gt;&lt;P&gt;PERFORM GET_MEINS USING I_ITAB-EBELN " Use table EKPO&lt;/P&gt;&lt;P&gt;I_ITAB-EBELP&lt;/P&gt;&lt;P&gt;CHANGING I_ITEM-PO_UNIT.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-PO_UNIT = I_ITEM-PO_UNIT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF I_ITEM-QUANTITY EQ 0.&lt;/P&gt;&lt;P&gt;I_ITEM-PO_UNIT = SPACE.&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;&lt;/P&gt;&lt;P&gt;Item Text &lt;/P&gt;&lt;P&gt;I_ITEM-ITEM_TEXT = I_ITAB-ITEM_TEXT.&lt;/P&gt;&lt;P&gt;APPEND I_ITEM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Populate Accounting Data &lt;/P&gt;&lt;P&gt;IF I_ITAB-BLANKET EQ SPACE.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-INVOICE_DOC_ITEM = lv_COUNT.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-SERIAL_NO = '01'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-TAX_CODE = I_ITAB-MWSKZ2.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-ITEM_AMOUNT = I_ITAB-NETWR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE SAKTO KOSTL VBELN VBELP ANLN1 ANLN2 DABRZ&lt;/P&gt;&lt;P&gt;FISTL GEBER GRANT_NBR GSBER IMKEY KOKRS KSTRG PAOBJNR&lt;/P&gt;&lt;P&gt;PRCTR PS_PSP_PNR AUFNR MENGE&lt;/P&gt;&lt;P&gt;FROM EKKN&lt;/P&gt;&lt;P&gt;INTO (I_ACCOUNTINGDATA-GL_ACCOUNT, I_ACCOUNTINGDATA-COSTCENTER,&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-SD_DOC, I_ACCOUNTINGDATA-SDOC_ITEM,&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-ASSET_NO, I_ACCOUNTINGDATA-SUB_NUMBER,&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-REF_DATE, I_ACCOUNTINGDATA-FUNDS_CTR,&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-FUND, I_ACCOUNTINGDATA-GRANT_NBR,&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-BUS_AREA, I_ACCOUNTINGDATA-RL_EST_KEY,&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-CO_AREA, I_ACCOUNTINGDATA-COSTOBJECT,&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-PROFIT_SEGM_NO, I_ACCOUNTINGDATA-PROFIT_CTR,&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-WBS_ELEM, I_ACCOUNTINGDATA-ORDERID,&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-QUANTITY)&lt;/P&gt;&lt;P&gt;WHERE EBELN EQ I_ITAB-EBELN&lt;/P&gt;&lt;P&gt;AND EBELP EQ I_ITAB-EBELP&lt;/P&gt;&lt;P&gt;AND ZEKKN EQ '01'.&lt;/P&gt;&lt;P&gt;IF EKKO-BSART NE 'LTV'.&lt;/P&gt;&lt;P&gt;CLEAR I_ACCOUNTINGDATA-QUANTITY.&lt;/P&gt;&lt;P&gt;CLEAR I_ACCOUNTINGDATA-PO_UNIT.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;APPEND I_ACCOUNTINGDATA.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*.....&lt;/P&gt;&lt;P&gt;*.....&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following coding is to solve the problem &lt;/P&gt;&lt;P&gt;mentioned in OSS Note 518338. &lt;/P&gt;&lt;P&gt;Same PO item within several invoice items. &lt;/P&gt;&lt;P&gt;SORT I_ITEM BY PO_NUMBER PO_ITEM.&lt;/P&gt;&lt;P&gt;LOOP AT I_ITEM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ON CHANGE OF I_ITEM-PO_NUMBER OR I_ITEM-PO_ITEM.&lt;/P&gt;&lt;P&gt;W_COUNTER = 1.&lt;/P&gt;&lt;P&gt;LOOP AT I_ITEM WHERE PO_NUMBER = I_ITEM-PO_NUMBER&lt;/P&gt;&lt;P&gt;AND PO_ITEM = I_ITEM-PO_ITEM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF W_COUNTER EQ 1.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-SERIAL_NO = '01'.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-XUNPL = ' '.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-SERIAL_NO = ' '.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-XUNPL = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;MODIFY I_ACCOUNTINGDATA&lt;/P&gt;&lt;P&gt;TRANSPORTING SERIAL_NO XUNPL&lt;/P&gt;&lt;P&gt;WHERE INVOICE_DOC_ITEM = I_ITEM-INVOICE_DOC_ITEM.&lt;/P&gt;&lt;P&gt;W_COUNTER = W_COUNTER + 1.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To solve the repetition of PO item in subsequent invoices. &lt;/P&gt;&lt;P&gt;ELSEIF SY-TABIX EQ 1.&lt;/P&gt;&lt;P&gt;W_COUNTER = 1.&lt;/P&gt;&lt;P&gt;LOOP AT I_ITEM WHERE PO_NUMBER = I_ITEM-PO_NUMBER&lt;/P&gt;&lt;P&gt;AND PO_ITEM = I_ITEM-PO_ITEM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF W_COUNTER EQ 1.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-SERIAL_NO = '01'.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-XUNPL = ' '.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-SERIAL_NO = ' '.&lt;/P&gt;&lt;P&gt;I_ACCOUNTINGDATA-XUNPL = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;MODIFY I_ACCOUNTINGDATA&lt;/P&gt;&lt;P&gt;TRANSPORTING SERIAL_NO XUNPL&lt;/P&gt;&lt;P&gt;WHERE INVOICE_DOC_ITEM = I_ITEM-INVOICE_DOC_ITEM.&lt;/P&gt;&lt;P&gt;W_COUNTER = W_COUNTER + 1.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDON.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Changes over for OSS Note 518338. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SORT I_ITEM BY INVOICE_DOC_ITEM PO_NUMBER PO_ITEM.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BAPI_INCOMINGINVOICE_CREATE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;HEADERDATA = I_HEADER&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;INVOICEDOCNUMBER = W_BELNR&lt;/P&gt;&lt;P&gt;FISCALYEAR = W_GJAHR&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;ITEMDATA = I_ITEM&lt;/P&gt;&lt;P&gt;ACCOUNTINGDATA = I_ACCOUNTINGDATA&lt;/P&gt;&lt;P&gt;TAXDATA = I_TAX&lt;/P&gt;&lt;P&gt;RETURN = I_RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc 0.&lt;/P&gt;&lt;P&gt;message e999(re) with 'Problem occured'.&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;loop at return.&lt;/P&gt;&lt;P&gt;if not return is initial.&lt;/P&gt;&lt;P&gt;clear bapi_retn_info.&lt;/P&gt;&lt;P&gt;move-corresponding return to bapi_retn_info.&lt;/P&gt;&lt;P&gt;if return-type = 'A' or return-type = 'E'.&lt;/P&gt;&lt;P&gt;error_flag = 'X'.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;append bapi_retn_info.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;if error_flag = 'X'.&lt;/P&gt;&lt;P&gt;message e999(re) with 'Problem occured'.&lt;/P&gt;&lt;P&gt;rollback work.&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Return Table from BAPI call is empty&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;WAIT = 'X'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;RETURN = I_RETURN.&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;kindly reward if found helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cheers,&lt;/P&gt;&lt;P&gt;Hema.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Jan 2008 15:22:52 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-incominginvoice-create-error/m-p/3268167#M781122</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-17T15:22:52Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_INCOMINGINVOICE_CREATE - Error</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-incominginvoice-create-error/m-p/3268168#M781123</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;lt;B&amp;gt;THE ERROR&amp;lt;/B&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_INCOMINGINVOICE_CREATE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      headerdata       = st_header&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      invoicedocnumber = v_number&lt;/P&gt;&lt;P&gt;      fiscalyear       = v_year&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      itemdata         = t_item&lt;/P&gt;&lt;P&gt;      return           = t_return.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF v_number IS INITIAL OR&lt;/P&gt;&lt;P&gt;     v_year   IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE t_return INTO st_return WITH KEY id = 'M8' number = '534'.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC IS INITIAL.&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Here the program execute the 'BAPI_INCOMINGINVOICE_CREATE' again with the same information and st_header-gross_amount with new value, but v_number is initial again. But I close the program and execute again with new value in st_header-gross_amount v_number returns OK.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        wait = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Jan 2008 20:09:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-incominginvoice-create-error/m-p/3268168#M781123</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-17T20:09:21Z</dc:date>
    </item>
  </channel>
</rss>

