Académique Documents
Professionnel Documents
Culture Documents
APLICACIONES ABAP
Los programas de SAP tienen dos partes muy diferenciadas, el flujo
lógico de pantallas y el flujo lógico del proceso. Para esto último se
usa el lenguaje ABAP que es un lenguaje propietario de SAP. Las
aplicaciones ABAP tan sólo se pueden ejecutar en un servidor SAP, lo
que las hace independientes del hardware y del sistema operativo de
la máquina.
LISTAS
Las listas son pantallas que despliegan datos de forma ordenada. Lo
único que puede enviar un sistema SAP a la cola de impresión son las
listas. Para activar una lista en una aplicación ABAP usamos la
1. Introducción
2. Declaración de variables
3. Módulos de diálogos
4. Bloques de eventos
5. Procedimientos
DECLARACIÓN DE VARIABLES
Primeramente declaramos las variables globales (incluyendo clases,
selection screens…). Los datos globales son visibles para todos los
bloques. Las variables locales se definen dentro de un bloque y son
visibles sólo dentro de ese bloque.
Módulos de diálogo:
Para ejecutar este tipo de bloques usamos la instrucción MODULE y
terminamos con la instrucción ENDMODULE. Este tipo de módulos se
crean para cada estado (PBO, PAI…). Los módulos del PBO y del PAI
forman un diálogo (dialog step). Las instrucciones se interpretan por
el procesador de diálogos. Los campos de una pantalla de diálogo
deben tener el mismo nombre que el campo correspondiente de una
aplicación ABAP. Los datos se pasan de un campo a otro.
Bloques de eventos:
Estos bloques se activan bien por medio de acciones que el usuario
realiza en las pantallas, o bien por la propia aplicación ABAP. Estos
bloques están previstos para aquellos eventos en los que queremos
que el sistema reaccione. Esto quiere decir que estos bloques no
siempre se ejecutan en cada aplicación ABAP.
Constructor de programas:
Una vez que el programa se ha almacenado en la memoria del
sistema se ejecuta un bloque llamado LOAD-OF-PROGRAM, que tiene
como función construir el objeto que pretendamos (pantalla, lista…).
PROCEDIMIENTOS
Los procedimientos son bloques que contienen una interfaz y un área
local de datos. Podemos encontrar los siguientes tipos:
Subrutinas:
Las subrutinas en una aplicación ABAP se lanzan con la instrucción
PERFORM…ENDPERFORM.
Funciones:
Las funciones son módulos externos con una interfaz definida. Para
lanzar una función en ABAP usamos la instrucción
CALL FUNCTION…ENDFUNCTION.
Métodos:
Los métodos en la programación orientada a objetos son el
equivalente a las funciones, pero dentro de las clases. Al igual que las
funciones tienen una interfaz definida. Para lanzar un método en una
aplicación ABAP usamos la instrucción
CALL METHOD…ENDMETHOD.
1. Programas ejecutables
2. Módulos (Module Pools)
3. Grupos de funciones
4. Clases (Class Pools)
5. Interfaces (Interface Pools)
6. Subrutinas (Subroutine Pools)
7. Includes (Inlcude Pools)
CALL TRANSACTION
LEAVE TO TRANSACTION
Programas ejecutables:
Para crear programas ejecutables usamos el editor de ABAP. Un
programa ejecutable puede incluir todos los tipos de bloques (excepto
funciones). Para lanzar un programa ejecutable usamos la instrucción
SUBMIT.
El proceso es el siguiente:
Funciones:
Las funciones son programas almacenados en el sistema que se
pueden ejecutar desde cualquier aplicación ABAP. Se declaran
mediante la instrucción FUNCTION-POOL. Las funciones pueden
incluir cualquier tipo de bloque. La función puede incluir sus propias
pantallas.
Clases:
Las clases sólo pueden contener métodos. Se declaran con la
instrucción CLASS-POOL y pueden contener una sola clase global y
cuantas clases locales sean necesarias.
Para crear una clase podemos usar la herramienta Class Builder del
banco de trabajo (Workbench).
Interfaces:
Las interfaces no pueden incluir ni pantallas ni bloques. Son tan sólo
una declaración de clase que puede ser implementada en cualquier
otra clase (local o global). Se declaran mediante la instrucción
INTERFACE-POOL y se crean mediante el Class Builder del
Workbench.
Subrutinas:
Las subrutinas se crean en el editor de código ABAP y se declaran
mediante la instrucción PROGRAM. Los pools de subrutinas no pueden
incluir pantallas (tan sólo subrutinas).
Includes:
Los programas include no son ejecutables (no ocupan espacio en la
memoria). Tan sólo son instrucciones que sirven para cargar librerías
de código ABAP. Estas librerías se pueden llamar desde cualquier
programa ABAP mediante la instrucción INCLUDE.
Tipos.
Los pools de tipos se crean en el Diccionario ABAP y se declaran con
la instrucción TYPE-POOL. No pueden incluir ni pantallas ni bloques de
procesado. Tan solo son contenedores de tipos de datos globales para
usar en cualquier aplicación ABAP.
LA PROGRAMACIÓN DE DIÁLOGOS
Al estar SAP dividido en tres capas, el control va pasando de una
capa a otra. Si se está ejecutando una pantalla el control lo tiene el
procesador de pantallas. Cuando los datos introducidos por el usuario
son procesados por la aplicación ABAP el control pasa al procesador
de ABAP.
El proceso es el siguiente:
Dispatching:
Un proceso sólo puede hacer cambios en una única base de datos
lógica o LUW (Logical Unit of Work). Es decir los contenidos de la
base de datos deben ser consistentes de principio a fin de la
operación.
Esto implica que la base de datos tan sólo puede estar abierta
(cerrada al resto de los usuarios) durante un máximo de un diálogo
(dialogue step). Si una actualización de una base de datos se basa en
más de un diálogo estos deben de ejecutarse juntos. Esto se hace en
una sección de la aplicación llamada un SAP LUW.
El editor de ABAP:
Para abrir el editor de código hay tres posibilidades: