Modificar un campo en varios registros de una tabla Interna

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • jjeffer
    Member
    • jun
    • 62

    #1

    Modificar un campo en varios registros de una tabla Interna

    Buenos días,

    Resulta que tengo un programa que llena unos datos en una tabla interna (TI_MATERIAL) y al final según la opción que seleccione el usuario, se debe modificar el campo (ACTION), para todos los registros de esta tabla.

    Actualmente lo estoy haciendo con un LOOP:
    LOOP AT TI_MATERIAL INTO WA_MATERIAL.
    WA_MATERIAL-ACTION = P_ACTION.
    MODIFY TI_MATERIAL FROM WA_MATERIAL.
    ENDLOOP.
    Pero se demora demasiado ya que son muchos registros, la pregunta es si hay alguna forma de modificar todos los registros de una!!, sin tener que recorrer registro por registro.

    Gracias por su ayuda
  • kibo
    Senior Member
    • may
    • 177

    #2
    Que yo sepa no existe otra manera que esa.

    No se bien para que quieres actualizar la tabla con ese campo pero si todos los registros tendran el mismo valor; no actualices la tabla interna... en el momento en que tengas que usar el campo WA_MATERIAL-ACTION usa el campo P_ACTION... y listo.

    Ahora si necesitas que si o si este modifcado en todos los registros, creo que no tienes otra alternativa que esa
    http://diariotitular.com/contacto/

    Comentario

    • jjeffer
      Member
      • jun
      • 62

      #3
      Bueno ya lo encontré y lo dejo por si algún día alguien lo necesita:
      LOOP AT ti_material INTO wa_material.
      wa_material-action = p_action.
      MODIFY ti_material FROM wa_material TRANSPORTING action WHERE action NE p_action.
      EXIT.
      ENDLOOP.
      Se usa la sentencia TRANSPORTING y esta a su vez permite realizar un WHERE.

      Editado por última vez por jjeffer; 18/04/2012, 15:26:07.

      Comentario

      • jossnet
        Member
        • oct
        • 61

        #4
        No es necesario que pongas el MODIFY.... dentro del LOOP.
        Basta con colocar:
        MODIFY ti_material FROM wa_material TRANSPORTING action WHERE action NE p_action.

        Comentario

        • jjeffer
          Member
          • jun
          • 62

          #5
          Originalmente publicado por jossnet
          No es necesario que pongas el MODIFY.... dentro del LOOP.
          Basta con colocar:
          MODIFY ti_material FROM wa_material TRANSPORTING action WHERE action NE p_action.
          Ok, muchas Gracias amigo

          Comentario

          • XJerickX
            Junior Member
            • oct
            • 29

            #6
            Originalmente publicado por jjeffer
            Buenos días,

            Resulta que tengo un programa que llena unos datos en una tabla interna (TI_MATERIAL) y al final según la opción que seleccione el usuario, se debe modificar el campo (ACTION), para todos los registros de esta tabla.

            Actualmente lo estoy haciendo con un LOOP:


            Pero se demora demasiado ya que son muchos registros, la pregunta es si hay alguna forma de modificar todos los registros de una!!, sin tener que recorrer registro por registro.

            Gracias por su ayuda
            Pues yo creo que con los fieldsymbol se podria hacer

            Comentario

            Trabajando...