SAP ABAP BAPI_ACC_DOCUMENT_POST 币种小数位数为0时导致的本位币借贷不平问题的相关解决思路

在使用BAPI_ACC_DOCUMENT_POST创建会计凭证时,由于VND金额转换及四舍五入导致借贷不平。文章详细分析了问题原因,即系统自动缩放并四舍五入VND金额产生尾数。参考F-02的处理逻辑,通过调整自开发代码,实现了借贷相平,从而成功过账。
摘要由CSDN通过智能技术生成
在使用BAPI    BAPI_ACC_DOCUMENT_POST 创建会计凭证时存在以下业务背景:

交易币为USD,本位币为VND,OB08维护的当期USD转换为VND的汇率为23655。以下为对应的USD传入金额:在这里插入图片描述
以下是代码结合当期OB08汇率传入BAPI的交易币(USD)/本位币(VND)金额一览(注意画框的金额):在这里插入图片描述

调用BAPI后出现以下报错在这里插入图片描述
这是属于本位币借贷不平的错误,但笔者调试代码时发现本位币传入金额的借贷其实是平的,如下图:在这里插入图片描述
那又是哪里不平呢?使断点进入BAPI,进一步调试标准代码后发现是在BAPI里面出现了借贷不平:在这里插入图片描述
出现这种情况的原因是VND的外部实际金额转换为SAP内部底表的金额存储时,系统会自动将VND实际金额缩小100倍并且四舍五入保留两位小数。这就导致传入系统后的VND金额出现了尾数,致使借贷不平。与之类似的数据笔者在F-02的前台进行手工,是能够正常过账:在这里插入图片描述
不难看出F-02对于此类数据的处理逻辑为:根据币种的小数位数(VND的小数位数为0),对每一行的借方(S)正常四舍五入后将此行为导致的尾差补在贷方(H)的第一行,以此实现借贷相平。仿照F-02前台逻辑,对于自开发的代码进行以下补充,即可实现借贷相平。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
再次调用BAPI,过账成功。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值