#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
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
__________________
David Carballido Córdova |
#3
|
||||
|
||||
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.
__________________
01010000 01001010 10011000 10100001 De Byte a Beat. |
#4
|
|||
|
|||
muchas gracias,
les comentare cuando lo tenga listo... saludos |
#5
|
||||
|
||||
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 !
__________________
David Carballido Córdova |
#6
|
|||
|
|||
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.
__________________
*********************** Gabriela Soria Consultora ABAP Email: |
#7
|
||||
|
||||
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. |
#8
|
||||
|
||||
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
__________________
David Carballido Córdova |
Herramientas | Buscar en Tema |
Desplegado | |
|
|