Professional Documents
Culture Documents
ABAP
OBJETIVOS.
Proveer lineamientos para el desarrollo de programas.
Afinar el performance de los programas.
Conocer las herramientas para Analizar el Performance de
Programas.
BENEFICIOS.
ESTRUCTURA DE UN PROGRAMA.
En la seccin de cabecera debe de incluirse documentacin del
Usuario.
Debe de contener un titulo que refleje la funcionalidad.
Debe de contener una descripcin de la funcionalidad del
programa.
Debe ser modularizado va Subrutinas.
Las definiciones de campos debern ser claros para su
propsito y contenido.
Para mejorar el esquema del programa se debe usar el PRETTY
PRINTER .
Eliminar variables y sentencias que no van hacer usadas en el
programa.
Definir Text Element.
DOCUMENTACION.
Datos de cabecera.
Para
o
o
o
o
o Fecha.
o Breve descripcin.
Ejemplo:
o
o
o
o
Ejemplo:
Correlativo
Convenciones de nombres.
Ejemplo:
Object Class
Authorization Objects
Authorization Objects
Authorizations
Activity
Ejemplo:
Authorizations
Values
AUTHORITY-CHECK .
Proporciona la facilidad de verificar si un usuario posee autorizacin. Si
se encuentra los valores especificados en un Authority-Check en uno o
Ejemplo:
AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
ID 'BUKRS' FIELD p_bukrs
ID 'ACTVT' FIELD gc_act03.
IF sy-subrc <> 0 AND sy-subrc <> 12 .
MESSAGE e007 WITH p_bukrs.
ENDIF.
Cdigo
o 0
o 4
o 8
o 12
o 24
o 28
de retorno.
Acceso Otorgado.
Usuario no posee autorizacin.
Nmero de campo han excedido a 10.
Objeto no existe.
El nombre del campo no est relacionado en el Objeto.
Error de Sistema.
PERFORMANCE
FACTORES QUE INFLUYEN EN EL PERFORMANCE.
Interaccin con la Base de Datos
Procesamiento de Tablas Internas
Utilizacin de Base de Datos Lgicas
Consideraciones:
Evitar SELECT redundante dentro de un LOOP.
Parameters : vendor like bsik-lifnr,
co_code like bsik-bukrs.
Select * From BSIK
Where Lifnr = vendor and
Bukrs = co_code
ndice no nico.
Trae un conjunto de registros que son especificados en la consulta.
AFINAMIENTO EN PERFORMANCE.
Error 1:
AND 000001000.
CHECK KNA1-PSTLZ = 1020.
ENDSELECT
Debemos usar:
SELECT KUNNR PSTLZ INTO WA FROM KNA1
WHERE KUNNR BETWEEN 0000000001 AND 0000001000
AND KNA1-PSTLZ = 1020.
ENDSELECT
Error 4: El uso SELECT anidados.
SELECT EBELN
INTO (w_ebeln) FROM EKKO
WHERE EBELN BETWEEN '4200000108' AND '5500000006'.
SELECT EBELP
INTO (w_ebelp) FROM EKPO
WHERE EBELN = EKKO-EBELN.
WRITE: / w_ebeln, w_ebelp.
ENDSELECT.
ENDSELECT.
Debemos usar:
SELECT EBELN EBELP "Purchasing Document
INTO (ebeln, ebelp) FROM EKPO
WHERE EBELN BETWEEN '4200000108' AND '5500000006'.
WRITE: / ebeln, ebelp.
ENDSELECT.
Error 5: SELECT & APPEND vs .. SELECT INTO TABLE.
SELECT * FROM KNA1
WHERE KUNNR BETWEEN '0061103792'
AND '0061800480'.
MOVE-CORRESPONDING KNA1 TO T_KNA1.
APPEND T_KNA1.
ENDSELECT.
Debemos usar:
SELECT *
INTO TABLE T_kna1
FROM KNA1
WHERE KUNNR BETWEEN '0061103792'
AND '0061800480'.
Error 6: SELECT FROM TABLE ORDER BY cuando el campo
especificado en el order by no est indexado.
SELECT VBELN BNAME INTO WA
FROM VBAK
ORDER BY BNAME.
ENDSELECT.
usar
IF TAB-FLAG IS INITIAL.
TAB-FLAG = 'X'.
ENDIF.
MODIFY TAB.
ENDLOOP.
Debemos usar:
TAB-FLAG = 'X'.
MODIFY TAB TRANSPORTING FLAG
WHERE FLAG IS INITIAL.
Error
12: Eliminar los componentes de una tabla usando
LOOP/ENDLOOP.
LOOP AT TAB_DEST WHERE K = KVAL.
DELETE TAB_DEST.
ENDLOOP.
Debemos usar:
DELETE TAB_DEST WHERE K = KVAL.
Error 13: Utilizar SELECT anidados
SELECT * FROM VBRK WHERE ...
SELECT * FROM VBRP WHERE...
...
ENDSELECT.
ENDSELECT.
Debemos usar:
SELECT * FROM VBRK INTO TABLE ITAB WHERE...
LOOP AT ITAB.
SELECT * FROM VBRP WHERE...
...
ENDSELECT.
ENDLOOP
Desde
Acceso
Cualquier
Pantalla
System Utilities
Runtime Analysis
Execute
Abap
Workbench Pantalla
Inicial
Editor Abap Pantalla
Inicial
Editor Abap
Repository
Browser
.
Transaccin
se30.
Test Runtime
Analysis
Program Execute
Runtime Analysis
Utilities More
Utilities Runtime
Analysis
Development object
Test/Excecute
(Runtime Analysis)
Arquitectura.
Acceso a la B.D.
Unidades de
Modularizacin
Operaciones en
Tablas Internas
Transferencia de
Datos
Operaciones con
Objetos en ABAP
Otros
Read Dataset
Transfer Object
Call Method
Create Object
Raise Event
Assign
Message
Set Lokale
Set PF-Status
Set Titlebar