Вы находитесь на странице: 1из 38

LECCION 1: USER EXIT

1| Qué es un User Exit?

USER EXITS: Son espacios que SAP deja en el sistema estándar para que los
usuarios agreguen código para validaciones y mejoras, de manera de poder
satisfacer sus requerimientos.

Los User Exit también son llamadas Ampliaciones de proceso. Se ejecutan


desde un programa estándar haciendo una invocación a un módulo de función.

La nomenclatura que se utiliza para los módulos de función es la siguiente:

EXIT_<3 dígitos>

La llamada a un exit de un módulo de función es implementada de la siguiente


forma:

CALL CUSTOMER-FUNCTION <3 dígitos>

Por ejemplo, la declaración CALL CUSTOMER-FUNCTION '001' en el programa


de diálogo estándar SAPMS38M va a llamar al módulo de función
EXIT_SAPMS38M_001. Es importante recordar que si el Exit no está activo, la
llamada a esta función no tendrá efecto alguno.

Los módulos de función poseen una llamada a un include que no existe en el


sistema estándar y que en las últimas versiones de SAP comienza con ZX.
Cada uno de estos módulos es llamado por el proceso estándar en ciertos
momentos y ellos tienen por defecto algunos parámetros que son los disponibles
dentro de la ampliación.

Utilizaremos dos transacciones para trabajar con User Exits:

SMOD: para administrar las ampliaciones.

CMOD: para la gestión de proyectos de ampliaciones.


Luego de creado el Exit debemos activarlo para que funcione
correctamente.

2| Proyectos de ampliación

Para agrupar, clasificar y controlar los User Exit crearemos un proyecto de


ampliación.

Un proyecto de ampliación asocia n ampliaciones. Su activación o desactivación


afecta a todas las ampliaciones asociadas.

La transacción para acceder a los proyectos de ampliación es la CMOD. El


nombre de los proyectos de ampliación debe estar dentro del rango permitido
para los clientes.

Después de seleccionado el proyecto y cuando hayamos cargado el nombre del


mismo, tenemos un área en donde asignamos las ampliaciones que vamos a
incluir en el proyecto. La pantalla de asignación de ampliaciones es la siguiente:
En la pantalla de componentes podemos visualizar los componentes que forman
parte de la ampliación del proyecto. La pantalla es la siguiente:

Cada uno de esos componentes son los Exit de la ampliación, es allí en donde se
debe incorporar el código de validación o proceso a controlar con la ampliación.

3| Tipos de User Exits

Existen cuatro tipos diferentes de Exits. Ellos son:

MENU EXITS

Son ampliaciones creadas para agregar transacciones al menú estándar de SAP.


La transacción que se utiliza para la creación de las ampliaciones de menú es la
SE43N.

En el sistema estándar, para incluir una transacción en el menú, se debe realizar


una modificación a la estructura original, pero con los Menú Exit, podemos
crearlos en un espacio de menú para el cliente.
Cuando se realice alguna actualización de versión, SAP respetará esta área de
menú y no sobrescribirá ninguna opción del mismo.

SCREEN EXITS

Se utilizan para agregar funcionalidades a las pantallas estándar de SAP. Por


ejemplo, existen en muchas transacciones estándar de SAP Screen Exits para
agregar solapas a Subscreens como la que vemos a continuación.

FUNCTION MODULE EXITS

Se utilizan para agregar funcionalidades a las aplicaciones SAP. Cuando


agregamos un nuevo iíem a un menú estándar utilizaremos un Function
Module Exit para definir las acciones que se llevarán a cabo una vez que el
menú es activado.

Un Function Module Exit también controla el flujo de datos entre los


programas estándar y los del Screen Exit.

KEYWORD EXITS

Se utilizan para documentar los elementos de datos claves definidos en el


diccionario ABAP.

4| Cómo probar un User Exit?

Un punto complicado en la utilización de User Exits es ubicarlos y conocer el


momento del proceso en el que ocurren los mismos. Todo esto para determinar
que datos y que particularmente se puede realizar en ese momento. Para
realizar esta investigación, lo más efectivo será crear un proyecto de ampliación,
asignar la ampliación, activarla y luego colocar un BreakPoint en el módulo de
funciones, para determinar los datos con los que disponemos en ese momento y
el punto exacto del proceso en donde se encuentra.

