MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Insertar datos desde una tabla interna a una tabla Z (foro/showthread.php?t=26453)

jk_hunter 27/11/08 17:56:46

Insertar datos desde una tabla interna a una tabla Z
 
hola a todos... llevo aproximadamente un mes aprendiendo ABAP y ahora tengo una pequeña duda...

como se hace para insertar datos desde una tabla interna a una tabla Z?

espero me puedan ayudarm de antemano muchas gracias

saludos

DavidXD_XD 27/11/08 19:03:55

Hola ... puedes hacerlo de la siguiente manera:


PD: Deben tener los mismos campos incluido si es que tiene un campo mandante, el campo mandante se llena por default con la sentencia INSERT, MODIFY, DELETE, etc. No es necesario llenar ese campo

Rodolfo Montiel Rivera 27/11/08 23:23:10

Saludos complementando a David deberias de agregar un

Commit Work ó en su defecto mandar ejecutar la BAPI_TRANSACTION_COMMIT y esto para que hagan efecto los cambios a tu tabla Z despues de tu INSERT o MODIFY

algo asi

MODIFY z_tablatransparente.

COMMIT WORK.

jk_hunter 28/11/08 12:37:35

muchas gracias,

les comentare cuando lo tenga listo...

saludos

DavidXD_XD 28/11/08 18:59:02

Hola Rodolfo, bueno personalmente no utilizo los COMMIT a menos que sea un caso super extremo, te comento la razon ...

Supongamos que en la linea 10 de tu programa realizas un COMMIT y en la 9 la insercion de datos a una tabla Z, pero en la linea 12 por curiosidades de la vida tu programa se cae, entonces debido al COMMIT has realizado una grabacion pero el programa esta incompleto ...

Para eso SAP siempre realiza un COMMIT por default despues de cada programa ejecutable, si o si habra un COMMIT pero depende de los casos utilizarlos ... un saludo para todos !

gabriela_soria 04/10/09 15:11:32

Hola David.

Que ocurre, si haces el insert, y tienes ya algun registro que habia sido insertado antes? a mi me da un dump. Cómo lo resuelves?

Saludos!

gabriela.

mysmb2 05/10/09 12:59:58

hola gabriela
es logico que te tire dump al ser un registro con clave duplicada, podrias primero verificar con un SELECT SINGLE si existe el registro antes de intentar realizar el INSERT. Otra alternativa es que uses el MODIFY en vez del insert(si el registro existe lo pisa y si no existe crea uno nuevo)
saludos.

DavidXD_XD 07/10/09 01:03:41

Hola Gaby ... como nos comenta mysmb2 es por duplicado de llaves, pero si realizas un INSERT con un solo registro con la siguiente sentencia

INSERT ztabla FROM gs_itab.

T podras dar cuenta que no arroja un DUMP pero el sy-subrc nos dara 4, si insertamos un grupo de registros con la sentencia

INSERT ztabla FROM TABLE gt_itab.

Ese si nos dara un DUMP, para ese caso se puede utilizar un CATCH para agarrar la excepcion, y la forma mas sencilla como tbm nos comento mysmb2 es usando el MODIFY, ya q ese es una sentencia propia de SAP que nos permite insertar datos si no existen y modificar datos cuando el dato existe :D


Husos Horarios son GMT. La hora en este momento es 10:06:50.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web