¿Qué son las ampliaciones en SAP?

Como muchos sabemos, SAP es un sistema  que no permite la modificación de los programas-transacciones estándar. Sin embargo, ocasionalmente se requiere adaptar las funcionalidades estándar a requerimientos específicos del cliente.

Para ello, SAP permite ciertas herramientas para realizar “modificaciones controladas” a los programas estándar.

Más que modificaciones, se tratan más bien de “ampliaciones”, ya que lo que se nos permite hacer, es añadirles funcionalidades a las ya existentes, como por ejemplo, alguna validación adicional a un pedido de ventas, específica del cliente, que no esté contemplada en el estándar de SAP.

Actualmente, existen 3 tipos de ampliaciones permitidas en SAP:

USEREXIT’s: Son subrutinas vacías existentes en los programas estándar, las cuales se pueden activar y escribir el código adicional que requerimos añadir; estas subrutinas responden a determinados eventos del proceso estándar, por lo que debemos ubicar cual es el userexit que corresponde al apartado de la transacción que queremos modificar, por ejemplo, si nos piden validar que el monto de un pedido no exceda una cantidad determinada al momento de crearlo, debemos encontrar que USEREXITS se activan al momento de pulsar el botón “Guardar”, o lo que es lo mismo, cuando se invoca el evento “guardar pedido”. Estas subrutinas cuentan con ciertas tablas y estructuras internas con la información relevante obtenida por el proceso estándar, en este ejemplo, la información del pedido que se pretende crear.

CUSTOMER-EXIT: En algunos puntos del código estándar, hay llamadas del tipo CALL CUSTOMER-FUNCTION <número>. Estas rutinas se editarán con la transacción CMOD.

BADI’S: Son ampliaciones que funcionan bajo la filosofía de programación orientada a objetos, es decir, mediante clases y métodos, son invocados dentro del estándar con CALL METHOD, creadas a través de la transacción SE18 e implementadas por la SE19.

Las BADI’s se definen mediante la SE18, donde se debe especificar lo siguiente:

  • Definición de la interfaz: métodos y parámetros que contendrá la clase a implementar.
  • Tipo de implementación: se puede crear una BADI simple (permite una sola implementación activa) o múltiple (permitir varias invocaciones desde diferentes programas).

Luego, para implementar la BADI recién creada, o cualquier otra existente en el sistema, o bien utilizar  alguna de las distintas implementaciones de BADI’s existentes, se debe utilizar la transacción SE19.

Las BADI’s se pueden implementar más de una vez, a diferencia de los USEREXITS, que solo permiten una implementación; esto es porque un USEREXIT es un perform dentro de un programa estándar, por lo que solo puede ser invocado por dicho programa, en cambio las BADI’s son interfaces de clases, cuyos métodos pueden ser invocados desde diferentes programas.

En resumen, los USEREXITS son performs dentro del código estándar, los CUSTOMER-EXIT son funciones, y las BADI’s son interfaces.

¿Te ha sido de utilidad este artículo? Házmelo saber con tus comentarios, y suscríbete a mi Comunidad para recibir mi curso gratuito “AprendeABAP en 10 lecciones”, además de contenidos exclusivos  sobre el mundo ABAP.

Richard Rey

“Programando tu Exito”

Opt In Image
Te has preguntado que se necesita para ser un Consultor de Éxito?
Te gustaría aprender los 7 Pasos para triunfar en tu carrera como Consultor ABAP?

Deja tus datos aquí abajo y formarás parte de mi comunidad exclusiva, además de recibir mi curso de regalo "Los 7 Pasos para ser un Consultor de Éxito".

Mas información AQUÍ.

 

PD: Odio el SPAM. No compartire tus datos con nadie.

Si te gusta, compártelo! ...Share on FacebookTweet about this on TwitterShare on LinkedInShare on Google+Email this to someonePrint this page

Comentarios