Presentación de PowerPoint

Anuncio
Fundamentos de programación en ABAP - Lección 5
ESTRUCTURA DEL LENGUAJE ABAP
Ahora después de ver las múltiples herramientas de desarrollo de ABAP,
podemos ver los detalles del lenguaje:
El lenguaje ABAP tiene ciertas características generales, que debes conocer:
•
Tiene tipos de datos definidos o estándar, como char, number, etc.
•
Permite construir aplicaciones multi-lenguaje, mediante la definición
de descripciones en diferentes lenguajes
•
Tiene un SQL dentro, hace referencia a Open SQL
•
Ha sido ampliado para orientado a objetos, con declaración de
clases, instancias o clases persistentes
•
Es independiente de la plataforma, siempre tiene el mismo
significado y función en diferentes motores de bases de datos o
sistemas operativos
•
Es compatible con versiones anteriores
Fundamentos de programación en ABAP - Lección 5
ESTRUCTURA DEL LENGUAJE ABAP
Estructura general de una instrucción ABAP:
Como ABAP es digitado, está constituido por instrucciones (instructions) o
sentencias (statement).
•
•
•
Cada sentencia consta de una palabra reservada o clave (key Word)
Una serie de operandos que cambian de acuerdo a la palabra clave
Y un punto final para terminar la sentencia.
PALABRA
CLAVE
OPERANDOS
(dependiendo de la palabra clave)
Punto como símbolo para el
cierre de la cuenta de ABAP
DATA wa_scarr TYPE scarr.
Observe que el editor
resalta las palabras clave
y no olvide el punto final.
START-OF-SELECTIÓN.
SELECT *
FROM scarr
INTO CORRESPONDING FIELD OF
wa_scarr.
NEW-LINE.
WRITE wa_scarr-carrid.
WRITE wa_scarr-carrname.
WRITE wa_scarr-url.
ENDSELECT.
Fundamentos de programación en ABAP - Lección 5
ESTRUCTURA DEL LENGUAJE ABAP
Los comentarios indispensables para explicar un programa, pueden darse a
nivel de toda la línea o parte de línea.
* Comentarios …
* Comentarios …
* Comentarios …
Comentarios
DATA wa_scarr type scarr.
START-OF-SELECTION.
SELECT * FROM scarr
“ comentarios …
INTO CORRESPONDING FIELDS OF wa_scarr.
WRITE:
NEW-LINE.
wa_scarr-carrid,
wa_scarr-carrname,
wa_scarr-url,
Declaración
encadenada
ENDSELECT.
También puede definirse instrucciones encadenadas (chained statement)
donde se tiene una sola palabra clave dos puntos ( : ) y separadas por coma
(,) como puede verse en WRITE.
Fundamentos de programación en ABAP - Lección 5
ESTRUCTURA DEL LENGUAJE ABAP
Actividad:
Ahora ingresar por la
transacción SE80 y copiar el
siguiente programa:
*&-----------------------------------------------------*
*& Report ZPRUEBA_ANG
*&
*&-----------------------------------------------------*
*& Programa de prueba
*
*&-----------------------------------------------------*
REPORT zprueba.
* Declaración de variables globales
DATA wa_ekko TYPE ekko. "tabla de pedidos de compras MM
* Declara parametro de entrada
PARAMETERS: p_ebeln TYPE ebeln. "Numero pedido
*---------- Inicio de procesos -----------*
START-OF-SELECTION.
"Inicio del programa
* Lee datos de cabecera del pedido
SELECT SINGLE *
FROM ekko
INTO wa_ekko
WHERE ebeln = p_ebeln.
IF sy-subrc = 0.
WRITE:'Documento ', wa_ekko-ebeln,
'Sociedad ', wa_ekko-bukrs,
'Fecha ',
wa_ekko-aedat.
ELSE.
WRITE 'NO EXISTE PEDIDO'.
ENDIF.
Fundamentos de programación en ABAP - Lección 5
ESTRUCTURA DEL LENGUAJE ABAP
Veamos que significa cada sentencia del programa inicial:
*
Declaración de variables globales
DATA wa_ekko TYPE ekko. "tabla de pedidos de compras MM
El programa en primer lugar, declara una estructura semejante a
la tabla de cabecera de pedidos EKKO, dando doble clic sobre
EKKO lo lleva a esta tabla estándar del módulo
MM(mantenimiento materiales).
* Declara parametro de entrada
PARAMETERS: p_ebeln TYPE ebeln. "Numero pedido
Declara la variable p_ebeln como parámetro de entrada del
programa de tipo EBELN que es un tipo estándar de SAP, dando
doble clic lo lleva a su elemento de dato.
Fundamentos de programación en ABAP - Lección 5
ESTRUCTURA DEL LENGUAJE ABAP
*---------- Inicio de procesos -----------*
START-OF-SELECTION.
"Inicio del programa
Esta sentencia como puede verse es especial, se denomina
evento (event) permite iniciar las sentencias de la lógica del
programa.
* Lee datos de cabecera del pedido
SELECT SINGLE *
FROM ekko
INTO wa_ekko
WHERE ebeln = p_ebeln.
Esta sentencia como puede notar accede a la base de datos
mediante un dialecto derivado del SQL ANSI que se denomina
Open SQL, mencionado anteriormente.
Fundamentos de programación en ABAP - Lección 5
ESTRUCTURA DEL LENGUAJE ABAP
IF sy-subrc = 0.
WRITE:'Documento ', wa_ekko-ebeln,
'Sociedad ', wa_ekko-bukrs,
'Fecha ',
wa_ekko-aedat.
ELSE.
WRITE 'NO EXISTE PEDIDO'.
ENDIF.
ENDIF.
La variable sy-subrc (junto con las demás de la tabla SYST) es
especial ya que devuelve el resultado de la sentencia anterior, si
es igual a cero, la sentencia fue correcta, de lo contrario la
sentencia fue incorrecta, para el caso del SELECT si sy-subrc = 0,
indica que leyó correctamente la tabla, si es diferente no fue
posible leer ningún dato de la tabla.
Fundamentos de programación en ABAP - Lección 5
ESTRUCTURA DEL LENGUAJE ABAP
Otras variables muy utilizadas que también están en SYST son:
•
•
sy-datum: devuelve la fecha actual del sistema o servidor de aplicación.
sy-uzeit: devuelve la hora actual del sistema.
Cuando el código ya esté en el editor,
debe guardarlo con el botón GRABAR.
Luego el programa debe COMPILARSE,
realiza la verificación sintáctica.
Luego debe ACTIVARSE para que pueda
ser utilizado por otros usuarios.
Fundamentos de programación en ABAP - Lección 5
ESTRUCTURA DEL LENGUAJE ABAP
Pero antes de ser ejecutado completamente, sería interesante ver que hace
paso a paso el programa (debug), ABAP tiene una poderosa herramienta de
depuración de programas:
Existen varias maneras de ejecutar en modo debug:
•
Ejecutar con F8 y luego digitar
/H en la línea de comandos y
luego reloj:
•
Ejecutar por el menú:
Fundamentos de programación en ABAP - Lección 5
ESTRUCTURA DEL LENGUAJE ABAP
O la manera más fácil, asignar un break-point lógico: ubicar el apuntador del
cursor en la columna gris del sector derecho y dar clic sobre la línea 18, y
luego F8 para ejecutar:
Inmediatamente se ejecuta el programa,
muestra esta pantalla:
Fundamentos de programación en ABAP - Lección 5
ESTRUCTURA DEL LENGUAJE ABAP
1- En este momento vemos que el programa tiene un título, el cual se
encuentra guardado como parámetro, si el programa fue creado desde el
principio usted llenó esta información, si tomó un programa que ya existía,
puede cambiarlo ingresando por el menú siguiente: Pasar a > Atributos >
Adicionalmente indica:
•Tipo de programa:
1-Programa ejecutable
•Paquete: que para el caso
es $TMP es decir, local que
no será transportado a
otros ambientes o
mandantes.
Fundamentos de programación en ABAP - Lección 5
ESTRUCTURA DEL LENGUAJE ABAP
2- Solicita el parámetro de entrada, como puede ver muestra el texto con el
nombre de la variable, lo cual no es muy claro para el usuario final que
utilizará el programa, para corregir esto detenga la ejecución para regresar
al editor ABAP, allí ingrese al menú, Pasar a > Elementos de texto > Textos de
selección, allí puede ingresar el texto deseado o si es una variable que
proviene del estándar marca la última columna.
Presione la tecla Activar para guardar este cambio y luego F3
para regresar al editor ABAP.
Fundamentos de programación en ABAP - Lección 5
ESTRUCTURA DEL LENGUAJE ABAP
Sigamos con la ejecución nuevamente:
Puede verse que ha cambiado
el título y el texto del
parametro, ingrese un número
de pedido válido de acuerdo a
su instalación y continúe su
ejecución F8 e ingresa al modo
debugging.
Fundamentos de programación en ABAP - Lección 5
ESTRUCTURA DEL LENGUAJE ABAP
La flecha azul de la izquierda muestra la línea actual ejecutada, para avanzar
tenemos nuevas teclas, como puede verse en la línea superior
•
•
•
•
F5-para avanzar paso a paso, por línea
F6-para avanzar hasta el fin del bloque actual
F7-para retornar a un subprograma anterior
F8-continuar hasta el próximo break-point o fin del programa
Watchpoint: permiten asignar puntos de parada con cierta condición
Al dar F5 para ver paso a paso, puede ver el contenido de las variables con
doble clic, o solo posicionando el cursor sobre la variable según su
instalación tenga activada una versión anterior o nueva del debug.
Descargar