En la sección de descargas podrán bajarse un programa ABAP para localizar


los User Exits de una transacción.
LECCION 3: Field Exits

1| Qué son los Field Exits?

FIELD EXITS: También llamadas ampliaciones de campo, son validaciones


de los elementos de datos asociados a campos de pantallas o dynpros de
SAP.

Los Field Exits son módulos de funciones que son llamados y ejecutados
posteriormente de las validaciones del sistema estándar.

Los mismos por ser módulos de funciones, se ejecutan en instancias de memoria


propias y al momento de su ejecución, sólo se dispone del valor del campo, que
se importa en el parámetro INPUT y que puede ser modificado a través del
parámetro OUTPUT. Para el uso de otros campos de la pantalla, se debe
proceder al uso de funciones que permiten capturar dichos valores.

Un ejemplo en donde utilizaríamos un Field Exits es si se quiere insertar un valor


en un campo determinado de una dynpro entonces pondríamos una validación en
ese campo a nivel Field Exit para que solo permita insertar determinados
valores.

2| Cómo accedemos a los Field Exits?

En las versiones más recientes de SAP, no se dispone de acceso directo a través


de menú a los Field Exits. La manera de llegar allí, es a través de la transacción
CMOD.
Luego estando en la pantalla de los proyectos de ampliación, escribimos en el
campo de comandos PRFB, presionamos enter y veremos la siguiente pantalla:

3| Cómo crear un Field Exit?

Para crear un Field Exit, seleccionamos el menú Field Exit y la opción Create y
allí colocamos el nombre del elemento de datos al cual se quiere realizar el Exit.
Luego, el sistema nos propone la creación del modulo de funciones, por lo
que presionaremos el botón Create.

Después de creado el módulo de funciones y el grupo de funciones, se debe


seleccionar el Field Exit en la pantalla principal de Field Exit y asignarle la dynpro
correspondiente.

Mientras no se haya realizado la asignación de la dynpro, el Field Exit afectará a


todas las pantallas donde se encuentre un campo con el elemento de datos.

La selección se realiza marcando el elemento de datos y presionando el botón


Assign Prog/Screen como se muestra en la siguiente imagen:

Seguidamente aparece la siguiente pantalla:


Después de ello ya hemos asignado la ampliación del campo a la pantalla
específica y solo queda realizar el código de validación necesario para la
validación, seleccionando el Field Exit a tratar y luego presionando el botón Edit
FM.

Y luego introducimos el código.


Finalmente activamos el Field Exit que acabamos de crear.

ACLARACIÓN IMPORTANTE: debido a limitaciones de la versión de


prueba del sistema no podremos probar los Field Exits que creemos.

Dentro de los módulos de funciones de los Field Exit, existen instrucciones de


código que no se pueden utilizar. Los tipos de mensajes que se pueden utilizar,
son de Sistema (S) y Error (E), si se despliega un mensaje de error, el campo
quedará activo para realizar los cambios correspondientes, pero el resto de la
pantalla quedará inactiva. También se puede realizar cambios en el campo de
forma automática, pasando el valor el parámetro export OUTPUT.

Si desde el código de un Field Exit necesitamos saber el valor de otro


campo de la pantalla en tiempo se ejecución podemos utilizar la función
GET_DYNP_VALUE.

DESCARGAS

Ejercicio de práctica

Solución al ejercicio de práctica


LECCION 4: BADIS

1| Qué son las BADIS?

BADIS (Business Adds-Ins): Son un nuevo tipo de extensión al sistema


SAP basado en la utilización de objetos ABAP para la implementación de
validaciones y ampliaciones al código estándar de SAP sin tener que
modificar el código estándar.

Mediante las Badis podremos realizar modificaciones al estándar de modo de


poder satisfacer los requerimientos del cliente.

Utilizando Badis podremos definir filtros para la ejecución de forma tal de poder
tener diferentes procesos para, por ejemplo, países diferentes. Esto le permite a
SAP poder utilizar las Badis para realizar localizaciones del sistema; por eso es
que el sistema estándar ya incluye varias implementaciones de Badis.

