fbpx
Wikipedia

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.

ABAP/4
SAP SE
http://scn.sap.com/community/abap
Información general
Paradigma Orientado a objetos, estructurado, imperativa
Apareció en 1983
Diseñado por SAP AG
Implementaciones SAP R/2, SAP R/3
Influido por Objective-C, COBOL, SQL

SAP suministra una instalación limitada de R/3 llamada MiniSAP para la práctica de la programación en ABAP. MiniSap ha sido reemplazado por SAP NetWeaver 7.03 Trial Versió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 denominada ABAP 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.

Transacciones

Una transacción en terminología SAP es la ejecución de un programa. La forma normal de ejecutar código ABAP en el sistema SAP es ingresando un código de transacción (por ejemplo, VA01 es el código de transacción para “Crear Órdenes de Venta”). Las Transacciones pueden ser llamadas a través de menús definidos por el sistema, especificados por el usuario o basados en roles. También pueden ser invocados mediante el ingreso del código de transacción directamente en el campo de comandos, el cual está presente en todas las pantallas SAP. Las transacciones también pueden ser invocadas por código mediante las sentencias ABAP “CALL TRANSACTION” y “LEAVE TO TRANSACTION”. El término “transacción” no debe ser mal interpretado, en el contexto aquí descrito una transacción simplemente significa el llamado a la ejecución de un programa. En otros contextos de programación, “transacción” se refiere a menudo a una operación indivisible sobre datos. Este último concepto también existe en SAP y es llamado LUW (Logical Unit of Work) . En el transcurso de una transacción (ejecución de un programa), puede haber diferentes LUWs.

ABAP es un lenguaje de programación lógicamente sobre la plataforma de SAP. Se recomienda instalar SAP ECC, en la modalidad de tres capas, server-presentation-database. La academia ABAP es muy recomendada para aquellos que sean apasionados de la programación en SAP, ya que lo anteriormente comentando es sólo una pequeña parte de lo que puede abarcar el sistema SAP.

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 módulos de 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.

Plataforma de trabajo de ABAP

La plataforma de trabajo de ABAP contiene diferentes herramientas para la edición de programas. La más importante son(Los códigos de transacción[1]​ aparecen entre paréntesis):

  • Editor para escribir informes, module pools, includes y subroutine pools (SE38)
  • Diccionario de base de datos para el procesamiento de las definiciones de tabla y recuperar tipos globales.(SE11)
  • Menú Painter para el diseño de la interfaz de usuario (barras de menú, de aplicaciones, asignación de teclas)(SE41)
  • Screen Painter para diseñar pantallas y flujos lógicos(SE51)
  • Constructor de funciones para los módulos de funciones(SE37)
  • Constructor de clases para las clases de objetos de ABAP e interfaces(SE24)

El navegador de objetos(SE80) proporciona una interfaz integrada simple para todas estas herramientas.

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 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.

Sintaxis

Una breve descripción acerca de la sintaxis de ABAP comienza inevitablemente por el conocido “Hola mundo”

"Hola Mundo"

REPORT TEST. WRITE 'Hola Mundo'. 

Este ejemplo contiene dos declaraciones: REPORT y WRITE. El programa muestra una lista en pantalla. En este caso, la lista consiste en una simple línea donde pondrá “Hola Mundo”. La declaración REPORT indica que este programa es un informe. Alternativamente se podría usar PROGRAM para los ‘module pool’

Dando formato a las reglas

El formato básico de las reglas ABAP es simple:

  • cada declaración ABAP debe terminar en un punto
  • Los elementos dentro de cada declaración deben estar separados por lo menos por un espacio
  • El final de línea es equivalente al espacio
  • las declaraciones y palabras clave no distinguen entre mayúsculas y minúsculas

Para asegurar que un código sea legible, el editor de ABAP proporciona una pequeña función de edición, que se encarga de colocar correctamente el sangrado. Esta también ofrece la posibilidad de escoger entre algunos modelos estandarizados acerca de las mayúsculas (por ejemplo todo mayúsculas, todo minúsculas, mayúsculas para declaraciones y palabras clave… etc.).

Si un texto en una declaración ABAP ocupa más de una línea, podemos usar el carácter & para combinar la sucesión de las mismas como si fuera una sola.

USERPROMPT = 'Por favor doble clic en la lista de salida ' &  'para ver la información completa de la transacción.'. 

