Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Alcance
Das 1 y 2
Diccionario de Datos
Das 3 y 4
Introduccin a Programacin ABAP
Da 5
Transacciones interactivas
Da 6 y7
Ejercicios
Evaluacin
Introduccin
Que es ABAP?
Advanced Business Aplication Programing.
El ABAP/4 es un lenguaje de programacin de 4 generacin (4GL)
orientado como su definicin especifica, al desarrollo de aplicaciones de
negocio. Todos los mdulos disponibles en SAP han sido programados en
este lenguaje de programacin.
Adems podemos escribir nuevas aplicaciones en ABAP/4 como
complemento a las ya existentes o como apoyo a la configuracin del
sistema.
Diccionario de Datos
Diccionario de datos
Qu es el Diccionario de Datos ABAP?
Es la utilidad y el almacn central del entorno de desarrollo, y su funcin es
la de proporcionar las definiciones de los datos y las relaciones de la
informacin usada en los mdulos y aplicaciones de R/3.
Cul es la utilidad de un diccionario de datos?
Permite crear, modificar, o borrar definiciones de los datos. Es al mismo
tiempo una gran fuente de informacin, no solo para el entorno si no
tambin para el usuario.
Diccionario de datos
Es un conjunto de registros que se almacenan de forma estructurada.
Es un conjunto de datos organizados de tal forma que mediante un
programa se pueden obtener rpidamente subconjuntos de informacin.
Tradicionalmente se componen de campos, registros y tablas.
BASE DE DATOS
Transaccin SE11
Definicin TIPOS
Estructura
Tabla
interna
Elemento
Datos
Dominio
Tipo Tabla
Vista
Mantenimiento
Tablas
Dominio
Define las caractersticas
permanentes de un campo.
mbito de valores.
Elemento de datos
Asignacin de dominio.
Generalidades para el manejo del campo.
Descripcin.
Campo
Componente bsico de tablas y estructuras.
Asignacin de elemento de datos.
Tabla transparente
Reflejo en la base de datos.
Conjuncin de campos.
Componente bsico de la base de datos.
Generador de mantenimiento
Herramienta que permite la generacin de pantallas para el
mantenimiento bsico de una tabla y/o vista
Ayudas de bsqueda
Son las fuentes de informacin para los
matchcodes.
Estructuras
reas de trabajo dentro de programas.
No existen en la base de datos.
Tipo tabla
Vista
Es la subconjuncin de una o varias tablas.
Se crea con referencia a tablas planas.
Existe su reflejo dentro del manejador de la base de datos.
Grupos de tipos
Son cdigos de ABAP que definen objetos que despus se pueden
utilizar dentro de los desarrollos como libreras de datos.
Objetos de bloqueo
Tienen por finalidad controlar el acceso concurrente a los datos. El tipo de
bloqueo puede ser:
Compartido (tipo S)
Exclusivo (tipo E)
Exclusivo no acumulado (tipo X)
Preguntas
Ejercicios
Programacin ABAP
Programas ABAP
Programas ABAP
Reporting
Programacin de dialogo
Otras aplicaciones (Interfaz, programas conexin)
Entorno de desarrollo
Para crear un programa se pueden utilizar 2 transacciones:
Programas ABAP
Tipos de instrucciones
Declarativos
Eventos
Control
Operativos
Tipos de Datos
Campos de base de datos
Literales
Variables internas
Tipos de datos
Se pueden utilizar
TIPOS
DESCRIPCION
LONG. POR
DEFECTO
POSIBLE
LONGITUD
VALOR
INICIAL
Texto
1-32000
Espacios
Punto flotante
Entero
Texto numrico
1-32000
0000
Nmero empaquetado
1-16
Hexadecimal
1-29870
x00
Fecha YYYYMMDD
00000000
Hora HHMMSS
000000
Instrucciones Declarativas
Definicin
Data
Types
Constants
Tables
Parmetros
Parameters
Select-options
Selection-screen
Variables
Se declaran variables del report con la sentencia DATA. Si no se indica lo
contrario las variables sern del tipo carcter (Texto) y la longitud 1.
DATA g_test.
Con el parmetro LIKE podemos declarar una variable con los mismos
atributos de longitud y tipo que una variable de base de datos
DATA l_acreedor LIKE lfa1-lifnr.
Variables
Un registro de datos es un conjunto de campos relacionados lgicamente
en una estructura.
TYPES: BEGIN OF proveedor,
lifnr LIKE lfa1-lifnr,
name1 LIKE lfa1-name1,
ciudad TYPE char20,
fecha TYPE d,
END OF proveedor.
Variables
Tambin se realizan las declaraciones que hacen referencia a las tablas
internas del Diccionario de datos mediante la sentencia TABLES.
TABLES lfa1.
Parmetros
Para declarar los parmetros de la interfaz del usuario de un programa se
utiliza la sentencia PARAMETERS.
Parmetro de captura:
PARAMETERS p_lifnr TYPE char10.
SELECT-OPTIONS p_lifnr FOR lfa1-lifnr.
Parmetro de opciones:
PARAMETERS p_opt1 RADIOBUTTON GROUP gpo1 DEFAULT 'X'.
Casilla de seleccin:
PARAMETERS p_test AS CHECKBOX.
Lista de valores:
PARAMETERS p_list TYPE zlist AS LISTBOX
VISIBLE LENGTH 20.
Personalizar apariencia
La sentencia SELECTION-SCREEN se usa para cambiar la apariencia de
la pantalla de seleccin. Permite colocar marcos, bloques, reorganizar los
distintos elementos.
BEGIN OF BLOCK bloque : Sirve para crear bloques de elementos
de pantalla (para agruparlos), los cuales se pueden anidar. La opcin WITH
FRAME se usa para crear un marco visible que engloba el bloque.
Con TITLE se aade un ttulo identificativo en el marco creado. El bloque
se cierra con END OF BLOCK, poniendo el mismo nombre para el bloque
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-t01.
PARAMETERS p_msg1 RADIOBUTTON GROUP gpo1 DEFAULT 'X'.
PARAMETERS p_msg2 RADIOBUTTON GROUP gpo1.
SELECTION-SCREEN END OF BLOCK blk1.
Personalizar apariencia
Personalizar apariencia
FUNCTION KEY se usa para crear iconos en el men o barra de
herramientas. Se pueden activar hasta 5 de ellos. Se decide cul ha
pulsado el usuario chequeando el campo del sistema SY-UCOMM en el
evento AT SELECTION-SCREEN.
Varaibles requeridas:
TYPE-POOLS icon.
TABLES sscrfields.
DATA btn_function TYPE smp_dyntxt.
SELECTION-SCREEN: FUNCTION KEY 1.
INITIALIZATION.
btn_function-icon_id
= icon_CANCEL.
btn_function-quickinfo = 'Cancelar'.
btn_function-icon_text = 'Cancelar'.
sscrfields-functxt_01 = btn_function.
Personalizar Apariencia
PUSHBUTTON : Sirve para crear iconos en la propia pantalla de
seleccin. Con la opcin USER-COMMAND se le asocia un cdigo de
funcin.
SELECTION-SCREEN: BEGIN OF LINE,
PUSHBUTTON 2(10) btn_push USER-COMMAND fcode,
POSITION 1.
SELECTION-SCREEN END OF LINE.
BEGIN OF LINE,
COMMENT 40(40) p_descr,
END OF LINE.
Instrucciones de Eventos
Eventos
Initialization
At selection-screen
Start-of-selection
Eventos
El evento INITIALIZATION se ejecuta siempre antes de que aparezca la
pantalla de seleccin, una sola vez. Se usa para inicializar parmetros y
criterios de seleccin.
PARAMETERS p_fecha TYPE d DEFAULT sy-datum.
INITIALIZATION.
ADD 1 TO p_fecha.
Eventos
START-OF-SELECTION.
Bloque de proceso que se ejecutar tras procesar la pantalla de seleccin,
y antes de acceder a las tablas de la base de datos lgica. En este evento
tiene lugar la seleccin de datos por parte del usuario y la ejecucin de la
funcionalidad principal del programa.
START-OF-SELECTION.
WRITE p_fecha.
Instrucciones Operativas
Asignacin de valores
MOVE
MOVE-CORRESPONDING
CLEAR
Operaciones Aritmticas
ADD TO , SUBSTRACT FROM,
MULTIPLY BY y DIVIDE BY
DIV, MOD, STRLEN.
Procesamiento de Textos
SHIFT
REPLACE
TRANSLATE
SEARCH
CONCATENATE
CONDENSE
Presentacin de datos
WRITE
Asignacin de valores
La instruccin MOVE realiza un transporte del contenido una variable a
otra.
MOVE l_var1 TO l_var2.
Asignacin de valores
La instruccin MOVE-CORRESPONDING realiza el contenido de una
estructura a otra de aquellos campos que tengan idntico nombre.
MOVE-CORRESPONDING wa_lfa1 TO wa_tbl_report.
Operaciones aritmticas
Los operadores aritmticos en ABAP son
Suma
a = b + c
ADD b TO c
Resta
a = b - c
SUBTRACT b FROM c
Multiplicacin
a = b * c
MULTIPLY b BY c
Divisin entera
a = b DIV c
Exponente
a = b ** c
Divisin
a = b / c
DIVIDE b BY c
Procesamiento de Textos
Para realizar un desplazamiento del contenido de un campo utilizamos
SHIFT.
Resultado: campo =
ABCDE
SHIFT campo LEFT DELETING LEADING space.
Ejemplo: campo =
ABCDE
Resultado: campo = ABCDE
Procesamiento de Textos
Podemos reemplazar el contenido de ciertos campos con la instruccin
REPLACE.
REPLACE <cadena1> WITH <cadena2> INTO <campo>.
Convierte a Minsculas
TRANSLATE <campo> TO LOWER CASE.
La instruccin SEARCH busca una cadena dentro de un campo o una tabla.
SEARCH <campo>/<tabla> FOR <cadena>.
Procesamiento de Textos
Para borrar los blancos de una cadena utilizaremos CONDENSE.
CONDENSE <campo> [NO-GAPS].
Esta instruccin borra todos los blancos que se encuentren comenzando la
cadena por la izquierda y en caso de encontrar series de blancos intermedios
dejar nicamente uno por serie
La clusula NO-GAPS borra todos los blancos estn donde estn.
Para unir el contenido de dos o mas campos en otra variable se utiliza la
sentencia CONCATENATE.
CONCATENATE campo1 campo2 campoN INTO campo_texto
[SEPARATED BY SPACE].
La clusula SPACE puede ser sustituida por otro carcter separador de los
contenidos. SEPARATED BY ,.
Elementos de Textos
Los elementos de texto pueden ser ttulos de reports, cabeceras de
reports, textos de seleccin y textos numerados.
Con los Ttulos y Cabeceras podemos tratar el ttulo, cabeceras de
report y cabeceras de columna que saldrn por pantalla e impresora.
Con los Textos de seleccin trataremos los comentarios que
acompaan a los parmetros del tipo PARAMETERS o SELECT-OPTIONS.
Con los Textos numerados podemos utilizar constantes de tipo texto
sin necesidad de declararlas en el cdigo del programa. Los nombres de
las constantes sern TEXT-nnn, donde nnn es un nmero de tres dgitos.
Adems podemos mantener los textos numerados en varios idiomas.
Mensajes
Para visualizar un mensaje utilizamos la sentencia MESSAGE.
MESSAGE texto TYPE t.
Donde T es el tipo de mensaje:
A = Cancelacin.
E = Error. Es necesaria una correccin de los datos.
I = Informacin. Mensaje meramente informativo. El proceso
continuar con un ENTER.
S = Confirmacin. Informacin en la pantalla siguiente.
W = Warning. Nos da un aviso. Podemos cambiar los datos o
pulsar ENTER para continuar.
X = Dump
Podemos acompaar los mensajes de parmetros variables
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
Instrucciones de Control
Condiciones
IF..
ELSEIF..ELSE..
ENDIF.
CASE..
WHEN.. OTHERWISE..
ENDCASE.
CHECK.
Operadores
Para tipos alfanumricos y numricos:
CO (contiene slo ...)
CN (no contiene slo ...)
CA (contiene algn ...)
NA (no contiene algn ...)
CS (contiene el string ...)
NS (no contiene el string ...)
CP (contiene el patrn ...)
NP (no contiene el patrn ...).
Operaciones lgicas especiales:
Rango: Operando1 BETWEEN Operando2 AND Operando3.
Operadores
Valor inicial:
Operando IS INITIAL.
Para saber si el valor de operando es el inicial por defecto o no. Para
nmeros el valor inicial es 0; para caracteres y cadenas es SPACE
IF l_bukrs IS INITIAL.
Criterio de seleccin:
Operando IN criterio_seleccin.
Para saber si el valor de operando est dentro o no del criterio
especificado. Muy usado en los CHECK y en los SELECT ... WHERE ... El
criterio de seleccin recoge la informacin que el usuario ha introducido en
un SELECT-OPTION
CHECK l_month IN p_period.
Condiciones
Las sentencias IF..., ELSE, ENDIF... Son utilizadas comprobar si se
cumple una condicin antes depasar a la siguiente instruccin.
IF l_import EQ 100.
ADD l_import TO g_total.
ELSEIF l_import EQ 50.
SUBTRACT l_import FROM g_total.
ELSE.
CONTINUE.
ENDIF.
Instrucciones de Control
Control
DO..ENDDO.
WHILE..ENDWHILE.
CONTINUE
EXIT
Instrucciones de Control
La instruccin DO permite ejecutar un bloque de instrucciones tantas veces
como se especifique.
DO <n> TIMES.
...
ENDDO.
Sentencias de Control
Sentencias utilizadas para terminar el procesamiento de un bucle o
proceso.
La instruccin: CHECK <cond>.
Realiza un chequeo de <cond> de forma que si dentro de un bucle la condicin es
falsa, saltar todas las instrucciones que siguen al CHECK e iniciar la siguiente
pasada al bucle.
La instruccin : EXIT.
Dentro de un bucle saldr del bucle y fuera de un bucle saldr del programa. Si la
instruccin EXIT est dentro de varios bucles anidados, nicamente saldr del
bucle en proceso.
La instruccin : STOP.
Con STOP finalizaremos el report (programa) en ejecucin, pero antes
ejecutaremos el evento END-OF-SELECTION.
La instruccin: LEAVE.
Con LEAVE finalizaremos el report (programa) en ejecucin, sin ejecutar el evento
END-OF-SELECTION
Tablas Internas
Manejo de tablas internas
Append
Collect
Loop AT..EndLoop
Read table
Insert
Modify
Delete
Tablas internas
La utilidad principal de las tablas internas es guardar una coleccin de
registros de datos de la misma estructura en memoria sin necesidad de
acceder a la base de datos y poder realizar operaciones diversas con este
conjunto de informacin.
Declaracin de tablas internas y lneas de encabezado o rea de trabajo:
DATA it_lfa1 TYPE TABLE OF lfa1.
DATA wa_lfa1 TYPE lfa1.
Llenado de Tablas
APPEND Aade un registro a una tabla interna con los valores que
tengamos en el rea de trabajo.
APPEND wa_lfa1 TO it_lfa1.
sustituir
Llenado de Tablas
Podemos llenar una tabla interna con el contenido de una tabla de base de
datos. Siempre que la tabla interna tenga la misma estructura que la tabla de
base de datos.
SELECT * APPENDING TABLE it_lfa1
FROM lfa1.
[WHERE <condicin>]
[ORDER BY <campo>]
[GROUP BY <campo>]
Procesamiento de Tablas
Podemos recorrer una tabla interna con la instruccin LOOP ... ENDLOOP.
LOOP AT it_lfa1 INTO wa_lfa1.
....
ENDLOOP.
Seleccin de registros
La sentencia SELECT ser la instruccin fundamental para leer
informacin de la base de datos.
Lectura de un nico registro :
SELECT SINGLE * INTO wa_lfa1
FROM lfa1
WHERE lifnr EQ '10001' .
Seleccin de registros
Podemos leer una tablas de base de datos y simultneamente llenar una
tabla interna con el resultado de la lectura.
Insertar registros
La sentencia INSERT permite introducir registros sencillos o el contenido
de una tabla interna en una base de datos SAP.
INSERT INTO lfa1 VALUES wa_lfa1.
INSERT lfa1 FROM TABLE it_lfa1.
Actualizar registros
La sentencia UPDATE permite modificar el contenido de uno o varios
registros y desde una tabla interna.
UPDATE lfa1 FROM wa_lfa1.
UPDATE lfa1 FROM TABLE it_lfa1.
Modificar registros
La sentencia MODIFY se utilizar cuando no estemos seguros si utilizar un
INSERT o un UPDATE. Es decir, cuando no sepamos con certeza si un
registro existe o no, para modificarlo o aadirlo.
MODIFY lfa1 FROM wa_lfa1.
MODIFY lfa1 FROM TABLE it_lfa1.
Eliminar registros
Para realizar borrados de datos se aplica la sentencia DELETE.
Rutinas
Subrutinas
Funciones
Subrutinas
Son unidades de modularizacin que permiten segregar un grupo de lineas
de cdigo del resto, y lo ejecutamos en un momento determinado.
Existen 3 tipos de subrutinas o subprogramas.
Internas : El Subprograma y la llamada a ste estn en el mismo
programa.
Externas : El Subprograma y la llamada a ste estn en programas
distintos.
Biblioteca de funciones (Mdulos de funcin) : Funciones externas al
programa con interface de llamada claramente definido.
Subrutinas
Llamada a un procedimiento o subprograma.
PERFORM <modulo>.
Mdulo de Funciones
Los mdulos de funcin son mdulos especiales guardados en una
librera central, y agrupados por la funcin que realizan. Principalmente se
caracterizan por un interface definido y porque realizan tratamiento de
excepciones.
Donde en el EXPORTING especificamos los parmetros de entrada, en
el IMPORTING(opcional) el resultado o retorno de la funcin y en
TABLES(opcional) las tablas que se utilizan como parmetros.
Los mdulos de funcin tambin se caracterizan por realizar un
tratamiento de excepciones. En el interface de los mdulos de funcin se
indican los valores de excepciones para el retorno del mdulo, que
posteriormente con el SY-SUBRC se pueden comprobar.
El cdigo de la funcin puede activar excepciones mediante las
instrucciones: MESSAGE .... RAISING <excepcion>.
Preguntas
Programacin Interactiva
ModulPool
En la programacin Interactiva se trabaja con ModulPool, el cual es un
programa ABAP conocido como tipo M y controla el flujo de la transaccin y
realiza las acciones necesarias para cumplir la funcionalidad de la
transaccin. Estos programas solo permiten sentencias INCLUDE. Al
menos existirn 3 Includes:
Un TOP para las variables globales, tablas, , etc.
Un PBO para los procesos PBO (Process Before Output:
Procesos que se ejecutan siempre antes de que la pantalla sea
desplegada.
Un PAI para los procesos PAI(Process After Input: Procesos
que se ejecutan una vez que el usuario ha elegido la accin a
realizar.
Dynpros
Una dynpro se define como un conjunto de elementos que tiene por
finalidad obtener interfaces para que el usuario realice diversas
operaciones.
El Screen Painter y el Menu Painter se utilizan para crear y disear
plantillas de pantalla y programas de pantalla.
Objetos disponibles:
Campo de Texto
Campo de Entrada / Salida
Casilla de seleccin
Botn de seleccin
Pulsador
Control de fichas
Marco
rea subscreen
Control Tabla
Dynpros
Se componen de:
Diseo
PBO
Mdulos
Status
Ttulo
PAI
Existen 3 tipos de dynrpos:
Pantallas
Sub-screens
Ventanas dilogo modal
Transacciones
Los Programas tipo Module Pool nicamente son
ejecutables a travs de una Transaccin:
Programa y Dynpro.
Ejercicios
Evaluacin