Mediante las implementaciones de las Badis se pueden hacer aplicaciones para


negocios específicos como petroleras, papeleras, químicas, etc. Esto hace que las
Badis sean muy útiles debido a que poseen una arquitectura Multicapa (SAP,
partners, soluciones de clientes, localizaciones, soluciones específicas para
industrias, etc).

2| Tipos de BADIS

Existen dos tipos de Badis:

Badis Clásicas: son las primeras que existieron.


Badis Nuevas: también conocidas como Enhancement Spot incorporan las
últimas tecnologías de SAP.
3| Vistas de una BADI

Las Badis tienen dos vistas: la vista de definición y la vista de


implementación. A continuación veremos en detalle estos dos conceptos.

La definición de las Badis viene definida en el sistema estándar y muy pocas


veces será necesario crear una nueva definición.

4| Definición de una BADI

Mediante la transacción SE18 accedemos a la vista de definición de las Badis.


Veamos la configuración correspondiente a un Enhancement Spot. En la solapa
Enh.Spot Element Definitions veremos las configuraciones generales de la
Badi.

En la solapa Enhancem.Implementations veremos si la Badi está


implementada.
Si hacemos doble click en Interface veremos cual es la Interface asociada a la
Badi y cuales métodos están asociados a la definición de la Badi.

Si hacemos doble click en un método veremos los parámetros de entrada y


salida del método.

5| Implementación de una BADI

A través de la transacción SE19 se accede a la implementación de las Badis.


Si hacemos doble click en los métodos podremos ver la lógica asociada a ellos,
por lo tanto se podrá elegir entre utilizar dicha lógica estándar o crear una
nueva.

6| Creación de una implementación

Si queremos crear una nueva implementación de una Badi, marcamos en la


pantalla inicial de la transacción SE19 el tipo de Badi, completamos el nombre de
la definición y presionamos el botón Create.
Luego asignamos un nombre a la nueva implementación.

En el método de la Badi introducimos el código que resuelva los requerimientos


del cliente.
Y finalmente activamos la Badi.

7| Método para encontrar una BADI

Para encontrar los lugares en donde existe una Badi, se puede usar el siguiente
método:

Ponemos un BREAKPOINT de sesión dentro del método GET_INSTANCE de la


clase CL_EXITHANDLER.

Para acceder a una clase utilizaremos el Class Builder que es la transacción


SE24.
Luego se ejecuta la transacción o programa que queremos verificar y el
programa se detendrá en el BREAK-POINT, en la variable EXIT_NAME se
mostrarán los nombres de las Badis que implementa el programa.
Este método puede resultar un poco engorroso ya que se detiene muchas veces
la ejecución, pero nos aseguramos que si una Badi existe se detendrá en ese
punto.

Lo que estamos haciendo es poner un BREAKPOINT en el momento en que SAP


verifica si una definición de Badi tiene alguna implementación activa; por lo
tanto, aunque no exista ninguna implementación activa para esa Badi particular
el método detectará que existe una Badi en ese punto.

8| Diferencias entre las BADIS y los User Exits

Las principales diferencias entre una Badi y un User Exit son:

Pueden existir varias implementaciones activas en el mismo sistema de una


Badi pero solo una de un User Exit.

Mientras que los User Exits utilizan módulos de funciones, las Badis
utilizan métodos de objetos que se disparan en determinados momentos de los
procesos.

Las Badis poseen una arquitectura Multicapa (SAP, partners, soluciones de


clientes, localizaciones, soluciones específicas para industrias, etc) mientras que
los User Exits son doble capa únicamente (SAP y soluciones de cliente).

DESCARGAS

Ejercicio de práctica

Solución al ejercicio de práctica


LECCION 5: ENHANCEMENTS

1| Qué son los Enhancements?

ENHANCEMENTS: Son ampliaciones al código estándar de SAP mediante


las cuales podremos agregar funcionalidades determinadas para satisfacer
los requerimientos de los usuarios.

Existen dos tipos de Enhancements:

Implícitos

Explícitos

Para implementar cualquiera de los dos tipos de Enhancements debemos


presionar el botón del espiral del menú dentro de un programa SAP
estándar. A continuación veremos en detalle cada uno de ellos.

