Leer Parametros de Dynpro.

Esto me funciona para recopilar los parámetros de la dynpro para luego poder usarlos en código donde aun por cuestiones de eventos no son accesibles.

Como ejemplo de uso tenemos, cuando queremos usar lo que escribió el usuario como fuente para ayudas de Busquedas.

Este es el Código.

Supongamos que tengamos estos parámetro de entrada en nuestro Reporte.

INITIALIZATION.
repid = sy-repid. “ importante para saber de que pantalla y dynpro debo tomar los parámetros.
dynpro = sy-dynnr.

PARAMETERS: p_ani TYPE p1771-ayear OBLIGATORY VALUE CHECK,
p_per
TYPE p1771-perid OBLIGATORY VALUE CHECK,
p_mod
TYPE objid,
p_sec
TYPE objid ,
p_eve
TYPE objid .

Y tenemos que desarrollar una ayuda de búsqueda para uno de ellos pero necesitamos los datos introducidos con anterioridad por el usuario

Entonces hacemos el llamado


AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_mod.
PERFORM ayuda_modulos.

Y entonces dentro de el PERFORM ayuda_modulos. Hacemos el llamado a la subrutina FORM leer_campos_de_pantalla .

Y listo tenemos el problema resuelto.

*&---------------------------------------------------------------------*
*& Form LEER_CAMPOS_DE_PANTALLA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM leer_campos_de_pantalla .
DATA BEGIN OF dynpfields OCCURS 1.
INCLUDE STRUCTURE dynpread.
DATA END OF dynpfields.
dynpfields-fieldname =
'P_MOD'.
APPEND dynpfields.
dynpfields-fieldname =
'P_ANI'.
APPEND dynpfields.
dynpfields-fieldname =
'P_PER'.
APPEND dynpfields.
dynpfields-fieldname =
'P_SEC'.
APPEND dynpfields.
dynpfields-fieldname =
'P_EVE'.
APPEND dynpfields.



CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = repid
dynumb =
dynpro
TABLES
dynpfields = dynpfields
EXCEPTIONS
OTHERS.
READ TABLE dynpfields WITH KEY fieldname = 'P_PER'.
p_per = dynpfields-fieldvalue.
READ TABLE dynpfields WITH KEY fieldname = 'P_ANI'.
p_ani = dynpfields-fieldvalue.
READ TABLE dynpfields WITH KEY fieldname = 'P_MOD'.
p_mod = dynpfields-fieldvalue.
READ TABLE dynpfields WITH KEY fieldname = 'P_SEC'.
p_sec = dynpfields-fieldvalue.
READ TABLE dynpfields WITH KEY fieldname = 'P_EVE'.
p_eve = dynpfields-fieldvalue.
ENDFORM. " LEER_CAMPOS_DE_PANTALLA

Éxito amigos

Comentarios

Entradas populares de este blog

Cargar Texto estándar y mostrar en un POPUP

Crear un campo de entrada, parametro, como un listbox en abap.

Llamar una Webdynpro desde una transacción Z