Asignación dinámica a tabla y referencia de campo

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • akiestudio
    Member
    • jul
    • 46

    #1

    Asignación dinámica a tabla y referencia de campo

    Hola,

    Me gustaría saber si hay alguna manera de realizar la asignación dinamica a una campo de una estructura para hacer una select mediante: cl_abap_structdescr o similar.

    El ejemplo sería algo así.



    Código:
    Data: lv_struc type zstruc_1, 
             lv_struct_2 type struct_2.
    
    if lv_type eq 1.
      lv_test = * aquí cargo el valor de lv_struc.
    else.
      
      lv_test = * aquí cargo el valor de lv_struc_2.
    endif.
    
    ** la asignación de lv_test tendría que ser dinámica, no me valdría ponerlo literalmente, por eso quiero usar cl_abap_structdescr etc... 
    
    select single * into ztest 
                         from mara
                         where  mantnr eq lv_test-mantnr.
    Muchas gracias

    Saludos
  • omegaotaku
    Member
    • nov
    • 43

    #2
    Originalmente publicado por akiestudio
    Hola,

    Me gustaría saber si hay alguna manera de realizar la asignación dinamica a una campo de una estructura para hacer una select mediante: cl_abap_structdescr o similar.

    El ejemplo sería algo así.



    Código:
    Data: lv_struc type zstruc_1, 
             lv_struct_2 type struct_2.
    
    if lv_type eq 1.
      lv_test = * aquí cargo el valor de lv_struc.
    else.
      
      lv_test = * aquí cargo el valor de lv_struc_2.
    endif.
    
    ** la asignación de lv_test tendría que ser dinámica, no me valdría ponerlo literalmente, por eso quiero usar cl_abap_structdescr etc... 
    
    select single * into ztest 
                         from mara
                         where  mantnr eq lv_test-mantnr.
    Muchas gracias

    Saludos
    REPORT ytempo2.

    DATA: it_mara1 TYPE STANDARD TABLE OF mara,
    wa_mara1 LIKE LINE OF it_mara1,
    it_mara2 TYPE STANDARD TABLE OF mara,
    wa_mara2 LIKE LINE OF it_mara2,
    lv_type.


    DEFINE macro_set_mara_values.

    clear wa_mara&2.

    if lv_type eq 1.

    wa_mara&2-mandt = &1.

    else.

    wa_mara&2-mandt = &1.

    endif.

    append wa_mara&2 to it_mara&2.

    END-OF-DEFINITION.

    macro_set_mara_values: 650 1,
    100 2.


    ** la asignación de lv_test tendría que ser dinámica, no me valdría ponerlo literalmente, por eso quiero usar cl_abap_structdescr etc...

    *SELECT SINGLE * INTO ztest
    * FROM mara
    * WHERE mantnr EQ lv_test-mantnr.

    CHECK sy-subrc EQ 0.

    Comentario

    Trabajando...