Está en la página 1de 4

[Año]

SOLUCIÓN EJERCICIO – MÓDULO DE FUNCIONES


CON EXCEPCIONES

Curso - Programación ABAP


LOGALISAP
1

1. En la transacción SE37 – Biblioteca de funciones modifique el módulo de


funciones Z_MF_MATERIALES_USUARIOSAP.

2. En la pestaña Excep. añada la excepción EX_SIN_MATERIALES.

3. Modifique la lógica del código fuente para levantar la excepción cuando no


existen materiales en base de datos por el rango de fechas pasadas en los
parámetros IMPORT.

FUNCTION z_mf_materiales_l100000.
*"-------------------------------------------------
*"*"Interfase local
*" IMPORTING
*" REFERENCE(DATE_FROM) TYPE SYDATUM
*" REFERENCE(DATE_TO) TYPE SYDATUM
*" TABLES

Programación ABAP logalisap.com


2

*" TI_MATERIALES STRUCTURE MARA


*" EXCEPTIONS
*" EX_SIN_MATERIALES
*"-------------------------------------------------

SELECT * FROM mara


INTO TABLE ti_materiales
WHERE ersda GT date_from
AND ersda LT date_to.

IF sy-subrc NE 0.

RAISE ex_sin_materiales.

ENDIF.

ENDFUNCTION.

4. Modifique la lógica del programa Z_CALL_MF_USUARIOSAP que realiza la


llamada al módulo de funciones para capturar la excepción
EX_SIN_MATERIALES que levanta el módulo de funciones. Para capturar
cualquier otra posible excepción que podría levantar el módulo de
funciones se utiliza OTHERS en la llamada al módulo de funciones.

REPORT z_call_mf_l100000.

DATA: gt_materiales TYPE STANDARD TABLE OF mara,


gwa_materiales TYPE mara.

CALL FUNCTION 'Z_MF_MATERIALES_L100000'


EXPORTING
date_from = '20120101'
date_to = '20121231'
TABLES
ti_materiales = gt_materiales
EXCEPTIONS

Programación ABAP logalisap.com


3

ex_sin_materiales = 1
OTHERS = 2.

IF sy-subrc EQ 0.

LOOP AT gt_materiales INTO gwa_materiales.


WRITE / gwa_materiales-matnr.
ENDLOOP.

ELSE.

MESSAGE 'Por el rango de fechas indicadas no exis


ten materiales' TYPE 'I'.

ENDIF.

Programación ABAP logalisap.com

También podría gustarte