Você está na página 1de 16

ESTNDARES DE DESARROLLO

SAP - ABAP

INDICE
Introduccin.................................................................................................................................................. 3
Estandar Default....................................................................................................................................... 3
Identificacin de Objetos.............................................................................................................................. 3
Tabla........................................................................................................................................................ 3
Estructura (diccionario de datos).............................................................................................................. 4
Elemento de Datos................................................................................................................................... 4
Dominio.................................................................................................................................................... 4
Objeto de Bloqueo.................................................................................................................................... 4
Vista......................................................................................................................................................... 4
Data Type Group...................................................................................................................................... 4
Search Help.............................................................................................................................................. 5
SET/GET Parameter................................................................................................................................ 5
OBJETOS DE PROGRAMAS....................................................................................................................... 5
Programa.................................................................................................................................................. 5
Module Pool............................................................................................................................................. 5
Module pool Include................................................................................................................................. 6
Transaccin.............................................................................................................................................. 6
Clase de Mensaje..................................................................................................................................... 6
Mdulo de Funcin................................................................................................................................... 6
Grupo de Funciones................................................................................................................................. 6
Sapscript.................................................................................................................................................. 7
SmartForms.............................................................................................................................................. 7
Select Option Parameter.......................................................................................................................... 7
Internal Table........................................................................................................................................... 7
Etructura (en tiempo en ejecucin)........................................................................................................... 7
Variable, Constant and Range................................................................................................................. 7
OTROS OBJETOS....................................................................................................................................... 8
Batch input Session.................................................................................................................................. 8
Ordenes de Transporte............................................................................................................................ 8
Imgenes.................................................................................................................................................. 8
NORMAS Y PREFIJOS................................................................................................................................ 8
Mdulos SAP (*): ..................................................................................................................................... 8
Descripcin (**):....................................................................................................................................... 9
Prefijo de tipo de variable (***):................................................................................................................ 9
Prefijo de tipo de Programa (****):............................................................................................................ 9
Estandares de Codigo................................................................................................................................ 10
Encabezado........................................................................................................................................... 12
Entre Lneas........................................................................................................................................... 12
Modificaciones........................................................................................................................................ 12
Eventos, declaraciones y Subrutinas..................................................................................................... 13
Estndares en Reportes............................................................................................................................. 14
Consideraciones de Hardware............................................................................................................... 14
Cuerpo del Reporte................................................................................................................................ 15
Otras Recomendaciones........................................................................................................................ 15

INTRODUCCIN
Es necesario definir estandares para el proceso de desarrollo de aplicaciones complementarias al
sistema SAP.

Estandar Default
SAP tiene un estndar para los desarrollo de aplicaciones complementarias a la licencia
adquirida, dicho estndar es la letra Z, la cual debe utilizarse como inicial a la identificacin de las
aplicaciones que se desarrollan, ya que cuando se realizan actualizaciones a la licencia todo lo que este
identificado inicialmente con Z no lo toca la actualizacin.
Ejemplo.
Z..

IDENTIFICACIN DE OBJETOS
A continuacin se describe, por tipo de objeto de repositorio SAP, el mtodo a utilizar para
asignar los nombres de los mismos. Los criterios utilizados son principalmente: tipo de objeto y mdulo
SAP.
DICCIONARIO DE DATOS

Tabla
Nombre ZXXTT_Nombre:

Valor Fijo

XX

Mdulo SAP *

TT

Valor Fijo (Tabla Transparente)

Nombre

Descripcin **

Estructura (diccionario de datos)


Nombre ZXXE_Nombre:

Valor Fijo

XX

Mdulo SAP *

Valor Fijo (Estructura)

Nombre

Descripcin **

Elemento de Datos
Nombre ZXXED_Nombre:

Valor Fijo

XX

Mdulo SAP *

ED

Valor Fijo (Elementos de Datos)

Nombre

Descripcin **

Dominio
Nombre ZXXDO_Nombre:

Valor Fijo

XX

Mdulo SAP *

DO

Valor Fijo (DOminio)

Nombre

Descripcin **

Objeto de Bloqueo
Nombre EZ_Nombre:

Valor Fijo (SAP estndar)

Valor Fijo

Nombre

Nombre de tabla de Referencia

Vista
Nombre ZXXV_Nombre:

