SD 凭证流显示自定义单据发票输出凭证

作者:ABAP三叔 约 4 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:CO, FI, SD, 财务, 销售分销
SD 凭证流显示自定义单据发票输出凭证 - 封面图
SD 凭证流显示自定义单据发票输出凭证 - 封面图

前言

在 [ 销售发票输出配置及示例代码

](http://mp.weixin.qq.com/s?__biz=MzkwNzUxNDQ5Mg==&mid=2247484583&idx=1&sn=cc567d7ca1e01470b318e346bb87c2a6&chksm=c0d943b4f7aecaa24e682a48b0607f30a82567a5a1231c1e8099a5e5d596fc8d56ae7b5f8df3&scene=21#wechat_redirect)

一文中介绍了如何使用发票输出产生自定义会计凭证,自定义会计凭证信息可以在输出日志中可以看到,想看凭证明细则另外需要复制凭证号到FB03中查看。

有些爱动脑筋的朋友们就在想,是否可以在凭证流中显示自定义的会计凭证,然后双击就自动跳转到FB03查看呢?答案是可行的,下面介绍具体方法。

创建业务对象

可参考 [ SWO1创建自定义业务对象

](http://mp.weixin.qq.com/s?__biz=MzkwNzUxNDQ5Mg==&mid=2247484602&idx=1&sn=44e2543e160b1a4c26e0a36ec25f316a&chksm=c0d943a9f7aecabfb68682cfb0b5afc9799df9376bcf8254ea3f2a723b850611db198d9e90be&scene=21#wechat_redirect)

一文,创建自定义业务对象。

将系统发票与输出会计凭证关联

在原代码开票输出生成会计凭证后,将会计凭证号与发票号码关联,代码如下

DATA:ls_borident1 TYPE borident. DATA:ls_borident2 TYPE borident. ls_borident1-objtype = 'ZFL'.  "会计凭证号+公司代码+年 ls_borident1-objkey = |{ lv_belnr }{ lv_bukrs }{ lv_gjahr }|. ls_borident2-objtype = 'VBRK'.  "系统发票编码 ls_borident2-objkey = |{ lv_vbeln }|. CALL FUNCTION 'BINARY_RELATION_CREATE' EXPORTING obj_rolea = ls_borident1 obj_roleb = ls_borident2 relationtype = 'VORL'* FIRE_EVENTS = 'X'* IMPORTING* BINREL =* TABLES* BINREL_ATTRIB = EXCEPTIONS no_model = 1 internal_error = 2 unknown = 3 OTHERS = 4. IF sy-subrc <> 0.* Implement suitable error handling here ENDIF.

效果展示

开票后,VF03进入发票,查看凭证流,如下图所示可以查看到输出的会计凭证已经添加到凭证流中。

SD 凭证流显示自定义单据发票输出凭证 - 封面图
SD 凭证流显示自定义单据发票输出凭证 - 封面图

但是有个问题,点击显示文档,不能跳转到FB03查看会计凭证明细

增强凭证流显示自定义业务对象

1.显示凭证会调用BADI

BADI_SD_DOCUMENTFLOW,但是这个BADI只能内部实施,所以我们可以在其已实施的类中随便找一个,在IF_EX_BADI_SD_DOCUMENTFLOW~DISPLAY_DOCUMENT方法结尾处增加隐式增强

SD 凭证流显示自定义单据发票输出凭证 - 封面图
SD 凭证流显示自定义单据发票输出凭证 - 封面图
SD 凭证流显示自定义单据发票输出凭证 - 封面图
SD 凭证流显示自定义单据发票输出凭证 - 封面图

2.我选择在FIN_CFIN_SD_DOCFLOW实施的IF_EX_BADI_SD_DOCUMENTFLOW~DISPLAY_DOCUMENT方法结尾创建隐式增强,代码如下

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1) Class CL_IM_FIN_CFIN_SD_DOCFLOW, Interface IF_EX_BADI_SD_DOCUMENTFLOW, Method DISPLAY_DOCUMENT, End A*$*$-Start: (1)---------------------------------------------------------------------------------$*$*ENHANCEMENT 1  ZENH_DISPLAY_FL.    "active versionIF f_hide_info-objtype = 'ZFL'. zcl_common=>swc_call_method( objtype = 'ZFL' objkey = f_hide_info-objkey ). f_displayed = abap_true.ENDIF.ENDENHANCEMENT.*$*$-End: (1)---------------------------------------------------------------------------------$*$*

3\. 再进入VF03凭证流,选中自定义凭证后,点击显示文档,可以顺利跳转到FB03查看会计凭证明细了。

ABAP三叔

关于作者:ABAP三叔

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「SD凭证流显示自定义单据发票输出凭证.md」整理生成,仅用于内部技术分享与学习交流。