ABAP 在程序中CALL SM30视图维护,并根据选择屏幕仅维护选择屏幕内的数据
CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
此函数可以跳转到SM30点击维护之后的页面,维护表内容。
import参数:
ACTION: S = Display U = Change T = Transport
CORR_NUMBER 传送号(上面的action是t)
SHOW_SELECTION_POPUP 是否弹出选择画面
VIEW_NAME 视图名
NO_WARNING_FOR_CLIENTINDEP 跨集团是否现实警告
VARIANT_FOR_SELECTION 变式名
CHECK_DDIC_MAINFLAG 察看是否为可维护对象
FORM frm_call_view.
DATA ls_dba_sellist TYPE vimsellist.
DATA lt_dba_sellist TYPE TABLE OF vimsellist.
CLEAR lt_dba_sellist.
"单值入参
CLEAR ls_dba_sellist.
ls_dba_sellist-viewfield = 'GJAHR'.
ls_dba_sellist-operator = 'EQ'.
ls_dba_sellist-value = p_gjahr.
APPEND ls_dba_sellist TO lt_dba_sellist.
"范围值入参
"当需要输入选择值范围时,则向表lt_dba_sellist中写入对应的条件。
IF s_bukre[] IS NOT INITIAL.
CALL FUNCTION 'VIEW_RANGETAB_TO_SELLIST'
EXPORTING
fieldname = 'BUKRE'
append_conjunction = 'AND'
TABLES
sellist = lt_dba_sellist
rangetab = s_bukre.
ENDIF.
IF s_monat[] IS NOT INITIAL.
CALL FUNCTION 'VIEW_RANGETAB_TO_SELLIST'
EXPORTING
fieldname = 'MONAT'
append_conjunction = 'AND'
TABLES
sellist = lt_dba_sellist
rangetab = s_monat.
ENDIF.
CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
EXPORTING
action = 'U'
view_name = 'ZTFI1185_02'
check_ddic_mainflag = 'X'
TABLES
dba_sellist = lt_dba_sellist
EXCEPTIONS
client_reference = 1
foreign_lock = 2
invalid_action = 3
no_clientindependent_auth = 4
no_database_function = 5
no_editor_function = 6
no_show_auth = 7
no_tvdir_entry = 8
no_upd_auth = 9
only_show_allowed = 10
system_failure = 11
unknown_field_in_dba_sellist = 12
view_not_found = 13
maintenance_prohibited = 14
OTHERS = 15.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM.