MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Problema para crear una variable dinamicamente (foro/showthread.php?t=71035)

cdavidml 19/02/14 16:37:33

Problema para crear una variable dinamicamente
 
Hola comunidad buen día, tengo el siguiente caso:

Necesito crear una variable de manera dinamica conforme el contenido de otra variable.

*DINAMICAMENTE CONCATENO EN UNA VARIABLE LA TABLA Y EL CAMPO QUE NECESITO.
*PROBLEMA... COMO GENERAR LA VARIABLE DE TIPO "EL CONTENIDO DE VL_FIELD"

CONCATENATE STRUCTURE-TABLENAME '-' STRUCTURE-FIELDNAME INTO VL_FIELD.
CONDENSE VL_FIELD NO-GAPS.
VL_VARIABLE TYPE RANGE OF "EL CONTENIDO DE VL_FIELD".

:confused: :confused: :confused: :confused: :confused: :confused:

Ojala y puedan ayudarme.
Saludos.

David.

vanesamacri 19/02/14 19:52:35

Buenas tardes, David.

Chequeate el siguiente ejemplo:

Avisame si algo no se entiende.
Un saludo.

cdavidml 28/02/14 18:00:48

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.

:)


Husos Horarios son GMT. La hora en este momento es 04:52:51.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web