2| Enhancements Implícitos

Son aquellos que localizamos en el código estándar en ciertos lugares


predefinidos. Algunos de estos lugares son:

Al final de todos los programas después de la última sentencia.

Al comienzo y al final de todas las subrutinas.

Al final de los módulos de función.

Al final de clases locales.

Para ver todos los Enhancements implícitos en el código utilizamos la opción del
menú Edit/ Enhancement Operations/ Show Implicit Enhancement
Options.
Luego para implementar un Enhancement posicionamos el puntero del mouse
sobre los puntos implícitos y seleccionamos la opción del menú Edit/
Enhancement Operations/Create Implementation.
3| Enhancements Explícitos

Existen dos opciones de Enhancement Explícitos. Ellos son:

ENHANCEMENT-POINT: que es utilizado en un lugar determinado del código.

ENHANCEMENT-SECTION: que es utilizado para reemplazar un grupo de


declaraciones.

Cuando se implementa un Enhancement-Section solo la implementación se


ejecutará y no el código original existente. Esta es una técnica nueva, que no
existía anteriormente. A causa de esto, solo puede existir una implementación
activa de Enhancement-Section. Por otro lado, pueden existir múltiples
implementaciones activas de Enhancement-Point, en cuyo caso se ejecutarán
sin ninguna garantía de seguir un orden de ejecución determinado.

4| Cómo implementar un Enhancement?

Veamos un ejemplo sencillo de como realizar la implementación de un


Enhancement. Para ello vamos a tomar el programa estándar de SAP
SAPBC_GLOBAL_SBOOK_CREATE y presionamos el botón del espiral del
menú.

Luego vamos a la opción del menú Edit/Enhancement Operations/Show


Implicit Enhancements Options.

Nos posicionamos sobre la línea de comentarios y seleccionamos la opción del


menú Edit/Enhancements Operations/Create Implementation.
Ahora veremos una ventana de diálogo que completaremos con el nombre de la
implementación y una descripción.

Luego veremos dentro del código que se han insertado las siguientes líneas con
el nombre de la implementación para que introduzcamos nuestro código dentro.

Luego de realizadas las modificaciones dentro del Enhancement debemos


activar el mismo mediante el botón de activación .

DESCARGAS

Ejercicio de práctica
LECCION 6: ESTRUCTURAS APPEND

1| Qué es una Estructura Append?

ESTRUCTURA APPEND: Es un objeto de ABAP que se crea para agregar


datos y configuraciones adicionales a las tablas y estructuras estándar de
SAP.

También son conocidas como Ampliaciones de tablas de base de datos. Con


una Estructura Append se podrán realizar las siguientes modificaciones a una
tabla base de datos o estructura:

Insertar nuevos campos a una tabla o estructura.

Definir claves foráneas para campos de la tabla.

Agregar Ayudas de búsqueda para campos de la tabla.

Los campos que agreguemos en una Estructura Append deben tener la


nomenclatura propia del usuario, es decir deben comenzar con ZZ o con YY,
ya que de esta forma se previene que existan conflictos con los nombres de
los campos estándar de SAP.

Al momento de crear una Estructura Append es importante tener en cuenta las


siguientes características:

Una Estructura Append puede ser asignada a más de una tabla o estructura.

Si se quiere insertar un campo a una tabla o estructura que se sabe que será
agregado por SAP en la próxima versión estándar del sistema, se deberá incluir
el mismo en la tabla o estructura como una reparación. De otra forma, al
momento de actualizarse el sistema existirán dos campos iguales lo que
producirá un error. Cuando hablamos de reparación nos referimos al tipo de la
orden de transporte.

Si se copia una tabla o estructura que contiene una Estructura Append a otra
Tabla o estructura, los campos de la Estructura Append se convertirán en parte
de los campos de la tabla o estructura destino. Lo mismo sucederá con las claves
foráneas y las ayudas de búsqueda.

Se podrán crear nuevas claves foráneas o ayudas de búsqueda mediante una


Estructura Append en una tabla o estructura, pero no se podrá modificar las
claves foráneas o ayudas de búsqueda existentes mediante una Estructura
Append.

No se podrá agregar una Estructura Append a una tabla base de datos si la


