Mostrar más resultados
28638

¿Qué son las clases de excepción en SAP?

¿Qué son las clases de excepción en SAP?

Escrito por Thaís Balagueró

En este post hablaremos sobre las clases de excepción en el ERP SAP, explicaremos que son, para que se utilizan y como se definen o se crean las clases de excepciones que viene a ser lo mismo.

Si conoces SAP a nivel usuario lo más normal es que nunca hayas oído a hablar de las clases de excepciones en SAP y por lo tanto te sonará a algo desconocido. Pues bien, las clases de excepciones en SAP están relacionadas con la programación y sus lenguajes de programación como es ABAP en el case de SAP y se utilizan para gestionar errores de programación.

¡Impulsa tu formación y vida laboral con un Curso Superior de SAP!

Primero de todo haremos una pequeña explicación, para aquellos que desconozcáis el mundo de la programación en SAP, para explicar lo que es ABAP. ABAP corresponde a las siglas del término inglés Advanced Business Application Programming, y es un lenguaje de cuarta generación, propiedad de SAP, que se utiliza para programar la mayoría de sus productos. Como características de este programa, utiliza sentencias de Open SQL para conectarse con prácticamente cualquier base de datos. Cuenta con miles de funciones para el manejo de archivos, bases de datos, fechas, etc. y permite conexiones RFC (Remote Function Calls) para conectar a los sistemas SAP con cualquier otro sistema o lenguaje de programación.

Ahora que ya hemos explicado, a modo introducción, lo que es la programación en ABAP, vamos a seguir hablando de las excepciones en SAP.

Las excepciones en SAP

Una excepción es una situación se produce cuando se intenta ejecutar un programa o este programa se está ejecutando y por alguna razón durante la ejecución de este, alguna situación anormal ocurre en el programa y se interrumpe el flujo normal de las instrucciones del mismo, cambiando su normal comportamiento.  Esta situación es tratada mediante excepciones, ya que previamente fue contemplada en el mismo programa.

Cuando se produce una excepción (usualmente asociada a una condición de error), el programa termina inmediatamente, por lo tanto, es importante que esas situaciones puedan ser manejadas de alguna manera dentro del programa y evitar la cancelación del mismo.

Muchas veces, la acción asociada a una excepción, es simplemente producir un mensaje informativo y terminar el procesamiento del programa. Otras veces, es sólo la indicación de la necesidad de un cambio en la estrategia de resolución del problema.
A partir de la versión SAP Web AS 6.10, SAP introduce un nuevo concepto, paralelamente al descrito anteriormente,  en las excepciones de los objetos ABAP. Este nuevo concepto es el de las  excepciones basadas en clases.

Las excepciones se representan mediante objetos que son instancias de clases de excepción. Por lo tanto, definir una excepción es lo mismo que crear una clase de excepción y su tratamiento se basa ahora en clases.

Las excepciones usualmente indican una condición de error. Pongamos un ejemplo sencillo basado en una división para entenderlo: por ejemplo, la operación de división no es posible cuando el divisor es cero ya que el valor obtenido no es un número infinito. En este caso se va producir un error en tiempo de ejecución cuando se intentara ejecutar el programa y se cancelaría el programa. Para gestionar una excepción dentro del programa y que el usuario supiera el motivo de esta interrupción, se podría mostrar un mensaje tipo pop-up indicando el error y el motivo de no poder realizarse esta operación. De este modo el usuario podría repetir la operación introduciendo unos nuevos valores y datos que fueran correctos para permitir la ejecución del programa y este podría ejecutarse sin ningún tipo de problema.

El mensaje indicando el error está relacionado con los objetos de excepción.

En el nuevo concepto, una excepción se representa con un objeto de excepción. Y ahora te preguntarás ¿Qué es un objeto de excepción? Pues un objeto de excepción es una instancia de una clase de excepción, es decir, un elemento que forma para de la clase de excepción y que a la vez contienen información sobre la excepción. Los valores de atributo del objeto de excepción contienen información sobre la situación de error correspondiente. La emisión de una excepción basada en clases normalmente significa instanciar una clase de excepción y fijar los atributos. La gestión y tratado de una excepción basada en clases implica que deberá hacerse una evaluación del objeto de excepción y sus valores de atributo.

Clases de excepción

Hablemos ahora de algunas de las clases de excepción que existen, las formas de denominación que pueden adoptar y para qué sirve cada una de ellas.

Todas las clases de excepción existentes deben ser derivadas de la superclase común CX_ROOT y a la vez deben formar parte de alguna de sus clases subordinadas, denominándose estas por la nomenclatura siguiente:

CX_STATIC_CHECK

CX_DYNAMIC_CHECK

CX_NO_CHECK

La asignación de clases de excepción a una de estas tres rutas de la jerarquía de herencia determina la forma en que se propagan las excepciones asociadas. Hay un registro de clases de excepciones predefinidas CX_SY _, sus excepciones se producen en situaciones de error en el entorno de tiempo de ejecución.

Todas las clases de excepción deben comenzar con el prefijo CX_. Generalmente se definen globalmente con el Generador de clases de ABAP Workbench.  Sin embargo, también se pueden definir clases de excepciones locales.

Los errores de programación en ABAP se gestionan por clases y cada tipo de error se asigna a una clase de excepción. Por ejemplo, las clases de errores que empiezan todas por CX_SY_, como puede ser la clase de excepción CX_SY_ARITHMETIC_ERROR, que gestiona errores aritméticos (por ejemplo la división por cero).

En resumen podríamos decir que las clases de excepción se utilizan para gestionar errores de programación en ABAP que suceden durante la ejecución del programa y que para tratar estos errores, según su tipo o naturaleza, utilizaremos un tipo de clase de excepción u otro teniendo cada una ellas una nomenclatura diferente.

Si tienes nociones de programación en ABAP ¿sabrías decir los errores más comunes que podemos encontrar en SAP y establecerlos en clases de excepción?