✒️ABAP POO / RTTS (Run Time Type Service) Por Jeferson Pena Curvelo
ABAP RTTS (Run Time Type Service)

RTTS ( Run Time Type Service): A partir de la versión SAP Web AS 6.10, los objetos ABAP permiten consultar los tipos de los atributos en tiempo de ejecución mediante las clases estándar de SAP. Este concepto es llamado RTTI (Información del tipo en tiempo de ejecución).
Para la versión SAP Web AS 6.40, se ha mejorado este concepto para permitir la Creación de tipos en tiempo de ejecución conocida como RTTC.
La combinación de ambos conceptos forman RTTS (Tipo de Servicio en tiempo de ejecución).
En conclusión se podría decir que RTTS= RTTI RTTS
RTTI (Run Time Type Information): En los objetos ABAP existe un concepto basado en clases llamado RTTI (Información del tipo en tiempo de ejecución) que podemos utilizar para determinar el tipo de los atributos en tiempo de ejecución. Este concepto incluye todos los tipos ABAP.
El concepto de RTTI incluye todos los tipos de datos ABAP y por lo tanto cubre todas las funcionales que presentaban las sentencias ahora ya obsoleto DESCRIBE_TABLE y DESCRIBE_FIELD.
Existe una clase de descripción para cada tipo con atributos especiales.
CL_ABAP_TYPEDESCR -- Superclase con descripciones generales
CL_ABAP_DATADESCR-- Descripción de los objetos de datos generales
CL_ABAP_ELEMDESCR
CL_ABAP_REFDESCR
CL_ABAP_COMPLEXDESCR
CL_ABAP_STRUCTDESCR -- Descripción de estructuras
CL_ABAP_TABLEDESCR -- Descripción de tablas internas
CL_ABAP_OBJECTDESCR -- Descripción de clases y sus objetos
CL_ABAP_CLASSDESCR
CL_ABAP_INTFDESCR
La jerarquía a de clases de las clases de descripciones corresponde a la jerarquía de los tipos de los objetos ABAP.
Para obtener una referencia de un objeto de descripción de un tipo, debemos utilizar los métodos estáticos de la clase CL_ABAP_TYPEDESCR o los métodos de navegación de una clase de descripción especial.
En tiempo de ejecución, exactamente un objeto de descripción existe para cada tipo. Los atributos del objeto de descripción contienen información sobre los atributos del tipo.
El operador de casteo ?= se utiliza cuando el origen y el destino de la asignación son variables referenciadas y el tipo estático del origen de la asignación es más general que el tipo estático del destino de la asignación. Para asignaciones entre operandos que no son variables referenciadas no está permitido el uso del operador ?=
Programas útiles sobre RTTI
- SAPBC401_DYND_DATADECL_RTTI
- SAPBC401_DYND_RTTI_OBJECT
RTTC (Run Creation at Run Time): En la versión SAP Web AS 6.40, se agregó RTTC a RTTI para facilitar la creación de tipos en tiempo de ejecución.
Las propiedades de los tipos son implementadas a través de atributos de tipos de objetos. Esto significa que cada tipo tiene un tipo de objeto cuyos atributos describen las propiedades del tipo.
CL_ABAP_TYPEDESCR
CL_ABAP_DATADESCR
CL_ABAP_ELEMDESCR---> cl_abap_elemdescr=>gest_i (…) / cl_abap_elemdescr=>gest_p (…)
CL_ABAP_REFDESCR ---> cl_abap_refdescr=>create (…)
CL_ABAP_COMPLEXDESCR
CL_ABAP_STRUCTDESCR ---> cl_abap_structdescr=>create(…)
CL_ABAP_TABLEDESCR --->cl_abap_tabledescrt=>create(…)
CL_ABAP_OBJECTDESCR
CL_ABAP_CLASSDESCR
La clase de jerarquías del tipo de clases corresponde a la jerarquía de los tipos en el sistema de tipos de ABAP.
Los tipos de objetos pueden ser creados por el tipo de método de clase. Para obtener referencias a tipos de objetos, se pueden llamar a métodos estáticos específicos de la clase CL_ABAP_TUPEDESCR o métodos de clases especiales (GET_I, GET_C, CREATE).
Podemos utilizar RTTC para crear tipos básicos de datos como también podemos crear tipos de datos más complejos como estructuras y tablas internas.
 
 
 
Sobre el autor
Publicación académica de Jeferson Jos Pena Curvelo, en su ámbito de estudios para el Master ABAP Orientado a Objetos.
Jeferson Jos Pena Curvelo
Chile - Legajo: PD49W
✒️Autor de: 180 Publicaciones Académicas
🎓Egresado de los módulos:
- Master ABAP Orientado a Objetos
- Master ABAP for HANA
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
