Valor Fijo

XX

Mdulo SAP *

Valor Fijo (Vista)

Nombre

Descripcin **

Data Type Group

Nombre ZDTCorr:

Valor Fijo

DT

Valor Fijo (Data Type)

Corr

Correlativo de 2 posiciones

Search Help
Nombre ZXXSH_Nombre:

Valor Fijo

XX

Mdulo SAP *

SH

Valor Fijo (Search Help)

Nombre

Descripcin **

SET/GET Parameter
Nombre PA_Nombre:

PA

Valor Fijo (Parameter)

Nombre

Descripcin **

OBJETOS DE PROGRAMAS
Programa
Nombre: ZXX_YY_Nombre:

Valor fijo

XX

Mdulo SAP *

YY

Tipo de Programa ****

Nombre

Descripcin **

Module Pool
Nombre: SAPMZXX_Nombre:

SAP

Valor Fijo (standard SAP)

Valor Fijo (Module Pool)

Valor Fijo

XX

Mdulo SAP *

Nombre

Descripcin **

Module pool Include


Nombre: MZIXX_Nombre_NN:

Valor Fijo (Module Pool)

Valor Fijo

Valor fijo

XX

Mdulo SAP *

Nombre

Descripcin con referencia al Module Pool principal **

NN

Correlativo

Transaccin
Nombre: ZXXT_Nombre:

Valor Fijo

XX

Mdulo SAP *

Valor Fijo (Transaccin)

Nombre

Descripcin **

Clase de Mensaje
Nombre: ZXX:

Valor Fijo

XX

Mdulo SAP *

Mdulo de Funcin
Nombre ZXXFU_Nombre:

Valor Fijo

XX

Mdulo SAP *

FU

Valor Fijo (FUncin)

Nombre

Descripcin **

Grupo de Funciones
Nombre ZXXGF_Nombre:

Valor Fijo

XX

Mdulo SAP *

GF

Valor Fijo (Grupo de Funciones)

Nombre

Descripcin **

Sapscript
Nombre ZXXS_Nombre:

Valor Fijo

XX

Mdulo SAP *

Valor Fijo (Sapscript)

Nombre

Descripcin **

SmartForms
Nombre ZXXSF_Nombre:

Valor Fijo

XX

Mdulo SAP *

Valor Fijo (Sapscript)

Nombre

Descripcin **

Select Option Parameter


Nombre SO_Nombre:

SO

Valor Fijo (Select Option)

Nombre

Descripcin **

Internal Table
Nombre IT_Nombre:

IT

Valor Fijo (Tabla Interna)

Nombre

Descripcin **

Etructura (en tiempo en ejecucin)


Nombre E_Nombre:

Valor Fijo (Estructura)

Nombre

Descripcin **

Variable, Constant and Range


Nombre PP_Nombre:

PP

Prefijo de tipo de variable ***

Nombre

Descripcin **

OTROS OBJETOS
Batch input Session
Nombre ZXX_Nombre:

Valor Fijo

XX

Mdulo SAP *

Nombre

Descripcin **

Ordenes de Transporte
Nombre BC_XX: Nombre:

BC

Valor Fijo

XX

Mdulo SAP *

Nombre

Descripcin **

Imgenes
Nombre ZXX_IMG_<TIPO> Nombre: (Ej: ZDM_IMG_FIRM_LORENTC)

Valor Fijo

XX

Mdulo SAP *

IMG

Valor Fijo (IMG=IMAGE)

Tipo Imagen

FIRM-Firma, FOTO-Fotografia, FACH-Fachada, LOCA-Local

Nombre

Descripcin **

NORMAS Y PREFIJOS
Mdulos SAP (*):
Prefijo
FI
CO

Modulo de SAP
GL, AR, TR, AM, AP,
CFM
CO, CO-PC, CO-OM

MM
SD
DE

MM, MM-IM
SD
Desarrollos globales

Descripcin (**):
Para la asignacin del nombre de los objetos se tomaran las 4 primeras letras de cada palabra
que compone la descripcin de lo que se va a desarrollar. En caso de que sean descripciones formadas
por varias palabras, por cada palabra se debe utilizar guin mayor (_) para separarlas.

Prefijo de tipo de variable (***):


Prefijo

Tipo de Variable

NU

N - Numeric

CH
PK
IN

