lunes, 28 de octubre de 2013

Obtención de parámetros en una entidad.



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

2 comentarios:

  1. Thanks for providing share these information. We are providing on line training classes
    hyderabadsysonlinetraining

    ResponderEliminar
  2. Gracias por compartir tan valiosa información, soy nueva en SAP y me a servido de mucho. Saludos.

    ResponderEliminar