ich nehme mal an, daß du den Aufruf der Transaktion in der USER_COMMAND Form-Routine aufrufst. Um die Anzeige im ALV daran anzupassen, sind dann zwei Aktionen erforderlich.
1. Die neuen Daten einlesen/einfügen/ändern, die im ALV angezeigt werden sollen.
2. Dem ALV mitteilen, daß es sich gefälligst refreshen soll
Beispiel:
Code: Alles auswählen.
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
* Aufruf der Transaktion
CALL TRANSACTION 'ABC'.
* Daten neu einlesen
....
* dem ALV zum refresh bewegen
rs_selfield-refresh = 'X'.
ENDFORM.
Durch diesen Refresh wird die ALV-Liste neu aufgebaut. Vielleicht ist es auch gewollt, daß auch nach dem Refresh der Cursor dort innerhalb der ALV-Liste steht, wo er vor dem Refresh war.
Dazu ruft man VOR dem Refresh den Fuba REUSE_ALV_LIST_LAYOUT_INFO_GET auf. Der speichert alle relevanten Parameter wie Layout, Filter und vor allem die Scroll-Info, also wo in der Liste man sich befindet.
Nach dem Refresh kann dieser Zustand wieder mit dem Fuba REUSE_ALV_LIST_LAYOUT_INFO_SET gesetzt werden.