C - Character
P - Packet
I Integer

FL

F Floating

HX
DT
TM

X Hexagsimal
D Date
T Time

ST

STRING String

CN

Cualquier Tipo

Descripcin
Alfanumrica
(solo nmeros)
Alfanumrica
Montos
Nmeros Enteros
Nmeros
con
1
entero
y
mucho
decimals
Hexagsimal
Fecha
Hora
Cadena
de
Caracteres
de
tamao variable
Constantes

Prefijo de tipo de Programa (****):


Prefijo
IF
RE
CN
CI
PR
IN

Tipo de Variable
Interfaz
Reporte
Conversin
Carga Inicial
Programas
Include

PAQUETES
Todo objeto de repositorio debe asignarse a un Paquete al ser creado. Se crearon los siguientes
paquetes:
Paquete
ZFI
ZCO

Descripcin
Desarrollos para FI
Desarrollos para CO

ZMM
ZSD
ZDE

Desarrollos para MM
Desarrollos para SD
Desarrollos globales (clases o includes
globales)

Todos los desarrollos que se realicen para pruebas o temporales, deben ser asignados como
Objeto Local, es decir, al paquete estndar $TMP. Con esto, no se tendr que asignar el desarrollo a
una orden de transporte.

ESTANDARES DE CODIGO
INDENTACIN DE BLOQUES A 2 ESPACIOS
Utilizar 2 espacios para indentar cualquier bloque de cdigo. No utilizar tabuladores ya que estos
pueden ser interpretados distinto segn el editor (Ej.: Notepad), el uso de espacios asegura indentacin
correcta.
DO 5 TIMES.
IF v_tipo = E.
v_nombre = r_cliente.
IF v_nivel = M.
v_descripcion = Mayorista.
ELSE.
v_descripcion = Minorista.
ENDIF.
ELSE.
v_nombre = r_cliente-nombre.
ENDIF.
ENDDO.

MAYSCULAS PARA PALABRAS RESERVADAS


Para las palabras reservadas de OPEN SQL se utilizarn maysculas para facilitar la
diferenciacin de los elementos definidos por el usuario.
SELECT SUM(total_venta)INTO v_total_venta
FROM zt_fiap_deta_vent
WHERE cliente = r_cliente-cliente.

MINSCULAS PARA ELEMENTOS DEFINIDOS POR USUARIO


Todos los elementos definidos por el programador como variables, constantes, tablas internas,
estructuras, etc. deben utilizar el estndar en minsculas. En caso de que sean nombres formados por
varias palabras, por cada palabra se debe utilizar guin mayor (_) para separarlas.
zt_fiap_deta_vent-nombre_entidad
v_entidad_comercial
c_tasa_interes
cu_clientes

ANCHO MXIMO DE LNEA A 70 CARACTERES


Limitar el nmero de caracteres por lnea a 70 para mantener visible el cdigo escrito. Cuando
un comando se componga de varias lneas ajustar el texto de la siguiente lnea a la altura de indentacin
del bloque de informacin al que pertenece. Se presentan varios ejemplos que tratan de ilustrar esto.
CONTATENATE primer_apellido
segundo_apellido
primer_nombre
segundo_nombre INTO nombre_completo.

COMENTARIOS
Se debe mantener una documentacin consistente en el cdigo escrito para facilitar su
entendimiento por otras personas. Debe incluir como mnimo la lgica del procedimiento que ejecuta el
cdigo.

Encabezado
Se debe escribir un encabezado que indique el estado, nombre, propsito e historial de
modificaciones del procedimiento. Este debe utilizar los delimitadores ** como se muestra en el
ejemplo:
************************************************************************
* INFORMACION GENERAL
* Nombre del Programa : <Nombre del Programa>
* Ttulo
: <Ttulo del Programa en los Atributos>
* Autor
: <Autor>
* Fecha de Creacin
: <Fecha de Creacin>
* Tipo
: <Reporte, conversin, Interfase, etc.>
* Copia de
: <Programa Original del cual fue copiado >
* Mdulo
: <Mdulo Funcional de SAP>
* Llamado por
: <Transaccin, o Programa>
* Descripcin
: <Breve descripcin del Desarrollo>
*
************************************************************************
* Modificaciones:
* <Fecha> - <Autor>
* <Modificacin Descripcin>
************************************************************************
REPORT ZDE_RP_MODELO.

