Conceptos
Los campos de sistema SY son variables internas que SAP carga en memoria cada vez que se ejecuta un programa. Da igual que no las hayamos declarado en ningún punto del programa, siempre están disponibles para ser utilizadas. Por lo tanto, si estamos programando y las necesitamos bastará con incluirlas en nuestro código ABAP.
Clasificación de campos de sistema Estos campos se subdividen en:
- Campos generales de información de sistema.
- Campos de programación ABAP.
- Campos internos de sistema
- Campos obsoletos.
Campos de sistema más utilizados:
Campo SY-SUBRC
Nos indica si el resultado de la anterior sentencia ejecutada se ha procesado correctamente o no. Cuando el resultado es correcto entonces toma un valor ‘0’, pero si no es así tomará un valor diferente a ‘0’. Es muy útil en selecciones de datos SQL o en excepciones de módulos de funciones.
Campo SY-UCOMM
Un campo SY-UCOMM devuelve el valor del último código de función pulsado en pantalla. Sirve para determinar cómo el usuario interactúa en cada pantalla de un programa. Su valor suele copiarse en una variable llamada OK_CODE y, a partir de ella, tratarla. Por ejemplo, cuando un usuario pulsa una opción de un menú SY-UCOMM se informará con el código de función de esa opción para poder realizar la función correspondiente. Es un campo es muy utilizado en la programación de MODULPOOLS y DYNPROS.
Campo SY-DATUM
Guarda siempre el valor de la fecha actual en formato AAAAMMDD (año mes día). Junto a ella también se puede mencionar la variable SY-UZEIT que contiene el valor de la hora actual. Es útil en la programación de reports cuando queremos mostrar claramente fecha y hora de ejecución de un informe.
Campo SY-TABIX
Incorpora el número de registro de una tabla interna en el cual nos encontramos cuando estamos en un bucle loop…endloop. Es útil si, por ejemplo, sólo queremos mostrar un determinado número de registros de una tabla interna.
Campo SY-BATCH
Indica si el programa se está lanzando en modo on-line o en proceso de fondo. Cuando esté llene indicará que el programa está en proceso de fondo. A veces queremos controlar que un determinado programa no se lance nunca on-line. Entonces, ésta será la variable a utilizar.
Campo SY-MSGID
Contiene el valor de una clase de mensaje. Suele utilizarse en combinación con los campos de sistema sy-msgno, sy- msgv1, sy-msgv2, sy-msgv3 y sy-msgv4. Se puede ver cuando se escribe una función a través de la opción modelo del editor (Ctrl+F6) y estas seis variables aparecen después de una sentencia SY-SUBRC. Eso es para controlar las excepciones del módulo de funciones. Si como resultado de la función se genera una excepción entonces podremos utilizar estas variables para determinar de qué excepción se trata.
Campo SY-CUCOL
Al posicionar el cursor en la pantalla la variable sy-cucol guarda el valor de la posición horizontal. Se usa juntamente con el campo sy-curow. Entre ambos nos permitirá determinará el valor del campo que el usuario está marcando en la pantalla.
Listado completo de las variables del sistema
El listado completo de campos de sistema en ABAP se encuentra en la estructura del diccionario de datos SYST.
Nombre | Tipo de datos | Longitud | Descripción |
INDEX | INT4 | 10 | Contador de loops |
PAGNO | INT4 | 10 | Página de lista actual |
TABIX | INT4 | 10 | Índice de tablas internas |
TFILL | INT4 | 10 | Cantidad de líneas de tablas internas |
TLOPC | INT4 | 10 | Campo interno de sistema ABAP |
TMAXL | INT4 | 10 | Campo de sistema ABAP obsoleto |
TOCCU | INT4 | 10 | Campo de sistema ABAP obsoleto |
TTABC | INT4 | 10 | Campo de sistema ABAP obsoleto |
TSTIS | INT4 | 10 | Campo interno de sistema ABAP |
TTABI | INT4 | 10 | Campo de sistema ABAP obsoleto |
DBCNT | INT4 | 10 | Líneas tratadas de tablas de banco de datos |
FLPOS | INT4 | 10 | Hallazgo en cadena de bytes o caracteres |
COLNO | INT4 | 10 | Columna actual en la lista |
LINCT | INT4 | 10 | Longitud de la página de la lista |
LINNO | INT4 | 10 | Línea actual en la lista |
LINSZ | INT4 | 10 | Ancho de la línea de la lista |
PAGCT | INT4 | 10 | Campo de sistema ABAP obsolete |
MACOL | INT4 | 10 | Cantidad de columnas en margen izquierdo lista de impresión |
MAROW | INT4 | 10 | Cantidad de columnas en margen superior de lista impresión |
TLENG | INT4 | 10 | Longitud de las líneas de una tabla interna |
SFOFF | INT4 | 10 | Campo interno de sistema ABAP |
WILLI | INT4 | 10 | Campo de sistema ABAP obsoleto |
LILLI | INT4 | 10 | Línea de listas seleccionada |
SUBRC | INT4 | 10 | Código retorno de sentencias ABAP |
FLENG | INT4 | 10 | Campo interno de sistema ABAP |
CUCOL | INT4 | 10 | Posición del cursor horizontal en PAI |
CUROW | INT4 | 10 | Posición del cursor vertical en PAI |
LSIND | INT4 | 10 | Índice de lista de bifurcación |
LISTI | INT4 | 10 | Índice de la línea visualizada |
STEPL | INT4 | 10 | Índice de la línea step loop actual |
TPAGI | INT4 | 10 | Campo de sistema ABAP obsoleto |
WINX1 | INT4 | 10 | Campo de sistema ABAP obsoleto |
WINY1 | INT4 | 10 | Campo de sistema ABAP obsoleto |
WINX2 | INT4 | 10 | Campo de sistema ABAP obsoleto |
WINY2 | INT4 | 10 | Campo de sistema ABAP obsoleto |
WINCO | INT4 | 10 | Campo de sistema ABAP obsoleto |
WINRO | INT4 | 10 | Campo de sistema ABAP obsoleto |
WINDI | INT4 | 10 | Campo de sistema ABAP obsoleto |
SROWS | INT4 | 10 | Imágenes pantalla, cantidad líneas |
SCOLS | INT4 | 10 | Imágenes pantalla, cantidad columnas |
LOOPC | INT4 | Líneas visibles de un step loop | |
FOLEN | INT4 | 10 | Campo interno de sistema ABAP |
FODEC | INT4 | 10 | Campo interno de sistema ABAP |
TZONE | INT4 | 10 | Fecha y hora, dif.tiempo con la hora de Greenwich |
DAYST | CHAR | 1 | Marca de selección del horario de verano |
FTYPE | CHAR | 1 | Campo interno de sistema ABAP |
APPLI | RAW | 2 | Campo de sistema ABAP obsoleto |
FDAYW | INT1 | 3 | Día de la semana en calendario fábrica |
CCURS | DEC | 9 | Campo de sistema ABAP obsoleto |
CCURT | DEC | 9 | Campo de sistema ABAP obsoleto |
DEBUG | CHAR | 1 | Campo interno de sistema ABAP |
CTYPE | CHAR | 1 | Campo de sistema ABAP obsoleto |
INPUT | CHAR | 1 | Campo interno de sistema ABAP |
LANGU | LANG | 1 | Clave de idioma del entorno de texto actual |
MODNO | INT4 | 10 | Índice del modo externo |
BATCH | CHAR | 1 | El programa se ejecuta en proceso de fondo |
BINPT | CHAR | 1 | Programa ejecutado vía batch input |
CALLD | CHAR | 1 | Programa ABAP, modo de llamada alprograma |
DYNNR | CHAR | 1 | Número del dynpro actual |
DYNGR | CHAR | 1 | Grupo de imágenes del dynpro actual |
NEWPA | CHAR | 1 | Campo interno de sistema ABAP |
PRI40 | CHAR | 1 | Campo interno de sistema ABAP |
RSTRT | CHAR | 1 | Campo interno de sistema ABAP |
WTITL | CHAR | 1 | Indicador para cabecera de página estándar |
CPAGE | INT4 | 10 | Número de páginas actual de unan lista |
DBNAM | CHAR | 20 | Banco de datos lógico de un programa ejecutable |
MANDT | CLNT | 3 | Identificación del mandante del usuario actual |
PREFX | CHAR | 3 | Campo de sistema ABAP obsoleto |
FMKEY | CHAR | 3 | Campo de sistema ABAP obsoleto |
PEXPI | NUMC | 1 | Tiempo de permanencia en SPOOL (parámetros de impresión) |
PRINI | NUMC | 1 | Campo interno de sistema ABAP |
PRIMM | CHAR | 1 | Salidas inmediatas (parámetros de impresión) |
PRREL | CHAR | 1 | Borrar tras salida (parámetros de impresión) |
PLAYO | CHAR | 5 | Campo interno de sistema ABAP |
PRBIG | CHAR | 1 | Portada de selección (parámetros de impresión) |
PLAYP | CHAR | 1 | Campo interno de sistema ABAP |
PRNEW | CHAR | 1 | Orden SPOOL nueva (parámetros de impresión) |
PRLOG | CHAR | 1 | Campo interno de sistema ABAP |
PDEST | CHAR | 4 | Dispositivo de salida (parámetros de impresión) |
PLIST | CHAR | 12 | Nombre de la orden SPOOL (parámetros de impresión) |
PAUTH | NUMC | 2 | Campo interno de sistema ABAP |
PRDSN | CHAR | 6 | Nombre de fichero SPOOL |
PNWPA | CHAR | 1 | Campo interno de sistema ABAP |
CALLR | CHAR | 8 | Ubicación inicial de la impresión de listas SAP ABAP Programación |
REPI2 | CHAR | 40 | Campo interno de sistema ABAP |
RTIT | CHAR | 70 | Título del programa de impresión (parámetros de impresión) |
PRREC | CHAR | 12 | Destinatario (parámetros de impresión) |
PRTXT | CHAR | 68 | Texto para portada (parámetros de impresión) |
PRABT | CHAR | 12 | Departamento en la portada (parámetros de impresión) |
LPASS | CHAR | 4 | Campo interno de sistema ABAP |
NRPAG | CHAR | 1 | Campo interno de sistema ABAP |
PAART | CHAR | 16 | Edición de impresión (parámetros de impresión) |
PRCOP | NUMC | 3 | Edición de impresión (parámetros de impresión) |
BATZS | CHAR | 1 | Campo interno de sistema ABAP |
BSPLD | CHAR | 1 | Campo interno de sistema ABAP |
BREP4 | CHAR | 4 | Campo interno de sistema ABAP |
BATZO | CHAR | 1 | Campo interno de sistema ABAP |
BATZD | CHAR | 1 | Campo interno de sistema ABAP |
BATZW | CHAR | 1 | Campo de sistema ABAP obsoleto |
BATZM | CHAR | 1 | Campo de sistema ABAP obsoleto |
CTABL | CHAR | 4 | Campo de sistema ABAP obsoleto |
DBSYS | CHAR | 10 | Sistema de la base de datos central |
DCSYS | CHAR | 4 | Campo de sistema ABAP obsoleto |
MACDB | CHAR | 4 | Campo de sistema ABAP obsoleto |
SYSID | CHAR | 8 | Nombre sistema SAP |
OPSYS | CHAR | 10 | Sistema operativo del servidor de aplicación |
PFKEY | CHAR | 20 | Status GUI actual |
SAPRL | CHAR | 4 | Versión release del sistema SAP |
TCODE | CHAR | 20 | Código transacción actual |
UCOMM | CHAR | 70 | Código de función borrado por PAI |
CFWAE | CUKY | 5 | Campo interno de sistema ABAP |
CHWAE | CUKY | 5 | Campo interno de sistema ABAP |
SPONO | NUMC | 10 | Número SPOOL en listas de impresión |
SPONR | NUMC | 10 | Campo de sistema ABAP obsoleto |
WAERS | CUKY | 5 | Campo de sistema ABAP obsoleto |
CDATE | DATS | 8 | Campo de sistema ABAP obsoleto |
DATUM | DATS | 8 | Fecha actual del servidor de aplicación |
SLSET | CHAR | 14 | Variante de la imagen de selección utilizada |
SUBTY | RAW | 1 | Campo interno de sistema ABAP |
SUBCS | CHAR | 1 | Campo interno de sistema ABAP |
GROUP | CHAR | 1 | Campo interno de sistema ABAP |
FFILE | CHAR | 8 | Campo interno de sistema ABAP |
UZEIT | TIMS | 6 | Hora actual del servidor de aplicación |
DSNAM | CHAR | 8 | Campo interno de sistema ABAP |
TABID | CHAR | 8 | Campo interno de sistema ABAP |
TFDSN | CHAR | 8 | Campo de sistema ABAP obsoleto |
UNAME | CHAR | 12 | Usuario |
LSTAT | CHAR | 16 | Campo de sistema ABAP obsoleto |
ABCDE | CHAR | 26 | Alfabeto latino |
MARKY | CHAR | 1 | Campo de sistema ABAP obsoleto |
SFNAM | CHAR | 30 | Campo de sistema ABAP obsoleto |
TNAME | CHAR | 30 | Campo de sistema ABAP obsoleto |
MSGLI | CHAR | 60 | Campo de sistema ABAP obsoleto |
TITLE | CHAR | 70 | Contenido de la línea de título |
ENTRY | CHAR | 72 | Campo interno de sistema ABAP |
LISEL | CHAR | 255 | Contenido de la línea de una lista seleccionada |
ULINE | CHAR | 255 | Marca de graduación horizontal |
XCODE | CHAR | 70 | Campo interno de sistema ABAP |
CPROG | CHAR | 40 | Programa de llamada |
XPROG | CHAR | 40 | Campo interno de sistema ABAP |
XFORM | CHAR | 30 | Campo interno de sistema ABAP |
LDBPG | CHAR | 40 | Programa de base de datos de una base de datos lógica |
TVAR0 | CHAR | 20 | Variable de texto para reserva-espacio en cabeceras de lista |
TVAR1 | CHAR | 20 | Variable de texto para reserva-espacio en cabeceras de lista |
TVAR2 | CHAR | 20 | Variable de texto para reserva-espacio en cabeceras de lista |
TVAR3 | CHAR | 20 | Variable de texto para reserva-espacio en cabeceras de lista |
TVAR4 | CHAR | 20 | Variable de texto para reserva-espacio en cabeceras de lista |
TVAR5 | CHAR | 20 | Variable de texto para reserva-espacio en cabeceras de lista |
TVAR6 | CHAR | 20 | Variable de texto para reserva-espacio en cabeceras de lista |
TVAR7 | CHAR | 20 | Variable de texto para reserva-espacio en cabeceras de lista |
TVAR8 | CHAR | 20 | Variable de texto para reserva-espacio en cabeceras de lista |
TVAR9 | CHAR | 20 | Variable de texto para reserva-espacio en cabeceras de lista |
MSGID | CHAR | 20 | Clase de mensajes |
MSGTY | CHAR | 1 | Tipo de mensaje |
MSGNO | NUMC | 3 | Número de mensaje |
MSGV1 | CHAR | 50 | Variable de mensaje |
MSGV2 | CHAR | 50 | Variable de mensaje |
MSGV3 | CHAR | 50 | Variable de mensaje |
MSGV4 | CHAR | 50 | Variable de mensaje |
ONCOM | CHAR | 1 | Campo interno de sistema ABAP |
VLINE | CHAR | 1 | Barra de graduación vertical |
WINSL | CHAR | 79 | Campo de sistema ABAP obsoleto |
STACO | INT4 | 10 | Primera columna de la lista visualizada |
STARO | INT4 | 10 | Línea superior visualizada |
DATAR | CHAR | 1 | Marca de selección para una entrada en un campo dynpro |
HOST | CHAR | 32 | Nombre del servidor de aplicaciones actual |
LOCDB | CHAR | 1 | Campo de sistema ABAP obsoleto |
LOCOP | CHAR | 1 | Campo de sistema ABAP obsoleto |
DATLO | DATS | 8 | Fecha local del usuario actual |
TIMLO | TIMS | 6 | Hora local del usuario actual |
ZONLO | CHAR | 6 | Huso horario del usuario actual |