ESTANDARES DE PROGAMACION
Determinan la forma en la que codificaremos nuestros programas ABAP. Es decir, como declararemos las variables, estructuras, tablas , asi como tambien la forma en que debemos definir los objetos que creamos en el diccionario de datos, o en cualquier otra transaccion de SAP donde se creen objetos en el sistema.
La utilizacion de estandares de programacion es sumamente beneficiosa ya que hace que los programas sean mucho mas simples de leer y mantener al momento de tener que realizar una modificacion.
CRITERIOS DE UN BUEN ESTANDAR
FACTORES DE UN BUEN ESTANDAR:
Factor nemotecnico. para que el programador pueda recordar el nombre de una variable facilmente.
Factor sugestivo. para que otros programadores puedan leer y entender rapidamente nuestro codigo.
Consistencia. de modo que utilicemos las mismas convenciones de nomenclatura en tod el programa y hagamos que el texto del codigo sea liegible.
VENTAJAS DEL USO DE ESTANDARES.
Podemos resumir algunos de los beneficios de utilizar estandares de programacion en los siguientes puntos:
Los nombres de variables seran nemotecnicos con lo que se podra saber el tipo de dato de cada variable con solo ver el nombre de la variable.
Los nombres de variables seran sugestivos, de tal forma que se podra saber el uso y finalidad de dicha variable o funcion facilmente con solo ver el nombre de la variable
La decision de poner un nombre a una variable o funcion sera mecanica y automatica , puesto que seguira las reglas definidas por el estandar.
Permiten el uso de herramientas automaticas de verificacion de nomenclaturas tales como el chequeo extendido del codigo o el inspector de codigo
NUESTROS ESTANDARES DE PROGRAMACION
Para las declaraciones dentro de un programa ABAP utilizaremos los siguientes estandares.
Declaracion-------------------------------------------------------------------------------------se debe escribir de esta manera
Variables locales---------------------------------------- VL_-------
Variables globales------------------------------------- V_-------
Checkbox------------------------------------------------- CH_------
Radio Button---------------------------------------- RBG11_ ,RBG12_, RBG1N_
Rangos------------------------------------------------R_----
Rangos Locales----------------------------------- RL_-----
Constantes globales ----------------------------------------- C_-----
Constantes locales ------------------------------------------ CL_------
Estructura ------------------------------------------- WA_-------
Estructura local ----------------------------------- WAL_----
Tabla interna ----------------------------------- TI_----
Tabla interna local--------------------------------- TIL_----
Tipos------------------------------------------ TY_------
Parametros---------------------------------- P_------
Select Option -------------------------------- SO_-----
Forms------------------------------------ F_-------
Parametros de un form---------------------P_---
Cuando hablamos de variables locales , constantes locales o cualquier otra declaracion local, nos referimos a aquellas que se realizan dentro de subrutinas.
Cuando hablamos de variables globales, constantes globales o cualquier otra declaracion global, nos referimos a aquellas que se realizan dentro del programa principal, es decir dentro del evento START-OF-SELECTION.
En general en todos los lenguajes de programacion se recomienda generar la minima cantidad de declaraciones globales ya que consumen muchos recursos del sistema, pero dado que en abap no hay problemas con el recurso del sistema no hay incoveniente en su uso.
Para las declaracions de los datos que creamos en el diccionario de datos ABAP utilizaremos los siguientes estandares.
Declaracion......................................................................................................Se debe escribir de la siguiente forma
Campo nuevo en una tabla de base de datos------------------------------ xxxx donde xxxxxxxx es el nombre del campo nuevo
Elemento de datos------------------------------------------ ZZ_XXXXXX(donde xxxxx es el nombre del campo al que se va asociar)
Dominio------------------------------ ZDXXXX(donde xxxxxx debera referenciar el tipo de datos)
Nombre tabla------------------------ZTXXXXX (donde xxxxx se utiliza para describir el nombre de la tabla)
Estructuras----------------------- ZXXXXXX (donde xxxxx se utiliza para describir el nombre de la estructura)
Utilizaremos la siguiente nomenclatura para establecer los nombres de los siguientes objetos:
Declaracion------------------------------------------------------------- se debe escribir de la siguiente forma
Reporte o Programa-------------------------- ZXXXXX. Ej.ZREPORTE_USUARIOS
Modulo de Funcion-------------------------- ZMFXXXX (donde xxxxx se utiliza para describir el nombre del modulo de funcion)
Grupo de funcion ---------------------------- ZGFXXXX (donde xxxx se utiliza para describir el nombre del grupo de funcion)
Module Pool o Programa de Dialogo----- ZMPXXXX (donde xxxx se utiliza para describir el objetivo del programa)
Vistas de actualizacion------------------------ZVAXXXXX (donde xxxx se utiliza para describir el nombre de la vista)
Clase de mensajes------------------- ZCMXXXXXX (donde xxxx se utiliza para describir el nombre de la clase de mensaje)
Clase de objetos ABAP-------------- ZCLXXXX (donde xxxx se utiliza para describir el nombre de la clase)
Clase de desarrollo o Paquete --- ZCDXXXX (donde xxxx se utiliza para describir el nombre de la clase de desarrollo o paquete)
Ayuda de Busqueda--------------- ZABXXXX (donde xxxxx se utiliza para describir el nombre de la ayuda de busqueda)
Objeto de Bloqueo---------------- ZOBXXXX ( donde xxxxx se utiliza para describir el objeto de bloqueo)
El nombre de un programa ABAP puede tener entre 1 y 30 caracteres de largo , se recomienda no utilizar los siguientes signos y simbolos en el nombre de un programa ABAP: punto(.), coma(,), espacios en blanco, parentesis, aposttrofes, asteriscos, el signo de igual,o el signo de procentaje.
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.
Ejemplo de esqueleto de un programa ABAP.
*************************************************************************************************************************************
*NOMBRE DEL PROGRAMA
*
*DESCRIPCION: (Descripcion breve de la funcionalidad del programa)
*
*NUMERO DE REQUERIMIENTO:(Nro de requerimiento, mejora o incidencia que genero el desarrollo)
*
*AUTOR:(nombres y apellidos completos del programador)
*
*FECHA: DD/MM/AAAA
*
---------------------------------------------------------------------------------------------------------------------------------------------------
*CONTROL DE MODIFICACIONES:
*(Esta seccion se completa con cada modificacion posterior a la implementacion en el ambiente productivo del programa).
*
*
-----------------------------------------------------------------------------------------------------------------------------------------------------
*MODIFICADO POR :(nombres y apellidos del autor de la modificacion)
*
*FECHA MODIFICACION: DD/MM/AAAA
*
*DESCRIPCION MODIFICACION:(breve descripcion de la modificacion)
--------------------------------------------------------------------------------------------------------------------------
REPORT ZXXXXXXX.
Mas abajo , dentro de la misma platilla de programa nuevo , especificamos las declaraciones de los includes, tipos , tablas internas , etc.
*******************************************************************************************************************
* INCLUDES
*******************************************************************************************************************
Include ZXXX_TOP (Include de declaracion de datos, donde XXXXX es el nombre del programa)
Include ZXXX_FORMS. (Include de declaracion de subrutinas, donde xxxx es el nombre del programa)
******************************************************************************************************************
* definicion de TYPES
******************************************************************************************************************
******************************************************************************************************************
*definicion de estructuras
******************************************************************************************************************
******************************************************************************************************************
* definicion de tablas internas
******************************************************************************************************************
******************************************************************************************************************
* definicion de parametros
******************************************************************************************************************
******************************************************************************************************************
* definicion de constantes
******************************************************************************************************************
******************************************************************************************************************
* definicion de Ranges
******************************************************************************************************************
******************************************************************************************************************
* definicion de variables
******************************************************************************************************************
******************************************************************************************************************
* Proceso principal: START-OF-SELECTION
******************************************************************************************************************
******************************************************************************************************************
* Acciones de final de proceso: END-OF-SELECTION
******************************************************************************************************************