Dudas con Field Symbols

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Tute.360
    Junior Member
    • nov
    • 17

    #1

    Dudas con Field Symbols

    Tengo una duda con respecto a los field symbols:

    Yo tengo una tabla interna y cuando hago un read table, lo asigno a un FS.

    READ TABLE <tabla> ASSIGNING <wa>.

    Luego, chequeo que la asignacion se hizo de manera correcta controlando el SY-SUBRC.

    Ahora, es redundante poner el AND <wa> IS ASSIGNED?

    Porque veo que mucha gente no lo usa y no mucha gente si. Y no se realmente, en que caso podria devolver SY-SUBRC = 0 y que el FS no este asignado...
  • Alfredosite
    Senior Member
    • jul
    • 135

    #2
    Originalmente publicado por Tute.360
    Tengo una duda con respecto a los field symbols:

    Yo tengo una tabla interna y cuando hago un read table, lo asigno a un FS.

    READ TABLE <tabla> ASSIGNING <wa>.

    Luego, chequeo que la asignacion se hizo de manera correcta controlando el SY-SUBRC.

    Ahora, es redundante poner el AND <wa> IS ASSIGNED?

    Porque veo que mucha gente no lo usa y no mucha gente si. Y no se realmente, en que caso podria devolver SY-SUBRC = 0 y que el FS no este asignado...
    Mira ambos cumplen una función similar (pero se diferencian en algo) ambos validan si se asigno el valor al fiel-symbol pero la diferencia es la siguiente:

    1) IS ASSIGNED:
    Este se usa para validar si se asigno un valor a un <fs> "sin estructura" (TYPE ANY, TYPE TABLE ANY,etc) es decir no se sabe que estructura tiene antes de asignarle el valor al <fs> Ejm:

    FIELD-SYMBOLS <FS>.
    DATA TEXT(20) TYPE C VALUE 'Texto a Mostrar'.

    ASSIGN TEXT TO <FS>.
    IF <FS> IS ASSIGNED.
    WRITE <FS>.
    ENDIF.

    2) SY-SUBRC:
    Este se usa para saber si se asigno algo al field symbol y por lo general ya se tiene definida la estructura del field symbol Ejm.

    FIELD-SYMBOL: <tabla> TYPE pa0001.
    <wa> TYPE LINE OF pa001.

    data: v_pernr type persno.

    READ TABLE <tabla> ASSIGNING <wa>.
    IF SY-SUBRC EQ 0.
    Cotinua tu lógica...
    ENDIF.
    Saludos Cordiales,
    Alfredo Pastor Avendaño
    SAP - Consultant HCM

    Comentario

    • Tute.360
      Junior Member
      • nov
      • 17

      #3
      Muchas Gracias!

      Ahora, sabes de algun caso en el que un READ TABLE ... ASSIGNING ... retorne SY-SUBRC = 0 y el FS no este asignado?

      Comentario

      • K-MUS
        Member
        • feb
        • 87

        #4
        No debería. Si el Read Table da sy-subrc = 0. Debería llenar al field-symbol.

        Comentario

        • seimeinomi
          Member
          • oct
          • 75

          #5
          Hola en el caso que se de o no, tienes que validar a parte del SY-SUBRC = 0, que el <FS> IS ASSIGNED que este asigando, porque sino te da DUMP

          IF SY_SUBRC EQ 0 AND
          <FS> IS ASSIGNED.
          ........
          ENDIF.


          Saludos
          Edward Manrique A.

          Comentario

          Trabajando...