SAP Netweaver / ABAP                  Notas técnicas / Tips / Tutorials

Ampliaciones (Enhancements) a programas ABAP en ERP 6.0

Índice del artículo

Enhancement Framework: Nuevo método para realizar ampliaciones al código ABAP en ECC 6.0 (ERP 6.0).

Inicialmente los user-exits en ABAP eran el modo más usual de realizar ampliaciones en SAP. Este método utiliza módulos de función mediante los cuales se puede ingresar código ABAP. El sistema provee las funciones donde los user-exits son llamados y se cuenta con una interfaz definida y un programa Include. Es en éste programa Include donde se agrega el código requerido y se activa a través de un Proyecto de Ampliación vía la transacción CMOD.

El problema principal de esta solución es que sólo es posible una implementación simple. Esto significa que si el enhancement es disponible en un proyecto activo, no puede reutilizarse en otro.

Para resolver esta limitación SAP provee la utilización de BADI’s que soportan múltiples implementaciones. De esta forma se pueden crear varias instancias del mismo objeto bajo el concepto de la orientación a objetos.

SAP brinda un nuevo framework para el desarrollo de ampliaciones conocido como Enhancement Framework. Esta nueva opción esta disponible a partir de la versión ECC 6.0. (SAP ERP 6.0)

El Enhancement Framework es una nueva tecnología que brinda todas las técnicas de ampliación bajo un mismo techo.

Las diferentes técnicas son las siguientes:

  • Ampliaciones de código (plug-ins)
  • Ampliaciones de grupo de función
  • Ampliaciones de clases
  • Ampliaciones Kernel-BADI


En este tip nos focalizaremos en los enhancement ABAP para ampliaciones (Enhancements) de código ABAP.


 

II. Tipos de enhancements para ampliación de código fuente

Las ampliaciones de código fuente ABAP (source code enhancement/source code plug-in) es una de las tecnologías disponibles dentro del Enhancement Framework. Esta técnica se almacena en un programa de tipo include y no es parte del código fuente original.
Las ampliaciones de este tipo permiten ampliar la funcionalidad de transacciones estandar sin modificaciones en el código fuente.


Existen dos tipos de ampliaciones:

1. Ampliaciones de tipo Implícito
2. Ampliaciones de tipo Explícito

1. Las ampliaciones de tipo implícito son ampliaciones predefinidas provistas por SAP en el código fuente. Mediante la opción: Enhancement Operations -> Show implicit Enhancement Options aparecerán resaltadas las líneas de código relacionadas con la ampliación. Las podemos encontrar en los siguientes lugares:
- Principio y final de un Include
- Principio y final de un Método, módulo de Función, Rutina
- Al final de una estructura
- Al final de las sección privada, protegida y publica de clases locales

2. Las ampliaciones de tipo explícito pueden implementarse en cualquier parte del código fuente a excepción de algunas áreas restringidas por SAP. Para este tipo de ampliaciones existen dos formas:

- ENHANCEMENT-POINT: permiten agregar código extra en un programa fuente. Pueden ser estáticos (agregar nuevas declaraciones) o dinámicos (agregar código con alguna funcionalidad extra).
- ENHANCEMENT-SECTION: es posible reemplazar parte del código existente. Puede ser estático (modificar declaraciones) o dinámica (reemplazar la funcionalidad estándar)


Enhacements - ABAP/Fig1

En este tip se verá un ejemplo de una Implementación de Ampliación (Enhancement) de tipo Explícito.




III. Implementación de un Explicit Enhancement

Como ejemplo vamos a utilizar el reporte RFBVBIC_0 que lee un archivo, compara y actualiza los datos bancarios proporcionados. La intención es agregar un nuevo select-option para filtrar la información por el campo Sucursal.
Los siguientes son los pasos para modificar el reporte:


1- Vamos a agregar la Sucursal como parámetro en la pantalla de selección:

· Posicionar el cursor en el lugar donde se quiere agregar la ampliación

Enhacements - ABAP Fig2

 

· Presionar botón derecho: Enhancements > Create

Enhacements - ABAP Fig3

- La ampliación a agregar es de tipo ENHANCEMENT-POINT ya que sólo se agregará un parámetro en la pantalla de selección.

- Se ingresa el nombre del ENHANCEMENT POINT y del ENHANCEMENT SPOT que deberán crearse.

Enhacements - ABAP Fig4


 

- El sistema agrega en el código fuente del programa la sentencia ENHANCEMENT-POINT … SPOTS …

Enhacements - ABAP Fig5

- Cambiar el editor a modo “Enhancement” mediante el botón de la espiral Espiral (Shift + F4)
- Posicionar el cursor sobre la sentencia ENHANCEMENT-POINT y luego ir con el botón derecho del mouse a: Enhancement Implementation -> Change

Enhacements - ABAP Fig6



· En el siguiente cuadro de diálogo creamos la implementación correspondiente.

Enhacements - ABAP Fig7


· Luego de este paso, en el programa aparecerán las sentencias ENHANCEMENT – ENDENHANCEMENT donde se debe agregar el código nuevo.

Enhacements - ABAP Fig8

· Por último, se activa el Enhancement Enhancement

Enhacements - ABAP Fig9

· Al ejecutar el reporte se verá el nuevo parámetro de selección.

Enhacements - ABAP Fig10


 

2- Modificar la verificación de datos y agregar el nuevo filtro.


· Seleccionar el código a reemplazar y luego con el botón derecho del mouse posicionarse en: Enhancements -> Create

Enhacements - ABAP Fig11


· El sistema agrega en el código fuente del programa la sentencia ENHANCEMENT-SECTION … SPOTS …

Enhacements - ABAP Fig12


· Cambiar el editor a modo “Enhancement” mediante el botón de la espiral Espiral (Shift + F4)

· Posicionar el cursor sobre la sentencia ENHANCEMENT-SECTION y luego ir con el botón derecho del mouse a: Enhancement Implementation -> Create
· En el siguiente cuadro de diálogo creamos la implementación correspondiente.

Enhacements - ABAP Fig13


· Luego de este paso, en el programa aparecerán las sentencias ENHANCEMENT – ENDENHANCEMENT donde se debe agregar el código nuevo.

Enhacements - ABAP Fig14

· Por último se activa el Enhancement Enhancement


 

IV. Para tener en cuenta …

· Este escenario está referido a la inclusión de un 'ENHANCEMENT-POINT' y un 'ENHANCEMENT-SECTION' en un programa estándar.
· Lo único que se agrega en el programa estándar son estos Enhancements. La implementación de los mismos es Z, por consiguiente también el código agregado se hace sobre estas implementaciones Z.
· Solo puede haber una implementación activa para un 'ENHANCEMENT-SECTION'.


V. Donde obtener información

http://help.sap.com Portal de Ayuda de SAP
www.sdn.sap.com SAP Community Network


IMPORTANTE

Copyright Junio 2011. Teknoda S.A.

IMPORTANTE:
“Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas SAP, envíe un mensaje desde esa direcciónsapping@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.

SAP, Netweaver, R/3, Fiori,S4/HANA y ABAP son marcas registradas de SAP AG. SAP no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA

 

Copyright © 2024 Teknoda Tech Portal & Training. Todos los derechos reservados.
Joomla! es software libre, liberado bajo la GNU General Public License.