Abap

5
ABAP (Advanced Business Application Programming) es un lenguaje de cuarta generación , propiedad de SAP , que se utiliza para programar la mayoría de sus productos ( R/3 , mySAP Business suite ...). 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. Permite conexiones RFC (Remote Function Calls) para conectar a los sistemas SAP con cualquier otro sistema o lenguaje de programación. Historia ABAP fue desarrollado por SAP como lenguaje de informes para SAP R/2, en los años 80, una plataforma que permitía a las grandes corporaciones construir aplicaciones de negocios para gestión de materiales y finanzas. ABAP, muy parecido al COBOL en sus orígenes, originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor, palabras alemanas para procesador genérico para la preparación de informes. En sus inicios ABAP incluía el concepto de Bases de datos lógicas, que suministraba un alto nivel de abstracción para el acceso a bases de datos. ABAP fue pensado como un lenguaje de programación para que los usuarios finales pudieran manipular la información, pero el 4GL se fue volviendo demasiado complicado para usuarios normales, por lo que es necesario programadores experimentados para realizar desarrollos. ABAP se mantuvo como el lenguaje de desarrollo para la siguiente versión cliente-servidor de SAP R/3, que fue lanzada al mercado en 1992, en el que casi todo el sistema, menos las llamadas al sistema básicas estaban escritas en ABAP. En 1999, con el lanzamiento de la versión 4.6 de R/3, SAP lanzó una extensión orientada a objetos denominadaABAP

Transcript of Abap

Page 1: Abap

ABAP

(Advanced Business Application Programming) es un lenguaje de cuarta generación, propiedad de SAP, que se utiliza para programar la mayoría de sus productos (R/3, mySAP Business suite...). 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. Permite conexiones RFC (Remote Function Calls) para conectar a los sistemas SAP con cualquier otro sistema o lenguaje de programación.

Historia

ABAP fue desarrollado por SAP como lenguaje de informes para SAP R/2, en los

años 80, una plataforma que permitía a las grandes corporaciones construir

aplicaciones de negocios para gestión de materiales y finanzas. ABAP, muy

parecido al COBOL en sus orígenes, originalmente

significaba Allgemeiner Berichtsaufbereitungsprozessor, palabras alemanas

para procesador genérico para la preparación de informes. En sus inicios ABAP

incluía el concepto de Bases de datos lógicas, que suministraba un alto nivel de

abstracción para el acceso a bases de datos.

ABAP fue pensado como un lenguaje de programación para que los usuarios

finales pudieran manipular la información, pero el 4GL se fue volviendo demasiado

complicado para usuarios normales, por lo que es necesario programadores

experimentados para realizar desarrollos.

ABAP se mantuvo como el lenguaje de desarrollo para la siguiente versión cliente-

servidor de SAP R/3, que fue lanzada al mercado en 1992, en el que casi todo el

sistema, menos las llamadas al sistema básicas estaban escritas en ABAP. En

1999, con el lanzamiento de la versión 4.6 de R/3, SAP lanzó una extensión

orientada a objetos denominadaABAP Objects. La versión más actual en estos

momentos de SAP es la release 6.6.

La última plataforma de desarrollo de SAP, NetWeaver, soporta ABAP

y Java como lenguajes de programación.

Page 2: Abap

Tipos de programas ABAP

Como en otros lenguajes de programación, un programa ABAP no es simplemente

una unidad ejecutable o una biblioteca, sino que proporciona código ejecutable

para otros programas no ejecutado independientemente.

ABAP distingue entre dos tipos de programas:

Informes

Module pool

Los informes siguen un modelos de programación relativamente simple, donde el

usuario introduce una serie de parámetros y el programa los usa para producir un

informe en forma de lista interactiva. El término informe puede llevar a equívoco

puesto que los informes pueden ser diseñados para modificar datos, la razón por

la que estos programas se llaman informes es la “lista-orientada” que estos

producen como salida.

Los module pools definen unos patrones más complejos de interacción con el

usuario a través de una colección de pantallas. El término “pantalla” se refiere a la

actualidad, la imagen física que los usuarios pueden ver. Cada pantalla también

tienen un “flujo lógico”, el cual se refiere a código implícito de ABAP invocado por

las pantallas. Cada pantalla tiene su propio flujo lógico, el cual se divide en

