✒️ABAP La lógica de procesamiento en el PAI y las validaciones
ABAP La lógica de procesamiento en el PAI y las validaciones
Processing Logic in "PAI" and Data Validations
Data Input Validation
One of the critical functions of "PAI" is to validate the input data on the screen before it's used. There are two types of input data validations:
- Automatic check performed by the system.
- Manual check programmed using the "FIELD" command in the processing logic of Dynpros.
Automatic Validation
The system automatically performs several checks on input data before processing the "PAI" event. These checks include:
- Format verification: The system validates inputs based on the attributes of each field. If an incorrect value is detected, an error message is displayed, and the fields are shown again for re-entry.
- Mandatory field check: If a field on the screen is marked mandatory, the system won't proceed with processing unless the mandatory field has a value.
- Foreign key check: Processed only if a field on the screen refers to a field in the data dictionary for which a check table has been defined.
- Value range check: If a field on the screen is associated with a domain that has a value range, the system displays:
- Possible values when the user presses "F4" to see potential values.
- The system checks values entered against the value range of the corresponding domain.
Manual Validation
In addition to automatic checks, it's possible to perform more extensive validation of input values using the "FIELD" and "CHAIN-ENDCHAIN" instructions.
With "FIELD", we can individually validate each field, allowing only the erroneous field to be re-entered during subsequent data entry. Depending on the type of "FIELD" statement used, the check mechanism is performed in the Dynpro processing logic or in a module.
Different Validation Scenarios:
- Checking a field against a database table: If no records are found in the database, the system issues a standard error message.
- Checking a field against a value list: If the value entered by the user doesn't match any value in the list, the system issues an error message.
- Checking a field in a module: To check a specific field with a module, we use the following statement:
FIELD <screen_field> MODULE <ABAP_module>.
*----------------------------------------------------------------------*
***INCLUDE ZPRUEBA_DIALOGO_JEGA_VALIDO01.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module VALIDAR_DNI_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE validar_dni_0100 OUTPUT.
CLEAR v_dni.
SELECT SINGLE dni
FROM ztabla_usuarios
INTO v_dni
WHERE v_dni EQ wa_screen_0100-dni.
IF sy-subrc NE 0.
MESSAGE e000(zprueba_dialogo) WITH TEXT-001.
ENDIF.
ENDMODULE.
If the module results in an error ("E") or a warning message ("W"), the screen is displayed again without processing the "PBO" modules. Only the field that caused the error will be available for data re-entry.
- "CHAIN-ENDCHAIN" Instruction: The "CHAIN-ENDCHAIN" instruction encloses a set of "FIELD" instructions. If there's an error in the input of any of them, all fields within "CHAIN-ENDCHAIN" can be modified, while those outside it are locked for data entry.
The "CHAIN-ENDCHAIN" statement in the processing logic of a Dynpro defines processing chains. Within "CHAIN-ENDCHAIN", "FIELD" and "MODULE" statements are executed. Statements between "CHAIN-ENDCHAIN" form a processing chain. Processing chains cannot be nested, meaning a "CHAIN-ENDCHAIN" cannot be placed inside another "CHAIN-ENDCHAIN".
The "CHAIN-ENDCHAIN" statement can be specified in both "PAI" and "PBO", but it has no effect in "PBO".
Screen Messages
Let's now analyze the behavior of each type of message in a dialog program.
- Error message ("E"): The text of an error message is displayed on the current screen. All screen fields assigned to the corresponding module ("FIELD" instruction) become available for re-entering information. The system forces the user to re-enter data.
- Warning message ("W"): The text of a warning message is displayed on the current screen. All screen fields assigned to the corresponding module ("FIELD" instruction) become available for re-entering information. The user can re-enter data or ignore the warning message by pressing "ENTER".
- Information message ("I"): The text of an information message is displayed on the current screen. The processing of the current screen is suspended. After the user presses "ENTER", the program continues its normal execution from where it was suspended.
- Success message ("S"): A success text message is displayed on the next screen after the current one.
- Interrupt message ("A"): The text of an interrupt message is displayed on the current screen. After the user presses "ENTER", the current process is terminated, and the process returns to the initial screen.
 
 
 
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