La regla de que los elementos deben estar separados al menos por un espacio, incluye también a los paréntesis, operadores y otros símbolos, por ejemplo el siguiente código sería incorrecto:

X=(A+B)-(C+2). 

Los nombres de las variables (A,B,C,X) son constantes numéricas, los operadores "=", "+" y "-" y el paréntesis deben estar delimitados por un espacio en blanco. La forma correcta sería:

X = ( A + B ) - ( C + 2 ). 

Declaraciones encadenadas

Declaraciones consecutivas que posean una idéntica primera parte, se pueden combinar en una declaración “encadenada” usando el operador de cadenas “:”. La parte común de las declaraciones se escribe a la izquierda de los dos puntos y las diferentes a la derecha separadas por comas. El operador dos puntos está unido directamente con el elemento anterior, sin un espacio. El encadenamiento se usa normalmente con WRITE. Este acepta solo un argumento, con el operador dos puntos podremos encadenar por ejemplo 3 campos.

WRITE FLIGHTINFO-CITYFROM. WRITE FLIGHTINFO-CITYTO. WRITE FLIGHTINFO-AIRPTO. 

Encadenar los campos hace que el código sea más legible y tenga una forma más intuitiva

WRITE: FLIGHTINFO-CITYFROM, FLIGHTINFO-CITYTO, FLIGHTINFO-AIRPTO. 

En una declaración encadenada, la primera parte no se limita al nombre del comando sólo. Toda la parte común de las declaraciones se pueden colocar antes de los dos puntos. Por ejemplo:

REPLACE 'A' WITH 'B' INTO LASTNAME. REPLACE 'A' WITH 'B' INTO FIRSTNAME. REPLACE 'A' WITH 'B' INTO CITYNAME. 

Se puede reescribir como:

REPLACE 'A' WITH 'B' INTO: LASTNAME, FIRSTNAME, CITYNAME. 

Comentarios

ABAP posee dos formas de definir comentarios:

  • Un asterisco a la izquierda de la línea hace que toda la línea sea un comentario
  • Las doble comillas en cualquier lugar en una línea hace que el resto de la misma se convierta en un comentario
REPORT BOOKINGS. * Leer las reservas de vuelos de la base de datos SELECT * FROM FLIGHTINFO WHERE CLASS = 'Y' "Y = precio OR CLASS = 'C'. "C = clase (...) 

Espacios

El lenguaje ABAP es sensible a los espacios en blanco.

x = a+b(c). 

La sentencia anterior asigna a x la subcadena de caracteres de la variable a, empezando desde la posición b hasta completar una subcadena de c caracteres, donde x y a son cadenas de caracteres, mientras que b y c son números enteros.

Sin embargo, si añadimos espacios de por medio a la misma expresión, hace algo completamente diferente, como podemos ver a continuación:

x = a + b( c ). 

La sentencia anterior asigna a la variable x la suma de la variable a y el resultado de llamar al método b pasándole el parámetro c.

Variables y tipos de datos

ABAP proporciona un conjunto de tipos de datos de serie. Además, cada estructura, tabla, vista o elemento definido en el diccionario de ABAP puede ser usado como tipo de variable. También las interfaces y las clases de objetos.

Tipo Descripción
I Entero (4-bytes)
P decimal
F punto flotante
N carácter numérico
C carácter
D fecha
T tiempo
X Hexadecimal (raw byte)
STRING Cadena de caracteres
XSTRING Variable-length raw byte array

Las variables y constantes del tipo D contienen un número de días desde el 1 de enero de año 1. Las variables de tipo T contienen el número de segundos desde media noche. Una característica especial de estos tipo es que se puede acceder a ellos como enteros y como cadenas de caracteres(poseen el formato interno “YYYYMMDD” para los tipo fecha y “hhmmss” para las variables de tipo T) lo que hace que sea muy sencillo manejar fechas. Por ejemplo el código a continuación calcula el último día del mes anterior.

DATA LAST_EOM TYPE D. "Último día del pasado mes * empezando desde hoy LAST_EOM = SY-DATUM. * Ponemos los caracteres 6 y 7 de YYYYMMDD como cadena a "01", * dando el primer día del mes actual LAST_EOM+6(2) = '01'. * restamos 1 día LAST_EOM = LAST_EOM - 1. WRITE: 'el último día del mes anterior fue', LAST_EOM. 

