ABAP基础知识 会计凭证冲销BAPI

前言

最近发现常用的会计凭证冲销功能无法使用了. 对常见凭证冲销时会报错

1c7c2df461e2111172ae4d3ee413f5e8.png

在解决这个问题的过程,有了本文的内容.

本文主要介绍会计凭证冲销相关的BAPI函数

标准BAPI报错分析

标准BAPI 函数

BAPI_ACC_DOCUMENT_REV_POST

跟踪错误 RW 628 .

在BAPI 开始会执行类型检查逻辑,相关类别(包括 BKPF )都会触发BAPI报错. 执行这些检查的原因不明. 但客观上阻止了这个函数冲销大部分凭证.但FB08可以冲销这个报错的凭证

876af2987f77871c1c9059ed68bce766.png

145df68ca353c132a5842bfb96b2a91c.png

解决方式

BAPI函数无法冲销(也可以考虑强行去掉BAPI函数的凭证类别检查), 就只能采用BDC的方式冲销了. BDC可以用如下三种方式

  • 自行录制BDC

  • 使用标准函数CALL_FB08

  • POSTING_INTERFACE_REVERSE_DOC

其中CALL_FB08调用后无法获取冲销产生的新凭证号, 

自行录制的BDC可以通过消息获取生成的凭证,但稳定性可能不足. 

最终建议使用函数

POSTING_INTERFACE_REVERSE_DOC冲销会计凭证.

需要注意的是需要依次调用以下三个函数

  • POSTING_INTERFACE_START

  • POSTING_INTERFACE_REVERSE_DOC

  • POSTING_INTERFACE_END

83d822637edde878aabee0e29a5221f0.png

f836c3d42b053f82ee598f3f648eb5da.png

凭证分类

根据目前的经验给会计凭证分了两类

  • 标准会计凭证(通过前台或者业务过账产生的凭证)

  • 清账会计凭证(使用清账程序产生的会计凭证)

其中清账会计凭证可以细分为

  • 清账产生的凭证有凭证行, (剩余清账)

  • 清账产生的凭证没有凭证行( 完全清账 )

清账凭证通过TCODE FBRA 清除清账信息.

剩余清账-清账产生新的凭证行

d6176317da74ef253e5d1049895e3552.png

完全清账产生的凭证没有凭证行

a85b5433ed6e3b697c8a23a6ec1fc9dd.png

32338b73ff7019259164b817551ae983.png

对于清账产生凭证的冲销,需要先清除清账标记. 完全清账的,清除清账标记即可. 剩余清账的, 清除清账标记后, 还需要再次冲销凭证,

封装

基于上述分析把,会计凭证的冲销逻辑封装到函数Z_BC_CANCEL_FB中

先判断会计凭证类别(识别逻辑可能需要优化)

43459150618424d8c7614cae21274364.png

949ccde71d36e0249dacba1ed28ac63a.png

非清账凭证直接冲销

8d2d26891119aab3c0595c81e02b39e7.png

清账凭证先清除清账标记

d1fe9814766ae2a567f24ff0df2b9e6a.png

对于剩余清账的凭证,存在新的凭证行, 则再次调用凭证的冲销.

4805a8cb7b26ed38fc8ad674b67e4152.png

总结

会计凭证的冲销本身逻辑不复杂. 因为标准BAPI函数的限制及清账凭证的特殊性, 才有了一些复杂性.

函数组FIPI整合了标准BDC调用产生会计凭证的函数. 这些函数中考虑BDC过程中的所有可能的屏幕逻辑, 比自行录制的BDC好用很多 .

061b00ba04f2ea588ebd864a7268f370.png

THE

END

约定

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

请微信联系管理员: 

syjf1976 

sharry_xlp  

Yannick_Duan 

申请进入公众号讨论群提问或者参与话题讨论

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值