前言
在 [ 销售发票输出配置及示例代码
](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进入发票,查看凭证流,如下图所示可以查看到输出的会计凭证已经添加到凭证流中。
但是有个问题,点击显示文档,不能跳转到FB03查看会计凭证明细
增强凭证流显示自定义业务对象
BADI_SD_DOCUMENTFLOW,但是这个BADI只能内部实施,所以我们可以在其已实施的类中随便找一个,在IF_EX_BADI_SD_DOCUMENTFLOW~DISPLAY_DOCUMENT方法结尾处增加隐式增强
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查看会计凭证明细了。