Todas las variables en ABAP tienen que declararse explícitamente para que puedan usarse. Normalmente todas las declaraciones se colocan en la parte superior del código antes de la primera sentencia de ejecución; este lugar es por convención no una regla de sintaxis. La declaración consiste en el nombre, tipo, longitud(cuando corresponda), modificadores adicionales (como número de decimales) y el valor inicial de la variable:

DATA: COUNTER TYPE I, VALIDITY TYPE I VALUE 60, TAXRATE(3) TYPE P DECIMALS 1, LASTNAME(20) TYPE C, DESCRIPTION TYPE STRING. * Tipo del diccionario: DATA: ORIGIN TYPE COUNTRY. * Tablas internas: DATA: T_FLIGHTS TYPE TABLE OF FLIGHTINFO, T_LOOKUP TYPE HASHED TABLE OF FLT_LOOKUP. * Objetos: DATA: BOOKING TYPE REF TO CL_FLT_BOOKING. 

Recuerde usar los dos puntos para encadenar sentencias.

Bibliografía recomendada

  • Hijón Neira, Raquel (2005): Programación en ABAP/4 para SAP R/3. Editorial: Universidad Pontificia Comillas (ICAI-ICADE), Colección Ingeniería.
  • Tejada Galindo, Álvaro (2006): El Arte de Programar SAP R/3. Editorial: Lulu Press.
  • Tejada Galindo, Álvaro (2008): El Arte de Programar SAP NetWeaver. Editorial: Lulu Press.

Véase también

Referencias

  1. "Transaction codes"

Enlaces externos

  • SAP ABAP en castellano
  • Todos los módulos SAP y de Programación ABAP de habla hispana
  • Últimos debates sobre SAP ABAP
  • SAP Developer Network
  • MundoSAP
  • La WEB de programación ABAP 4
  • El Blog Tecnológico de Blag
  • Información y notas técnicas para consultores y programadores SAP
  • Recursos y tutoriales en castellano para desarrolladores ABAP
  • Artículos de Programación ABAP en español
  •   Datos: Q380523

