Ver Mensaje Individual
  #3  
Viejo 28/02/14, 18:00:48
cdavidml cdavidml is offline
Junior Member
 
Fecha de Ingreso: may 2012
Mensajes: 3
Thumbs up resuelto

Hola que tal, lo pude resolver con lo siguiente, y me genera los SO que necesito dinamicamente.

* Reference variables
DATA: go_struc TYPE REF TO cl_abap_structdescr,
go_table TYPE REF TO cl_abap_tabledescr,
dref TYPE REF TO data.

DATA: gv_field TYPE fieldname VALUE 'BUKRS', "Dynamic Range Field
gt_comp TYPE cl_abap_structdescr=>component_table,
gs_comp TYPE cl_abap_structdescr=>component.

FIELD-SYMBOLS <gt_range> TYPE STANDARD TABLE.

gs_comp-name = 'SIGN'.
gs_comp-type ?= cl_abap_elemdescr=>describe_by_name('CHAR1').
APPEND gs_comp TO gt_comp. CLEAR gs_comp.

gs_comp-name = 'OPTION'.
gs_comp-type ?= cl_abap_elemdescr=>describe_by_name('CHAR2').
APPEND gs_comp TO gt_comp. CLEAR gs_comp.

gs_comp-name = 'LOW'.
gs_comp-type ?= cl_abap_elemdescr=>describe_by_name( gv_field ).
APPEND gs_comp TO gt_comp. CLEAR gs_comp.

gs_comp-name = 'HIGH'.
gs_comp-type ?= cl_abap_elemdescr=>describe_by_name( gv_field ).
APPEND gs_comp TO gt_comp. CLEAR gs_comp.

TRY.
go_struc = cl_abap_structdescr=>create( gt_comp ).
go_table = cl_abap_tabledescr=>create( go_struc ).
CATCH: cx_sy_struct_creation,
cx_sy_table_creation.
ENDTRY.

CREATE DATA dref TYPE HANDLE go_table. "Create Data Reference
ASSIGN dref->* TO <gt_range>. "Dereferencing the data reference

TRY .
SELECT COUNT(*) FROM t001 WHERE bukrs IN <gt_range>.
WRITE: / sy-dbcnt.
CATCH cx_sy_open_sql_error.

ENDTRY.

los encontré en scn de sap, en un tread de Suhas Saha.


Úlima edición por cdavidml fecha: 28/02/14 a las 18:02:56.
Responder Con Cita