x

x

Curso SAP ERP 5# – Variables del sistema

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:

  1. Campos generales de información de sistema.
  2. Campos de programación ABAP.
  3. Campos internos de sistema
  4. 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