✒️ABAP El procesamiento de los datos
ABAP El procesamiento de los datos
CONCATENATE
Definición
Se utiliza para concatenar varios campos alfanuméricos en uso solo.
Sintaxis:
CONCATENATE <c1> ... <cn> INTO <campo> [ SEPARATED BY <s> ].
Esta sentencia concatena los campos campos <c1> ... <cn> en el campo <campo>. Los espacios en blanco se ignoran
durante la operación.
Con la cláusula SEPARATED BY se puede especificar un campo alfanumérico (el campo <s>) que será utilizado
como separador entre los campos <c1> ... <cn>. Si el resultado de la concatenación entra en el campo <campo>,
SY-SUBRC = 0, si por el contrario, es necesario el truncamiento, SY-SUBRC = 4.
Ejemplo 1:
DATA: ONE(10) VALUE 'Ivan',
TWO(3) VALUE ' Rodrigo',
THREE(10) VALUE ' Baños',
NAME(20).
CONCATENATE ONE TWO THREE INTO NAME.
La variable NAME valdría:
Ivan Rodrigo Baños
Ejemplo 2:
DATA: ONE(10) VALUE 'Ivan',
TWO(3) VALUE 'Rodrigo',
THREE(10) VALUE 'Baños',
NAME(20),
SEPARATOR(4) VALUE 'GAUSS'.
CONCATENATE SPACE ONE TWO THREE INTO NAME
SEPARATED BY SPACE.
La variable NAME valdría:
IvanGAUSSRodrigoGAUS
y SY-SUBRC valdría 4.
CONDENSE
Definición
Para borrar espacios en blanco superfluos en campos alfanuméricos.
Sintaxis:
CONDENSE <campo> [ NO-GAPS ].
Borra cualquier secuencia de espacios en blanco, dejando sólo uno que exista entre palabras existentes en <campo>.
Los espacios en blanco por la izquierda también desaparecen.
Con la cláusula NO-GAPS todos los espacios en blanco desaparecen.
Ejemplo 1:
DATA: BEGIN OF NAME,
TITLE(8), VALUE 'Dr.',
FIRST_NAME(10), VALUE 'Michael',
SURNAME(10), VALUE 'Hofmann',
END OF NAME.
CONDENSE NAME.
WRITE NAME.
La salida en pantalla sería:
Dr. Michael Hofmann
Ejemplo 2:
DATA: BEGIN OF NAME,
TITLE(8), VALUE 'Dr.',
FIRST_NAME(10), VALUE 'Michael',
SURNAME(10), VALUE 'Hofmann',
END OF NAME.
CONDENSE NAME NO-GAPS.
SHIFT
Definición
Se utiliza para desplazar el contenido de un campo alfanumérico. Disponemos de distintas variantes en función del
modo de desplazamiento.
Sintaxis:
SHIFT <campo> [ BY <n> PLACES ] [ { LEFT | RIGHT | CIRCULAR } ].
Desplaza el contenido del campo <campo> <n> posiciones.El significado de las cláusulas es el siguiente:
BY -> Si se omite, el desplazamiento es de una posición. Si <n> es cero o negativo no se realiza ningún
desplazamiento. Si <n> excede de la longitud del campo <campo>, el desplazamiento se rellena con espacios en
blanco. <n> puede ser una variable.
l
LEFT -> el desplazamiento se realiza hacia la izquierda, con relleno de espacios en blanco por la derecha.
l
RIGHT -> El desplazamiento se realiza hacia la derecha, con relleno de espacios en blanco por la izquierda.
l
CIRCULAR -> El desplazamiento se realiza hacía la izquierda. Los caracteres que desaparecen por la izquierda
aparecen por la derecha.
l
SHIFT <campo> UP TO <string> [ { LEFT | RIGHT | CIRCULAR } ].
Realiza un desplazamiento del contenido de un campo hasta un string dado. El sistema busca el string <string> en el
campo <campo>. Si el string está contenido en el campo <campo> se realizará el desplazamiento hasta alcanzar el
string. De no contener <campo> el string <string> no se realizará ningún desplazamiento. <string> puede ser una
variable. El modo de desplazamiento es el mismo que en la variante anterior. Si el string se encuentra en el campo
<campo>, SY-SUBRC es 0, en caso contrario es 4.
SHIFT <campo> LEFT DELETING LEADING <string>.
SHIFT <campo> RIGHT DELETING LEADING <string>.
Realiza un desplazamiento hasta que el primer o último carácter cumpla cierto criterio. Esta sentencia desplaza el
contenido del campo <campo> hasta que el primer carácter de la izquierda (primera sentencia) o el último carácter de
la derecha (segunda sentencia) satisface cierta condición. El desplazamiento se rellena con espacios en blanco. <string>
puede ser una variable.
Ejemplo 1:
DATA ALPHABET(10) VALUE 'ABCDEFGHIJ'.
SHIFT ALPHABET CIRCULAR.
ALPHABET contendría 'BCDEFGHIJA' .
Ejemplo 2:
DATA ALPHABET(10) VALUE 'ABCDEFGHIJ',
FIVE TYPE I VALUE 5.
SHIFT ALPHABET BY FIVE PLACES.
ALPHABET contendría 'FGHIJ' .
Ejemplo 3:
DATA ALPHABET(10) VALUE 'ABCDEFGHIJ',
 
 
 
Sobre el autor
Publicación académica de Cesar Ismael Rodriguez Zorrilla, en su ámbito de estudios para la Carrera Consultor ABAP.
Cesar Ismael Rodriguez Zorrilla
Republica Dominicana - Legajo: MW21J
✒️Autor de: 120 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Cesar Rodriguez