1、BP默认增强字段结构:
BUT000:INCL_EEW_BUT000-CL_EEW_BUT000,INCL_EEW_BUT000-CL_EEW_BUT000_X
KNA1:INCL_EEW_KNA1,INCL_EEW_KNA1_X
KNB1:INCL_EEW_KNB1,INCL_EEW_KNB1_X
KNVV:INCL_EEW_KNVV,INCL_EEW_KNVV_X
LFA1:INCL_EEW_LFA1,INCL_EEW_LFA1_X
LFB1:INCL_EEW_LFB1,INCL_EEW_LFB1_X
LFM1:INCL_EEW_LFM1,INCL_EEW_LFM1_X
2、进入BP界面,打开至想要增强的页签;
3、在输入框输入:BDT_ANALYZER,回车后显示BP当前界面的BDT分析;如想把增强字段放在币种这一块,那么BP部分就是CVIV71;
4、展开CVIV71,可以看到‘条件’这部分视图信息;
5、点击查看‘采购订单货币’,可以看到字段的应用程序、区分类型、数据集及其他信息,增强字段需参考这部分信息;
6、SE11供应商采购组织字段增强(LFM1:INCL_EEW_LFM1,INCL_EEW_LFM1_X)
INCL_EEW_LFM1:
INCL_EEW_LFM1_X:组件类型是BAPIUPDATE
LFM1:
7、SE80创建函数组
8、增加全局变量
保存:
TABLES:lfm1.
DATA:gs_lfm1 TYPE lfm1.
9、创建PBO模块
PBO增加代码:
DATA:
lt_lfm1 TYPE TABLE OF lfm1,
table_name_lfm1 TYPE fsbp_table_name VALUE 'LFM1',
lv_purchasing_org TYPE ekorg.
* step 1: request data from xo for dynpro structure
lv_purchasing_org = cvi_bdt_adapter=>get_current_purchasing_org( ).
IF lv_purchasing_org IS INITIAL.
CLEAR gs_lfm1.
ELSE.
cvi_bdt_adapter=>data_pbo_with_purchasing_org(
EXPORTING
i_table_name = table_name_lfm1
IMPORTING
e_data_table = lt_lfm1[]
).
READ TABLE lt_lfm1 INTO gs_lfm1
WITH KEY ekorg = lv_purchasing_org.
IF sy-subrc <> 0.
CLEAR gs_lfm1.
ENDIF.
ENDIF.
增加全局变量
DATA: false TYPE boole-boole VALUE ' ',
lt_lfm1 TYPE TABLE OF lfm1,
table_name_lfm1 TYPE fsbp_table_name VALUE 'LFM1',
lv_purchasing_org TYPE ekorg.
10、创建PAI模块
PAI:
FIELD-SYMBOLS:
<lfm1> LIKE LINE OF lt_lfm1.
CHECK cvi_bdt_adapter=>is_direct_input_active( ) = false.
CHECK cvi_bdt_adapter=>get_current_purchasing_org( ) IS NOT INITIAL.
* step 1: update xo memory from dypro structure
cvi_bdt_adapter=>get_current_bp_porg_data(
EXPORTING
i_table_name = table_name_lfm1
IMPORTING
e_data_table = lt_lfm1[]
).
IF gs_lfm1 IS NOT INITIAL.
IF lt_lfm1[] IS INITIAL.
gs_lfm1-lifnr = cvi_bdt_adapter=>get_current_vendor( ).
gs_lfm1-ekorg = cvi_bdt_adapter=>get_current_purchasing_org( ).
APPEND gs_lfm1 TO lt_lfm1.
ELSE.
READ TABLE lt_lfm1 ASSIGNING <lfm1> INDEX 1.
<lfm1>-ztrans = gs_lfm1-ztrans.
ENDIF.
ENDIF.
cvi_bdt_adapter=>data_pai_with_purchasing_org(
i_table_name = table_name_lfm1
i_data_new = lt_lfm1[]
i_validate = false
).
11、新增屏幕9001
屏幕布局增加字段:
12、屏幕9001增加标准PBO和PAI调用
① 创建PBO:显示
双击pbo,创建模块:
输入代码:
CALL FUNCTION 'BUS_PBO'.
② 创建PAI:输入
双击pai,创建模块:
输入代码:
CALL FUNCTION 'BUS_PAI'.
到此增强代码部分完成。