“PBO”(Process Before Output) y PAI (Process after Input). En la documentación

de SAP el término “dynpro” (programa dinámico) se refiere a la combinación entre

las pantallas y el flujo lógico.

Los tipos de programas no ejecutables son:

INCLUDE modules

Subroutine pools

Function groups

Object clases

Interfaces

Type pools

Un Include module incluye en tiempo de generación en la unidad de llamada; Esto

es usado en ocasiones para subdividir programas muy largos. Subroutine pools

contienen subrutinas ABAP (bloques de código cerrados por FORM/ENDFORM e

invocados por PERFORM). Las Functions groups son librerías de modulos de

Page 3: Abap

funciones (encerradas entre FUNCTION/ENDFUNCTION e invocadas por CALL

FUNCTION). Los object clases e interfaces son similares a las clases e interfaces

de java; las primeras definen una serie de métodos y atributos y las segundas

contienen la definición de los métodos, para cada una de las clases

implementadas se debe ofrecer el código de la misma. Las Type pools definen una

colección de datos, tipos y constantes.

Diccionario ABAP

El diccionario ABAP contiene todos los metadatos acerca del sistema SAP. Está

muy ligado con la plataforma de trabajo de ABAP en el que cualquier referencia a

los datos se obtiene del diccionario (por ejemplo, tablas, vistas, tipos de datos ) .

Los desarrolladores usan el diccionario de transacciones de ABAP(directamente o

a través del objeto navegador dentro de la plataforma de trabajo SE80) para

mostrar y mantener los metadatos.

Cuando un objeto del diccionario es modificado, un programa que lo referencie

automáticamente cambia su referencia al nuevo estado del objeto la próxima vez

que se ejecute. Ya que ABAP es interpretado, no es necesario recompilar

programas que referencien a objetos que se modifiquen dentro del diccionario

A continuación una breve descripción de los tipos de datos más importantes del

diccionario:

Tablas: son contenedores de datos que existen en la base de datos relacional

subyacente. En la mayoría de los casos hay una relación 1 a 1 entre la

definición de la tabla en el diccionario ABAp y la definición de la misma tabla

en la base de datos(mismo nombre, mismas columnas…). Estas tablas se

conocen como “transparentes”. Hay dos tipos de tablas no transparentes:

“pooled”, que son las que existen como entidades independientes dentro del

diccionario pero que se agrupan juntas en una largas tablas físicas (“pools”) a

nivel de base de datos. Las tablas combinadas son normalmente pequeñas

tablas que mantienen por ejemplo datos de configuración. Las tablas clustered

están físicamente agrupadas en clusters, basados en claves primarias;.

Índices, proporcionan accesos rápidos a los datos de las tablas para aquella

selecciones usadas con mayor frecuencia. Todas las tablas de SAP tienen un

índice primario, el cual se crea implícitamente a lo largo de que la tabla es

Page 4: Abap

usada forzando así que estos sean únicos, otros índices tienen que definirse y

se llaman: “índices secundarios”

Vistas: tienen el mismo propósito que en la base de datos subyacente: estas

definen un subconjunto de columnas desde una o más tablas usando

condiciones join. Una vista es una tabla virtual que no contiene ningún dato

físicamente. Ocupan muy poco espacio puesto que solo contienen la definición

del dato.

Estructuras: son tipos de datos complejos que contienen varios campos(como

los strutct en C/C++)

Elementos de datos: proporcionan contenido semántico a una tabla o campo

estructurado. Por ejemplo, una docena de tablas y estructuras pueden

contener un campo que da un precio. Todos estos campos pueden tener el

mismo elemento “PRECIO”.

Dominios: definen las características estructurales de los elementos

anteriormente mencionados. Por ejemplo, el elemento “precio” puede poseer

un dominio que lo define como un campo numérico con dos decimales. Los

dominios también pueden proporcionar contenido semántico proporcionando

una posible lista de valores.

Búsquedas de ayuda: proporciona una estrategia de búsqueda avanzada

cuando un usuario quiere ver el posible valor que tiene un campo. El runtime

de ABAP proporciona asistencia implícita pero dicha ayuda puede refinar esta

funcionalidad

Objetos bloqueados implementan bloqueos a nivel de aplicación cuando se

modifican datos.

Bibliografía

http://es.wikipedia.org/wiki/ABAP