Display filtered data in SM30
Crearemos una tabla transparente con N campos y cuando lo visualicemos por la SM30 haremos que muestre filtrado por un valor específico de algún campo.
Para el ejemplo la tabla se llamará ZTRH_STAFF
Generaremos la actualización de la tabla para poder dar mantenimiento por la SM30
Ingresamos a la tcode: SM30
A modo de ejemplo ingresaré estos 3 registros
Observamos que sólo los 2 primeros registros tienen valor 1 en el campo 'status'
1: Activo
0: Inactivo
Por la tcode SE16 consultamos la tabla: ZTRH_STAFF
Ahora nos enfocaremos en el objetivo.
Haremos que al ingresar a la SM30 sólo muestre los que tiene status con valor 1
Veamos la siguiente manera de dar solución a este objetivo.
Ingresamos a la SE38 creamos un nuevo programa
para el ejemplo el programa se llamará ZRHP001
*& Report ZRHP001
*&---------------------------------------------------------------------*
REPORT ZRHP001.
DATA: gtd_vimsellist TYPE STANDARD TABLE OF vimsellist.
FIELD-SYMBOLS: <gtd_vimsellist> LIKE LINE OF gtd_vimsellist.
INITIALIZATION.
PERFORM f_populate_vimsellist.
PERFORM f_view_maintenance_call.
*&---------------------------------------------------------------------*
*& Form F_VIEW_MAINTENANCE_CALL
*&---------------------------------------------------------------------*
*Call Extended Table Maintenance (View Maint) Highest Level
*----------------------------------------------------------------------*
FORM f_view_maintenance_call .
CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
EXPORTING
action = 'U'
view_name = 'ZTRH_STAFF'
TABLES
dba_sellist = gtd_vimsellist
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.
* Implement suitable error handling here
ENDIF.
ENDFORM. " F_VIEW_MAINTENANCE_CALL
EXPORTING
action = 'U'
view_name = 'ZTRH_STAFF'
TABLES
dba_sellist = gtd_vimsellist
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.
* Implement suitable error handling here
ENDIF.
ENDFORM. " F_VIEW_MAINTENANCE_CALL
*&---------------------------------------------------------------------*
*& Form F_POPULATE_VIMSELLIST
*&---------------------------------------------------------------------*
*Llenar los valores en la tabla interna gtd_vimsellist
*La cual ingresará en la función: 'VIEW_MAINTENANCE_CALL'
* TABLE: dba_sellist
*----------------------------------------------------------------------*
FORM f_populate_vimsellist .
FREE gtd_vimsellist.
REFRESH gtd_vimsellist.
APPEND INITIAL LINE TO gtd_vimsellist ASSIGNING <gtd_vimsellist>.
<gtd_vimsellist>-viewfield = 'STATUS'.
<gtd_vimsellist>-operator = 'EQ'.
<gtd_vimsellist>-value = '1'.
ENDFORM. " F_POPULATE_VIMSELLIST
Nuestro programa tendrá 2 rutinas:
- Para llenar los valores en la tabla VIMSELLIST
- Para invocar a la función VIEW_MAINTENANCE_CALL
En la rutina F_POPULATE_VIMSELLIST ingresamos las condiciones de selección, por ejemplo el operador EQ y los valores a considerar. Para este ejemplo el campo es STATUS y el único valor a considerar es cuando STATUS sea igual a 1
Luego llenado la tabla interna GTD_VIMSELLIST invocamos a la función VIEW_MAINTENANCE_CALL en la cual le indicamos los siguientes parámetros de exportación:
ACTION = 'U'
VIEW_NAME = 'ZTRH_STAFF' (El nombre de nuestra tabla)
En la sección TABLES
DBA_SELLIST = GTD_VIMSELLIST (la tabla interna que contiene los parámetros de selección)
La función: VIEW_MAINTENANCE_CALL llamará a la SM30 con los registros filtrados.
Creamos una transacción al programa, grabamos y activamos.
Ejecutamos la transacción y ahora visualizamos sólo los registros con estado 1
Clic aquí para ver otro Post donde se plantea 3 casos para modificar la vista de actualización SM30
Nos vemos en el siguiente Blog ;)
MAGALEX
Comentarios
Publicar un comentario