SAP会计凭证抬头增强
1.增强结构:增强字段必须放在SAFM_AP_AS_EXT_BKPF结构里面,可修改这个结构,APPEND自定义结构在里面,也可以在里面的INCLUDE结构里面附加。
2.表激活成功之后,需要运行程序SAPFACCG,运行完成之后检查FFACIGEN中P_ACC是否存在这个字段。
3.创建一个函数组,里面创建一个屏幕(属性里面屏幕类型设定为子屏幕),屏幕创建完成之后,加上代码,并且在屏幕里面加上需要的字段。
TOP 定义:
TABLES:bkpf.
DATA: go_exit TYPE REF TO if_ex_fi_header_sub_1300.
DATA: gs_bkpf TYPE bkpf.
DATA: gv_scr_mode TYPE xfeld.
PBO MODULE代码:
MODULE status_9001 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.* 获取实例IF go_exit IS INITIAL.CALL METHOD cl_exithandler=>get_instance_for_subscreensCHANGINGinstance = go_exitEXCEPTIONSno_reference = 1no_interface_reference = 2no_exit_interface = 3data_incons_in_exit_managem = 4class_not_implement_interface = 5OTHERS = 6.IF sy-subrc <> 0.ENDIF.ENDIF.* 获取值CALL METHOD go_exit->get_data_from_screen_pboEXPORTINGflt_val = 'CN'IMPORTINGex_bkpf = gs_bkpfex_x_no_input = gv_scr_mode.* 设置屏幕LOOP AT SCREEN.IF gv_scr_mode = 'X'.screen-input = 0.MODIFY SCREEN.ENDIF.ENDLOOP.ENDMODULE.
PAI MODULE代码:
MODULE pai INPUT.
* 获取CALL METHOD go_exit->get_data_from_screen_paiEXPORTINGflt_val = 'CN'IMPORTINGex_bkpf = gs_bkpf.* 设置gs_bkpf-zpjh = bkpf-zpjh.gs_bkpf-zzpqj = bkpf-zzpqj.* 回传CALL METHOD go_exit->put_data_to_screen_paiEXPORTINGim_bkpf = gs_bkpfflt_val = 'CN'.ENDMODULE.
在此函数组激活。
3.增强点:BADI增强 FI_HEADER_SUB_1300,在这里,注意过滤器要配置一行CN,在屏幕页签,配置好调用程序和屏幕号
屏幕配置好之后,在接口页签,需要给四个方法分别添加代码:
PUT_DATA_TO_SCREEN_PBO
METHOD if_ex_fi_header_sub_1300~put_data_to_screen_pbo.me->if_ex_fi_header_sub_1300~bkpf = im_bkpf.me->if_ex_fi_header_sub_1300~x_no_input = im_x_no_input.ENDMETHOD.
PUT_DATA_TO_SCREEN_PAI
METHOD if_ex_fi_header_sub_1300~put_data_to_screen_pai.me->if_ex_fi_header_sub_1300~bkpf = im_bkpf.ENDMETHOD.
GET_DATA_FROM_SCREEN_PBO
METHOD if_ex_fi_header_sub_1300~get_data_from_screen_pbo.ex_bkpf = me->if_ex_fi_header_sub_1300~bkpf.ex_x_no_input = me->if_ex_fi_header_sub_1300~x_no_input.ENDMETHOD.
GET_DATA_FROM_SCREEN_PAI
METHOD if_ex_fi_header_sub_1300~get_data_from_screen_pai.ex_bkpf = me->if_ex_fi_header_sub_1300~bkpf .ENDMETHOD.
屏幕效果我就不展示在这里,最后,如果增强字段想要FB02/FB03前台也能看到的话,需要修改标准程序的屏幕(程序:SAPMF05L 屏幕:1710),在屏幕里面把字段加上之后,这个增强就完成了。