Ayuda SAP

UPDATE vs MODIFY

sap-abap
Etiquetas: #<Tag:0x00007f4db7b4eec8>
#1

Vamos a ver, por el momento tengo entendido que el update es para uso de base de datos o tablas del diccionario, mientras que el modify es para tablas interna y tambien para tablas de diccionario.

Digo por el momento, porque todo puede cambiar, no soy dueño del lenguaje abap ^^

Invito a @Seba_Scono para que me de su punto de vista.
tambien a los @abapers y a @romaldyminaya y a @canuto.

La version de netweaver que estoy usando es 7.4 y por lo menos aqui, cuando intendo realizar un update a la tabla interna me da un error de compilacion.

Que me dicen ustedes.

NOTA: La mejor manera de aprender es debatiendo sanamente, me gustaria saber si en alguna version de SAP el update se puede usar en tablas internas.

5 me gusta
Actualización masiva tabla interna
#2

Pues yo creo que el update es sólo para bases de datos.

#3

Estimados, he utilizado el UPDATE para actualizar una tabla interna y me ha dado error de compilación también, la versión que uso es netweaver 7.3

3 me gusta
#4

Update es únicamente para actualizar Tablas de Base de Datos.
Hay que tener en cuenta que se debe usar para modificar registros que ya existen, puesto que no crea registros nuevos.

Dicho ésto, para actualizar la tabla, es mejor el MODIFY porque hace un UPDATE o un INSERT a la Base de Datos en función de lo que se necesite.

Un Saludo.

2 me gusta
#5

En NW 7.5, sigue igual, asi que al parecer se queda como hasta ahora Update solo para tablas de base de datos, con IT da error.

1 me gusta
#6

@smota, grande !!! tienes toda la razon…me equivoque, me fui del hilo y es cierto que en un principio estabamos hablando de una tabla interna.

2 me gusta
#7

Saludos @Smota

El manejo de actualización de tablas internas en SAP sin cabecera (Recomendada).

  1. Se puede trabajar con FIELD-SYMBOLS, estos realizan asignación de objeto dinámico, realizando una actualización “automatica” de los campos de una tabla interna.( Recomendada )

  2. El clasico MODIFY lo utilizas cuando trabajas solo con áreas de trabajo.

  3. Si deseas agregar lineas de una tabla interna a otra tabla interna con la sentencia APPEND LINES

3 me gusta
#8

Totalmente de acuerdo contigo, yo uso siempre modify, para tablas internas y tablas de bases de datos.

#9

Estimado, el tema es que, para hacer un modify de un registro y evitar lineas innecesarias yo suelo usar el Modify, ya que si existe, lo modifica, y si no existe lo inserta.

El Modify es válido tambien oara tablar internas, no sólo con áreas de trabajo :slight_smile:

1 me gusta
#10

Saludos @smota,

Para realizar una modificación a la tabla interna el la sentencia a utilizar es MODIFY.

Para hacer actualizaciones a la base de datos, utilizo MODIFY o UPDATE dependiendo la necesidad. Mayormente el MODIFY me resuelve pero hay que tener estar pendiente que cuando se hace a la base de datos, la misma actualiza absolutamente todos los campos a diferencia del UPDATE en cuál le especificas cuáles campos quieres actualizar.

Hay otras ocasiones en las cuales quiero actualizar un campo masivamente de una tabla interna sin necesidad de hacer un loop. Ya sea para limpiarlo o para agregarle un valor estático idéntico en todos los registros. En ese caso resuelvo con un modify y un transporting como muestra el ejemplo a continuación:

DATA it_kna1 LIKE TABLE OF kna1 WITH HEADER LINE.
DATA wa_kna1 LIKE LINE OF it_kna1.

wa_kna1-name1 = 'Romaldy'.

MODIFY it_kna1 
FROM wa_kna1 TRANSPORTING name1
  WHERE name1 = '' .
4 me gusta
bumped automáticamente #11
cerrado #12

Este tema se cerró automáticamente 29 días después del último post. No se permiten nuevas respuestas.