Entre Lneas
En este caso se debe de comentar cada vez que se inicia un bloque de procesamiento para
explicar que es el propsito de esa seccin de cdigo. Si se quiere una lnea de comentario completa, se
utiliza * en la primera columna; si se quiere un breve comentario en la misma lnea donde se encuentra
una instruccin, se utiliza comillas dobles () antes del comentario.
*

Revision del credito pendiente del cliente


IF v_credito_pendiente = 0.
Si no tiene Pendientes
v_credito_pendiente=v_credito_pendiente + r_cuenta_cobrar-credito.
END IF.

Modificaciones
Durante de el desarrollo de una aplicacin, se deben realizar modificaciones de cdigo debido a
correcciones u actualizaciones en la lgica del funcionamiento.
Lo que se debe hacer en estos casos, es que en cada modificacin, dejar constancia de quien lo
hace y desde donde hasta donde se realizo la modificacin.
*
Modif.

12.03.2005
----------------------------------------------INI.
( Cdigo )
*
Modif.

12.03.2005
----------------------------------------------FIN.

USER1

USER1

Esto ayuda a seguir modificando con facilidad y seguir los cambios que se han producido en el
sentido de un historial debido a que se documenta la fecha y el desarrollador que realizo el cambio. Esto
es importante ya que si el cambio diera algn tipo de problema, es sencillo regresar al estado anterior.
Si se va a reemplazar lneas o variables, dejarlas comentadas para tener como referencia la
funcionalidad anterior a la modificacin y el nuevo cdigo hacerlo al costado o debajo de lo viejo.

Eventos, declaraciones y Subrutinas


Los eventos, declaraciones y subrutinas, deben ser documentadas de la siguiente forma:
************************************************************************
* INFORMACION GENERAL
* Nombre del Programa : <Nombre del Programa>
* Ttulo
: <Ttulo del Programa en los Atributos>
* Autor
: <Autor>
* Fecha de Creacin
: <Fecha de Creacin>
* Tipo
: <Reporte, conversin, Interfase, etc.>
* Copia de
: <Programa Original del cual fue copiado >
* Mdulo
: <Mdulo Funcional de SAP>
* Llamado por
: <Transaccin, o Programa>
* Descripcin
: <Breve descripcin del Desarrollo>
*
************************************************************************
* Modificaciones:
* <Fecha> - <Autor>
* <Modificacin Descripcin>
************************************************************************
REPORT ZDE_RP_MODELO.
************************************************************************
* TABLES
*
************************************************************************
" Declaraciones de Tablas de Diccionario y Estructuras
************************************************************************
* TYPES
*
************************************************************************
"Tipos de variables, estructuras y tablas internas
TYPES: BEGIN OF TYPE_DATA,
DATA1(5),
DATA2(2) TYPE N.
END OF TYPE_DATA.
************************************************************************
* DATA
*
************************************************************************
"Declaracin de Variables globales, constantes, tablas internas
DATA: VAR1, VAR2.
************************************************************************
* PARAMETERS
*
************************************************************************
"Parmetros y Select-options
************************************************************************
* INITIALIZATION
*
************************************************************************
"Inicializaciones
************************************************************************
* AT SELECTION-SCREEN
*
************************************************************************
"Validaciones sobre los parmetros
************************************************************************
* MAIN PROGRAM
*
************************************************************************
START-OF-SELECTION.
PERFORM SUB_RUTINE USING VAR1
CHANGING VAR2.
END-OF-SELECTION.
************************************************************************
* AT LINE-SELECTION
*
************************************************************************
"Para Reportes Interactivos
************************************************************************
* AT USER-COMMAND
*

************************************************************************
"Para Botones
************************************************************************
* TOP-OF-PAGE
*
************************************************************************
"Encabezado de Reportes
************************************************************************
* BOTTOM-OF-PAGE
*
************************************************************************
"Pi de Pgina de Reportes
************************************************************************
* FORMS
*
***********************************************************************
"Subrutinas
*&---------------------------------------------------------------------*
*&
Form SUB_RUTINE
*&---------------------------------------------------------------------*
*
Subrutine Description
*----------------------------------------------------------------------*
*
-->P_VAR1 Parameter Description
*
<--P_VAR2 Parameter Description
*----------------------------------------------------------------------*
FORM SUB_RUTINE USING
P_VAR1
CHANGING P_VAR2.
ENDFORM.
" SUB_RUTINE
.
************************************************************************

