sap学习、就业、技术问题的探讨和咨询!声明:本文仅代表作者观点和立场,不代表任何公司!仅用于SAP软件应用学习参考。
根据采购订单创建发票校验的常用BAPI是:
1、BAPI_INCOMINGINVOICE_CREATE
2、BAPI_INCOMINGINVOICE_PARK
这两个BAPI函数在SAP系统中用于处理采购发票的校验和创建过程。以下是关于这两个BAPI的详细使用说明:
1、BAPI_INCOMINGINVOICE_CREATE
功能说明:
BAPI_INCOMINGINVOICE_CREATE用于直接创建并校验采购发票,生成相应的会计凭证。这个函数模块会处理发票的头部信息和行项目信息,并返回创建的发票号等结果。
使用方法:
准备输入参数:
headerdata:包含发票的头部信息,如发票类型、凭证日期、公司代码、供应商等。
itemdata:包含发票的行项目信息,如物料、数量、单价等。
taxdata(可选):包含发票的税务信息。
调用BAPI:BAPI_INCOMINGINVOICE_CREATE,并传入准备好的输入参数。(具体参考后面使用例子说明)
处理返回值:
通过返回值可以获取创建的发票号( invoicedocnumber )和其他相关信息。同时,需要检查返回表(如BAPIRET2)中的错误或警告信息。
提交事务:
如果发票成功创建,需要调用BAPI_TRANSACTION_COMMIT来提交事务。
2、BAPI_INCOMINGINVOICE_PARK
功能说明:
BAPI_INCOMINGINVOICE_PARK用于创建或修改待入库的采购发票,但不会立即生成会计凭证。这个函数模块通常用于发票的预制过程。
使用方法:
准备输入参数:
headerdata:包含发票的头部信息。
itemdata:包含发票的行项目信息。
调用BAPI:BAPI_INCOMINGINVOICE_PARK,并传入准备好的输入参数(具体参考后面使用例子说明)
后续处理:
调用成功后,发票将被标记为待入库状态,但不会立即影响库存或生成会计凭证。
后续可以使用BAPI_INCOMINGINVOICE_POST等函数将待入库的发票进行入库操作,并生成相应的会计凭证。
注意事项
在调用这些BAPI之前,请确保采购订单、收货等相关信息已经在系统中正确维护。
BAPI的参数和返回值可能会因SAP系统的不同版本和配置而有所不同,请参考具体的SAP系统文档或咨询SAP支持人员。
在生产环境中使用BAPI之前,请务必在测试环境中进行充分的测试。
下面以发票预制的BAPI使用例子说明参数如何赋值:
BAPI_INCOMINGINVOICE_PARK创建预制发票,一个预制发票包含正常PO和退货PO的发票参数赋值说明:
REPORT ZZMIR7.DATA:LS_HEADERDATA TYPE BAPI_INCINV_CREATE_HEADER,LV_INVOICEDOCNUMBER LIKE BAPI_INCINV_FLD-INV_DOC_NO,LV_FISCALYEAR LIKE BAPI_INCINV_FLD-FISC_YEAR,LT_ITEMDATA TYPE STANDARD TABLE OF BAPI_INCINV_CREATE_ITEM,LS_ITEMDATA TYPE BAPI_INCINV_CREATE_ITEM,LT_TAXDATA LIKE TABLE OF BAPI_INCINV_CREATE_TAX,LS_TAXDATA LIKE BAPI_INCINV_CREATE_TAX,LT_RETURN TYPE STANDARD TABLE OF BAPIRET2,LS_RETURN TYPE BAPIRET2.DATA:LV_ITEM TYPE BAPI_INCINV_CREATE_ITEM-INVOICE_DOC_ITEM,LV_CHECK TYPE CHAR1,LV_MESSAGE TYPE CHAR200.CLEAR:LS_HEADERDATA.LS_HEADERDATA-INVOICE_IND = 'X'. "标识: 记帐发票*存在退货和普通的凭证 如下2参数需要赋值LS_HEADERDATA-DELIV_POSTING = 'S'.LS_HEADERDATA-RETURN_POSTING = 'H'.LS_HEADERDATA-DOC_TYPE = 'RE'."凭证类型LS_HEADERDATA-DOC_DATE = SY-DATUM."凭证中的凭证日期LS_HEADERDATA-PSTNG_DATE = SY-DATUM."凭证中的过账日期LS_HEADERDATA-COMP_CODE = '1000'."公司代码LS_HEADERDATA-CURRENCY = 'CNY'."货币码LS_HEADERDATA-BLINE_DATE = SY-DATUM."用于到期日计算的基准日期LS_HEADERDATA-REF_DOC_NO = '20260615001'.LS_HEADERDATA-GROSS_AMOUNT = '9040' .LS_HEADERDATA-CALC_TAX_IND = 'X'."自动计算税*正常PO:4500009782CLEAR LS_ITEMDATA.LV_ITEM = LV_ITEM + 1.LS_ITEMDATA-INVOICE_DOC_ITEM = LV_ITEM."发票凭证中的凭证项目LS_ITEMDATA-PO_NUMBER = '4500009782'."采购凭证号LS_ITEMDATA-PO_ITEM = '10'."采购凭证的项目编号LS_ITEMDATA-ITEM_AMOUNT = '10000'."凭证货币金额LS_ITEMDATA-QUANTITY = '100'."数量 'LS_ITEMDATA-PO_UNIT = 'EA'."订单单位LS_ITEMDATA-TAX_CODE = 'J2'."销售/购买税代码LS_ITEMDATA-REF_DOC = '5000009358'."参考凭证号LS_ITEMDATA-REF_DOC_IT = '1'."发票凭证中的凭证项目LS_ITEMDATA-REF_DOC_YEAR = '2026'."会计年度APPEND LS_ITEMDATA TO LT_ITEMDATA.*退货PO :4500009783CLEAR LS_ITEMDATA.LV_ITEM = LV_ITEM + 1.LS_ITEMDATA-INVOICE_DOC_ITEM = LV_ITEM."发票凭证中的凭证项目LS_ITEMDATA-PO_NUMBER = '4500009783'."采购凭证号LS_ITEMDATA-PO_ITEM = '10'."采购凭证的项目编号LS_ITEMDATA-ITEM_AMOUNT = '2000'."凭证货币金额 -80LS_ITEMDATA-QUANTITY = '10'."数量LS_ITEMDATA-PO_UNIT = 'EA'."订单单位LS_ITEMDATA-TAX_CODE = 'J2'."销售/购买税代码LS_ITEMDATA-REF_DOC = '5000009359'."参考凭证号LS_ITEMDATA-REF_DOC_IT = '1'."发票凭证中的凭证项目LS_ITEMDATA-REF_DOC_YEAR = '2026'."会计年度APPEND LS_ITEMDATA TO LT_ITEMDATA.*CLEAR:LS_TAXDATA. " 如果不勾选自动计算税 这里可以给说金额*LS_TAXDATA-TAX_CODE = 'J4'.*LS_TAXDATA-TAX_AMOUNT = 26.*APPEND LS_TAXDATA TO LT_TAXDATA.CALL FUNCTION 'BAPI_INCOMINGINVOICE_PARK'EXPORTINGHEADERDATA = LS_HEADERDATAIMPORTINGINVOICEDOCNUMBER = LV_INVOICEDOCNUMBERFISCALYEAR = LV_FISCALYEARTABLESITEMDATA = LT_ITEMDATA* TAXDATA = LT_TAXDATARETURN = LT_RETURN.CLEAR:LV_CHECK,LV_MESSAGE.LOOP AT LT_RETURN INTO LS_RETURN WHERE TYPE CA 'AEX'.LV_CHECK = 'E'.CONCATENATE LV_MESSAGE LS_RETURN-MESSAGE INTO LV_MESSAGE .* lv_message = lv_message && ls_return-message.ENDLOOP.IF LV_CHECK = 'E'.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGWAIT = 'X'.ENDIF.
Incoming invoice:供应商应付发票 Credit memo:贷项凭证(冲销采购的红字发票) delivery item:交货单行项目 returns item:退货单行项目 debit/credit indicator:借贷记账标识(S = 借方,H = 贷方)

夜雨聆风