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.