Continuamos en este post con la introducción a ABAP. En este caso vamos a comentar las instrucciones mas básicas que podemos realizar.
Asignación
Existen varias formas de asignar a una variable:
-Asignación directa: <variable> = valor.
El valor se puede especificar como un literal, el contenido de una constante o el contenido de una variable.
-Sentencia MOVE: Asigna un valor a una variable.
MOVE <valor> TO <variable>.
-Sentencia MOVE-CORRESPONDING: Mueve el contenido de los campos de una estructura a los campos que tengan el mismo nombre de otra estructura.
MOVE-CORRESPONDING <origen> TO <destino>.
-Sentencia CLEAR: Inicializa el contenido de un campo a su valor inicial según el tipo de dato.
CLEAR <campo>.
-OFFSETS: Se puede hacer referencia parcial a una parte de un campo, indicando el número de posiciones que hay hasta la posición en la que se comienza a referenciar utilizando + y la cantidad de posiciones que se referencia entre paréntesis.
MOVE <campo1> + <posiciones>(longitud) TO <campo2>.
Ejemplo: DATA: d_dato1(8) TYPE c VALUE ‘ABCDEF’,
d_dato2(4) TYPE c.
d_dato2 = d_dato1+2(4).
Ahora d_dato2 = ‘CDEF’.
Condicionales
Operadores condicionales.
Igual: <valor1> EQ <valor2>
<valor1> = <valor2>
No igual: <valor1> NE <valor2>
<valor1> <> <valor2>
Mayor: <valor1> GT <valor2>
<valor1> > <valor2>
Menor: <valor1> LT <valor2>
<valor1> < <valor2>
Mayor o igual: <valor1> GE <valor2>
<valor1> >= <valor2>
Menor o igual: <valor1> LE <valor2>
<valor1> <= <valor2>
<valor1> BETWEEN <valor2> AND <valor3>.
<valor1> IS INITIAL. Si tiene el valor inicial.
<valor> IN <rango>. Si <valor> tiene un valor comprendido en el rango <rango>
Operadores lógicos.
<condicion1> AND <condicion2>
< condicion1> OR <condicion2>
NOT <condición>.
Sentencias IF <condición> ..... ENDIF.
Ejemplo: IF NOT d_dato IS INITIAL.
WRITE d_dato.
ENDIF.
Escribe por pantalla el valor introducido en d_dato si se recibe un valor distinto del inicial.
Sentencias CASE <variable>.......ENDCASE.
Permiten ejecutar diferentes grupos de sentencias en función del valor contenido en <variable>, delimitando las sentencias con la cláusula WHEN <valor>.
El valor OTHERS comprende todos los valores que no hayan sido especificados en las anteriores cláusulas WHEN.
Ejemplo: CONSTANTS: c_centrado TYPE c VALUE ‘c’,
c_izquierda TYPE c VALUE ‘i’,
c_derecha TYPE c VALUE ‘d’.
DATA: d_alineación TYPE c,
d_texto(100) TYPE c.
CASE d_alineación.
WHEN c_centrado.
WRITE d_texto CENTERED.
WHEN c_izquierda.
WRITE d_texto LEFT-JUSTIFIED.
WHEN c_derecha.
WRITE d_texto RIGHT-JUSTIFIED.
WHEN OTHERS.
WRITE d_texto.
ENDCASE.
Operadores condicionales para cadenas de texto.
<cadena1> CO <cadena2> Si todos los caracteres, incluidos los espacios de 1, están en 2.
Si la condición es cierta, la variable SY-FDPOS contendrá la longitud de <cadena1>, sino, contiene el OFFSET del primer carácter de <cadena1> que no existe en <cadena2>.
<cadena1> CN <cadena2> Si existe algún carácter en 1 que no está en 2, incluido espacios.
Si la condición es cierta, la variable SY-FDPOS contendrá el OFFSET del primer carácter de <cadena1> que no existe en <cadena2>, sino, contiene la longitud de <cadena1>.
<cadena1> CA <cadena2> Si alguno de 1 incluido espacios, está en <cadena2>.
Si la condición es cierta, la variable SY-FDPOS contendrá el OFFSET del primer carácter de <cadena1> que existe en <cadena2>, sino, contiene la longitud de <cadena1>.
<cadena1> NA <cadena2> Si ninguno de los caracteres de <cadena1>, está en <cadena2>.
Si la condición es cierta, la variable SY-FDPOS contendrá la longitud de <cadena1>, sino, contendrá el OFFSET del primer carácter de <cadena1> que existe en <cadena2>.
<cadena1> CS <cadena2> La condición se cumple si <cadena1> contiene a <cadena2>.
Si la condición es cierta, la variable SY-FDPOS contendrá el OFFSET del primer carácter de <cadena2> que existe en <cadena1>, sino, contiene la longitud de <cadena1>.
<cadena1> NS <cadena2>. La condición se cumple si <cadena1> no contiene a <cadena2>.
Si la condición es cierta, la variable SY-FDPOS contendrá la longitud de <cadena1>, sino, contendrá el OFFSET del primer carácter de <cadena2> que existe en <cadena1>.
<cadena> CP <patrón>. La condición se cumple si <cadena> contiene el patrón de búsqueda <patrón>. Este patrón permite utilizar el carácter * para representar cualquier cadena de caracteres y + para representar cualquier carácter.
Si la condición es cierta, la variable SY-FDPOS contendrá el OFFSET del primer carácter de <patrón> que existe en <cadena>, sino, contiene la longitud de <cadena>.
Ejemplo: La condición ‘Jose Luis Diaz’ CP ‘Jose*Diaz’ es verdadera y devuelve 0 en SY-FDPOS. La condición ‘JoseLuisDiaz’CP ‘Jose+Luis’ es falsa y devuelve 12 en SY-FDPOS.
<cadena> NP <patrón>. La condición se cumple si <cadena> no contiene el patrón de búsqueda <patrón>.
Si la condición es cierta, la variable SY-FDPOS contendrá la longitud de <cadena>, sino, contendrá el OFFSET del primer carácter de <patrón> que existe en <cadena>.
Un lugar para compartir conocimiento con todas las personas interesadas en el universo SAP
Suscribirse a:
Enviar comentarios (Atom)
Integración SAP
Cuando hablamos de SAP como sistema integrado que cubre toda la casuística de nuestro negocio estamos siendo bastante osados. Casi cualquier...
-
En este post un ejemplo de creación de un ALV con objetos en SAP. Para crear un ALV OO tenemos que crearnos una nueva DYNPRO y dentro de ...
-
En este post vamos a hablar de una utilidad vital dentro de SAP y de cualquier sistema informatico que se precio, LOS MENSAJES. En SAP los...
No hay comentarios:
Publicar un comentario