Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Estndares ABAP.doc
Fecha: 24/07/a2007
ndice
1. 2. 3. Alcances y Objetivos ........................................................................................................................................3 Herramientas ....................................................................................................................................................4 Estndares generales de programacin .........................................................................................................5 3.1. Convenios de nombres .............................................................................................................................5 3.2. Atributos de Programa ..............................................................................................................................5 3.2.1. Ttulo ..................................................................................................................................................5 3.2.2. Tipo ....................................................................................................................................................5 3.2.3. Aplicacin ...........................................................................................................................................5 3.3. Estructura para nuevos programas ...........................................................................................................5 3.3.1. Comentarios .......................................................................................................................................5 3.3.2. Cabecera del programa .....................................................................................................................6 3.3.3. Declaracin de datos globales ...........................................................................................................6 3.3.4. Declaracin de campos de pantalla. ..................................................................................................8 3.3.5. Validacin de campos de pantalla e inicializacin .............................................................................9 3.3.6. Rutina principal del programa. .........................................................................................................10 3.3.7. Tratamiento de los datos obtenidos. ................................................................................................10 3.3.8. Eventos de control. ..........................................................................................................................11 3.3.9. Subrutinas internas. .........................................................................................................................12 3.4. Convencin para nombres internos ABAP/4 ..........................................................................................13 3.5. Recomendaciones generales sobre formato ..........................................................................................13 3.5.1. Subrutinas ( FORMS ) .....................................................................................................................13 3.5.2. Programas INCLUDE .......................................................................................................................14 3.5.3. Cabeceras de listados. ....................................................................................................................14 3.5.4. Textos de seleccin .........................................................................................................................15 3.5.5. Smbolos de texto. ...........................................................................................................................15 3.5.6. Pantallas ..........................................................................................................................................15 3.5.7. Status GUI........................................................................................................................................15 4. Modificacin del Standard ..............................................................................................................................16 4.1. Modificacin para adicionar funcionalidad. .............................................................................................16 4.2. Modificacin por aplicacin de notas SAP ..............................................................................................16 ANEXO ..................................................................................................................................................................18
Pgina 2 de 21
Estndares ABAP.doc
Fecha: 24/07/a2007
1.
Alcances y Objetivos
Tiene como objetivo principal el de fijar normas en el desarrollo en ABAP/4 para que de esa manera, el cdigo sea legible y ms fcil de mantener por cualquier desarrollador. Este documento est destinado a cubrir la totalidad de los desarrollos efectuados.
Pgina 3 de 21
Estndares ABAP.doc
Fecha: 24/07/a2007
2.
Herramientas
Se recomienda la utilizacin del OBJECT BROWSER (3.0F) o REPOSITORY BROWSER (4.0) para todo desarrollo a efectuarse en el sistema SAP R/3.
Pgina 4 de 21
Estndares ABAP.doc
Fecha: 24/07/a2007
3.
3.2.1. Ttulo
El ttulo del programa deber ser claro y conciso, de tal manera que no deje dudas cual es el objetivo del programa. Deber completarse en letra minscula, para mantener la ergonoma del sistema general
3.2.2. Tipo
Utilizar alguno de los tipos propuestos por SAP y que se corresponda con el desarrollo a efectuar.
3.2.3. Aplicacin
Completar con Z, para el caso de programas desarrollados
3.3.1. Comentarios
Todo programa desarrollado debe incluir comentarios con el propsito de facilitar a futuros programadores una herramienta para comprender con mayor exactitud cual es la funcin del cdigo desarrollado y disminuir el impacto que representa para esta persona la modificacin de un cdigo no propio. Todo comentario debe estar en letra minscula, adems debe ser claro y conciso, dando una idea general de la funcin que realiza esa seccin de cdigo en el programa.
Pgina 5 de 21
Estndares ABAP.doc
Fecha: 24/07/a2007
Pgina 6 de 21
Estndares ABAP.doc
Fecha: 24/07/a2007
*----------------------------------------------------------------------* * DECLARACION DE TABLAS * *----------------------------------------------------------------------* TABLES: T001, "Sociedades BKPF, "Cabecera de documento para Contabilidad BSEG. "Segmento de documento de Contabilidad *----------------------------------------------------------------------* * DECLARACION DE VARIABLES * * Utilizar esta seccion para declaracion de variables elementales, * * estructuras y tablas internas ( de lo mas simple a lo mas complejo) * *----------------------------------------------------------------------* * Campos globales DATA: G_CAMPO1 LIKE T001-BUKRS, "Adicionar comentario G_CAMPO2(3), "Adicionar comentario G_CAMPO3 TYPE N, "Adicionar comentario G_CAMPO4 LIKE BKPF-BUDAT. "Adicionar comentario * Estructuras DATA: BEGIN OF E_XXXXXX, BUKRS LIKE BKPF-BUKRS, BELNR LIKE BSEG-BELNR, END OF E_XXXXXX. DATA: BEGIN OF E_BKPF. INCLUDE STRUCTURE BKPF. DATA: END OF E_BKPF. * Tablas internas DATA: BEGIN OF T_XXXXXX OCCURS 10, BUKRS LIKE BKPF-BUKRS, BUDAT LIKE BKPF-BUDAT, END OF T_XXXXXX. DATA: BEGIN OF T_BKPF OCCURS 100. INCLUDE STRUCTURE BKPF. DATA: END OF T_BKPF. * Rangos RANGES: R_BUKRS * Field symbols FIELD-SYMBOLS: <FS_001>, <FS_002>. * Fields groups FIELD-GROUPS: HEADER, "Agregar comentario FG_DETALLE. "Agregar comentario FOR BKPF-BUDAT.
"Agregar comentario
"Agregar comentario
"Rango de sociedades
Donde:
Pgina 7 de 21
Estndares ABAP.doc
Fecha: 24/07/a2007
Las primeras lneas de este bloque deben utilizarse para la declaracin de las tablas y estructura de datos utilizada por el programa. Cada tabla declarada debe tener a su derecha el comentario sobre la descripcin breve de la tabla La segunda seccin del bloque se utilizar para la declaracin de variables globales. Esto incluye campos, tablas internas, estructuras, etc. en la forma y orden en que se muestra en el ejemplo de arriba. Cada objeto adicionado debe comentarse. Debe tratarse en lo posible de definir las variables haciendo referencia a campos definidos en el diccionario de datos, mediante la utilizacin del LIKE.
*----------------------------------------------------------------------* * DISEO PANTALLA DE SELECCION *----------------------------------------------------------------------* * En esta seccin del programa deben codificarse todas las sentencias * que permitan mostrar campos en la pantalla de seleccin. * Las mismas deben respetar los grupos de bloques y el sangrado * No deben hacerse programas de este tipo sin al menos un parmetro de * entrada. SELECTION-SCREEN BEGIN OF BLOCK BLK01 WITH FRAME TITLE TEXT-001. SELECT-OPTIONS: S_BUKRS FOR BKPF-BUKRS NO INTERVALS, S_BLART FOR BKPF-BLART. LIKE BKPF-GJAHR OBLIGATORY, P_MONAT LIKE BKPF-MONAT. SELECTION-SCREEN END OF BLOCK BLK01. PARAMETERS: P_KUNNR LIKE KNA1-KUNNR. PARAMETERS: P_GJAHR
Donde: Deben posicionarse los distintos PARAMETERS y SELECT-OPTIONS, de acuerdo a la posicin que se desea aparezcan en la pantalla.
Pgina 8 de 21
Estndares ABAP.doc
Fecha: 24/07/a2007
Debe comentarse cada parmetro declarado. Este tipo de variables deben ser utilizadas para evitar los HARD_CODES
Donde: Toda validacin que se realice sobre los parmetros de entrada debe efectuarse utilizando estos eventos. De esta manera, se enviarn los mensajes de error o informacin segn corresponda y los mismos aparecern sobre la pantalla de seleccin, posibilitando de esa manera que el usuario corrija el error. Debe comentarse cada parmetro declarado. Pueden crearse subrutinas del tipo PERFORM para agrupar las validaciones correspondientes a un evento de este tipo y de esa manera mejorar la modularizacin del programa, facilitando los probables cambios posteriores. El evento INITIALIZATION debe utilizarse para cargar previamente a su utilizacin las variables deseadas. Podr crearse una subrutina para agrupar todas las inicializaciones y modularizar el programa.
Pgina 9 de 21
Estndares ABAP.doc
Fecha: 24/07/a2007
*----------------------------------------------------------------------* * LECTURAS DE BASES DE DATOS * BDL: Base de datos logica utilizada - Nro.pantalla *----------------------------------------------------------------------* START-OF-SELECTION. * Realizar aqu todos los procesos necesarios para recuperar la * informacion de las bases de datos, ya sea utilizando una BDL o no. * Tratar de agupar codigo en subrutinas. * La informacin debe tratar de almacenarse en tablas internas GET BKPF. GET BSEG. GET BKPF LATE. MOVE-CORRESPONDING BKPF TO T_XXXXXX. MOVE-CORRESPONDING BSEG TO T_XXXXXX. APPEND T_XXXXXX.
Donde: La rutina principal del programa siempre debe comenzar con el evento START-OF-SELECTION. Comentar el bloque principal del programa, indicando en el caso de utilizar una BDL, cul es y que pantalla de seleccin utiliza, as como tambin incluir todo comentario de inters sobre la funcionalidad de la rutina. Los datos ledos deben almacenarse en una tabla interna para despus de realizada la seleccin controlar que se haya efectuado con xito. Pueden crearse subrutinas del tipo PERFORM para agrupar el cdigo y de esa manera mejorar la modularizacin del programa, facilitando la lectura y los probables cambios posteriores.
*----------------------------------------------------------------------* * FIN DE SELECCION DE DATOS *----------------------------------------------------------------------* END-OF-SELECTION. * Debe verificarse que la bsqueda de la informacin en las * bases de datos fue exitosa. Si esto no fuera as, deber terminarse * el programa enviando un mensaje de aviso al usuario, para que revise * la seleccin efectuada Pgina 10 de 21 DESCRIBE TABLE T_XXXXXX LINES SY-INDEX. IF SY-INDEX IS INITIAL.
Estndares ABAP.doc
Fecha: 24/07/a2007
Donde: La codificacin en esta parte del programa siempre debe comenzar con el evento END-OFSELECTION. Luego debe validarse que la seleccin de datos ha sido exitosa. En ese caso se contina con el programa, caso contrario, se debe enviar un mensaje de tipo S, informndole al usuario que verifique los datos ingresados en la pantalla de seleccin y dar por terminado el programa. Una vez verificado que el programa tiene datos para trabajar, debe codificarse en una subrutina todo lo que haga falta para complementar los datos seleccionados, ordenarlos, etc. Por ultimo, se crear una subrutina adicional donde se codificarn las sentencias necesarias para emitir el reporte. ( WRITE, FORMAT, etc.)
*----------------------------------------------------------------------* * EVENTOS DE CONTROL *----------------------------------------------------------------------* * No ser necesario codificar todos los eventos en esta seccin del * programa sino solamente los necesarios. TOP-OF-PAGE. END-OF-PAGE. TOP-OF-PAGE DURING LINE-SELECTION. AT LINE-SELECTION. AT PFNN. AT USER-COMMAND.
Donde: No es necesaria la codificacin de la totalidad de los eventos sino solamente los estrictamente necesarios. No tienen un orden establecido.
Pgina 11 de 21
Estndares ABAP.doc
Fecha: 24/07/a2007
Donde: Debe respetarse el formato mostrado en el ejemplo de arriba. Este formato se obtiene automticamente en el momento de creacin del PERFORM, haciendo doble click sobre el nombre de la sub-rutina. En el encabezado de la sub-rutina debe comentarse la funcionalidad principal de la misma, as como tambin cada uno de los parmetros pasados, comentando su contenido.
Pgina 12 de 21
Estndares ABAP.doc
Fecha: 24/07/a2007
OBJETO Variables globales Variables locales Tablas Internas Estructuras Rangos Field Symbols Fields Groups Select-options Parameters Forms Parmetros actuales
LG.MAX. 10 10 10 10 8 8 10 8 8 Libre 8
POSICION 1-2 3-10 1-2 3-10 1-2 3-10 1-2 3-10 1-2 3-8 1-3 4-8 1-3 4-10 1-2 3-8 1-2 3-8 1-2 3-n 1-2 3-8
VALOR G_ Libre L_ Libre T_ Libre E_ Libre R_ Libre FS_ Libre FG_ Libre S_ Libre P_ Libre F_ Libre U_ Libre
Para definir un proceso una sola vez en el programa, el cual es llamado desde diferentes lugares dentro del mismo programa ABAP
Los FORMS deben respetar el siguiente formato: La cantidad de lneas de cdigo no debe tener ms de una pgina de longitud en promedio. Su nombre y el nombre de los parmetros deben respetar lo descripto anteriormente en Convencin para nombres internos ABAP/4 Debe incluir comentarios sobre su funcionalidad principal y parmetros de entrada y salida.
Pgina 13 de 21
Estndares ABAP.doc
Fecha: 24/07/a2007
La codificacin de INCLUDE debe respetar los convenios de nombres internos y estndares de programacin descriptos en los puntos anteriores.
*----------------------------------------------------------------------XXXXXXXXXXXXXXXXXXXX (1) XXXXXXXXXXXXXXXXXXXXXXXXXX (2) 99/99/9999 (3) XXXXXXXX (4) XXXXXXXXXXXXXXXX (5) Pag.: 9999 (6) XXXXXXX (7) XXXXXXXXXXXXXXXXXX (7) XXXXXXXXX (7) XXXXXXXX (7) *-----------------------------------------------------------------------*
Donde: (1) (2) (3) (4) (5) (6) (7) Nombre de la sociedad. Corresponde al campo T001-BUKRS. Ttulo del reporte. Debe mostrarse en letra mayscula. Fecha de emisin del reporte. Mostrar en formato DD/MM/AAAA. Nombre del reporte. Corresponde al campo de sistema SY-REPID. Subttulo del listado. Es opcional y en caso de utilizarse debe ser mostrado en letra mayscula. Nmero de pgina. Cabeceras de columnas. Mostrar en letras maysculas.
Estos campos en la cabecera del reporte deben figurar siempre, independientemente de si se utilizan los ttulos standard de los elementos de texto o si se los codifica manualmente mediante el evento TOP-OF-PAGE.
Pgina 14 de 21
Estndares ABAP.doc
Fecha: 24/07/a2007
3.5.6. Pantallas
En el diseo de pantallas se debe tratar de mantener siempre los estndares de diseo empleados por SAP, para ello, se debe respetar lo siguiente: Todos los textos de los campos deben figurar en letras minsculas. Tratar de aprovechar las referencias a los campos del diccionario de datos. Utilizar FRAMES para enmarcar campos relacionados Ubicar los campos de tal manera que facilite su llenado por parte del usuario
4.
Pgina 15 de 21
Estndares ABAP.doc
Fecha: 24/07/a2007
DESCRIBE TABLE T_XXXXXX LINES SY-INDEX. IF SY-INDEX IS INITIAL. *---------------------------------------------------------------------* BEGIN OF APLICATION NOTE SAP NRO. 6140808 DD/MM/AAAA * REPAIR NUMBER: R01K907858 BY Jos Perz *---------------------------------------------------------------------* MESSAGE S001(Z1). Delete * EXIT. Delete MESSAGE E030(Z1). Insert *---------------------------------------------------------------------* END OF APLICATION NOTE SAP NRO. 6140808 *---------------------------------------------------------------------ENDIF.
Donde: Cada reparacin por aplicacin de nota SAP debe respetar exactamente los cambios que se detallan en la misma. Cada reparacin efectuada debe estar acotada por un texto de cabecera y uno de fin el cual contenga los datos de la nota aplicada, la fecha de aplicacin, el nmero de reparacin propuesto por el sistema de transporte ( WORKBENCH ), y el responsable de la modificacin. No deben borrarse lneas de cdigo del estndar . Aquellas que la nota de SAP proponga borrar, deben ser comentadas mediante un asterisco e incluir el comentario : DELETE.
Pgina 16 de 21
Estndares ABAP.doc
Fecha: 24/07/a2007
Pgina 17 de 21
Estndares ABAP.doc
Fecha: 24/07/a2007
ANEXO
NOMENCLATURA STANDARD DE OBJETOS
PROGRAMAS: Los nombres de los programas se dividen en cuatro partes de la siguiente forma ZPPAAXXX donde: Z Por definicin SAP PP Describe el tipo de programa (ver tabla 1) AA Describe la aplicacin (ver tabla 2) XXX Secuencia numrica.
TABLAS: Los nombres de las tablas se dividen en cuatro partes de la siguiente forma ZTANNNNN donde. Z Por definicin SAP T Tipo de tabla (ver tabla 3) A Describe la aplicacin (ver tabla 2) NNNNN Descripcin literal CAMPOS: Los nombres de los campos dentro de las tablas sern de largo variable y descripcin literal alfabtica.
ELEMENTOS DE DATOS: Para los nombres de estos objetos se deber anteponer al nombre del campo una letra Z . DOMINIOS: Los nombres de los dominios se dividirn de la siguiente forma ZCCCCNNT donde: Z Por definicin SAP CCCC Tipo de formato del campo (ver tabla 4) NN Longitud del campo T Valor fijo para determinar si tiene tabla de valores TRANSACCIONES: Los cdigos de transaccin se debern codificar de la siguiente forma ZANN donde: Z Por definicin SAP A Descripcin de la aplicacin NN Secuencia numrica.
Pgina 18 de 21
Estndares ABAP.doc
Fecha: 24/07/a2007
MENES: Los mens se codificaran de la siguiente forma ZAMN donde: Z A M N Por definicin SAP Descripcin de la aplicacin Valor fijo que describe que es un men Secuencia numrica
FORMULARIOS: Los nombres de estos objetos se codificaran como ZF_A_XXXXXXXX donde: Z Por definicin SAP F Valor fijo A Aplicacin (ver tabla 2) X DDescripcinliteral FUNCIONES: Los nombres de las funciones debern codificarse de la siguiente forma ZAA_XX...X. Donde Z Por definicin de SAP AA Aplicacin (ver tabla 2) X...X Descripcin literal referente DOCUMENTOS: Los documentos Word que se creen para documentar el desarrollo debern respetar la nomenclatura siguiente: ZAA_CCNN donde: Z Por definicin SAP AA Aplicacin CC Tipo de documentacin NN Secuencia numrica TABLAS DE PARAMETROS
Tabla 1. Cdigo BI CI DI RP BT RI IN
Tipo de Programas Descripcin BATCH INPUT CARGA INICIAL DIALOGO REPORTE PROCESO BATCH REPORTE INTERACTIVO INCLUDE
Pgina 19 de 21
Estndares ABAP.doc
Fecha: 24/07/a2007
Tabla 2. Cdigo L K C J W G A B S F M Z V X O D I Q E Y H P T
Aplicaciones Cdigo ampliado AP AR CO CCA PC GL AM BC LC TR MM R3 SD GX OR DP PM QM SM PS HR PP Descripcin Cuentas a pagar Cuentas a cobrar Controlling Cost. Center Acc Product Costing Contabilidad general Activos Fijos Sistema Bsico Consolidacin Tesorera Gestin de materiales General de proyectos Ventas y Distribucin Cont. General extendida Ordenes internas CO Documentacin de proced. Mantenimiento de planta Gestin de Calidad Gestin de Servicios Gestin de Proyectos Recursos Humanos Production Planing Extranet
Tabla 3. Cdigo T E P C V M
Tipo de Formato
Descripcin CARACTERES FORMATO FECHA AAAAMMDD CAMPO EMPAQUETADO CON COMA Y SIGNO NUMC CARACTER SOLO NUMEROS QUAN CAMPO PARA CANTIDADES
Pgina 20 de 21
Estndares ABAP.doc
Fecha: 24/07/a2007
FORMATO HORA HHMMSS CLAVE DE UNIDADES PARA CAMPOS QUAN CIFRA DE COMA FLOTANTE Tipo de Documento Descripcin PROCESOS SEGUN SAP DOCUMENTACION DESARROLLOS MANUAL DE PARAMETRIZACION MANUAL DEL USUARIO MODIFICACIONES AL ESTANDAR ELEMENTOS DEL DICCIONARIO OBJETOS DE MATCHCODE TRANSACCIONES INTERFASES PRUEBAS INFORMES DE AVANCE
LOS OBJETOS CREADOS PARA PRUEBAS O PROCESOS COCINEROS QUE NO SON NECESARIOS PARA EL PRODUCTIVO, DEBEN SER CREADOS COMO OBJETOS LOCALES (SIN ORDEN DE TRANSPORTE) Y EL NOMBRE DEBE EMPEZAR CON Y.
Pgina 21 de 21