Estructura Append contiene alguno de los siguientes tipos de datos: VARC,
LCHR o LRAW. Esto se debe a que son campos largos y deben ser los últimos
campos de la tabla base de datos. Sin embargo, esta excepción no existe para la
estructuras.

2| Cómo crear una Estructura Append?

Las Estructuras Append se crean a través de la transacción SE11. Vamos a crear


una Estructura Append para la tabla de vuelos SFLIGHT. Para ello presionamos
el botón Append Structure.
En la ventana de diálogo que vemos a continuación introducimos el nombre de la
Estructura Append.

Ahora indicaremos los campos que queremos incorporar en la estructura, de la


misma forma que se realiza en el diccionario de datos, luego grabamos y
activamos la estructura.
Finalmente podremos observar que la tabla SFLIGHT posee una Estructura
Append, que contiene los campos adicionales que incorporamos, como anexo a la
estructura original de la tabla.
DESCARGAS

Ejercicio de práctica

Solución al ejercicio de práctica


LECCION 7: NOTAS SAP

1| Qué son las Notas de SAP?

NOTAS DE SAP: Son procedimientos o soluciones que responden a las


preguntas o errores que reportan los usuarios de SAP en relación a la
operación del sistema.

Para ver las notas de SAP debemos acceder al SAP Support Portal mediante un
usuario y password.

Es importante destacar que en un ambiente real de trabajo, a las empresas


clientes que instalan el sistema SAP, se les proporciona un acceso al SAP
Support Portal para que puedan realizar el seguimiento de las notas.

A continuación les detallamos a modo informativo el link de acceso al Portal, ya


que no se les informará un usuario de acceso debido a que es un dato
restringido.

DESCARGAS

SAP Support Portal

2| Aplicación de una Nota SAP

Para ver el contenido de una nota de SAP utilizamos tal como definimos
anteriormente el SAP Support Portal. Allí veremos la siguiente pantalla:
Podremos buscar una nota en particular introduciendo su número en pantalla o
buscando las notas relacionadas utilizando la pantalla de selección.

Por ejemplo si buscamos las notas relacionadas al término parameter como


vemos a continuación, veremos los siguientes resultados:

Si clickeamos una de las notas para ver su contenido, veremos la siguiente


pantalla:

Los puntos importantes a leer con detalle en la nota son:

Síntoma: aquí se especifica el problema o error detectado.

Razón y Pre requisitos: aquí se especifican las razones que conducen al


error y los pre requisitos necesarios para poder aplicar la nota.

Solución: aquí se detalla la solución al problema que resuelve la nota.

Versiones afectadas: aquí se detallan los componentes del sistema afectados


por el cambio junto con sus versiones.

Notas relacionadas: aquí se especifican las notas existentes relacionadas al


problema.

La aplicación de una nota puede consistir en aplicar un


código determinado o customizar ciertos componentes del sistema.

3| Puntos importantes a tener en cuenta cuando se aplican


Notas

A continuación listamos tips muy importantes a tener en cuenta cuando se


aplican notas:

Siempre es importante realizar un backup del código anterior antes de aplicar


una nota.

No hay que preocuparse si no se entienden a la perfección los cambios a


realizar ya que en ocasiones implican realizar lógicas bastante complejas. Lo
importante es seguir la nota al pie de la letra.

Generalmente una nota explica todos los cambios a realizar en un programa,


pero esos cambios varían según la versión de SAP por ello es importante prestar
mucha atención a la versión, ya que por error se podría aplicar parte de una nota
que se refiere a una versión que no es la nuestra.

Cuando en una nota hay que agregar código, la nota no solo muestra el código
a agregar, sino que también muestra parte del código anterior y posterior a lo
que hay que agregar para que sepamos donde hay que hacerlo. Lo que hay que
tener cuidado en este caso es prestar atención a los espacios "..." que
simbolizan que hay más líneas de código.

Debemos tener cuidado cuando encontremos el código a modificar porque a


veces hay varios lugares en el código que son muy parecidos y en ocasiones
iguales. Por lo tanto, cuando se haga una búsqueda en un programa para
encontrar el lugar a realizar un cambio, verificar si no hay más de un lugar que
cumpla con esa búsqueda.

Вам также может понравиться