参考note:2127663 - Vendor/Customer number/name is not available for display
1.FBL3N
实施BADI:FI_ITEMS_CH_DATA增强
METHOD if_ex_fi_items_ch_data~change_items.
TYPES: BEGIN OF ty_lf,
lifnr TYPE lfa1-lifnr,
END OF ty_lf.
DATA lt_lf TYPE TABLE OF ty_lf.
DATA ls_lf TYPE ty_lf.
* 取FBL3N供应商 Jeff 20260602
* 参考note:2127663 - Vendor/Customer number/name is not available for display in FBL3N
LOOP AT ct_items ASSIGNING FIELD-SYMBOL(<fs_items>).
IF <fs_items>-arfactor IS INITIAL.
CALL FUNCTION 'GET_GKONT'
EXPORTING
belnr = <fs_items>-belnr
bukrs = <fs_items>-bukrs
buzei = <fs_items>-buzei
gjahr = <fs_items>-gjahr
gknkz = '3'
IMPORTING
gkont = <fs_items>-gkont
koart = <fs_items>-gkart
EXCEPTIONS
belnr_not_found = 1
buzei_not_found = 2
gknkz_not_found = 3
OTHERS = 4.
IF sy-subrc = 0.
IF <fs_items>-gkart = 'K' AND <fs_items>-arfactor IS INITIAL.
<fs_items>-arfactor = <fs_items>-gkont.
ls_lf-lifnr = <fs_items>-arfactor.
COLLECT ls_lf INTO lt_lf.
CLEAR: ls_lf.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
CHECK lt_lf IS NOT INITIAL.
SELECT lifnr,name1
INTO TABLE @DATA(lt_lfa1)
FROM lfa1
FOR ALL ENTRIES IN @lt_lf
WHERE lifnr = @lt_lf-lifnr.
SORT lt_lfa1 BY lifnr.
LOOP AT ct_items ASSIGNING <fs_items> WHERE zven_txt IS INITIAL
AND arfactor IS NOT INITIAL.
READ TABLE lt_lfa1 INTO DATA(ls_lfa1) WITH KEY lifnr = <fs_items>-arfactor BINARY SEARCH.
IF sy-subrc = 0.
<fs_items>-zven_txt = ls_lfa1-name1.
ENDIF.
ENDLOOP.
ENDMETHOD.
效果

2.FAGLL03
实施BADI:FAGL_ITEMS_CH_DATA增强
LOOP AT ct_items ASSIGNING FIELD-SYMBOL(<fs_items>).
* 取供应商和客户信息 Jeff 20260602 begin
* 见note:2127663 - Vendor/Customer number/name is not available for display in FAGLL03 or FBL3N
IF <fs_items>-kunnr IS INITIAL OR <fs_items>-lifnr IS INITIAL.
CALL FUNCTION 'GET_GKONT'
EXPORTING
belnr = <fs_items>-belnr
bukrs = <fs_items>-bukrs
buzei = <fs_items>-buzei
gjahr = <fs_items>-gjahr
gknkz = '3'
IMPORTING
gkont = <fs_items>-gkont
koart = <fs_items>-gkart
EXCEPTIONS
belnr_not_found = 1
buzei_not_found = 2
gknkz_not_found = 3
OTHERS = 4.
IF sy-subrc = 0.
IF <fs_items>-gkart = 'D' AND <fs_items>-kunnr IS INITIAL.
<fs_items>-kunnr = <fs_items>-gkont.
ELSEIF <fs_items>-gkart = 'K' AND <fs_items>-lifnr IS INITIAL.
<fs_items>-lifnr = <fs_items>-gkont.
ENDIF.
ENDIF.
ENDIF.
* 取供应商和客户信息 Jeff 20260602 end
ENDLOOP.
效果
