Está en la página 1de 43

ABAP 7.

4
Nuevas
Características
ABAP nuevas características para la version 7.4
Con la versión SAP 7.4 en adelante se han introducido varios elementos nuevos del
lenguaje ABAP los cuales resultan muy útiles para empezar a incorporarlos.
A continuación citamos algunos nuevos comandos y características que vamos a
tratar en esta presentación:

• Declaraciones Inline
• Open SQL
• Expresiones
• Tablas internas

2
Declaraciones Inline (1)
Posibilidad de definir tablas en el SELECT, de esta manera nos
evitamos de definir un TYPES:
Antes Con ABAP 7.4

3
Declaraciones Inline (2)
De la misma manera podemos definir variables y estructuras,
también se pueden incorporar estos comandos para los Inner Join

4
Declaraciones Inline (3)
Posibilidad de definir variables, estructuras y tablas en el momento que van a ser utilizados
Antes Con ABAP 7.4

5
Declaraciones Inline (4)
Puedo definir tanto una estructura como un field symbol en el momento que van a ser
asignados
Antes Con ABAP 7.4

6
Declaraciones Inline (5)
Puedo definir tanto una estructura como un field symbol en el momento que los voy a
usar para recorrer una tabla
Antes Con ABAP 7.4

7
Declaraciones Inline (6)
Declaramos la variable en el momento de usarla y la valorizamos
Antes Con ABAP 7.4

8
Open SQL (1)
Nueva sintaxis:
• Campos pueden y deben ser separados con coma.
• Variables “Host” pueden y deben ser escapadas con @.

9
Open SQL (2)
Expresiones SQL, se pueden usar luego de la sentencia SELECT, el resultado de dicha
expresión es calculada en la base de datos y es escrita en la columna correspondiente.

10
Open SQL (3)
Se puede recuperar todas las columnas de una tabla utilizando la sintaxis tabla~*

11
Expresiones – Constructor Operator
Dichos constructores permiten crear de un tipo específico en la posición de operando.

VALUE crea valores


NEW crea objetos
REF obtiene referencias
EXACT ejecuta calculos sin pérdidas (loseless)
CONV convierte valores
CAST ejecuta casteos tanto para arriba como para abajo
COND y SWITCH habilita expresiones condicionales

12
Expresiones – Constructor Operator (VALUE)
En el siguiente ejemplo se obtiene:
1. El valor de MATNR.
2. El primer registro de la tabla.

La sentencia DEFAULT/OPTIONAL evita DUMP en el caso que no se encuentre valor.

13
Expresiones – Constructor Operator (NEW)
En el siguiente ejemplo se instancia un objeto.

14
Expresiones – Constructor Operator (REF)
En el siguiente ejemplo se crea una referencia de datos.

15
Expresiones – Constructor Operator (EXACT) (1)
En el siguiente ejemplo se crea un cálculo sin pérdida. Un cálculo sin pérdidas no
debe realizar ningún redondeo. Si lo hace, se produce una excepción.

16
Expresiones – Constructor Operator (EXACT) (2)
Para el segundo TRY, entra por el Catch.

Resultado final:

17
Expresiones – Constructor Operator (CONV) (1)
En el siguiente ejemplo se convierte un valor en el tipo especificado en type.
Utilizar CONV donde necesites antes variables auxiliares para lograr un tipo
de datos solicitado.

18
Expresiones – Constructor Operator (CONV) (2)

19
Expresiones – Constructor Operator (CAST)
En el siguiente ejemplo se ejecuta una conversión descendente/ascendente.

20
Expresiones – Constructor Operator (COND)
En el siguiente ejemplo vemos como se construye un resultado del tipo
específico que depende de expresiones lógicas.

21
Expresiones – Constructor Operator (SWITCH)
En el siguiente ejemplo vemos como se construye un resultado del tipo
específico que depende de una diferenciación tipo CASE.

22
Expresiones – LET
LET es una sub expresión que permite definir variables o <FS> de manera local como
campos auxiliares de las expresiones constructoras.

23
Expresiones – FOR
FOR es una sub expresión para las expresiones NEW y VALUE, que permite leer tablas
internas y construir expresiones tabulares de las líneas leídas.

24
Expresiones – REDUCE (1)
Sumar valores sin realizar loop
Antes Con ABAP 7.4

25
Expresiones – REDUCE (2)
Este LOOP recorre la tabla I_MARA agrupada por grupo de artículos (MATKL) y calcula con la sentencia
REDUCE la cantidad de materiales por grupo de artículos
Si la tabla I_MARA tiene 8 grupo de artículos distintos entonces el LOOP es de 8 ciclos, si hay 5 grupos de
artículos distintos entonces el LOOP tiene 5 ciclos.
Si la tabla I_MARA tiene los siguientes datos

26
Tablas internas – Expresiones (1)
La siguiente sintaxis se puede utilizar para acceder a líneas de una tabla.

… itab[ … ] …

Esto equivale a realizar READ TABLE con la excepción de que si no existe, nos devuelve un
dump CX_SY_ITAB_LINE_NOT_FOUND, no devuelve SY-SUBRC.

27
Tablas internas – Expresiones (2)
Se puede acceder usando índice primario.

wa = itab[ idx ].

Esto equivale a realizar:

read table itab index idx into wa.

28
Tablas internas – Expresiones (3)
Se puede acceder usando índice secundario.

wa = itab[ KEY key INDEX idx ].

Esto equivale a realizar:

read table itab index idx using key key into wa.

29
Tablas internas – Expresiones (4)
Se puede acceder usando clave libre.

wa = itab[ col1 = … col2 = … ].

Esto equivale a realizar:

read table itab with key col1 = zcol1


col2 = zcol2
into wa.

30
Tablas internas – Expresiones (5)
Se puede acceder usando clave de tabla.

wa = itab[ KEY key col1 = … col2 = … ].


wa = itab[ KEY key COMPONENTS col1 = … col2 = … ].

Esto equivale a realizar:

read table itab with table key key components col1 = zcol1
col2 = zcol2
into wa.

31
Tablas internas – Encadenamientos (1)
 … itab[ …]-comp
 … struct-comp[ … ] …
 … itab[ … ][ … ] …

32
Tablas internas – Encadenamientos (2)
read table itab into data(wa1) index 2.

read table wa1-col2 into data(wa2) index 1.

33
Tablas internas – Encadenamientos (3)
data(num2) = itab[ 2 ]-col2[ 1 ][ 2 ]-col1.

34
Tablas internas – Existencia de línea
IF line_exists( itab[ … ] ).

ENDIF.

Esto equivale a realizar:

read table … transporting no fields.

35
Tablas internas – Existencia de índice

data(idx)= line_index( itab[ … ] ).

Esto equivale a realizar:

read table … transporting no fields.

Si no encuentra línea, el valor es 0.

36
Tablas internas – Ejemplos (1)
Agregado de datos a una tabla interna
Antes Con ABAP 7.4

Resultado

37
Tablas internas – Ejemplos (2)
Agregado de valores a un rango
Antes Con ABAP 7.4

38
Tablas internas – Ejemplos (3)
Creación de rango desde un SELECT

39
Tablas internas – Ejemplos (4)
Se puede concatenar un tipo CURR sin necesidad de una variable auxiliar
Antes Con ABAP 7.4

40
Tablas internas – Ejemplos(5)
Dar formato a tipo DATE

41
Tablas internas – Ejemplos (6)
Quitar o agregar ceros a la izquierda de variables sin necesidad de utilizar las funciones
CONVERSION_EXIT_ALPHA_*

42
PREGUNTAS?

También podría gustarte