Como refrescar un ALV tras un cambio ?

Esta vez quiero traerte un ejercicio no tan común, pero que es solicitado con algo de frecuencia y suele dar dolores de cabeza, antes de descubrir que la solución es muy  sencilla.

Tenemos un ALV, en el cual el usuario puede seleccionar un registro, y al darle a un pulsador que creamos, dicho registro será modificado, y el ALV deberá mostrar el cambio de manera inmediata, sin necesidad de salir del programa y volver a ejecutar el reporte.

NOTA: Para ver como creamos un botón en la barra de pulsadores y lo hacemos funcionar, lo puedes leer aquí. 

Crear un botón/pulsador en la barra de pulsadores del ALV

Tomemos como ejemplo, una lista de contratos pendientes por liberar, que el usuario podrá seleccionar, pulsar un botón “Liberar Documento”, y nuestro programa entrará en la transacción ‘VA42’ para modificar el documento y proceder a liberarlo; si la liberación es satisfactoria, dicho documento ya no debería salir en la lista del ALV, porque dicha lista muestra únicamente aquellos documentos no liberados.

En el enlace anterior, te muestro como debes controlar los parámetros del ALV para modificar el Status GUI,  y como debe ser llamada la función que genera el ALV, vamos a centrarnos aquí en el contenido del FORM USER_COMMAND.

Como Refrescar ALV tras un Cambio

Como Refrescar ALV tras un Cambio

 

Incluyendo estas 3 líneas en el código:

rs_selfield-refresh = ‘X’.

rs_selfield-col_stable = ‘X’.

rs_selfield-row_stable = ‘X’.

Nos aseguraremos de que todo cambio que hagamos al registro seleccionado, se verá reflejado en al retornar el control al ALV, ya que en estas líneas se le esta indicando a la estructura de control RS_SELFIELD que refresce sus datos para tomar los nuevos cambios que se han sucedido.

 Luego lo que nos queda es actualizar la tabla interna que contiene el ALV; en este caso llamada ITAB. En nuestro caso, como estamos eliminando los registros ya liberados, lo que nos compete hacer es lo siguiente:

 DELETE itab INDEX RS_SELFIELD-TABINDEX.

 Con estas instrucciones, al retornar al ALV, veremos que el registro tratado ya no aparecerá en la lista.

¿Te ha sido de utilidad este artículo? Házmelo saber con tus comentarios, y suscríbete a mi Comunidad para recibir mi curso gratuito “AprendeABAP en 10 lecciones”, además de contenidos exclusivos  sobre el mundo ABAP.

Richard Rey

“Programando tu Exito”

Opt In Image
Quieres aprender a hacer Reportes ALV?
Descubre la magia de los Reportes SAP en mi Taller Especial de ALV !!!

Se de los primeros en apuntarte y no te quedes sin cupos haciendo clic AQUÍ

O también puedes dejar tus datos aquí abajo y formarás parte de mi comunidad exclusiva, además de recibir mi curso de regalo "Los 7 Pasos para ser un Consultor Exitoso".

 

 

PD: Odio el SPAM. No compartire tus datos con nadie

Si te gusta, compártelo! ...Share on FacebookTweet about this on TwitterShare on LinkedInShare on Google+Email this to someonePrint this page

Comentarios