![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Los módulos de funciones POPUP
ABAP Los módulos de funciones POPUP
![ABAP Los módulos de funciones POPUP ABAP Los módulos de funciones POPUP](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/77.jpg)
Resumen
Unidad 4
Los modulos de funciones POPUP
1- Q son los modulos de funciones POPUP? Es un conjunto de modululos de funciones estandar del sist. SAP con claves xa el cosultor ABAP a la hora de crea programas q teng interacion con el usuario.
Los modulos de funoesns POPUP permiten generar en el prog. ABAP:
- Ventanas de diálogo de confirmación.
- Ventanas de diálogo donde se muestra la información.
- Ventanas de diálogo donde se solicita el ingreso de datos
- Ventanas de diálogo donde se muestra el contenido de tablas internas
- y mucho mas.
Tal como hemos visto en la TX SE37 existe en la biblioteca de funciones, xa generar la interfaz o estructura de un módulo de funciones POPUP. en el lugar del prog. ABAP en donde deseamos generar el código y luego clic en la opción modelo.
El sist. nos muestra en una ventana de diálogo en donde seleccionamos la opción CALL FUNCTION con la condición x criterio de búsqueda POPUP enter o F4.
El código fuente o mejor los parámetros q algunos están comentariados y son los no obligatorios y las otros no están comentariados, son OBLIGATORIOS.
Ahora bien cuando utilizamos módulos de funciones POPUP => no utilizar aquellas obsoletas => Sap no va brindar soporte a partir de la próxima versión.
Ej: a partir de la versión SAP ECC 6.0 al modulo de funciones POPUP_TO_CONFIRM reemplaza a los sgntes módulos de funciones q NO se pueden ser utilizados.
X POPUP_TO_CONFIRM_LOSS_OF_DATA
X POPUP_TO_CONFIRM_STEP
X POPUP_TO_CONFIRM_WITH_MESSAGE
X POPUP_TO_CONFIRM_WITH_VALUE
X POPUP_TO_CONFIRM_WITH_VALUE_2
X POPUP_TO_CONFIRM_DECIDE
X POPUP_TO_CONFIRM_WITH_MESSAGE
Se confirma de la sgnte forma:
POPUP_TO_CONFIRM_LOSS_DATA Do not use! Please use POPUP_TO_CONFIRM
2- Los modulos de funciones POPUP + utilizados
Los modulos de funciones + utilizados y xa c/u aprender a completar entrada / salida
2-1 POPUP_TO_FONFIRM se utiliza xa mostrar en pantalla una ventan de dialogeen donde se le hace un pregunta al usaurio y se esper a un arespuesta xa continuar el procesamiento.
Ej: vamos a declarar las variables
DATA: v_title(150) TYPE c,
v_text_question TYPE c,
v_answer(1) TYPE c.
CONCATENATE 'Se han modificado los datos del clente'
' Desea grabar los cambios?' INTO v_text_question SEPARATED BY space
v_title = 'Modificacion de datos de clientes'.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = v_title
text_question = v_text_question
IMPORTING
answer = v_answer
EXCEPTIONS
tex_not_found = 1
OTHER = 2
if sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 msgv3 sy-msgv4
elseif ys-subrc EQ 0.
if v_answer EQ '1'. "presiono boton si
elseif v_answer EQ '2'. "presiono boton No
elseif v_answer EQ 'A' "presiono boton Cancelar
ENDIF.
ENDIF.
Al ejecutar el codigo anterior visualizamos
Se han modificado los datos del cliente, Desea garbar los cambios?
SI NO Cancelar
el modulo de funciones POPUP existe en el sist. este modulo POPUT_TO_CONFIRM es el + utilzado.
2-2 POPUP_TO_CONFIRM_DATA_LOSS
Este se utiliza xa informale al usuario x una ventana de diálogo q los datos modificados se le perderán y se le pregunta si desea grabar. Xa utilizar este metodo de funciones, declaramos variables
DATA: v_title(150) TYPE c,
v_answer(1) TYPE c.
v_title = 'Confirmacion'.
vamos a completar parámetros de entrada y salida
CALL FUNCTION 'POPUP_TO_CONFIRM_DATA_LOSS'
EXPORTING
defaultoption = 'J'
titel = v_title
IMPORTING
answer = v_answer.
IF v_answer EQ 'J'.
....
ENDIF.
Ejecutamos y lo visualizamos asi:
SAP
SI NO X Cancelar
2-3 POPUP_TO_DECIDE_LIST
este módulo de funciones se muestra en pantalla la ventana de dialogo q el usuario elija una de las opciones disponibles xa continuar el procesamiento.
DATA: ti_spopli TYPE STANDARD TABLE OF SPOPLI,
wa_spopli LIKE LINE OF ti_spopli,
v_answer TYPE c.
luego completamos la tabla interna
REFRESH ti_spopli
CLEAR wa_spopli.
MOVE 'Activo' TO wa_splopli-varoption.
MOVE 'X' TO wa_spopli-selflag.
APPEND wa_splopli TO ti_splopli.
MOVE 'Inactivo' TO wa_splopli-varoption.
MOVE 'X' TO wa_spopli-selflag.
APPEND wa_splopli TO ti_splopli.
CALL FUNCTION 'POPUP_TO_DECIDE_LIST'
EXPORTING
cursoline = 1
mark_line = ' '
mark_max = 1
start_col = 70
start_row = 10
textlinel = 'Estado del usuario'
titel = 'Uusarios'
IMPORTING
answer = v_answer
TABLES
t_splpli = ti_spopli
EXCEPTIONS
not_enough_answer = 1
too_much_answer = 2
too_much_mark = 3
OTHERS = 4.
if sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 msgv3 sy-msgv4
elseif ys-subrc EQ 0.
if v_answer EQ '1'. "presiono tilde verde
elseif v_answer EQ 'A' "presiono X
ENDIF.
ENDIF.
2-4 POPUP_TO_SELECT_MONTH
Este modulo de funciones muestra pantalla ventana de dialogo x q el usuario seleccion mes y año
DATA: v_sel_mon TYPE isellist-month.
CALL FUNCTION 'POPUP_TO_SELECT_MONTH'
EXPORTING
actual_month = '202202'
IMPORTING
seleccted_month = v_sel_mon
EXCEPTIONS
factory_calendar_not_found = 1
holiday_calendar_not_found = 2
month_not_found = 3
OTHERS = 4.
if sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 msgv3 sy-msgv4
ENDIF.
2-5 POPUP_WITH_TABLE_DISPLAY
Este modulo de funciones por pantalla ventana de dialogo con el contenido de una tabla interna, la cual previamente cargamos con datos
declaramos variables para este modulo de funciones POPUP_WITH_TABLE_DISPLAY
TYPES: BEGIN OF ty_clientes,
nombre(10) TYPE c,
telefono(12) TYPE c,
fnacimiento(12) TYPE c,
END OF ty_clientes.
DATA: ti_clientes TYPE STANDARD TABLE OF ty_clientes
wa_clientes LIKE LINE OF ti_clientes.
Luego completamos la tabla interna de clientes TI_CLIENTES q se visualizarán en pantalla
REFRESH ti_clientes.
CLEAR wa_clientes.
wa_clientes-nombre = 'Gus'.
wa_clientes-telefono = '123456789'.
wa_clientes-fnacimiento = '20021932'.
APPEND wa_clientes to ti_clientes.
CLEAR wa_clientes.
wa_clientes-nombre = 'Augusto'.
wa_clientes-telefono = '0987654321'.
wa_clientes-fnacimiento = '20021942'.
APPEND wa_clientes to ti_clientes.
CLEAR wa_clientes.
wa_clientes-nombre = 'Laura'.
wa_clientes-telefono = '13579753'.
wa_clientes-fnacimiento = '20021942'.
APPEND wa_clientes to ti_clientes.
vamos a completar los parametros de entrada y salida
CALL FUNCTION 'POPUD_WITH_TABLE_DISPLAY'
EXPORTING
endpos_col = 80
endpos_row = 15
startpos_col = 1
startpos_row = 1
titletext = 'Listado de cLientes'
TABLES
valuetab = ti_clientes
EXCEPTIONS
break_off = 1
OTHERS = 2.
if sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 msgv3 sy-msgv4
ENDIF.
se ejecuta y se visualiza asi
2-6 POPUP_TO_DISPLAY_TEXT
se muestra x pantalla en una ventana de diálogo donde muestra al usuario un texto informativo
DATA: v_title(150) TYPE c.
* completar parametros
v_title = 'Informacion Importante'.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
titel = v_title
textline1 = 'A partir del 31/11 el APY pasa hacer calculado anual/'
textline2 = 'El nuevo porcentaje de interes anualizado es del 9%. '
start_column = 25
start_row = 6
if sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 msgv3 sy-msgv4
ENDIF.
2-7 POPUP_GET_VALUES
Le muestra al usuario campos de entrada y salida xa q el usuario complete estos campos y continue con el procesamiento.
DATA: ti_campos TYPE STANDARD TABLE OF sval,
wa_campos LIKE LINE OF ti_campos,
v_return_popup(1) TYPE c.
REFRESH ti_campos.
CLEAR wa_campos.
wa_campos-tabname = 'ztabla_usrios_g'.
wa_campos-fieldname = 'DNI'.
wa_campos-fieldtext = 'DNI'.
APPEND wa_campos TO ti_campos.
CLEAR wa_campos.
wa_campos-tabname = 'ztabla_usrios_g'.
wa_campos-fieldname = 'Nombre y ape'.
wa_campos-fieldtext = 'Nombre y apellido'.
wa_campos-field_obl = 'X'.
APPEND wa_campos TO ti_campos.
CLEAR wa_campos.
wa_campos-tabname = 'ztabla_usrios_g'.
wa_campos-fieldname = 'estado_usu'.
wa_campos-fieldtext = 'estado'.
APPEND wa_campos TO ti_campos.
CLEAR v_return_popup.
CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING
no_value_check = ' '
popup_title = 'Ingrese los datos de usuario'
start_column = '14'
start_row = '5'
IMPORTING
returncode = v_return_popup
TABLES
fields = ti_campos
EXCEPTIONS
error_in_fields = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSEIF sy-subrc EQ 0.
IF v_return_popup EQ space. " presionamos tilde verde
ELSEIF v_return_popup EQ 'A'. " presionamos 'X'
ENDIF.
ENDIF.
2-8 POPUP_TO_SHOW_USERINFO.
esta muestra por pantalla en ventana de dialogo la informacion del usuario
DATA: wa_vtbuser TYPE vtbuser.
CLEAR wa_vtbuser.
wa_vtbuser-cruser = sy-vtbuser " CHAR 12 0 Autor
wa_vtbuser-drcdat = sy-datum " DATS 8 Fecha de entrada
wa_vtbuser-trctim = sy-vzeit " TIMS 6 0 Hora de entrada
wa_vtbuser-upuser = sy-uname " CHAR 12 0 Modificado x
wa_vtbuser-dupdat = sy-datum " CHAR 8 0 Fecha de modificacion
wa_vtbuser-tuptim = sy-vzeit " CHAR 6 0 Hora de modificacion
CALL FUNCTION 'POPUP_TO_SHOW_USERINFO'
EXPORTING
user = wa_vtbuser.
asi se visualiza
Este modulo de POPUP_TO_SHOW_USERINFO es ideal xa mostrar un log de modificaciones de registros.
otro modulo muy similar es POPUP_TO_DISPLAY_USERDATA.
 
 
 
Sobre el autor
Publicación académica de Gustavo Betancur Guzmán, en su ámbito de estudios para la Carrera Consultor ABAP.
Gustavo Betancur Guzmán
Profesión: Ingeniero de Sistemas - Colombia - Legajo: WS86O
✒️Autor de: 164 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP MM Nivel Avanzado
- Carrera Consultor en SAP MM Nivel Inicial