Sentencias Básicas de Programación ABAP

Creación de Tipos

De la misma manera que podemos crear tipos de datos dentro del Diccionario de Datos ABAP, se puede realizar la creación de tipos de datos dentro de un programa.

Creación de un Tipo de Datos Estructura


TYPES:
BEGIN OF GTP_NOMBREDELTIPO,
   CAMPO1 TYPE ElementoDeDatos,
   CAMPO2 TYPE ElementoDeDatos,
   CAMPO3 TYPE ElementoDeDatos,
   CAMPO4 TYPE ElementoDeDatos,
END OF GTP_NOMBREDELTIPO.

Donde ElementoDeDatos corresponde a cualquier elemento de datos que exista dentro del diccionario de datos ABAP

Creación de un Tipo de Datos Tipo Tabla


TYPES:
GTP_TT_NOMBREDELTIPO TYPE STANDARD TABLE OF NombreDeEstructura.

Donde NombreDeEstructura corresponde a cualquier tipo de datos estructura que exista dentro del diccionario de datos o dentro de nuestro programa.


Otras posibles formas de crear un Tipo de Datos Tipo Tabla son las siguientes:


TYPES:
GTP_TT_NOMBREDELTIPO TYPE SORTED TABLE OF NombreDeEstructura WITH UNIQUE KEY CAMPO1 CAMPO2.

TYPES:
GTP_TT_NOMBREDELTIPO TYPE SORTED TABLE OF NombreDeEstructura WITH NON-UNIQUE KEY CAMPO1 CAMPO2.


TYPES:
GTP_TT_NOMBREDELTIPO TYPE HASHED TABLE OF NombreDeEstructura WITH UNIQUE KEY CAMPO1 CAMPO2.

Todos los fragmentos anteriores dan como resultado la creación de un Tipo de Datos Tipo Tabla. La diferencia está en las características de la variable tabla interna que se crea en memoria, cuando decidimos usar uno y otro, pero este es un tema que abordaremos mas adelante.

Creación de Variables

La creación de variables dentro de un programa ABAP se realiza mediante la sentencia DATA de la siguiente manera:


DATA:
variable TYPE TipoDeDatos.

Donde TipoDeDatos corresponde a un Tipo de Datos ( Elemento de Datos, Estructura, Tipo Tabla ) bien sea del diccionario ABAP o del programa que estamos creando.

Condicionales

De la misma manera que en otros lenguajes de programación, ABAP pone a nuestra disposición sentencias que permiten determinar el camino que debe tomar nuestro programa de acuerdo a una condición que puede o no ser cumplida.

Estas condiciones, pueden estar conformadas de la siguiente manera:


Variable OperadorLogico CriterioComparacion

Donde:

Variable: Hace referencia a la variable sobre la cual queremos realizar la validación lógica.

OperadorLogico: Hace referencia a la comparación lógica que se desea realizar. Algunos de los operadores mas usados son: 

= o EQ: Igual > ó GT: Mayor que un valor o una variable
< ó LT: Menos que  un valor o una variable
>= ó GE: Mayor o Igual que un valor o una variable
<= ó LE: Menor o Igual que un valor o una variable

Veamos las opciones posibles:

Sentencia IF, ELSE, ELSEIF

Si queremos que un fragmento de código se ejecute si y solo sí se cumple una condición lógica, la sentencia sería la siguiente:


IF CondicionLogica.

*.Código que se ejecuta si se cumple la condición

ENDIF. 

Si queremos que un fragmento de código se ejecute si y solo si se cumple una condición, pero si no se cumple, se ejecute otro fragmento de código, la sentencia es la siguiente:


IF CondicionLogica.

*.Código que se ejecuta si se cumple la condición

ELSE.

*.Código que se ejecuta si no se cumple la condición

ENDIF. 

Si queremos que un fragmento de código se ejecute si y solo si se cumple una condición, pero si no se cumple, queremos que se valide otra condición lógica para que si se cumple se ejecute un fragmento de código, la sentencia es la siguiente:


IF CondicionLogica.

*.Código que se ejecuta si se cumple la condición

ELSEIF CondicionLogicaSiguiente.

*.Código que se ejecuta si no se cumple la primera condición pero se cumple la segunda condición

ENDIF. 

Si queremos que un fragmento de código se ejecute si y solo si se cumple una condición, pero si no se cumple, queremos que se valide otra condición lógica para que si se cumple se ejecute un fragmento de código y si esta no se cumple, se ejecute otro fragmento de código, la sentencia es la siguiente:


IF CondicionLogica.

*.Código que se ejecuta si se cumple la condición

ELSEIF CondicionLogicaSiguiente.

*.Código que se ejecuta si no se cumple la primera condición pero se cumple la segunda condición

ELSE.

*.Código que se ejecuta si no se cumple alguna de las dos condiciones anteriores

ENDIF. 

Para mas información, puedes visitar la Documentación SAP relacionada con expresiones lógicas. 


Sentencia CASE

Para explicarlo de una manera sencilla, la sentencia CASE funciona de manera similar a tener varias sentencias IF / ELSEIF con operador lógico de igualdad agrupadas. Si no se cumple una condición, se evalúa la siguiente hasta encontrar la condición que se cumple.

Por ejemplo:


IF Variable EQ 0.

*.Código que se ejecuta si Variable = 0

ELSEIF Variable EQ 1.

*.Código que se ejecuta si Variable = 1

ELSEIF Variable EQ 2.

*.Código que se ejecuta si Variable = 2

ELSEIF Variable EQ 3.

*.Código que se ejecuta si Variable = 3

ELSE.

ENDIF.

Si utilizaramos la sentencia CASE, sería de la siguiente manera:


CASE Variable.

WHEN 0.

*.Código que se ejecuta cuando Variable = 0

WHEN 1.

*.Código que se ejecuta cuando Variable = 1

WHEN 2.

*.Código que se ejecuta cuando Variable = 2

WHEN 3.

*.Código que se ejecuta cuando Variable = 3

ENDCASE.

Para mas información, puedes visitar la Documentación SAP relacionada con la sentencia CASE

Bucles

En términos de programación, un Bucle es un fragmento de código que se ejecuta varias veces. En ABAP existen los Bucles DO, WHILE, LOOP

DO

El DO es un ciclo que se repite N cantidad de veces sin requerir ningún tipo de condición para ejecutarse. 

Las dos posibles formas de ejecutar la sentencia DO son las siguientes:

Primero, indicando la cantidad de veces que queremos que se ejecute:


DO N TIMES.

*.Código que se ejecutará N veces

ENDDO.

En donde N corresponde al número de veces que queremos que se ejecute la porción de código encerrada dentro de la sentencia DO.

Segundo, sin indicar el número de veces que queremos que se ejecute:


DO.

*.Código que se ejecutará

IF CondicionLogica.
EXIT.
ENDIF.

ENDDO.

Como en esta segunda opción, no se sabe con certeza la cantidad de veces que se ejecutará el fragmento de código, se debe utilizar la sentencia EXIT para garantizar que cuando se cumpla cierta condición lógica, el DO pare de ejecutarse. Es importante recalcar que debe garantizarse que la condición que determina la salida del DO pueda ser alcanzada. De otro modo podríamos ocasionar que nuestro programa se quede en un LOOP infinito se quede procesando eternamente el código que se encuentra dentro del DO. 

No hay comentarios.:

Publicar un comentario