SAP MM 发票预制 Function Module - BAPI_INCOMINGINVOICE_PARK

   加入 SY 项目不到一周,就被在毫无准备的情况下被指派去参与一个 SRM SAP 系统的接口项目里,参与这个需求里预制发票在 SRM SAP 系统之间数据传递的场景梳理。要从技术的角度弄清楚各个场景下从 SRM 系统传入 SAP 系统,以及从 SAP 系统回传到 SRM 系统的数据字段列表。这个需求里最复杂的场景是业务人员在 SRM 系统上发起预制发票申请,经过审批后,通过接口传入 SAP 系统,在 SAP 系统里创建预制发票,然后回传到 SRM 系统;另外业务人员可能会在 SRM 系统里对于已经审批过的预制发票申请做修改,这个修改也要通过接口传入 SAP 系统。这 2 个场景, SAP 都要接受从 SRM 系统传过来的数据。


我需要与SRM系统运维项目组同行沟通,对字段,即是告诉SRM同事这2个场景里需要传递哪些参数到SAP系统里来。笔者参与的项目里很少使用预制发票功能,几年前的一个跨国企业运维项目里有用到,但是我们只是运维,并没有参与功能实现。所以这个东东对于我,还是比较新的一个东东。为了应付工作需要,并且是迫切的需求,笔者上网查资料,得到了如下的一片文字,对于笔者很有帮助,大大的减少了笔者研究与学习的时间。


         如下英文部分文字来自于互联网

 

SAP MM BAPI_INCOMINGINVOICE_PARK - Invoice Verification: Park Incoming Invoice

 

Functionality

You can use this method to park incoming invoices.

When header data is transferred, you use the field INVOICE_IND to determine whether the system generates a credit memo or an invoice. If you leave the field initial, the system generates a credit memo. If you enter X, the system generates an invoice.

You use this method if information on posting an invoice document is missing in the invoice document. The balance can be a value other than zero. As in the online transaction, the following updates take place: for example, informative PO history, advance tax return, index for checks re duplicate invoices, open creditor items from parked documents, log of document changes.

You can use this method to:

  • Park invoices with multiple account assignment
  • Change and park invoice account assignments
  • Park invoices for purchase orders with planned delivery costs
  • Park invoices with unplanned delivery costs
  • Park subsequent credits and debits
  • Use document types with external number ranges
  • Park invoices with withholding tax
  • Park invoices with several creditor lines and different methods and terms of payment
  • Park invoices for purchase orders for external services
  • Park invoices with G/L account postings
  • Park invoices with material account postings
  • Park invoices for a one-time supplier
  • Park invoices with a different payee
  • Create and post provisional/differential invoices and final invoices in the context of differential invoicing
    (See also documentation for function module
    BAPI_INCOMINGINVOICE_CREATE (Invoice Verification: Post Incoming Invoice))

Constraints

You cannot post invoices for returns orders

The following fields in Financial Accounting are not passed on:

  • ISR subscriber number (ISR = inpayment slip with reference number)
  • Bank details
  • Payment reference
  • Short key for house bank
  • Service indicator

Notes

The following authorization object is checked with activity 77:

  • M_RECH_WRKPlant authorization for entering incoming invoices

Input parameters

You transfer the header data of the incoming invoice using the structure HeaderData.

The tables ItemData and AccountingData contain the item data of the incoming invoice. The TaxData table contains the tax information for the incoming invoice.

The GlAccountData table contains data for posting to G/L accounts, and the MaterialData table contains data for posting to material accounts.

You can use the WithTaxData table to pass on withholding tax information.

You can use the VendorItemSplitData table to distribute the gross amount among several vendor line items with different methods and terms of payment.

Output parameters

The document number of the invoice document and the fiscal year are returned as key fields of the incoming invoice.

Return messages

Messages are returned in the Return parameter. The parameter documentation shows the return codes and their meanings.

Further information

Example: Incoming Invoice

This example shows which header data you can park in the table HeaderData and which item data you can park in the table ItemData.

Purchase Order: 10 pc of material A @ 10 USD
Goods receipt: 10 pc of material A

For this purchase order, you receive an incoming invoice referencing PO number 4500007491, PO item 10, for a quantity of 10 pc of material A and an amount of 116 USD incl. 16% VAT. You enter the following data:

HeaderData table

  • INVOICE_IND (invoice/credit memo): X
  • DOC_DATE (document date): 20.05.2000
  • PSTNG_DATE (Posting date): 23.05.2000
  • COMP_CODE (company code): 1000
  • GROSS_AMOUNT (Gross amount): 116,00
  • CURRENCY (currency key): USD
  • CALC_TAX_IND (calculate tax): X

ItemData table

  • INVOICE_DOC_ITEM (Invoice document item): 00001
  • PO_NUMBER (purchase order number): 4500007491
  • PO_ITEM (Purchase order item): 00010
  • <
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,可以了解到BAPI_INCOMINGINVOICE_CREATE1是一个用于创建进货发票的标准BAPI。而BAPI_INCOMINGINVOICE_PARK是一个用于将进货发票暂存的标准BAPI。下面是一个简单的示例代码,演示如何使用BAPI_INCOMINGINVOICE_PARK: ```ABAP DATA: lt_invoice_header TYPE STANDARD TABLE OF bapivbrk, lt_invoice_item TYPE STANDARD TABLE OF bapivbrp, ls_invoice_header LIKE LINE OF lt_invoice_header, ls_invoice_item LIKE LINE OF lt_invoice_item, ls_return LIKE bapiret2. * 填充进货发票头信息 ls_invoice_header-companycode = '1000'. ls_invoice_header-docdate = '20220101'. ls_invoice_header-pstngdate = '20220101'. ls_invoice_header-duedate = '20220131'. ls_invoice_header-vendor = '10000001'. APPEND ls_invoice_header TO lt_invoice_header. * 填充进货发票行项目信息 ls_invoice_item-material = 'MATERIAL001'. ls_invoice_item-quantity = 10. ls_invoice_item-netvalue = 1000. APPEND ls_invoice_item TO lt_invoice_item. * 调用BAPI_INCOMINGINVOICE_PARK CALL FUNCTION 'BAPI_INCOMINGINVOICE_PARK' EXPORTING headerdata = ls_invoice_header TABLES itemdata = lt_invoice_item return = lt_return. * 检查返回结果 IF lt_return IS NOT INITIAL. LOOP AT lt_return INTO ls_return. WRITE: / ls_return-type, ls_return-id, ls_return-number, ls_return-message. ENDLOOP. ENDIF. ``` 上述代码中,我们首先定义了进货发票的头信息和行项目信息,并将其填充到对应的表中。然后,我们调用了BAPI_INCOMINGINVOICE_PARK,并将进货发票的头信息作为EXPORTING参数传递给该BAPI,将进货发票的行项目信息作为TABLES参数传递给该BAPI。最后,我们检查了返回结果,如果有错误信息,则将其输出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值