field symbols en un work area

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • zebalia
    Member
    • dic
    • 30

    #1

    field symbols en un work area

    Hola, necesito ayuda.

    Vereis, tengo un wa, que llamaremos wa_b.

    El caso, es que ese wa_b tiene campos a los que necesito acceder, pero el nombre de los campos a los que quiero acceder, están en una variable y no se como se llaman esos campos hasta tiempo de ejecución.

    Sería algo así

    parameters campo type string.
    data valor type string.

    valor = wa_b-<campo>.


    Evidentemente, está erroneo ya que no puedo acceder al wa_b de la forma que he puesto. Se os ocurre como solucionar este problema? Tengo entendido que se resuelve con field symbols pero no tengo ni idea de usarlo.


    Un saludo
  • ppchico
    Senior Member
    • oct
    • 144

    #2
    Por lo que dices, tienes el nombre del campo al que quieres acceder en la variable campo. En este caso solo tendrías que hacer lo siguiente:


    Código:
    FIELD-SYMBOLS: <FS> TYPE ANY.
    PARAMETERS: CAMPO TYPE STRING.
    
    CONSTANTS: LC_NOMBRE WORK_AREA TYPE STRING VALUE 'WA_B'.
    DATA: VALOR TYPE STRING,
                L_CAMPO_FINAL TYPE STRING
    
    
    CONCATENATE LC_NOMBRE_WORK_AREA CAMPO INTO L_CAMPO_FINAL.
    ASSIGN (L_CAMPO_FINAL) TO <FS>.
    VALOR = <FS>.

    Comentario

    • zebalia
      Member
      • dic
      • 30

      #3
      Gracias por la info, pero me da un dump.

      Me dice lo siguiente:


      Field symbol has not yet been assigned

      Comentario

      • ppchico
        Senior Member
        • oct
        • 144

        #4
        Perdona, se me olvidó una cosa:

        FIELD-SYMBOLS: <FS> TYPE ANY.
        PARAMETERS: CAMPO TYPE STRING.

        CONSTANTS: LC_NOMBRE WORK_AREA TYPE STRING VALUE 'WA_B'.
        DATA: VALOR TYPE STRING,
        L_CAMPO_FINAL TYPE STRING


        CONCATENATE LC_NOMBRE_WORK_AREA '-' CAMPO INTO L_CAMPO_FINAL.
        ASSIGN (L_CAMPO_FINAL) TO <FS>.
        if sy-subrc ne 0.

        message 'error. El campo no existe.'

        else.
        VALOR = <FS>.

        endif.


        Prueba Ahora con eso.
        Un Saludo,

        Comentario

        • zebalia
          Member
          • dic
          • 30

          #5
          Estupendo ppchico, me has ayudado mucho!

          Gracias

          Comentario

          • ppchico
            Senior Member
            • oct
            • 144

            #6
            Lo celebro

            Comentario

            Trabajando...