✒️ABAP Los módulos de funciones POPUP
ABAP Los módulos de funciones POPUP
POPUP Function Modules
These are a set of standard SAP system function modules that prove highly useful for ABAP consultants when creating programs involving user interaction. POPUP function modules enable the generation of the following in ABAP programs:
- Confirmation dialog windows
- Information display dialog windows
- Data entry request dialog windows
- Dialog windows displaying the content of internal tables
Similar to handling any other function mode in the function library corresponding to the standard SE37 transaction, to generate the interface or structure of a POPUP function module, position the mouse pointer in the ABAP program where you want to generate the corresponding POPUP function module code, then click on 'Pattern' in the toolbar.
The system will display a dialog window where you select the 'CALL FUNCTION' option. The goal is to visualize all available POPUP function modules in the SAP system. To achieve this, enter 'POPUP*' and click the continue button or use the matchcode button in the field, or you can also press the F4 key.
There are 170 POPUP function modules in the SAP system. Some POPUP function modules have become obsolete, and it is advisable not to use them in programs. You can identify obsolete modules as they carry a 'Do not use! Please use POPUP_TO_CONFIRM!' message in the system-generated list.
Most Used POPUP Function Modules
- POPUP_TO_CONFIRM: Used to display a dialog window where a user is asked a question, and their response is awaited to proceed with processing. This is the most widely used function module.
DATA lv_user_response TYPE sy-ucomm.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = 'Confirmation'
text_question = 'Do you want to proceed with the action?'
text_button_1 = 'Yes'
icon_button_1 = 'ICON_CHECK'
text_button_2 = 'No'
icon_button_2 = 'ICON_CANCEL'
default_button = '1'
IMPORTING
answer = lv_user_response.
CASE lv_user_response.
WHEN '1'.
" User clicked 'Yes', implement the logic to proceed
WRITE: / 'Action confirmed. Proceeding...'.
WHEN '2'.
" User clicked 'No', implement the logic for cancellation
WRITE: / 'Action canceled by user.'.
WHEN OTHERS.
" Handle other cases or errors
WRITE: / 'Unexpected user response:', lv_user_response.
ENDCASE.
- POPUP_TO_CONFIRM_DATA_LOSS: Used to display a dialog window informing the user that modified data will be lost and asks if they want to save.
DATA lv_confirmation_answer TYPE abap_bool.
* Assuming you have some logic to identify the record to be deleted
DATA lv_record_to_delete TYPE string VALUE 'Record123'.
CALL FUNCTION 'POPUP_TO_CONFIRM_DATA_LOSS'
EXPORTING
titel = 'Data Deletion Confirmation'
IMPORTING
answer = lv_confirmation_answer.
IF lv_confirmation_answer = abap_true.
" User confirmed, proceed with the deletion logic
WRITE: / 'Deleting record:', lv_record_to_delete.
" Implement your record deletion logic here
ELSE.
" User canceled the deletion
WRITE: / 'Deletion canceled by user.'.
ENDIF.
- POPUP_TO_DECIDE_LIST: Used to display a dialog window where the user must choose one of the available options to continue processing.
DATA: li_spopli TYPE STANDARD TABLE OF spopli,
wa_spopli TYPE spopli,
lv_result TYPE char1.
START-OF-SELECTION.
CLEAR: wa_spopli.
wa_spopli-varoption = 'Opción 1'.
APPEND wa_spopli TO li_spopli.
CLEAR: wa_spopli.
wa_spopli-varoption = 'Opción 2'.
APPEND wa_spopli TO li_spopli.
CLEAR: wa_spopli.
wa_spopli-varoption = 'Opción 3'.
APPEND wa_spopli TO li_spopli.
CALL FUNCTION 'POPUP_TO_DECIDE_LIST'
EXPORTING
titel = 'POPUP – Radio Buttons'
textline1 = 'Seleccione una opción'
IMPORTING
answer = lv_result
TABLES
t_spopli = li_spopli
EXCEPTIONS
not_enough_answers = 1
too_much_answers = 2
too_much_marks = 3
OTHERS = 4.
IF sy-subrc EQ 0.
IF lv_result NE 'A'.
READ TABLE li_spopli INTO wa_spopli INDEX lv_result.
WRITE:/ 'Se seleccionó: ', wa_spopli-varoption.
ELSE.
WRITE:/ 'No ha realizado ninguna selección'.
ENDIF.
ENDIF.
- POPUP_TO_SELECT_MONTH: Used to display a dialog window where the user selects the month and year.
DATA: v_sel_mon TYPE isellist-month.
CALL FUNCTION 'POPUP_TO_SELECT_MONTH'
EXPORTING
actual_month = '202110'
IMPORTING
selected_month = v_sel_mon
EXCEPTIONS
factory_calendar_not_found = 1
holiday_calendar_not_found = 2
month_not_found = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
WRITE: / 'Selected Month:', v_sel_mon.
ENDIF.
- POPUP_WITH_TABLE_DISPLAY: Used to display a dialog window with the content of an internal table that was previously loaded with data.
DATA: BEGIN OF employee_table OCCURS 0,
employee_name(10) TYPE c,
telephone_number(12) TYPE c,
mobile_number(12) TYPE c,
END OF employee_table.
" Person 1
employee_table-employee_name = 'person1'.
employee_table-telephone_number = '0123456789'.
employee_table-mobile_number = '9876543210'.
APPEND employee_table.
CLEAR employee_table.
" Person 2
employee_table-employee_name = 'person2'.
employee_table-telephone_number = '0112233445'.
employee_table-mobile_number = '9988776655'.
APPEND employee_table.
CLEAR employee_table.
" Person 3
employee_table-employee_name = 'person3'.
employee_table-telephone_number = '0198765432'.
employee_table-mobile_number = '9543219876'.
APPEND employee_table.
CLEAR employee_table.
CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'
EXPORTING
endpos_col = 80
endpos_row = 25
startpos_col = 1
startpos_row = 1
titletext = 'Employee Information'
* IMPORTING
* CHOICE =
TABLES
valuetab = employee_table
EXCEPTIONS
break_off = 1
OTHERS = 2.
- POPUP_TO_DISPLAY_TEXT: Used to display a dialog window showing the user informative text.
DATA: notification_title(150) TYPE c.
*-----------------------------------------------------------------------*
START-OF-SELECTION.
*-----------------------------------------------------------------------*
notification_title = '2024 Important Update'.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
titel = notification_title
textline1 = 'As of 31/11/2024, there is a crucial update in information.'
textline2 = 'The new guidelines for the year 2024 have been implemented.'
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 sy-msgv3 sy-msgv4.
ENDIF.
- POPUP_GET_VALUES: Used to display a dialog window with input and output fields for the user to complete and continue processing.
DATA: ti_campos TYPE STANDARD TABLE OF sval,
wa_campos LIKE LINE OF ti_campos,
v_return_popup(1) TYPE c.
*-----------------------------------------------------------------------*
START-OF-SELECTION.
*-----------------------------------------------------------------------*
REFRESH ti_campos.
CLEAR wa_campos.
wa_campos-tabname = 'ZTABLA_USUARIOS'.
wa_campos-fieldname = 'DNI'.
wa_campos-fieldtext = 'DNI'.
APPEND wa_campos TO ti_campos.
CLEAR wa_campos.
wa_campos-tabname = 'ZTABLA_USUARIOS'.
wa_campos-fieldname = 'NOMBRE_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_USUARIOS'.
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 del 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 NE 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. " User pressed the green checkmark
ELSEIF v_return_popup EQ 'A'. " User pressed 'X'
ENDIF.
ENDIF.
- POPUP_TO_SHOW_USERINFO: Used to display a dialog window with user information, ideal for showing a log of record modifications.
DATA: wa_vtbuser TYPE vtbuser.
*-----------------------------------------------------------------------*
START-OF-SELECTION.
*-----------------------------------------------------------------------*
CLEAR wa_vtbuser.
wa_vtbuser-cruser = sy-uname. " CHAR 12 0 Autor
wa_vtbuser-dcrdat = sy-datum. " DATS 8 0 Fecha entrada
wa_vtbuser-tcrtim = sy-uzeit. " TIMS 6 0 Hora de entrada
wa_vtbuser-upuser = sy-uname. " CHAR 12 0 Modificado por
wa_vtbuser-dupdat = sy-datum. " DATS 8 0 Fecha de modificación
wa_vtbuser-tuptim = sy-uzeit. " TIMS 6 0 Hora de modificación
CALL FUNCTION 'POPUP_TO_SHOW_USERINFO'
EXPORTING
user = wa_vtbuser.
 
 
 
Sobre el autor
Publicación académica de Jaime Eduardo Gomez Arango, en su ámbito de estudios para la Carrera Consultor ABAP.
Jaime Eduardo Gomez Arango
Profesión: Ingeniero de Sistemas y Computaci?n - Espa?a - Legajo: SW34C
✒️Autor de: 149 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP Fiori
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Presentación:
Ingeniero de sistemas y computaci?n con 8 a?os de experiencia el desarrollo frontend & backend (react/node) y en cloud (aws), actualmente desarrollando habilidades en sap btp, ui5, abap y fiori.
Certificación Académica de Jaime Gomez