🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️SAP El lenguaje de programación ABAP

SAP El lenguaje de programación ABAP

SAP El lenguaje de programación ABAP

ABAP

Es un lenguaje de programación de cuarta generación (herramienta que permite construir aplicaciones combinando piezas prefabricadas), propiedad de SAP, que se utiliza para programar en sus productos SAP ECC y SAP S/4HANA.

Sus siglas significan Advanced Business Applicaction Programming, es decir programación avanzada de aplicaciones de negocio, 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 de 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 de sistema 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. La programación estructurada es un paradigma orientado a mejorar la claridad, la calidad y el tiempo de desarrollo de un programa de computación en el cual solo se puede recurrir únicamente a subrutinas y tres estructuras básicas que son las siguientes:

  1. Secuencia: es el orden en que las instrucciones deben ser ejecutadas-
  2. Instrucción Condicional o Selección: es la posibilidad de elegir entre dos instrucciones y la decisión se tomará en base a una evaluación, a la cual se le llama condición.
  3. Iteración: 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. La programación orientada a eventos es un paradigma de programación en el que la estructura y la 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.

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.

HISTORIA DE 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, teniendo en cuenta que en esa época 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 los 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, 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. Esto no convirtió a ABAP en un lenguaje orientado a objetos sino que permite que determinadas funcionalidades pueden ser pensadas y desarrolladas utilizando POO (programación orientada a objetos).

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 diferentes al ABAP Development Workbench.

FORTALEZAS DE ABAP

Existen muchos puntos fuertes que presenta ABAP como lenguaje de programación. Si tenemos que mencionar los principales serían los siguientes:

  • Utiliza sentencias de OPEN SQL (lenguaje estructurado de consulta, que nos independiza del motor de base de datos que se haya instalado en la base de datos) 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 como Oracle y otras.
  • 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, fecha, caracteres, entre otros: de esta forma operaciones complejas se vuelven simples.
  • Permite conexiones RFC (llamado a función remota, permite a un programa ejecutar código en otra máquina) 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 a ABAP con otros lenguajes tal como JAVA, etc.
  • Permite la creación de aplicaciones multidioma: podemos traducir todos los textos de nuestras aplicaciones a los 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.

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:

  • El diccionario de datos ABAP (transacción SE11): es el punto de referencia para los programadores ya que permite aislarles del sistema de gestión 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 incluyen las tablas base de datos, las estructuras, las vistas, los elementos de datos y los dominios.

Las definiciones de las tablas 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.

  • El editor de programas (transacciones SE38 y SE80): el editor ABAP aparte de proveer la 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.

  • El sreen 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 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.

  • El entorno de depuración (dentro de la transacción SE38): el modo debugging 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, 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: existen una gran variedad de herramientas adicionales cuyo uso no es tan frecuente como el menú painter, el análisis del tiempo de ejecución, el class builder, el function builder, etc.

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 en el sistema SAP se los denomina ampliaciones, ya que con ellos se amplían o extienden 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.
  • Field Exits (transacción CMOD y escribir PRFB): también llamadas ampliaciones de campo, son validaciones de datos asociados a campos de pantallas de SAP.
  • BADIS (Business Adds-Ins, 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.
  • 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.

LOS CONSULTORES SAP

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 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 sabemos, 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 procesos y subprocesos. Los consultores funcionales 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.
  • Consultor SAP Basis: cuando hablamos de SAP Basis, nos referimos a base técnica de las aplicaciones SAP, es la forma "clásica" de nombrar a la administración de la plataforma operativa del sistema. Esta plataforma es actualmente llamada SAP Netweaver. Estos consultores 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 ésta funcione siempre correctamente optimizando recursos en el sistema.
  • Consultor técnico: 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.

Los desarrolladores ABAP 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, optmizar el sistema, entre otras tantas cuestiones.

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 cómo 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, ésta 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.

EJEMPLO:

1º) el requerimiento del cliente al consultor funcional: es raro que un gerente de ventas contacte directamente a un consultor ABAP sino que cita a un consultor funcional (por tratarse de un requerimiento del sector o módulo de ventas lo tendría que tomar un consultor SAP SD).

Luego, el consultor funcional analizará el pedido para evaluar si el trabajo se puede realizar "parametrizando" el sistema SAP, es decir configurando el sistema a través de transacciones existentes. Si se puede realizar la adaptación mediante una parametrización o si SAP ya nos brinda el reporte solicitado y el mismo satisface las necesidades del cliente, entonces será cuestión de utilizarlo y el trabajo estará terminado.

En cambio, si el requisito del cliente excede a una parametrización o un reporte ya existente, el consultor funcional consultará a un ABAPER y trabajaran en equipo.

2º) Elaboración del diseño funcional: la forma más básica de realizar este trabajo 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 entre otras cuestiones, lo siguiente:

- Si se trata de hacer un programa nuevo o modificar uno 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 las modificaciones.

- 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 realizó el diseño funcional, en base a la metodología con la que trabaje la empresa, se le pedirá al consultor técnico, que en base al diseño funcional elabore y entregue un diseño técnico, el cual es un documento en donde se especifica el trabajo que deberá realizar desde el punto de vista técnico, es decir se 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 lo 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. Éste a su vez realizará sus propias pruebas, conocidas 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.

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, incorporando la visión de otra persona, lo cual puede ayudar a reducir los errores cometidos al elaborar la especificación técnica.


 

 

 


Sobre el autor

Publicación académica de Romina Hergesheimer Elias, en su ámbito de estudios para el Carrera Consultor Basis NetWeaver.

SAP Senior

Romina Hergesheimer Elias

Profesión: Ingeniera Química - Argentina - Legajo: KO26R

✒️Autor de: 48 Publicaciones Académicas

🎓Egresado del módulo:

Disponibilidad Laboral: FullTime

Certificación Académica de Romina Hergesheimer