<?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 create invoice in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-create-invoice/m-p/3355395#M805017</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;Please find the below links.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapdev.co.uk/java/jco/bapi_jco.pdf" target="test_blank"&gt;http://www.sapdev.co.uk/java/jco/bapi_jco.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://sapabaplive.blogspot.com/search/label/BAPI" target="test_blank"&gt;http://sapabaplive.blogspot.com/search/label/BAPI&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sample code:&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;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;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;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;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;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;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;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;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;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;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;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;P&gt;&lt;/P&gt;&lt;P&gt;    &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;&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;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;hope this helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regs,&lt;/P&gt;&lt;P&gt;hema.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 04 Feb 2008 14:51:07 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-02-04T14:51:07Z</dc:date>
    <item>
      <title>BAPI create invoice</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-create-invoice/m-p/3355394#M805016</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I use BAPI_ACC_INVOICE_RECEIPT_CHECK to create automatically an invoice but I don't know how to add parameters to tables to create an invoice with 3 positions: for example with amount 200 , -195, -5&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How many there will be positions with: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IT_ACCOUNTPAYABLE--ITEMNO_ACC &lt;/P&gt;&lt;P&gt;IT_CURRENCYAMOUNT-ITEMNO_ACC&lt;/P&gt;&lt;P&gt;IT_ACCOUNTGL-ITEMNO_ACC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Every position have an own account number&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Feb 2008 14:47:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-create-invoice/m-p/3355394#M805016</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-04T14:47:02Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI create invoice</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-create-invoice/m-p/3355395#M805017</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;Please find the below links.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapdev.co.uk/java/jco/bapi_jco.pdf" target="test_blank"&gt;http://www.sapdev.co.uk/java/jco/bapi_jco.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://sapabaplive.blogspot.com/search/label/BAPI" target="test_blank"&gt;http://sapabaplive.blogspot.com/search/label/BAPI&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sample code:&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;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;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;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;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;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;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;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;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;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;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;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;P&gt;&lt;/P&gt;&lt;P&gt;    &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;&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;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;hope this helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regs,&lt;/P&gt;&lt;P&gt;hema.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Feb 2008 14:51:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-create-invoice/m-p/3355395#M805017</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-04T14:51:07Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI create invoice</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-create-invoice/m-p/3355396#M805018</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;IT_ACCOUNTPAYABLE-ITEMNO_ACC     = '0000000003'.&lt;/P&gt;&lt;P&gt;      IT_ACCOUNTPAYABLE-VENDOR_NO      = vendor.&lt;/P&gt;&lt;P&gt;      IT_ACCOUNTPAYABLE-ALLOC_NMBR     = auth_code.&lt;/P&gt;&lt;P&gt;      APPEND IT_ACCOUNTPAYABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IT_ACCOUNTGL-ITEMNO_ACC     = '0000000001'.&lt;/P&gt;&lt;P&gt;      IT_ACCOUNTGL-GL_ACCOUNT     = prepaid_account.&lt;/P&gt;&lt;P&gt;      IT_ACCOUNTGL-ITEM_TEXT      =  auth_code.&lt;/P&gt;&lt;P&gt;      IT_ACCOUNTGL-ALLOC_NMBR     = auth_code.&lt;/P&gt;&lt;P&gt;      APPEND IT_ACCOUNTGL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IT_ACCOUNTGL-ITEMNO_ACC     = '0000000002'.&lt;/P&gt;&lt;P&gt;      IT_ACCOUNTGL-GL_ACCOUNT     = prepaid_account.&lt;/P&gt;&lt;P&gt;      IT_ACCOUNTGL-ITEM_TEXT      = auth_code.&lt;/P&gt;&lt;P&gt;      IT_ACCOUNTGL-ALLOC_NMBR     = auth_code.&lt;/P&gt;&lt;P&gt;      APPEND IT_ACCOUNTGL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IT_CURRENCYAMOUNT-ITEMNO_ACC   = '0000000001'.&lt;/P&gt;&lt;P&gt;      IT_CURRENCYAMOUNT-CURRENCY     = currency.&lt;/P&gt;&lt;P&gt;      IT_CURRENCYAMOUNT-AMT_DOCCUR   = 100.&lt;/P&gt;&lt;P&gt;      APPEND IT_CURRENCYAMOUNT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IT_CURRENCYAMOUNT-ITEMNO_ACC   = '0000000002'.&lt;/P&gt;&lt;P&gt;      IT_CURRENCYAMOUNT-CURRENCY     = currency.&lt;/P&gt;&lt;P&gt;      IT_CURRENCYAMOUNT-AMT_DOCCUR   = -5.&lt;/P&gt;&lt;P&gt;      APPEND IT_CURRENCYAMOUNT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IT_CURRENCYAMOUNT-ITEMNO_ACC   = '0000000003'.&lt;/P&gt;&lt;P&gt;      IT_CURRENCYAMOUNT-CURRENCY     = currency.&lt;/P&gt;&lt;P&gt;      IT_CURRENCYAMOUNT-AMT_DOCCUR   = -95.&lt;/P&gt;&lt;P&gt;      APPEND IT_CURRENCYAMOUNT.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Feb 2008 11:11:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-create-invoice/m-p/3355396#M805018</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-06T11:11:41Z</dc:date>
    </item>
  </channel>
</rss>

