✒️ABAP / El lenguaje de programación ABAP Por Gustavo Rondon Hernandez
ABAP El lenguaje de programación ABAP

El lenguaje de programación ABAP
1.- ¿Qué es ABAP?
ABAP
Es un lenguaje de programación de cuarta generación, propiedad de SAP, que se utiliza para programar en sus productos SAP ECC y SAP S/4HANA.
Sus siglas significan Advanced Business Application Programming, es decir Programación Avanzada de Aplicaciones de Negocio, aunque también es conocido como SAP ABAP
Es un lenguaje de programación de muy alto nivel, fácil de leer y se aprende rápidamente.
Aunque la cantidad de aplicaciones desarrolladas por SAP es enorme, siempre existe la posibilidad que el cliente que adquiere el sistema SAP, tenga alguna necesidad tan específica de su negocio que no esté contemplada en el sistema estándar. Cuando hablamos del sistema SAP estándar nos referimos al sistema tal cual SAP lo proporciona a las empresas que lo compran, es decir recién salido de fábrica.
También puede darse el caso que la funcionalidad que ofrece el sistema estándar no se ajuste completamente a las necesidades del cliente. Para resolver estas situaciones existe un entorno completo de desarrollo de nuevas aplicaciones integradas en el sistema SAP
Este entorno, que SAP denomina ABAP Development Workbench o Entorno de Desarrollo ABAP se compone de una serie de herramientas integradas, que permiten crear desarrollos nuevos en poco tiempo.
El lenguaje de programación ABAP se caracteriza por su total integración en el sistema SAP. No en vano todo el software de aplicación, compuesto por millones de líneas de código, que el cliente recibe cuando adquiere SAP está escrito en ABAP
Podemos decir que ABAP es un lenguaje de programación estructurado.
Sabias que
La programación estructurada es un paradigma de programación orientado a mejorar Ia claridad, Ia calidad y el tiempo de desarrollo de un programa de computación, que surge a finales de los años 70, en el cual solo se puede recurrir únicamente a subrutinas y tres estructuras básicas que son las siguientes:
- Secuencias: es el orden en que las instrucciones deben ser ejecutadas
- Instrucciones Condicionales o Selecciones: es la posibilidad de poder elegir entre dos instrucciones y la decisión se tomará en base a una evaluación, a la cual se le llama condición.
- Iteraciones: es la repetición de una instrucción o grupo de instrucciones mientras se cumple una condición.
ABAP también es un lenguaje orientado a eventos, donde la secuencia de instrucciones depende del cumplimiento de una condición o evento.
Sabias que
La programación orientada a eventos es un paradigma de programación en el que Ia estructura y Ia ejecución de los programas va determinado por los sucesos o acciones que ocurren en el sistema, definidos por el usuario o por el propio sistema.
“Realmente podemos afirmar que ABAP es un lenguaje de programación que fácilmente podemos aprender, una de las principales razones que tiene que ver con esto es la estabilidad del sistema SAP a lo largo del tiempo tal como vimos en las lecciones anteriores el sistema SAP fue evolucionando paulatinamente con cada una de las versiones que la empresa saco al mercado y esta evolución fue paulatina pensemos que en los 40 años de SAP solo existen 5 grandes versiones de su producto estrella que es el ERP para grandes empresas SAP R1, SAP R2, SAP R3, SAP ECC y SAP S/4HANA. Si bien con el paso de los años en ABAP se fueron incorporando los últimos adelantos de lenguajes de programación modernos, el corazón de ABAP, es decir; la forma en que se programa, las sentencias que se utilizan siguen siendo las mismas.
El sistema SAP está compuesto por un conjunto de áreas funcionales, módulos o líneas de negocio, según la versión de SAP a la que nos estemos refiriendo, por lo que utilizaremos el lenguaje de programación ABAP para realizar nuevos desarrollos o modificar los desarrollos existentes para todas las áreas funcionales, módulos o líneas de negocio del sistema SAP.
2.-Un poco de historia de ABAP
ABAP fue desarrollado por SAP como un lenguaje de programación para elaborar reportes para el sistema SAP R/2, en los años 80.
En ese momento podíamos decir que ABAP era un lenguaje de programación que era una mezcla entre el COBOL y el SQL
Hay que tener en cuenta que ABAP se creó en una época en donde COBOL era el lenguaje preferido para los desarrollos de aplicaciones de gestión.
ABAP fue pensado como un lenguaje de programación para que los usuarios finales del sistema SAP pudieran manipular la información, pero con el paso del tiempo y de las versiones, el lenguaje de cuarta generación se fue volviendo demasiado complicado para usuarios comunes, por lo que fue necesario programadores experimentados para realizar desarrollos.
ABAP se mantuvo como el lenguaje de desarrollo para la 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.
Reflexiones
La incorporación de los objetos ABAP no convirtió a ABAP en un lenguaje orientado a objetos, sino que permite que determinadas funcionalidades pueden ser pensadas y desarrolladas utilizando POO.
En las últimas versiones de ABAP se fueron incorporando al lenguaje las últimas innovaciones tecnológicas de los lenguajes de programación modernos de hoy en día, inclusive se dispone de la posibilidad de programar en otros entornos de desarrollo diferentes al ABAP Development Workbench.
3.-Las principales fortalezas de ABAP
Existen muchos puntos fuertes que presenta ABAP como lenguaje de programación Si tenemos que mencionar los principales entonces serían los siguientes:
-
Utiliza sentencias de OPEN SQL para conectarse con prácticamente cualquier base de datos: si bien a partir de la versión SAP S/4HANA solo trabaja con SAP HANA como base de datos, en las versiones anteriores del sistema SAP se utilizaban otras bases de datos, tal como Oracle y otras más.
-
Es un lenguaje de programación estructurado, que también puede ser programado orientado a eventos y también puede programarse utilizando la orientación a objetos: tomando de cada uno de estos paradigmas las mejores prácticas.
-
Cuenta con miles de funciones para el manejo de archivos, bases de datos, fechas, caracteres, entre otros: de esta forma operaciones complejas se vuelven simples.
-
Permite conexiones RFC para conectar a los sistemas SAP con cualquier otro sistema o lenguaje de programación: mediante estas conexiones podemos conectar nuestro sistema SAP con otros sistemas SAP o no SAP y ABAP con otros lenguajes tal como JAVA, etc.
-
Permite Ia creación de aplicaciones multidioma: podemos traducir todos los textos de nuestras aplicaciones a lo diferentes idiomas en donde se utilice la misma aplicación sin necesidad de tener que volver a crearla. Esta funcionalidad resulta indispensable para las empresas multinacionales que cuentan con sucursales en distintos países del mundo.
-
Posee una ayuda muy potente sobre la sintaxis y la semántica del lenguaje: simplemente con presionar la tecla F1 sobre la sentencia que queramos.
-
Permite la realización de reportes en forma rápida y sencilla: dispone de varias opciones para la realización de reportes de forma rápida.
4.-Las herramientas propias de ABAP
ABAP posee algunas herramientas que son propias del lenguaje y que no están presentes en otros entornos de desarrollo. Las más importantes son las siguientes:
- Diccionario de Datos ABAP (Transacción SE11): es el punto de referencia para los programadores ya que permite aislarles el sistema de gestión de base de datos que se utilice por debajo. Desde una misma pantalla se puede crear, modificar y borrar los objetos de bases de datos, entre los que se incluyen las tablas base de datos, las estructuras, las vistas, los elementos de datos y los dominios.
Las definiciones de las tablas bases de datos pueden ser referenciadas directamente en los programas permitiéndonos modificar posteriormente las tablas sin tener que cambiar los programas. Tenemos la posibilidad de gestionar otros objetos del diccionario de datos como las ayudas de búsqueda: los objetos de bloqueo o los objetos de autorización.
Transacciones
Transacción SE11
La transacción estándar SE11 "Diccionario de datos ABAP" es utilizada para la administración de todas las definiciones de datos utilizadas en el sistema SAP
- El Editor de programas (Transacciones SE38 y SE80): el editor ABAR aparte de proveer de las funciones básicas para la edición de texto, tiene múltiples características que facilitan la programación enormemente.
Nos permite efectuar una verificación de sintaxis y aceptar las sugerencias del dispositivo de corrección automática que tiene incluido.
También nos permite resaltar las palabras clave y tener una vista en forma de estructura jerárquica que ofrece la posibilidad de ocultar o desglosar bloques sintácticos. De esta manera, el programador obtiene una buena visión de conjunto de la estructura general del programa.
Transacciones
Transacciones SE38 y SE80
Ambas transacciones estándares son utilizadas para el desarrollo de aplicaciones o programas ABAP dentro del sistema SAP.
- EL Screen Painter (Transacción SE51): con esta herramienta crearemos rápidamente interfaces gráficas de usuario incluyendo una amplia gama de elementos de control, como botones de pulsación, botones de radio, checkboxes, etiquetas, campos de entrada, listas de base de datos, etc.
Las pantallas que se crean se denominan dynpros y en ellas se incluye la definición de la pantalla y sus campos y la lógica de proceso de la misma Esta lógica de proceso está dirigida por eventos, como los lenguajes visuales modernos, aunque la variedad de eventos posibles está bastante limitada.
Transacción SE51
La transacción estándar SE51 "Screen Painter" es utilizada para Ia creación de las denominadas pantallas o dynpros, que es el termino propio de SAP.
- EI Entorno de depuración (Dentro de la transacción SE38): el modo debugg)ng de ABAP es posiblemente la herramienta más alabada por los programadores habituales de este lenguaje- Tiene todas las ventajas de este tipo de ayudas a la programación, tal como la creación de breakpoints y watchpoints, la ejecución paso a paso: la ejecución por bloques, entras muchas más, pero además nos permite hacer todo esto viendo el código fuente del programa, por lo que la localización del lugar del error es exacta.
- Otras herramientas: existe una gran variedad de herramientas adicionales cuyo uso no es tan frecuente como él Menu Painter, el análisis del tiempo de ejecución, el Class Builder, el Function Builder, etc.
5.-Las modificaciones al sistema estándar de SAP
Para que los usuarios puedan adaptar el sistema a sus propias necesidades, SAP deja espacios en el sistema estándar de modo que los usuarios puedan satisfacer sus requerimientos, agregando en estos huecos el código ABAP necesario para ello.
A estos huecos que existen en el sistema SAP, se los denomina Ampliaciones, ya que con ellos se amplía o extiende las funcionalidades del sistema estándar.
Las principales ampliaciones que existen en SAP son las siguientes:
- Customer Exits (Transacciones CMOD y SMOD): son espacios que SAP deja en el sistema estándar para que los usuarios agreguen código para validaciones y mejoras.
Transacciones
Transacciones CMOD y SMOD
Las transacciones estándares CMOD y SMOD son utilizadas para la administración de las denominadas ampliaciones de usuario del sistema SAP.
- Field Exits (Transacción CMOD y escribir PRFB): también llamadas ampliaciones de campo, son validaciones de los elementos de datos asociados a campos de pantallas de SAP.
- BADIS (Business Adds-lns, Transacciones SE18 y SE19): 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.
Transacciones
Transacciones SE18 y SE19
Las transacciones estándares SE18 y SE19 son utilizadas para Ia definición y Ia declaración de las denominadas BADIS en el sistema SAP.
- Enhancements (Desde la misma transacción SE38): son ampliaciones al código estándar de SAP mediante las cuales podremos agregar funcionalidades determinadas.
- Estructuras Append (Desde la misma transacción SE11): son objetos de ABAP que se crean para agregar datos o configuraciones adicionales a las tablas bases de datos y estructuras estándar de SAP.
6-.Los consultores SAP
Dentro de los distintos roles que existen en el mundo SAP me gustaría en este momento que analicemos a los consultores.
Un consultor SAP puede definirse como un profesional que ofrece servicios para la implementación, optimización y ejecución de los productos SAP y otros sistemas, que mediante interfaz con SAP aseguran el máximo aprovechamiento de los conocimientos y las herramientas de tecnología en beneficio de la compañía.
El consultor SAP adapta el sistema a lo que cada empresa quiere y necesita Mediante su labor, las empresas obtienen información valiosa para la toma de decisiones y datos específicos para los agentes interesados en ellas.
Dentro del ecosistema SAP: existen básicamente 3 tipos de consultores, estos son:
- Consultor Funcional: tal como hablamos en las lecciones anteriores, SAP es un sistema muy extenso: compuesto por diferentes áreas funcionales o módulos, que a su vez se dividen en submódulos que contienen más procesos y subprocesos.
Los consultores funcionales de SAP son aquellos profesionales que tienen el conocimiento de un área funcional o módulo del sistema y están encargados de ayudar a las empresas a configurar el sistema SAP, de acuerdo con las necesidades de la empresa, brindar asesoramiento para que la empresa logre un aprovechamiento máximo de sus recursos al momento de tomar decisiones y luego de ello formar al personal asignado por la empresa para poder desempeñarse sin su ayuda constante.
Reflexiones
Hay consultores funcionales que pueden decirse especialistas en más de un módulo o área funcional del sistema SAP, Sin embargo, para que sea más sencillo de dominar es importante la especialización en un módulo en particular.
Ya que intentar abarcar todos los módulos a la vez puede ser una tarea imposible.
Con la práctica aún en un solo módulo de SAP, es seguro que vamos a tener al menos conocimientos generales de otros módulos ya que recordemos que SAP al ser un sistema ERP entrelaza los distintos módulos.
- Consultor SAP Basis: cuando hablamos de SAP Basis, nos referimos a la base técnica de las aplicaciones SAP. SAP Basis es la forma "clásica" de nombrar a la administración de la plataforma operativa del sistema- Esta plataforma es llamada actualmente SAPNetweaver.
Los consultores especialistas en SAP Basis tienen como principal responsabilidad la administración del entorno SAP asegurando la integridad del sistema, esto incluye tareas de mantenimiento, actualizaciones y generación de backups con el fin de tener un respaldo de la información. Se encargan de gestionar la plataforma operativa SAP Netweaver, para que esta funcione siempre correctamente optimizando recursos en el sistema.
- Consultor Técnico: cuando hablamos de los consultores técnicos nos estamos refiriendo a las personas que poseen los conocimientos técnicos dentro del sistema SAP. En general nos referimos a los programadores ABAP, pero también podríamos estar hablando de otros perfiles dependiendo de la tecnología utilizada.
Sabias que
Dentro del mundo ABAP, cuando hablamos de Consultor Técnico ABAP, Consultor ABAP, Desarrollador ABAP, Programador ABAP o ABAPER nos estamos refiriendo a lo mismo.
Los desarrolladores ABAP, como me gusta llamarlos, no solo realizan la programación en el lenguaje ABAP, sino que también se encargan de confeccionar la documentación, realizar pruebas, asesorar a los consultores funcionales en cuestiones técnicas: optimizar el sistema, entre otras tantas cuestiones, es por ello que el nombre programador ABAP se queda corto con las tareas acordes al puesto de trabajo.
“Entre las funciones del consultor ABAP podemos mencionar: gestionar el diseño desarrollo e implementación de proyectos ABAP, revisar los diseños técnicos para cumplir con los requisitos del proyecto ABAP, recomendar mejoras en los proyectos para conseguir los objetivos de los proyectos, proporcionar orientación técnica y funcional a otros empleados, proporcionar atención al cliente de alta calidad a lo largo del proyecto, realizar un análisis de fallas para garantizar las correcciones y mejoras necesarias y colaborar con los propietarios funcionales y arquitectos para desarrollar sistemas automáticos y flexibles a fin dde satisfacer las necesidades de la empresa.
7.-El ciclo de trabajo de un consultor ABAP
A continuación, vamos a explicar cómo es la interacción de los Consultores ABAP con los Consultores Funcionales de SAP y como es la metodología de trabajo más comúnmente utilizada en el ciclo de vida de desarrollo de SAP
Cada empresa posee su propia metodología de trabajo, esta metodología afecta directamente la manera en que la información fluye entre los distintos niveles jerárquicos de la empresa. Si se encuentra bien implementada, mejora el control de los costos de los requerimientos de los usuarios antes de llevarlas a cabo.
Aunque en primera instancia pudiera parecer un tanto burocrática, la misma garantiza la calidad del producto final y la organización del trabajo a realizar, ya que "en teoría" los tiempos han sido calculados con antelación, no teniendo que trabajar a las apuradas o con demasiado tiempo ocioso improductivo.
Veamos un ejemplo para comprender en detalle este concepto.
1.-EI requerimiento del Cliente al Consultor Funcional
Es muy raro que un gerente de ventas contacte a un consultor ABAP o ABAPER directamente ante un requerimiento petición de trabajo.
Lo que habitualmente sucede y es correcto que pase, es que el gerente de ventas cita a un Consultor Funcional SAR que para este ejemplo por tratarse de un requerimiento del sector o módulo de Ventas, tendría que tomar este requerimiento un Consultor Funcional SAP SD, al cual el gerente le comentará sus necesidades de información.
Ejemplos
Por ejemplo, necesitamos un reporte de ventas que nos sirva para poder medir Ia productividad de nuestros vendedores a lo largo del mes.
Luego el Consultor Funcional analizará el pedido del cliente y evaluará si ese trabajo se puede realizar "parametrizando" sistema SAP; es decir configurando el sistema a través de las transacciones existentes. Para el caso de nuestro reporte de ventas, existe la posibilidad que SAP ya nos proporcioné un reporte estándar de ventas para medir la productividad de los vendedores de la empresa.
Si se puede realizar la adaptación mediante una "parametrización", o si SAP ya nos brinda dicho reporte y el mismo satisface las necesidades de información del cliente entonces será cuestión de utilizarlo y nuestro trabajo habrá terminado.
Lo que suele suceder en cambio, es que el requisito del cliente excede a una parametrización o un reporte ya existente y es allí cuando el Consultor Funcional y el Consultor Técnico, el ABAPER para nuestro caso, se ponen a trabajar en equipo.
2.- La elaboración del Diseño Funcional:
La forma más básica de realizar este trabajo Funcional y Técnico en conjunto: es que el Consultor Funcional: lo inicie elaborando una documentación llamada "Diseño Funcional", en este documento se le indica al Consultor Técnico en otras cuestiones lo siguiente:
-
Si se trata de hacer un programa nuevo o modificar un programa existente.
-
La funcionalidad del programa a realizar.
-
El detalle de la interfaz gráfica de selección de datos que debe tener el programa o bien la modificación/es.
-
Las tablas bases de datos que se accederán para obtener la información del programa.
-
Las pruebas básicas a realizar luego que el programa esté terminado.
-
Demás documentación que crea necesaria o útil al Consultor ABAP.
Una vez que el Consultor Funcional elaboró el "Diseño Funcional", en base a la metodología con la que trabaje empresa, se le pedirá al Consultor Técnico, que en base al Diseño Funcional elabore y entregue un "Diseño Técnico", cual es un documento en donde se especifica el trabajo que deberá realizar desde el punto de vista técnico, es decir detalla:
-
El nombre del programa a crear.
-
Los campos que componen lo que se denomina en ABAP la pantalla de selección.
-
La forma de acceder a las tablas de la base de datos para obtener información.
-
Las 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.
Normalmente aquí también se incluirá la estimación de las horas que se presume insumirá realizar o modificar el programa. Esta estimación por la general se elabora de común acuerdo entre el Consultor Funcional y el Consultor Técnico ABAP en base a:
-
La dificultad de la tarea a realizar.
-
La experiencia que posee el Consultor ABAP como programador.
3.-La elaboración del Diseño Técnico y la Programación
Una vez finalizado el Diseño Técnico, el Consultor ABAP comenzará el desarrollo del programa o modificación a realizar.
Al terminarlo lo probará, realizando lo que se conoce como "Pruebas Unitarias", es decir pruebas básicas para asegurarnos que el programa cumple con los requisitos que nos solicitaron y avisa al consultor funcional.
El Consultor Funcional a su vez realizará sus propias pruebas, las cuales se conocen como "Pruebas integrales", en donde se probará el programa rigurosamente y si está todo en orden, avisará al cliente, cerrando de esta manera el requerimiento establecido en un principio.
Sabias que
La programación del requerimiento puede ser efectuada por el mismo Consultor ABAP que elaboró el diseño técnico o puede ser asignada a otro Consultor ABAP, lo cual en ciertos casos resulta más eficiente ya que incorpora la visión de otra persona, la cual puede ayudar a reducir los errores cometidos al elaborar la especificación técnica.
 
 
 
Sobre el autor
Publicación académica de Gustavo Jose Rondon Hernandez, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Inicial.
Gustavo Jose Rondon Hernandez
Profesión: Becario - España - Legajo: WF47H
✒️Autor de: 33 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Soy informático con 10 años de experiencia en el área de tecnología, tengo un master en sap business intelligence sap bw & sap bi-bo en la salle barcelona.
Certificación Académica de Gustavo Rondon
























