🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️ABAP POO RTTS (Run Time Type Service)

ABAP POO RTTS (Run Time Type Service)

ABAP POO RTTS (Run Time Type Service)

RTTS (RUN TIME TYPE SERVICE)

RTTS

A partir de la versión SAP WEB AS 6.10, los objetos ABAP permiten consultar los tipos de los atributos en el 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 mejorar 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 RTTS = RTTI RTTC

RTTI (RUN TIME TYPE INFORMATION)

Lo utilizamos para determinar el tipo de los atributos en tiempo de ejecución. Este concepto incluye todos los tipos ABAP. Cubre todas las funcionalidades de las sentencias ahora obsoletas describe_table y describe_field

Existe una clase de descripción para cada tipo con atributos especiales.

CL_ABA_TYPEDESCR

->CL_ABAP_DATA_DESCR

- -> CL_ABAP_ELEMDESCR

- -> CL_ABAP_REFDESCR

- -> CL_ABAP_COMPLEXDESCR

- - - -> CL_ABAP_STRUCTDESCR

- - - -> CL_ABAP_TABLEDESCR

-> CL_ABAP_OBJECTDESCR

- -> CL_ABAP_CLASSDESCR

- -> CL_ABAP_INTFDESCR

La jerarquía de clases de la clase de descripciones corresponde a la jerarquía de los tipos de 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.

CL_ABA_TYPEDESCR

Public metohods

Describe_by_name

Describe_by_data

Describe_by_object_ref

Get_property

Get_relative_anme

Public attributes

absolute_Name

type_kind

length

decimals

Ejemplo:

REPORT ztest_rtti.

DATA: wa TYPE spfli,

r_descr TYPE REF TO cl_abap_structdescr,

wa_comp TYPE abap_compdescr.

START-OF-SELECTION.

r_descr ?= cl_abap_typedescr=>describe_by_data( wa ).

LOOP AT r_descr->components INTO wa_comp.

WRITE wa_comp-name.

ENDLOOP.

Definimos una referencia a la clase de descripción apropiada.

Las instancias de esta clase tienen un atributo COMPONENTS que es utilizado para describir los componentes individuales de la estructura.

El método que ejecutamos devuelve la referencia de la instancia de la descripción de la estructura. La clase abstracta CL_ABAP_TYPEDESCR contiene el método estático DESCRIBE_BY_DATA.

El operador de CASTEO (¿=)(signo de pregunta igual) se utiliza cuando el origen y el destino de la asignación son variables referenciadas y el tipo estático del origen es más general que el tipo estático del destino de la asignación. Para asignaciones entre operando que nos son variables referenciadas no está permitido el uso de este operador.

PROGRAMAS UTILES SOBRE RTTI, para usar como ejemplo.

SAPBC401_DYND_DATADECL_RTTI

SAPBC401_DYND_RTTI_OBJECT

RTTC (RUN CREATION AT RUNTIME)

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 objetos cuyos atributos describen las propiedades del tipo

La clase de jerarquías del tipo de clases corresponde a la jerarquía de los tipos en el sistema de tipos de ABAP.

CL_ABA_TYPEDESCR

->CL_ABAP_DATA_DESCR

- -> CL_ABAP_ELEMDESCR

- -> CL_ABAP_REFDESCR

- -> CL_ABAP_COMPLEXDESCR

- - - -> CL_ABAP_STRUCTDESCR

- - - -> CL_ABAP_TABLEDESCR

-> CL_ABAP_OBJECTDESCR

- -> CL_ABAP_CLASSDESCR

- -> CL_ABAP_INTFDESCR

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_TYPEDESCR o métodos de clases especiales (GET_I, GET_C, CREATE).

Podemos utilizar RTTC para crear tipos básicos de datos como teambien podemos crear tipos de datos más complejos como estructuras y tablas internas.

Ejemplo de RTTC

REPORT ztest_rttc. DATA: r_linetype TYPE REF TO cl_abap_structdescr, r_tabletype TYPE REF TO cl_abap_tabledescr, key TYPE abap_keydescr_tab, r_itab TYPE REF TO data. r_linetype ?= cl_abap_typedescr=>describe_by_name( 'SPFLI' ). APPEND 'CARRID' TO key. APPEND 'CONNID' TO key. r_tabletype = cl_abap_tabledescr=>create( p_line_type = r_linetype p_table_kind = cl_abap_tabledescr=>tablekind_sorted p_unique = abap_true p_key = key ). * Creación de un tipo tabla con métodos estáticos CREATE DATA r_itab TYPE HANDLE r_tabletype.

Con el método CREATE, la clase CL_ABAP_TABLEDESCR nos permite crear un tipo de tabla interna en tiempo de ejecución.

El parámetro O_LINE_TYPE es un parámetro formal importante del método estático.

Este parámetro describe el tipo de línea utilizando una referencia a la clase CL_ABAP_STRUCTDESCR.

En el ejemplo, SPLFI es utilizado como un tipo de línea. El método DESCRIBE_BY_NAE instancia un objeto.

Lo que vemos utilizando la sentencia CREATE DATA es una aplicación del tipo de tabla recientemente creado donde creamos una tabla interna en tiempo de ejecución.


 

 

 


Sobre el autor

Publicación académica de Josep Antoni Lopez Moyano, en su ámbito de estudios para el Máster ABAP POO.

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "RTTS (Run Time Type Service)" de la mano de nuestros alumnos.

SAP Expert


Acceder a esta publicación

Creado y Compartido por: Daniel Alejandro Monteros Segura

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

Acceder a esta publicación

Creado y Compartido por: Juan Jose Pujol Diaz

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Acceder a esta publicación

Creado y Compartido por: Julio Villalta / Disponibilidad Laboral: FullTime

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 79.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!