点击蓝字 关注我们

前言

同事开发供应商结算功能时,需要把供应商的采购入库,采购退货,及供应商的费用项,返利项等整合到一张发票校验单据中.

调用BAPI的时候,因为参数填写的原因,报了一些错误.帮忙跟踪了这些报错时.

总结了发票校验BAPI的参数传递注意事项.

分享给大家.

两个BAPI函数的选择

创建发票校验有两个BAPI函数,二者实现的功能是一致的.

  • BAPI_INCOMINGINVOICE_CREATE

  • BAPI_INCOMINGINVOICE_CREATE1

因为函数

BAPI_INCOMINGINVOICE_CREATE1

中会检查行项目金额不能为负数,所以无法同时创建正向和反向订单的发票校验.

  • 如果按单张采购订单创建发票校验. 建议选择 BAPI_INCOMINGINVOICE_CREATE1

  • 如果需要在一张发票校验中同时添加采购收获,采购退货或其它费用. 则需要用BAPI_INCOMINGINVOICE_CREATE

后文的介绍以

BAPI_INCOMINGINVOICE_CREATE 为主

多个BAPI的选择

SPRING

一般情况下. 我们尽量选择函数名后面带有数字并且数字最大的函数,更大的数字序号往往代表了更新的BAPI函数版本.

比如PO的创建,选择BAPI_PO_CREATE1

函数传入参数简介

01

抬头部分信息

HEADERDATA:

02

明细部分

ITEMDATA

采购订单/商品凭证明细部分

根据订单基于收货的出具发票标记EKPO-WEBRE,如果有该标记. 则明细部分必须输入商品凭证信息. 否则,无需输入商品凭证部分

03

总账科目部分

GLACCOUNTDATA

费用/返利等总账科目信息

总账贷方减少应付金额, 借方增加应付金额.

04

物料部分

MATERIALDATA

不在采购/商品凭证的商品数据信息(这部分不太常用,一般用来调整商品库存价值,从而影响移动平均价)

05

关键字段

HEADERDATA- INVOICE_IND

抬头-INVOICE_IND = 'X'. 创建正常发票校验

此时明细行中金额ITEM_AMOUNT退货设置负数, 收货设置正数 ,数量QUANTITY始终设置正数

抬头-INVOICE_IND = ''. 创建贷项发票校验

此时明细行中金额退货设置正数, 收货设置负数,数量始终设置为正数

HEADERDATA- INVOICE_IND内容设置方式

通过ITEMDATA 中的采购收获金额加总 + GLACCOUNTDATA借项金额加总 为SUMA

通过ITEMDATA 中的采购退货金额加总 + GLACCOUNTDATA贷项金额加总为SUMB

如果SUMA >= SUMB

INVOICE_IND = 'X' . 此时ITEMDATA中的采购入库金额用正数, 采购退货金额用负数. GLACCOUNTDATA 金额始终用正数

如果SUMA < SUMB

INVOICE_IND = '' 此时ITEMDATA中的采购入库金额用负数, 采购退货金额用正数

GLACCOUNTDATA 金额始终用正数

如果上述规则没有遵守. 系统可能会报错

06

特定报错处理

如果按照上述规则设置了参数,BAPI 还是返回错误 M8 485 现金折扣总额不能过帐。

报错原因: 系统会根据抬头的借项/贷项标记 RBKP-XRECH (从INVOICE_IND传入) = '' 表示贷项 ='X'表示结项 去校验行项目中的收货金额/退货金额总计. 如果收获总计>退货总计 只能做发票 如果退货总计>收获总计 只能做贷项 如果存在总账行,按照之前的规则确定的INVOICE_IND内容, 违背了系统这个检查规则, 就会导致报错M8 485

可以通过增强跳过这个检查,不影响后续处理逻辑.

跳过方式:

检查的代码位置: 函数

MRM_CALCULATE_SKONTOBASE

FORM VERGLEICH_SKONTOBASIS

开头用隐式增强退出FORM .

总结:

一般前台界面能够录入实现的凭证,都可以通过调用BAPI传递参数实现. 特殊情况下,可以用BAPI做出前台操作无法实现的业务. 尤其是增强跳过BAPI的部分检查逻辑后(需要确保产生的单据的业务正确性). BAPI能够完成更多的业务形态.

THE

END

约定

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.

(如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)

公众号主群加入受限, 请扫码加入副群后,向管理员申请加入主群

公众号 : syjf1976_abap

          ABAP开发技巧

微信号 : 392077

公众号主群加入受限, 请扫码加入副群后,向管理员申请加入主群

