Refrescar un ALV luego de una Ejecuación de proceso que modifica la tabla interna
Cuando en un ALV tenemos algún botón que ejecute un Batch Input o algún, proceso al Salvar y la información de la tabla interna del ALV debe refrescarse, para reflejar el proceso ejecutado, podemos usar este peqúeño truco.
*&---------------------------------------------------------------------*
*& Form PF_USER_COMMAND
*&---------------------------------------------------------------------*
FORM user_command1 USING p_okcode LIKE sy-ucomm "ok-code
w_selfield TYPE slis_selfield. "estruct. de linea
* Se selecciona que el ALV se actualice al mostrarse.w_selfield-refresh = 'X'.
CASE p_okcode.
WHEN '&DATA_SAVE'.
PERFORM arma_datos_bapi_1.
IF g_cant_error IS INITIAL. "ROGI08102008
PERFORM ejecutar_bapi1.
ENDIF. "ROGI08102008
ENDCASE.
ENDFORM. " PF_STATUS
En el USER_COMMAND Form agregamos lo que esta en negrita, esto hace que al ejecutar un botón del ALV se refresque la tabla interna, por lo tanto podemos directamente modificar la tabla interna a nuestro gusto que se vera refrejado en el ALV.