增强点
示例代码
"仅检查前台FPM程序
DATA ( lo_fpm) = cl_fpm_factory= > get_instance ( ) .
IF lo_fpm is INITIAL.
return .
ENDIF.
DATA: lt_sel TYPE usmd_ts_sel,
ls_sel TYPE usmd_s_sel.
"仅校验新建的科目
data: lr_account type REF TO data.
FIELD- SYMBOLS: < fs_account> type ANY TABLE.
io_model-> create_data_reference (
EXPORTING
i_fieldname = conv usmd_fieldname ( 'ACCOUNT' )
i_struct = io_model-> gc_struct_key_attr
if_incl_active_fld = abap_true
IMPORTING
er_data = lr_account
) .
ASSIGN lr_account-> * to < fs_account> .
CLEAR lt_sel.
CLEAR ls_sel.
ls_sel- fieldname = 'ACCOUNT' .
ls_sel- SIGN = 'I' .
ls_sel- option = 'EQ' .
ASSIGN COMPONENT 'ACCOUNT' OF STRUCTURE is_data TO FIELD- SYMBOL ( < fs_account_no> ) .
IF sy- subrc EQ 0.
ls_sel- low = < fs_account_no> .
ENDIF.
INSERT ls_sel INTO TABLE lt_sel.
"查询是否已经存在激活的条目
io_model-> read_char_value (
EXPORTING
i_fieldname = conv usmd_fieldname ( 'ACCOUNT' )
it_sel = lt_sel
i_readmode = io_model-> gc_readmode_no_inact
if_no_flush = abap_true
IMPORTING
et_data = < fs_account>
et_message = DATA ( lt_message)
) .
IF < fs_account> is not INITIAL.
return .
ENDIF.
"读取公司代码级别数据
DATA: lr_acc_company TYPE REF TO DATA.
FIELD- symbols: < ft_acc_company> TYPE ANY TABLE.
io_model-> create_data_reference (
exporting
i_fieldname = conv usmd_fieldname ( 'ACCCCDET' )
i_struct = io_model-> gc_struct_key_attr
if_incl_active_fld = abap_true
importing
er_data = lr_acc_company
) .
assign lr_acc_company-> * to < ft_acc_company> .
clear lt_message.
io_model-> read_char_value (
exporting
i_fieldname = conv usmd_fieldname ( 'ACCCCDET' )
it_sel = lt_sel
i_readmode = io_model-> gc_readmode_no_act
if_no_flush = abap_true
importing
et_data = < ft_acc_company>
et_message = lt_message
) .
if < ft_acc_company> is initial.
append initial line to ct_message assigning field- symbol ( < fs_cust_message> ) .
< fs_cust_message> - msgid = 'ZMDG01' .
< fs_cust_message> - msgno = '026' .
< fs_cust_message> - msgty = 'E' .
< fs_cust_message> - msgv1 = '请维护公司代码数据' .
endif.