SAP小技巧 发票校验BAPI调用总结相关推荐

  1. SAP小技巧之 标签打印

    前言: SAP小技巧系列主要是记录一些项目中碰到的问题及解决思路与方式.这些问题可能你也碰到过,希望能给你一些帮助. 标签打印 怎么通过SAP开发程序打印标签? 提起这个问题,很自然的会想起ABAP常 ...

  2. SAP License:发票校验

    发票校验属于物料管理(MM)模块,发票为财务和成本控制提供付款信息和发票评估. 后台配置: 1.容差配置:T-CODE:OMR6容差是基于公司代码的配置,因为发票是根据公司代码开具.配置上\下限&qu ...

  3. 【MM】基于收货的发票校验Bapi Demo

    正常我们都会在供应商主档和信息记录主档中勾选"基于收货的发票校验"选项,意味着做采购发票校验的时候需要基于收货凭证.       LS_ITEM-REF_DOC = LT_ZMSE ...

  4. SAP License:发票校验抬头税码选择清单

    用MIRO做发票校验时,抬头上有个税码.这个字段是下拉型的,里面包含了可用的税码. 今天一位兄弟问我,为什么在后台维护了很多税码,而这里只显示有限的几个?用其他的税码直接做发票是可以的,说明税码的设置 ...

  5. SAP License: 发票校验前收货后是否能更改物料价格

    采购单部分收货或者完全收货后,仍然可以更改价格.这是SAP系统的标准设置.这一点的意义究竟何在呢?收完货再改价格,影响到了什么?为什么允许这么做? 先来看看在这种情况下,哪里会受到影响.经过测试发现, ...

  6. SAP中的发票校验容差控制测试

    在SAP采购业务中,基于收货的发票校验在实际应用中,出现差异的情况比较常见.其差异是指采购订单中价格和实际收到发票中价格之间的差异.这可能来源于价格变动,汇率变动或业务情形变动产生的附加费用等.在SA ...

  7. SAP中后勤发票校验不显示关联会计凭证号如何解决?

    近期财务用户反馈一个问题.如下图,在做完发票校验保存后,系统会产生两个凭证号.一个是后勤发票校验的凭证号,一个是关联产生的会计凭证号. 上图是正常显示,但另一个财务用户显示不同,只有后勤发票校验的凭证 ...

  8. SAP中MIRO发票校验多采购订单选择应用

    近期有财务同事问到发票校验的批量选择处理的功能,经咨询,发现就是一个操作层面的问题.发票校验的批量处理还是比较实用的功能.现将MIRO中操作方法记录. 在事务MIRO中进行如下图选择打开采购凭证多重分 ...

  9. SAP小技巧之 实现SMARTFORM打印中的小计与总计

    点击蓝字 关注我们 一 前言 公众号群里面有人在讨论SMARTFORM打印中的小计和总计的实现.好久没有做SMARTFORM了, 所以没有参与讨论. 后来网上查询了一下. 也没有找到很好的解决方案.所 ...

最新文章

  1. axure 下拉多选 元件_Axure教程:下拉多选列表集合(多选下拉列表+单选下拉列表+分级下拉列表)...
  2. JQuery日记6.5 Javascript异步模式(一)
  3. python re match groups_【原创】如何治疗使用python中re模块group、groups与findall分组匹配后产生的“眩晕反应”...
  4. Docker最全教程——从理论到实战(四)
  5. 全国计算机等级考试职称,全国职称计算机考试与全国计算机等级考试有什么不同?...
  6. swift解析html数据类型,ios-Swift:以标签或textVi显示HTML数据
  7. 粘包拆包,Netty及远洋通信中的解决方案!超实用
  8. 【算法学习】最优二叉查找树(动态规划)
  9. deep learning 学习资料
  10. 微型计算机的主频很大程度上决定了计算机的运行速度,它是指__ _.,计算机试卷4...
  11. Go语言实现md4、md5、sha256哈希算法加密
  12. 期权、期货及其他衍生品 Chapter14 维纳过程与伊藤引理
  13. 11月全国程序员平均工资出炉,网友:我丢了同行的脸
  14. 【学习笔记】seckill-秒杀项目--(1)搭建项目
  15. windows装oracle数据库,在 Windows 上安装 Oracle 数据库 11g
  16. 网易云音乐的亏损,是社区经济的通病?
  17. Elasticsearch学习之的delimited_payloads使用
  18. 钱包:BUMO 小布口袋 APP 用户手册
  19. 《关山月》赏析-(李白明月姑娘之五)
  20. Java8中字符串连接(join)收集器 Collectors.joining

热门文章

  1. 如何搞出一个大型网站
  2. UEditor上传漏洞修复
  3. python-列表元素绝对值排序
  4. 版本控制系统-集中式与分布式的区别
  5. ajax同步和异步区别
  6. 主机升级rsyslog后服务异常分析,rsyslog服务重启报错
  7. mysql级联删除_每天学一点学点MySQL数据库之第二节
  8. BGA焊接可靠性评价指引,为产品质量保驾护航
  9. oracle nvl和nvl2的区别
  10. Java获取某年某周的第一天