✒️ABAP / El lenguaje de programación ABAP Por Rodrigo Fernandez
ABAP El lenguaje de programación ABAP

Advanced Business Applicaction Programming, es un lenguaje de programación de cuarta generación de SAP que se utiliza para operar SAP ECC y S4/HANA.
Muchas veces, los clientes adquieren SAP pero hay una necesidad del negocio o funcionalidad que no está en el estándar del sistema. Es por ello que en el entorno de desarrollo ABAP, hay herramientas integradas que crean soluciones para los problemas planteados por el cliente.
Este lenguaje estructurado y orientado a eventos se integra completamente a SAP, ya que es el lenguaje en el que está escrito.
- Estructurado: posee secuencias (orden en que las instrucciones se ejecutan), instrucciones condicionales o selecciones (se elije entre dos instrucciones mediante una evaluación llamada condición) e interacciones (repetición de una instrucción mientras se cumple una condición).
- Orientado a eventos: la secuencia de instrucciones depende del cumplimiento de una condición. Es un paradigma donde la estructura y ejecución de programas se determina por las acciones que ocurren en el sistema.
Utilizamos ABAP para realizar nuevos desarrollos o modificaciones para todas las áreas funcionales, módulos o LoB de SAP.
ABAP a través del tiempo
- 1980 - 1992: fue desarrollado como lenguaje de programación para realizar reportes en SAP R/2, siendo una mezcla de COBOL y SQL. Al principio, usuarios comunes podían manipularlo, pero se volvió mas complejo y requirió de expertos.
- 1992 - 1999: se mantuvo como lenguaje de desarrollo para la versión cliente - servidor SAP R/3 casi en su totalidad menos para las llamadas al sistema básicas.
- 1999 - actualidad: al aparecer la versión 4.6 de SAP R/3, surge la extensión orientada a objetos ABAP Objetcs. Actualmente se incorporaron diversos lenguajes de programación de última tecnología que permite programar en otros entornos de desarrollo diferentes al ABAP Development Workbench.
Fortalezas de ABAP
- Utiliza sentencias de Open SQL para conectarse con cualquier base de datos: solamente para versiones anteriores a S4/HANA, se pueden conectar a otras bases de datos.
- Si bien es estructurado, se puede programar orientado a eventos y objetos.
- Posee múltiples funciones para el manejo de archivos, bases de datos, fechas, caracteres y demás, haciendo que las operaciones complejas, sean más simples.
- Permite conexiones RFC para conectar a los sistemas SAP con cualquier otro sistema o lenguaje de programación-
Remote Function Call: es un protocolo que permite que un programa ejecute código en una máquina remota sin preocuparse por la comunicación entre ambas máquinas, siempre y cuando haya sido configurado previamente por el administrador del sistema.
En el contexto de SAP, se utilizan las RFC para establecer conexiones y permitir que diferentes sistemas SAP se comuniquen entre sí. La configuración de las RFC se realiza en la transacción SM59. En esta configuración, se especifican detalles importantes, como el tipo de RFC, si es confiable, si se usarán datos en formato Unicode, y otros parámetros necesarios para que la comunicación entre los sistemas SAP sea exitosa.
- Crea aplicaciones multi-idioma: si tenemos que introducir nuestra aplicación a un sistema con idioma diferente, podemos traducirla sin necesidad de volver a crearla.
- Ayuda muy potente sobre la sintaxis y semántica del lenguaje: solo debemos presionar F1.
- Permite realizar reportes en forma rápida y sencilla en varias formas.
Reportes: son programas ABAP que solían usarse para seleccionar y mostrar datos desde bases de datos estándar o personalizadas. Requieren una pantalla de selección y su desarrollo es manual. Sin embargo, han sido reemplazados en gran medida por los reportes ALV debido a su dificultad en el desarrollo y limitaciones en funcionalidades.
Herramientas propias de ABAP
- Diccionario de datos ABAP (Trx SE11): permite aislar el sistema de gestión de base de datos que se utilice por debajo. Se puede crear, modificar y borrar objetos de las bases de datos como tablas, estructuras, vistas, elementos de datos y dominios. Las definiciones de las tablas bases de datos pueden referenciarse en los programas para modificar las tablas sin tener que cambiar los programas. Podemos gestionar objetos del diccionario de datos como ayudas de búsqueda, objetos de bloqueo u objetos de autorización
Tablas de base de datos: almacenan información esencial, como datos maestros y documentos, de forma permanente. Juntas, forman la Base de Datos de SAP. Se puede acceder a través del Diccionario de Datos con SE11 o ver su contenido usando SE16.
Estructuras: es un tipo de dato complejo con varios campos. Puede crearse en el Diccionario de Datos para uso general o declararse en un programa específico para uso durante la ejecución. Para crear una estructura en el Diccionario de Datos ABAP, se utiliza la transacción SE11. Luego, se selecciona "Tipos de datos", se introduce el nombre de la estructura, se elige "Estructura" y se proporciona una descripción junto con los campos que la conforman.
Vistas: se utiliza para mostrar secciones de datos maestros de un objeto, como materiales, y está vinculada a una aplicación específica. También, en términos de bases de datos, una "Vista" es un objeto ABAP que se crea en el Diccionario de Datos y permite ver datos de múltiples tablas en una sola selección. Además, en el contexto de datos maestros de materiales, las "Vistas" se utilizan para dividir los datos en segmentos relacionados con su uso o módulo.
Elementos de datos: son objetos que definen el tipo de dato para variables o campos en programas ABAP y tablas de bases de datos. Al crear una tabla de base de datos en SAP con SE11, se debe especificar un elemento de datos para cada campo. Por ejemplo, el campo "Mandante" en una tabla debe tener el elemento de datos "MANDT". Puedes utilizar elementos de datos estándar de SAP o crear los tuyos propios. Además, puedes definir un "dominio" para un elemento de datos para limitar los valores posibles que puede contener el campo asociado a ese elemento de datos.
Dominios: es una especificación técnica de un campo de base de datos que define su estructura. Se almacena en el diccionario de datos y puede reutilizarse para otros campos. Es útil cuando un campo tiene un conjunto específico de valores posibles asociados.
Ayudas en la búsqueda: son objetos del diccionario utilizados para definir posibles valores de ayuda en campos de tablas de bases de datos o campos en pantallas. Se utilizan para simplificar la entrada de datos correctos por parte del usuario en la pantalla de selección de un programa ABAP. Para crear una "Ayuda en la búsqueda", debes ingresar a SE11, seleccionar "Ayuda de Búsqueda", introducir un nombre, elegir "Ayuda de búsqueda elemental", especificar la tabla de la base de datos, definir los campos de importación y exportación, establecer el orden de visualización y activar la ayuda de búsqueda.
Objetos de bloqueo: se crean utilizando la transacción SE11 y permiten que múltiples usuarios actualicen datos de una tabla de base de datos al mismo tiempo sin perder información, garantizando la consistencia de los datos. Estos objetos son útiles en transacciones concurrentes de SAP donde varios usuarios modifican datos simultáneamente, pero no tienen sentido en otras transacciones.
Objetos de autorización: se crean para verificar si un usuario tiene permiso para acceder a una transacción o datos específicos. Para crearlos, se utiliza la transacción SU21, donde se define la "Clase de objeto" y las "Actividades permitidas" (como 01, 02 o 03). Después, se utiliza la transacción SU24 para vincular el objeto de autorización recién creado con un programa personalizado (Z).
- Editor de programas (Trx SE38 & SE80): provee las funciones básicas para la edición de texto, permite realizar una verificación de sintaxis y acepta sugerencias de corrección automática. Podemos resaltar palabras clave y visualizar la estructura jerárquica para los bloques sintácticos y obtener una visión general de la estructura del programa. Ambas transacciones se usan para el desarrollo de aplicaciones o programas.
- Screen Painter (Trx SE51): creamos las interfaces gráficas de usuario como botones de pulsación y de radio, checkboxes, etiquetas, campos de entrada, lista de base de datos, etc. Las pantallas que creamos son dynpros y se incluye la definición, campos y lógica de la misma que se dirige por eventos limitados.
Dynpro: es una pantalla. Cada Dynpro tiene un número de cuatro dígitos. Estas pantallas son componentes esenciales de un programa de diálogo ABAP (también conocido como "Module Pool") en el que los usuarios interactúan y realizan acciones. En cada Dynpro, se pueden crear o asociar objetos como menús, botones, tablas, campos de entrada y salida, entre otros. Para trabajar con programas de diálogo, se utiliza la transacción SE80, que es el "Navegador de objetos".
- Entorno de depuración (Trx SE38): se utiliza para el debugging y permite crear breakpoints y watchpoints, ejecución paso a paso y por bloques, etc. Pero lo mas importante, que es podemos hacer esto viendo el código fuente del programa y localizar el lugar del error en el punto exacto.
Debugging: es el proceso de encontrar y corregir errores de programación. Es una parte crucial del desarrollo de software que incluye pruebas unitarias y pruebas funcionales. Las pruebas unitarias se realizan individualmente o en parejas, mientras que las pruebas de sistemas las realiza un analista funcional para verificar la interacción con otros objetos del sistema. En ABAP, hay dos "Entornos de depuración" disponibles: el nuevo y el viejo debugger, y el nuevo debugger ofrece ventajas significativas. Puedes configurar el debugger en las transacciones SE80 o SE38 a través de "Utilidades → Opciones".
Breakpoints: son puntos de control en un programa que detienen la ejecución para analizar errores o el comportamiento de variables. Son esenciales para los programadores ABAP. Hay dos tipos:
- Breakpoints de sesión: Válidos solo para la sesión actual y son independientes del usuario. Se usan en aplicaciones dentro de la misma entrada al sistema.
- Breakpoints externos o de usuario: Válidos para cualquier aplicación en el sistema, independientemente de donde se inicien. Tienen una duración de aproximadamente 2 horas y están asociados a un usuario. Se usan, por ejemplo, en aplicaciones web ejecutadas desde un navegador.
Watchpoints: son expresiones que detienen la ejecución de un programa cuando una variable o valor específico cambia o alcanza un valor específico. A diferencia de los breakpoints, los watchpoints no se activan hasta que ocurre un cambio en el contenido del campo especificado. Son específicos del usuario y no afectan a otros usuarios que ejecuten el mismo programa. Los watchpoints se definen solo en el depurador y son similares a los breakpoints, pero basados en cambios en datos específicos.
- Otras herramientas: no son usadas frecuentemente, pero pueden ser el Menú Painter, análisis del tiempo de ejecución, Class Builder, Function Builder, etc.
Menú Painter: es una herramienta de SAP utilizada para crear menús en programas ABAP. Se accede a través de la transacción estándar SE41. Al usar Menu Painter, se ingresa el nombre del programa ABAP y el nombre del STATUS GUI que se desea modificar o crear. El STATUS GUI puede ser de tipo "Normal Screen," "Dialog Box," o "Context Menu," y se puede agregar una breve descripción para él.
Modificaciones al sistema estándar de SAP
Los espacios en el sistema estándar de SAP son necesarios para que los usuarios satisfagan sus necesidades de adaptar el sistema a sus necesidades; dichos huecos se agregan en el código ABAP necesario y se los conoce como ampliaciones, las cuales son:
- Customer Exits (Trx CMOD & SMOD): espacios necesarios para que los usuarios agreguen código para validaciones y mejoras.
- Field Exits (Trx CMOD y escribir PRFB): o ampliaciones de campo, son validaciones de los elementos de datos asociados a campos de pantallas de SAP.
- BADIS (Business Adds-Ins, Trx SE18 & SE19): es una extensión que usa objetos ABAP para implementar validaciones y ampliaciones al código estándar de SAP sin modificar el código estándar. Con la SE18 creamos, modificamos o visualizamos la definición de una BADI existente; pero si usamos la SE19, vamos crear, modificar o visualizar la implementación de una BADI que ya existe.
- Enhancements (Trx SE38): ampliaciones al codigo estándar para agregar funcionalidades determinadas. Para ello, vamos a "Tratar -- Operaciones ampliación -- Insertar puntos de ampliación implícitos"
- Estructuras Append (Trx SE11): objetos ABAP creados para agregar datos o configuraciones adicionales a tablas y estructuras estándar.
Consultores SAP
Son profesionales que implementan, optimizan y ejecutan productos SAP y de otros sistemas (interfasean) mediante el uso de los conocimientos y herramientas de la tecnología para brindar un beneficio a la compañía, adaptando el sistema a sus necesidades y poder tomar decisiones gracias a la disposición de datos específicos.
Son 7 los requisitos para triunfar como consultor:
- Parametrizar y programar algún módulo.
- Escuchar y entender lo que el cliente necesita.
- Analizar y comprender los procesos de una empresa, para así transponerlos al lenguaje SAP.
- Hablar y comunicarse con el cliente para detallar el funcionamiento del sistema y explicar el uso de la herramienta.
- Aprender y estar al tanto de los avances en nuevas herramientas.
- Colaborar y trabajar en equipo.
- Correr contra reloj y tolerar la presión.
Existen tres tipos de consultores:
- Funcional: son los que conocen un modulo o área funcional específica del sistema y lo configuran ayudando a las empresas de acuerdo a sus necesidades del negocio. Brindan asesoramiento para sacar provecho de los recursos a disposición para la toma de decisiones y formal al usuario final en el uso de la herramienta.
- Técnico: son aquellos que tienen los conocimientos técnicos del sistema SAP y generalmente son los programadores ABAP. No solo programan en ese lenguaje, sino que confeccionan documentación, realizan pruebas, asesoran a los funcionales u optimizan el sistema.
- SAP Basis: SAP Basis es la base técnica de las aplicaciones de SAP y es la administración de la plataforma operativa del sistema, llamada SAPNetweaver. El consultor Basis asegura la integridad del sistema gracias al mantenimiento, actualizaciones y generación de backups gestionando SapNetweaver y logrando así una optimización de recursos.
SapNetweaver: es una plataforma tecnológica integral para las aplicaciones SAP que se enfoca en la integración y los servicios. Ofrece a los clientes de SAP una manera gradual de adoptar nuevas tecnologías y se basa en un nuevo Web Application Server de SAP. Reemplaza la versión anterior llamada "SAP Enterprise" y se centra en minimizar la complejidad de integrar diferentes componentes de sistemas SAP en un único paquete. Además, añade nuevas funcionalidades como servicios web nativos, soporte para ABAP/4 y J2EE, y la adhesión a estándares como HTML/XML y varios otros, junto con herramientas de soporte para J2EE.
Ciclo de trabajo de un consultor ABAP
Cada empresa tiene una metodología de trabajo propia que influye en el flujo de información entre los niveles jerárquicos de la empresa, garantizando la calidad del producto final y la organización del trabajo a realizar. Para comprender mejor, vamos a ejemplificar en tres pasos:
1. Requerimiento del cliente al CF: un gerente de ventas necesita un requerimiento en el modulo de ventas y contacta a un CF de SAP SD. El funcional analiza lo solicitado y evalúa si está parametrizado en SAP por medio de trx existentes. Como excede al estándar, se decide contactar al ABAPER.
2. Elaboración del diseño funcional: es un documento que se le indica al consultor técnico lo siguiente:
- Si se trata de hacer un programa nuevo o modificar uno existente.
- Funcionalidad del programa a realizar.
- Detalle de la interfaz gráfica de selección de datos.
- Tablas que se accederán para obtener la información.
- Pruebas básicas a realizar luego de que el programa esté terminado.
- Documentación necesaria para el consultor ABAP.
Luego, el consultor técnico deberá realizar un diseño técnico, donde va a documentar el trabajo a realizar detallado:
- Nombre del programa a crear.
- Campos que componen a la pantalla de selección.
- Forma de acceder a las tablas para obtener información.
- Validaciones que se realizarán en el programa.
- Si se imprimirán datos en pantalla.
- Si se generará un archivo de salida y muchas cuestiones más.
En base a la dificultad y experiencia del consultor ABAP, se debe incluir la estimación de las horas que se necesitará para realizar o modificar el programa, con previo acuerdo con el funcional.
3. Elaboración del diseño técnico y la programación: se comienza con el desarrollo del programa, se probará al finalizar mediante las pruebas unitarias o básicas para testear si cumple los requisitos pedidos. El consultor funcional realizará las pruebas integrales, probando el programa rigurosamente.
 
 
 
Sobre el autor
Publicación académica de Rodrigo Fernandez, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Inicial.
Rodrigo Fernandez
Profesión: Consultor Sap Fi - Argentina - Legajo: AN72B
✒️Autor de: 7 Publicaciones Académicas
🎓Cursando Actualmente: Carrera Consultor SAP FI Nivel Avanzado
🎓Egresado de los módulos:
- Carrera Consultor SAP FI Nivel Inicial
- Carrera Consultor SAP BTP Fiori
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
























