Una de las dudas que me surgen siempre cuando estoy desarrollando es qué parámetros tengo en una entidad.
El saber los parámetros me sirve para poder realizar controles en tiempo de ejecución, entre otras cosas.
Podemos averiguar los parámetros de una entidad por debuggin, navegando en el objeto ME hasta llegar a la estructura que contiene los datos
En concreto la navegación por el objeto es la siguiente:
ME->TYPED_CONTEXT->objeto a tratar-> ATTR_STRUCT_NAME
Una forma más sencilla es obtener desde el código un field symbol con los parámetros de la entidad, de la siguiente forma:
lr_entity ?= me->typed_context->btadminh->collection_wrapper->get_current( ).
DATA: lv_att_struc_name TYPE strukname,
ref_rowtype TYPE REF TO cl_abap_structdescr,
ref_wa TYPE REF TO data.
FIELD-SYMBOLS: <fs_properties> TYPE ANY.
lv_att_struc_name = lr_entity2->get_attr_struct_name( ).
ref_rowtype ?= cl_abap_typedescr=>describe_by_name( lv_att_struc_name ).
CREATE DATA ref_wa TYPE HANDLE ref_rowtype.
ASSIGN ref_wa->* TO <fs_properties>.
lr_entity->if_bol_bo_property_access~get_properties( IMPORTING es_attributes = <fs_properties> ).
En el field symbols tenemos todas las propiedades y accedemos a ellas tan simple como field-dato
Gracias por compartir tan valiosa información, soy nueva en SAP y me a servido de mucho. Saludos.
ResponderEliminarHola, gracias por compartir tus conocimientos, estoy empezando con CRM y es muy útil.
ResponderEliminarYa no actualizas el blog?
Hola,
EliminarNo, tuve una época en la que no tenía tiempo y ahora estoy fuera del mundo SAP, con otras tecnologías.
Me alegra que las entradas aún ayuden a alguien.
Saludos