SAP_ABAP_MM_BAPI清单案例教程——采购发票校验/预制_BAPI_INCOMINGINVOICE_PARK_MIRO

<think>好的,我现在需要解释SAPBAPI_ACC_INVOICE_RECEIPT_CHECK函数的功能以及传值案例。首先,我得回忆一下这个BAPI的作用。BAPI通常是SAP中用于业务操作的接口,这个函数可能和发票校验有关。发票校验SAP中是MM(物料管理)和FI(财务会计)集成的关键步骤,通常在收到供应商发票时进行,核对采购订单、收货凭证和发票的一致性。 接下来,功能方面,这个BAPI可能用于检查发票的合法性,比如金额、数量是否匹配,税码是否正确,科目分配是否合理等。可能还会涉及预制过账前的检查,确保数据无误后再正式过账。需要确认的是,这个BAPI是仅做检查,还是同时执行过账?根据名称中的“CHECK”,应该是只进行检查,不实际过账。 然后是传值案例。用户需要知道如何调用这个BAPI,需要传递哪些参数。通常,BAPI的参数包括导入参数、导出参数、表参数等。关键参数可能包括发票抬头信息(如公司代码、凭证日期、过账日期)、供应商信息、发票金额、税码、采购订单号、行项目数据等。可能还需要传入一些结构或内表,比如行项目明细、科目分配等。 例如,调用这个BAPI时,可能需要传入COMPANYCODE(公司代码),VENDOR(供应商编号),INVOICE_AMOUNT(发票金额),INVOICE_DATE(发票日期),PO_NUMBER(采购订单号),PO_ITEM(采购订单行项目),还有可能涉及GR(收货凭证)相关的信息,比如GR_ITEM,GR_YEAR等。同时,可能需要在行项目中指定科目分配对象,比如成本中心、内部订单等。 可能的错误处理方面,BAPI通常返回RETURN表,包含消息类型(如E错误,W警告,S成功等),消息文本。调用后需要检查这些消息,确认是否通过检查。 我需要确保参数的正确性,例如金额是否为负数(SAP中可能用正负号表示借贷),日期格式是否正确,公司代码是否存在,供应商主数据是否维护等。同时,可能需要注意货币单位是否匹配,采购订单和收货凭证是否已存在等。 可能还需要考虑税务相关参数,比如税码TAX_CODE,是否含税,税额计算是否正确。此外,可能涉及付款条件、基准日期等财务相关字段。 传值案例需要具体举例,比如公司代码1000,供应商12345,发票金额1000 EUR,含税,税码J1,采购订单4500000123,行项目10,收货凭证500000001,行项目1,会计年度2024。然后构建相应的参数结构,如INVOICE_HEADER,INVOICE_ITEM等,填充必要字段,然后调用BAPI,检查RETURN表是否有错误。 可能需要注意的细节:有些字段是必填的,比如公司代码、供应商、发票金额、采购订单和行项目、收货凭证和行项目等。此外,货币可能与公司代码的货币相关,需一致。如果使用增强字段,可能需要额外处理。 总结下来,步骤应该是:1. 介绍功能;2. 参数说明;3. 示例传值结构;4. 调用后的处理。需要确保示例的正确性,避免遗漏关键字段,并提醒用户注意常见错误点,如必填项、格式、主数据存在性等。</think>**SAP BAPI_ACC_INVOICE_RECEIPT_CHECK 功能及传值案例** --- ### **功能说明** `BAPI_ACC_INVOICE_RECEIPT_CHECK` 是 SAP 中用于 **发票校验预检查** 的标准函数模块,主要用于在正式过账发票MIRO 事务)前,对以下内容进行合法性验证: - **三单匹配**:检查发票采购订单(PO)、收货凭证(GR)的金额、数量、税码等一致性。 - **科目分配**:验证成本中心、内部订单等科目分配对象的有效性。 - **税务合规性**:校验税码、税率、税额计算是否正确。 - **字段逻辑**:确保必填字段、日期格式、货币单位等符合系统规则。 > **注意**:此 BAPI 仅执行检查,不实际过账发票。通过检查后,需调用 `BAPI_ACC_INVOICE_POST` 完成过账。 --- ### **关键参数说明** #### **1. 导入参数(IMPORTING)** | 参数名 | 数据类型 | 说明 | 示例值 | |-----------------------|------------|--------------------------|------------------| | `COMPANYCODE` | CHAR(4) | 公司代码 | `1000` | | `VENDOR` | CHAR(10) | 供应商编号 | `S00012345` | | `INVOICE_DATE` | DATS | 发票日期 | `20240501` | | `POSTING_DATE` | DATS | 过账日期 | `20240501` | | `DOCUMENT_TYPE` | CHAR(2) | 凭证类型(如 `RE` 发票) | `RE` | #### **2. 表参数(TABLES)** | 表名 | 结构类型 | 说明 | |----------------------|------------------------|--------------------------| | `INVOICE_HEADER` | `BAPI_INCINV_CREATE_HEADER` | 发票抬头信息 | | `INVOICE_ITEM` | `BAPI_INCINV_CREATE_ITEM` | 发票行项目数据 | | `RETURN` | `BAPIRET2` | 返回消息(错误/成功) | --- ### **传值案例** 以下为模拟 **公司代码 1000** 对 **采购订单 4500000123** 的发票校验预检查示例: #### **1. 发票抬头(INVOICE_HEADER)** ```abap INVOICE_HEADER = VALUE #( ( INVOICE_IND = 'X' " 标识为发票 DOC_TYPE = 'RE' " 凭证类型 DOC_DATE = '20240501' " 凭证日期 PSTNG_DATE = '20240501' " 过账日期 COMP_CODE = '1000' " 公司代码 VENDOR_NO = 'S00012345' " 供应商编号 PMNTTRMS = 'Z000' " 付款条件 CURRENCY = 'EUR' " 货币 GROSS_AMOUNT = '1180.00' " 含税总金额 ) ). ``` #### **2. 发票行项目(INVOICE_ITEM)** ```abap INVOICE_ITEM = VALUE #( ( PO_NUMBER = '4500000123' " 采购订单号 PO_ITEM = '00010' " 采购订单行项目 REF_DOC = '500000001' " 收货凭证号 REF_DOC_YEAR = '2024' " 收货凭证年度 TAX_CODE = 'J1' " 税码(如 19% 增值税) ITEM_AMOUNT = '1000.00' " 行项目净金额 QUANTITY = '10' " 数量 PO_UNIT = 'EA' " 单位 COSTCENTER = 'KOST0001' " 成本中心 ) ). ``` --- ### **调用后处理** 1. **检查 RETURN 表**: - 若存在 `TYPE = 'E'` 条目,需根据消息文本修正数据。 - 若全部为 `TYPE = 'S'`,可通过 `BAPI_ACC_INVOICE_POST` 正式过账。 2. **关键错误示例**: - **E**: 采购订单 4500000123 行项目 10 的收货数量不足。 - **E**: 税码 J1 与公司代码 1000 的税务配置不匹配。 --- ### **注意事项** - **必填字段**:公司代码、供应商、采购订单、收货凭证等必须完整。 - **主数据**:确保供应商、成本中心、税码等主数据已维护。 - **金额符号**:SAP 中金额正负号表示借贷方向(如供应商发票通常为负值)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Terry谈数字化

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值