Existe ya creado en SAP, el programa ZDE_RP_MODELO, que puede utilizarse como modelo para los
desarrollos.

ESTNDARES EN REPORTES
No es solo como se ver un reporte lo que define el estndar. Se deben tomar en cuenta los factores de
uso para el usuario como el desarrollo del mismo para poder crear un estndar beneficioso tanto a
usuario como a desarrollador.

Consideraciones de Hardware
Se debe tomar en cuenta que realmente ninguna herramienta puede dar un resultado 100% WYSIWYG,
as que los estndares tratan de dar una gua que logre semejanzas entre los formatos impresos.
Para iniciar se presentan ciertas sugerencias al momento de desarrollar los reportes:

Utilizar el mnimo
Courier New
Times New Roman
Lnprint

de

fuentes

de

letras

posibles.

Las

que

se

deben

usar

son:

La seleccin de ella depender de la impresora que se desee utilizar para la forma.

Evitar el uso de colores en los reportes para prevenir problemas de impresin por el tipo de impresora
o driver.
No utilizar tipos de letra itlica (es ms difcil de leer).
No utilizar espacios en blanco muy extensos entre registros (consumen espacio en las pginas).
Si un reporte ser utilizado en impresin caracter o grfica no generar dos reportes sino que el
reporte pueda adaptarse a cada tipo de impresin.

Todas las formas pueden realizarse ya sea en SmartForms o SAPScript. El primero es una versin
grfica que facilita la programacin, la segunda se refiere a la versin texto que se encuentra disponible
de la versin 1 a la 4.x.
Para realizar las formas en SmartForms es necesario tomar en cuenta que estas pantallas se basaran en
ventanas, las cuales contienen objetos que pueden ser:

Mscaras de Edicin
Tablas
Textos Dinmicos
Comandos
Lneas de Programa
Carpetas
Funcin Grfica
Direcciones
Lneas IF

ENCABEZADO
Cada una de las formas tiene un encabezado, un ttulo en el cual se deben utilizar los objetos:

Textos Dinmicos
Cambian de acuerdo a los requerimientos especficos de la forma.
Includes
Se deben utilizar cuando la informacin que se requiere desplegar ya se encuentra en esta base de
datos. Pues son nombres almacenados comnmente utilizados por los programadores.

Cuerpo del Reporte


En este caso depende del tipo de reporte que se elabore, solo se dan algunos estndares para poder
mantener el mismo Look & Feel en los reportes del sistema.
Se debe realizar con la ayuda de Tablas las cuales tienen su respectiva cabecera y detalle. En el detalle
se utilizan por lo general textos dinmicos. En ambos, cuando se tienen varios campos, se deben utilizar
las Mscaras de Edicin, que tienen la funcin de una tabla invisible que permite alinear el texto de
manera que en la impresin pueda ajustarse a los formatos predefinidos.
Si se desea realizar algn cambio a una forma debe de tomarse el cdigo de acuerdo a sus respectivos
estndares mencionados en este documento. Adems deben utilizarse las opciones como por ejemplo
las condiciones.

Otras Recomendaciones
Existe otro tipo de reporte que es muy comn en la generacin de informes, principalmente de tipo
gerencial, estos reportes son los reportes de tipo ALV.
Estos reportes tambin son muy usados principalmente en donde se manejan cifras de dinero. La gran
ventaja que representan sobre SAPScript y SmartForms es que permiten manipular en pantalla la
organizacin de la informacin, es posible agregar o quitar columnas, totalizar, filtrar, exportar a diversos
formatos como por ejemplo: XML, HTML, EXCEL, WORD en donde es posible agregarles funcionalidad o
hacer ajustes de formato, para su impresin.
Recomendamos usar el tipo de salida ALV en la elaboracin de reportes gerenciales y de resultados.

ST05 Trace al programa


Llamar transaccin que se usa para manejar los campos que necesitamos averiguar
Iniciar Trace
Se abre otra sesin y se desactiva el trace
Luego se ve el trace grabado y se comienza a buscar en cada tabla el campo.

Você também pode gostar