✒️ABAP Los Estándares de programación en ABAP
ABAP Los Estándares de programación en ABAP
¿Qué son los Estándares de Programación y por qué es tan importante que los utilicemos?
Determinan la forma en la que codificaremos nuestros programas ABAP.
Es decir, como declararemos las variables, estructuras, tablas, así como también la forma en que debemos definir los objetos
que creamos en el Diccionario de datos, o en cualquier otra transacción de SAP donde se creen objetos en el sistema.
La utilización de Estándares de Programación es sumamente beneficiosa
ya que hace que los programas sean mucho más simples de leer y mantener al momento de tener que realizar una modificación.
Les propongo evaluar la utilidad de seguir estándares de programación en la siguiente situación hipotética
pero que se repite muy a menudo en el ambiente laboral real de SAP:
Supongamos que en la empresa en donde trabajamos el equipo de Programación o Desarrollo ABAP
está compuesto por dos programadores entre los cuales nos encontramos nosotros.
Supongamos que en esta empresa no se ha definido ningún Estándar de Programación y que cada una de las dos personas
que se encargan de la programación en ABAP tiene bien dividido el trabajo,
de modo que dependiendo de que trate el desarrollo ABAP a realizar lo tomará uno de los programadores o el otro.
Ahora por último imaginemos que debido a la alta demanda de empleo en SAP,
nuestro compañero de equipo se va de la empresa y a nosotros nos toca tener que modificar los programas ABAP que él creó.
Si no se utilizó ningún Estándar de programación es muy probable que modificar los programas ABAP desarrollados por otro
programador se convierta en una tarea complicada, que nos puede llegar a llevar más del doble del tiempo que debería.
Criterios de un buen estándar
Hay muchos estándares de programación que se pueden utilizar.
Un buen estándar de programación generalmente considerará los siguientes factores:
Factor nemotécnico:
para que el programador pueda recordar el nombre de una variable fácilmente.
Factor sugestivo:
para que otros programadores puedan leer y entender rápidamente nuestro código.
Consistencia:
de modo que utilicemos las mismas convenciones de nomenclatura en todo el programa y hagamos que el texto del código sea "legible".
Ventajas del uso de Estándares
Podemos resumir algunos de los beneficios de utilizar estándares de programación en los siguientes puntos:
Los nombres de variables serán nemotécnicos,
y se podrá saber el tipo de dato de cada variable con sólo ver el nombre de la variable
Los nombres de variables serán sugestivos, de tal forma que se podrá saber el uso .
y finalidad de dicha variable o función fácilmente con solo ver el nombre de la variable
La decisión de poner un nombre a una variable o función será mecánica y automática,
puesto que seguirá las reglas definidas por el estándar.
Permiten el uso de herramientas automáticas de verificación de nomenclaturas
tales como el Chequeo Extendido del Código o el Inspector de Código.
¿Por qué los Estándares de Programación son utilizados tan poco ?
Si los estándares tienes tantos beneficios, entonces la pregunta es ¿por qué los programadores los usan muy pocas veces?
La razón tiene que ver más con los seres humanos que con la tecnología:
Trabajan en un proyecto que no ha adoptado ningún estándar.
No los entienden o no los pueden recordar.
No ven el beneficio de utilizarlos.
Están muy apurados o cansados.
Prefieren creatividad y consistencia arbitraria.
Piensan que es divertido usar nombres "bonitos" en el código.
Son "artistas del software" y no quieren estar regidos por convenciones.
Nuestros Estándares de Programación
A continuación les presentamos los Estándares de Programación que utilizaremos a lo largo de la Carrera SAP ABAP.
Es importante que sepas que dentro de los estándares que definiremos a continuación es probable que mencionemos
conceptos que desconoces, pero que iremos incorporando a lo largo de la Carrera Consultor SAP ABAP.
Los estándares que les presento a continuación fueron elaborados en base a la experiencia recopilada
en los distintos proyectos en los que he participado como Consultor SAP ABAP y como Líder del equipo de Desarrollo.
Para las declaraciones dentro de un programa ABAP utilizaremos los siguientes estándares:
Variables Locales: VL_XXXXXXXX
Variables Globales: V_XXXXXXXX
Checkbox: RGB11_XXXX, RGB12_XXXX, RGB1N_XXXX,
RGB21_XXXX, RGB22_XXXX, RGB2N_XXXX,
Rangos: R_XXXXXXXX
Rangos Locales: RL_XXXXXXXX
Constantes Globales: C_XXXXXXXX.
Constantes Locales: CL_XXXXXXXX.
Tabla Interna Globales: TI_XXXXXXXX.
Tabla Interna Locales: TIL_XXXXXXXX.
Tipos: TY_XXXXXXXX.
Parametros: P_XXXXXXXX.
Select Options: SO_XXXXXXXX.
Forms: F_XXXXXXXX.
Parametros de un Forms: P_XXXXXXXX.
Cuando hablamos de Variables Locales, Constantes Locales o cualquier otra declaración local,
nos referimos a aquellas que se realizan dentro de subrutinas.
Cuando hablamos de Variables Globales, Constantes Globales o cualquier otra declaración Global,
nos referimos a aquellas que se realizan dentro del programa principal, es decir dentro del evento START-OF-SELECTION.
Para las declaraciones de los datos que creamos en el Diccionario de datos ABAP utilizaremos los siguientes estándares:
Campos nuevo de una tabla BD XXXXXXXX Donde XXXXXXXX es el nombre del campo nuevo
Elementos de datos ZZ_XXXXXXXX Donde XXXXXXXX es el nuevo nombre del campo al que se va a asociar
Dominio ZD_XXXXXXXX Donde XXXXXXXX deberá referenciar el tipo de datos
Nombre tabla ZTXXXXXXXX Donde XXXXXXXX se utiliza para describir el nombre de la tabla
Estructuras ZXXXXXXXX Donde XXXXXXXX se utiliza para describir el nombre de la estructura
Utilizaremos la siguiente nomenclatura para establecer los nombres de los siguientes objetos:
Reporte o programa ZXXXXXXXX Ejemplo ZREPORTE_USUARIOS
Modulo de Función ZMFXXXXXXXX Donde XXXXXXXX se utililza para describir el nombre del modulo de función
Grupo de Función ZGFXXXXXXXX Donde XXXXXXXX se utililza para describir el nombre del grupo de función
Modulo Pool o Prog de Dialogo ZMPXXXXXXXX Donde XXXXXXXX se utililza para describir el Objetivo del programa
Vistas de Actualización ZVAXXXXXXXX Donde XXXXXXXX se utililza para describir el nombre de la vista
Clases de Mensajes ZCMXXXXXXXX Donde XXXXXXXX se utililza para describir el nombre de la clase de mensajes
Clases de Objetos ABAP ZCLXXXXXXXX Donde XXXXXXXX se utililza para describir el nombre de la clase
Clases de Desarrollo o Paquete ZCDXXXXXXXX Donde XXXXXXXX se utililza para describir el nombre de la clase de desarrollo o paquete
Ayuda de Búsqueda ZABXXXXXXXX Donde XXXXXXXX se utililza para describir el nombre de la ayuda de búsqueda
Objeto de Bloqueo ZOBXXXXXXXX Donde XXXXXXXX se utililza para describir el objetivo del objeto de bloqueo
Para los Encabezados de Programas ABAP
Cuando creamos un programa ABAP nuevo en SAP es recomendable utilizar siempre el mismo encabezado
de modo de unificar criterios entre todos los programadores de un mismo proyecto.
A continuación les proponemos una versión del esqueleto de un programa ABAP que pueden utilizar para sus desarrollos.
*****************************************************************************************
* NOMBRE DEL PROGRAMA
* DESCRIPCION: Descripción breve de la funcionalidad del programa
* NUMERO DE REQUERIMIENTO: Numero de mejora o incidencia que genero el desarrollo
* AUTOR: Nombre y apellidos completos del programador
* FECHA: DD.MM.AAAA
*****************************************************************************************
* CONTROL DE MODIFICACIONES: (Esta seccion se completa con cada modificacion posterior a la implementación
* MODIFICADO POR: Nombres y Apellidos completos del autor de la modificación)
* FECHA MODIFICACION: DD.MM.AAAA
* DESCRIPCION MODIFICACION: Breve descripción de la modificación
*****************************************************************************************
Más abajo, dentro de la misma plantilla de programa nuevo,
especificamos las declaraciones de los Includes, Tipos, Tablas internas, etc.
*****************************************************************************************
* INCLUDES
*****************************************************************************************
INCLUDE ZXXXX_TOP. "Include de declaraciones de datos, donde XXXX Es el nombre del programa
INCLUDE ZXXXX_FORMS. "Include de declaraciones de subrutinas, donde XXXX Es el nombre del programa
*****************************************************************************************
* Definición de TYPES
*****************************************************************************************
*****************************************************************************************
* Definición de estructuras
*****************************************************************************************
*****************************************************************************************
* Definición de tablas internas
*****************************************************************************************
*****************************************************************************************
* Definición de parámetros
*****************************************************************************************
*****************************************************************************************
* Definición de constantes
*****************************************************************************************
*****************************************************************************************
* Definición de ranges
*****************************************************************************************
*****************************************************************************************
* Definición de variables
*****************************************************************************************
*****************************************************************************************
START-OF-SELECTION. "Proceso principal
*****************************************************************************************
*****************************************************************************************
END-OF-SELECTION. "Acciones de final de proceso
*****************************************************************************************
 
 
 
Sobre el autor
Publicación académica de Alex Francisco Lemos Collazos, en su ámbito de estudios para la Carrera Consultor ABAP.
Alex Francisco Lemos Collazos
Profesión: Ingeniero en Sistemas - Colombia - Legajo: QS36A
✒️Autor de: 174 Publicaciones Académicas
🎓Cursando Actualmente: Master S/4HANA Material Management
🎓Egresado de los módulos:
- Máster Material Management en SAP S/4HANA LOGISTIC
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP SD Nivel Inicial