abap, advanced, business, application, programming, lenguaje, cuarta, generación, propiedad, utiliza, para, programar, mayoría, productos, mysap, business, suite, utiliza, sentencias, open, para, conectarse, prácticamente, cualquier, base, datos, cuenta, miles. ABAP Advanced Business Application Programming es un lenguaje de cuarta generacion propiedad de SAP que se utiliza para programar la mayoria de sus productos R 3 mySAP Business suite Utiliza sentencias de Open SQL para conectarse con practicamente 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 programacion ABAP 4SAP SEhttp scn sap com community abapInformacion generalParadigmaOrientado a objetos estructurado imperativaAparecio en1983Disenado porSAP AGImplementacionesSAP R 2 SAP R 3Influido porObjective C COBOL SQL editar datos en Wikidata SAP suministra una instalacion limitada de R 3 llamada MiniSAP para la practica de la programacion en ABAP MiniSap ha sido reemplazado por SAP NetWeaver 7 03 Trial Version Indice 1 Historia 2 Transacciones 3 Tipos de programas ABAP 4 Plataforma de trabajo de ABAP 5 Diccionario ABAP 6 Sintaxis 6 1 Hola Mundo 6 2 Dando formato a las reglas 6 3 Declaraciones encadenadas 6 4 Comentarios 6 5 Espacios 7 Variables y tipos de datos 8 Bibliografia recomendada 9 Vease tambien 10 Referencias 11 Enlaces externosHistoria EditarABAP fue desarrollado por SAP como lenguaje de informes para SAP R 2 en los anos 80 una plataforma que permitia a las grandes corporaciones construir aplicaciones de negocios para gestion de materiales y finanzas ABAP muy parecido al COBOL en sus origenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador generico para la preparacion de informes En sus inicios ABAP incluia el concepto de Bases de datos logicas que suministraba un alto nivel de abstraccion para el acceso a bases de datos ABAP fue pensado como un lenguaje de programacion para que los usuarios finales pudieran manipular la informacion 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 version 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 basicas estaban escritas en ABAP En 1999 con el lanzamiento de la version 4 6 de R 3 SAP lanzo una extension orientada a objetos denominada ABAP Objects La version mas actual en estos momentos de SAP es la release 6 6 La ultima plataforma de desarrollo de SAP NetWeaver soporta ABAP y Java como lenguajes de programacion Transacciones EditarUna transaccion en terminologia SAP es la ejecucion de un programa La forma normal de ejecutar codigo ABAP en el sistema SAP es ingresando un codigo de transaccion por ejemplo VA01 es el codigo de transaccion para Crear ordenes de Venta Las Transacciones pueden ser llamadas a traves de menus definidos por el sistema especificados por el usuario o basados en roles Tambien pueden ser invocados mediante el ingreso del codigo de transaccion directamente en el campo de comandos el cual esta presente en todas las pantallas SAP Las transacciones tambien pueden ser invocadas por codigo mediante las sentencias ABAP CALL TRANSACTION y LEAVE TO TRANSACTION El termino transaccion no debe ser mal interpretado en el contexto aqui descrito una transaccion simplemente significa el llamado a la ejecucion de un programa En otros contextos de programacion transaccion se refiere a menudo a una operacion indivisible sobre datos Este ultimo concepto tambien existe en SAP y es llamado LUW Logical Unit of Work En el transcurso de una transaccion ejecucion de un programa puede haber diferentes LUWs ABAP es un lenguaje de programacion logicamente sobre la plataforma de SAP Se recomienda instalar SAP ECC en la modalidad de tres capas server presentation database La academia ABAP es muy recomendada para aquellos que sean apasionados de la programacion en SAP ya que lo anteriormente comentando es solo una pequena parte de lo que puede abarcar el sistema SAP Tipos de programas ABAP EditarComo en otros lenguajes de programacion un programa ABAP no es simplemente una unidad ejecutable o una biblioteca sino que proporciona codigo ejecutable para otros programas no ejecutado independientemente ABAP distingue entre dos tipos de programas Informes Module poolLos informes siguen un modelos de programacion relativamente simple donde el usuario introduce una serie de parametros y el programa los usa para producir un informe en forma de lista interactiva El termino informe puede llevar a equivoco puesto que los informes pueden ser disenados para modificar datos la razon por la que estos programas se llaman informes es la lista orientada que estos producen como salida Los module pools definen unos patrones mas complejos de interaccion con el usuario a traves de una coleccion de pantallas El termino pantalla se refiere a la actualidad la imagen fisica que los usuarios pueden ver Cada pantalla tambien tienen un flujo logico el cual se refiere a codigo implicito de ABAP invocado por las pantallas Cada pantalla tiene su propio flujo logico el cual se divide en PBO Process Before Output y PAI Process after Input En la documentacion de SAP el termino dynpro programa dinamico se refiere a la combinacion entre las pantallas y el flujo logico Los tipos de programas no ejecutables son INCLUDE modules Subroutine pools Function groups Object clases Interfaces Type poolsUn Include module incluye en tiempo de generacion en la unidad de llamada esto es usado en ocasiones para subdividir programas muy largos Subroutine pools contienen subrutinas ABAP bloques de codigo cerrados por FORM ENDFORM e invocados por PERFORM Las Functions groups son librerias de modulos de 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 metodos y atributos y las segundas contienen la definicion de los metodos para cada una de las clases implementadas se debe ofrecer el codigo de la misma Las Type pools definen una coleccion de datos tipos y constantes Plataforma de trabajo de ABAP EditarLa plataforma de trabajo de ABAP contiene diferentes herramientas para la edicion de programas La mas importante son Los codigos de transaccion 1 aparecen entre parentesis Editor para escribir informes module pools includes y subroutine pools SE38 Diccionario de base de datos para el procesamiento de las definiciones de tabla y recuperar tipos globales SE11 Menu Painter para el diseno de la interfaz de usuario barras de menu de aplicaciones asignacion de teclas SE41 Screen Painter para disenar pantallas y flujos logicos SE51 Constructor de funciones para los modulos de funciones SE37 Constructor de clases para las clases de objetos de ABAP e interfaces SE24 El navegador de objetos SE80 proporciona una interfaz integrada simple para todas estas herramientas Diccionario ABAP EditarEl diccionario ABAP contiene todos los metadatos acerca del sistema SAP Esta 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 traves 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 automaticamente cambia su referencia al nuevo estado del objeto la proxima vez que se ejecute Ya que ABAP es interpretado no es necesario recompilar programas que referencien a objetos que se modifiquen dentro del diccionarioA continuacion una breve descripcion de los tipos de datos mas importantes del diccionario Tablas son contenedores de datos que existen en la base de datos relacional subyacente En la mayoria de los casos hay una relacion 1 a 1 entre la definicion de la tabla en el diccionario ABAp y la definicion 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 fisicas pools a nivel de base de datos Las tablas combinadas son normalmente pequenas tablas que mantienen por ejemplo datos de configuracion Las tablas clustered estan fisicamente agrupadas en clusters basados en claves primarias Indices proporcionan accesos rapidos a los datos de las tablas para aquella selecciones usadas con mayor frecuencia Todas las tablas de SAP tienen un indice primario el cual se crea implicitamente a lo largo de que la tabla es usada forzando asi que estos sean unicos otros indices tienen que definirse y se llaman indices secundarios Vistas tienen el mismo proposito que en la base de datos subyacente estas definen un subconjunto de columnas desde una o mas tablas usando condiciones join Una vista es una tabla virtual que no contiene ningun dato fisicamente Ocupan muy poco espacio puesto que solo contienen la definicion del dato Estructuras son tipos de datos complejos que contienen varios campos como los strutct en C C Elementos de datos proporcionan contenido semantico 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 caracteristicas estructurales de los elementos anteriormente mencionados Por ejemplo el elemento precio puede poseer un dominio que lo define como un campo numerico con dos decimales Los dominios tambien pueden proporcionar contenido semantico proporcionando una posible lista de valores Busquedas de ayuda proporciona una estrategia de busqueda avanzada cuando un usuario quiere ver el posible valor que tiene un campo El runtime de ABAP proporciona asistencia implicita pero dicha ayuda puede refinar esta funcionalidad Objetos bloqueados implementan bloqueos a nivel de aplicacion cuando se modifican datos Sintaxis EditarUna breve descripcion acerca de la sintaxis de ABAP comienza inevitablemente por el conocido Hola mundo Hola Mundo Editar REPORT TEST WRITE Hola Mundo Este ejemplo contiene dos declaraciones REPORT y WRITE El programa muestra una lista en pantalla En este caso la lista consiste en una simple linea donde pondra Hola Mundo La declaracion REPORT indica que este programa es un informe Alternativamente se podria usar PROGRAM para los module pool Dando formato a las reglas Editar El formato basico de las reglas ABAP es simple cada declaracion ABAP debe terminar en un punto Los elementos dentro de cada declaracion deben estar separados por lo menos por un espacio El final de linea es equivalente al espacio las declaraciones y palabras clave no distinguen entre mayusculas y minusculasPara asegurar que un codigo sea legible el editor de ABAP proporciona una pequena funcion de edicion que se encarga de colocar correctamente el sangrado Esta tambien ofrece la posibilidad de escoger entre algunos modelos estandarizados acerca de las mayusculas por ejemplo todo mayusculas todo minusculas mayusculas para declaraciones y palabras clave etc Si un texto en una declaracion ABAP ocupa mas de una linea podemos usar el caracter amp para combinar la sucesion de las mismas como si fuera una sola USERPROMPT Por favor doble clic en la lista de salida amp para ver la informacion completa de la transaccion La regla de que los elementos deben estar separados al menos por un espacio incluye tambien a los parentesis operadores y otros simbolos por ejemplo el siguiente codigo seria incorrecto X A B C 2 Los nombres de las variables A B C X son constantes numericas los operadores y y el parentesis deben estar delimitados por un espacio en blanco La forma correcta seria X A B C 2 Declaraciones encadenadas Editar Declaraciones consecutivas que posean una identica primera parte se pueden combinar en una declaracion encadenada usando el operador de cadenas La parte comun de las declaraciones se escribe a la izquierda de los dos puntos y las diferentes a la derecha separadas por comas El operador dos puntos esta unido directamente con el elemento anterior sin un espacio El encadenamiento se usa normalmente con WRITE Este acepta solo un argumento con el operador dos puntos podremos encadenar por ejemplo 3 campos WRITE FLIGHTINFO CITYFROM WRITE FLIGHTINFO CITYTO WRITE FLIGHTINFO AIRPTO Encadenar los campos hace que el codigo sea mas legible y tenga una forma mas intuitiva WRITE FLIGHTINFO CITYFROM FLIGHTINFO CITYTO FLIGHTINFO AIRPTO En una declaracion encadenada la primera parte no se limita al nombre del comando solo Toda la parte comun de las declaraciones se pueden colocar antes de los dos puntos Por ejemplo REPLACE A WITH B INTO LASTNAME REPLACE A WITH B INTO FIRSTNAME REPLACE A WITH B INTO CITYNAME Se puede reescribir como REPLACE A WITH B INTO LASTNAME FIRSTNAME CITYNAME Comentarios Editar ABAP posee dos formas de definir comentarios Un asterisco a la izquierda de la linea hace que toda la linea sea un comentario Las doble comillas en cualquier lugar en una linea hace que el resto de la misma se convierta en un comentarioREPORT BOOKINGS Leer las reservas de vuelos de la base de datos SELECT FROM FLIGHTINFO WHERE CLASS Y Y precio OR CLASS C C clase Espacios Editar El lenguaje ABAP es sensible a los espacios en blanco x a b c La sentencia anterior asigna a x la subcadena de caracteres de la variable a empezando desde la posicion b hasta completar una subcadena de c caracteres donde x y a son cadenas de caracteres mientras que b y c son numeros enteros Sin embargo si anadimos espacios de por medio a la misma expresion hace algo completamente diferente como podemos ver a continuacion x a b c La sentencia anterior asigna a la variable x la suma de la variable a y el resultado de llamar al metodo b pasandole el parametro c Variables y tipos de datos EditarABAP proporciona un conjunto de tipos de datos de serie Ademas cada estructura tabla vista o elemento definido en el diccionario de ABAP puede ser usado como tipo de variable Tambien las interfaces y las clases de objetos Tipo DescripcionI Entero 4 bytes P decimalF punto flotanteN caracter numericoC caracterD fechaT tiempoX Hexadecimal raw byte STRING Cadena de caracteresXSTRING Variable length raw byte arrayLas variables y constantes del tipo D contienen un numero de dias desde el 1 de enero de ano 1 Las variables de tipo T contienen el numero de segundos desde media noche Una caracteristica especial de estos tipo es que se puede acceder a ellos como enteros y como cadenas de caracteres poseen el formato interno YYYYMMDD para los tipo fecha y hhmmss para las variables de tipo T lo que hace que sea muy sencillo manejar fechas Por ejemplo el codigo a continuacion calcula el ultimo dia del mes anterior DATA LAST EOM TYPE D Ultimo dia del pasado mes empezando desde hoy LAST EOM SY DATUM Ponemos los caracteres 6 y 7 de YYYYMMDD como cadena a 01 dando el primer dia del mes actual LAST EOM 6 2 01 restamos 1 dia LAST EOM LAST EOM 1 WRITE el ultimo dia del mes anterior fue LAST EOM Todas las variables en ABAP tienen que declararse explicitamente para que puedan usarse Normalmente todas las declaraciones se colocan en la parte superior del codigo antes de la primera sentencia de ejecucion este lugar es por convencion no una regla de sintaxis La declaracion consiste en el nombre tipo longitud cuando corresponda modificadores adicionales como numero de decimales y el valor inicial de la variable DATA COUNTER TYPE I VALIDITY TYPE I VALUE 60 TAXRATE 3 TYPE P DECIMALS 1 LASTNAME 20 TYPE C DESCRIPTION TYPE STRING Tipo del diccionario DATA ORIGIN TYPE COUNTRY Tablas internas DATA T FLIGHTS TYPE TABLE OF FLIGHTINFO T LOOKUP TYPE HASHED TABLE OF FLT LOOKUP Objetos DATA BOOKING TYPE REF TO CL FLT BOOKING Recuerde usar los dos puntos para encadenar sentencias Bibliografia recomendada EditarHijon Neira Raquel 2005 Programacion en ABAP 4 para SAP R 3 Editorial Universidad Pontificia Comillas ICAI ICADE Coleccion Ingenieria Tejada Galindo Alvaro 2006 El Arte de Programar SAP R 3 Editorial Lulu Press Tejada Galindo Alvaro 2008 El Arte de Programar SAP NetWeaver Editorial Lulu Press Vease tambien EditarSAPReferencias Editar Transaction codes Enlaces externos EditarSAP ABAP en castellano Todos los modulos SAP y de Programacion ABAP de habla hispana Ultimos debates sobre SAP ABAP SAP Developer Network MundoSAP La WEB de programacion ABAP 4 Generacion automatica de reportes ALV El Blog Tecnologico de Blag Informacion y notas tecnicas para consultores y programadores SAP Recursos y tutoriales en castellano para desarrolladores ABAP Articulos de Programacion ABAP en espanol Datos Q380523Obtenido de https es wikipedia org w index php title ABAP amp oldid 132470869, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos