MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Clave duplicada en INSERT (foro/showthread.php?t=26537)

goyleo 02/12/08 12:15:30

Clave duplicada en INSERT
 
como utilizo la exepcion en el insert ITAB_DUPLICATE_KEY ????
se aplica por medio de TRY ?????
Si alguien tiene un ejemplo me ayudaria mucho!!!! :D

mysmb2 02/12/08 12:54:57

hola, porque no probas con un modify
te agrega un registro a la tabla de diccionario si no existe

chivi82 02/12/08 13:06:10

Tratamiento de excepciones
 
Hola, te pongo un ejemplo de como capturar excepciones:
TRY.
SELECT matnr charg ingew sitbu bulid FROM z40bupa
INTO TABLE g_it_z40bupa
WHERE matnr IN s_matnr
AND charg IN s_charg
AND sitbu IN s_sitbu
AND werks IN s_werks
AND ersda IN s_ersda.

CATCH cx_sy_open_sql_db.
MESSAGE i098(z40pp) WITH 'Select con demasiados registros'.
EXIT.
ENDTRY.

DavidXD_XD 02/12/08 13:48:30

Si necesitas un Log ... podrias usar un LOOP y dentro de el un INSERT

LOOP AT itab ASSIGNING <fs>.
INSERT ztabla FROM <fs>.
* Verificando que la entrada existe
IF sy-subrc NE 0.
(Llenar una tabla interna para un Log)
ENDIF.
ENDLOOP.

Cuando realizar un INSERT a partir de una estructura no arroja ninguna excepcion, el problema es cuando lo haces a partir de una tabla interna

INSERT ztabla FROM TABLE itab.

goyleo 02/12/08 14:50:28

DavidXD_XD en este caso que me envias si hay registros duplicados en la tabla arrojaria DUMP o estoy equivocado? por lo que vi en la ayuda de sap para el insert, me parecio que existe una manera de manejar una ecepcion ITAB_DUPLICATE_KEY ???? es correcto esto??? :confused:

DavidXD_XD 02/12/08 14:52:57

No del todo .... como lo habia mencionado, cuando realizas un INSERT usando solo un registro, el resultado dependera del sy-subrc, pero si realizas un INSERT a partir de una tabla interna si arroja un DUMP, la razon es porque dentro de la tabla interna no hay como comunicar que registros han pasado y q otros no, como no se puede controlar SAP solo arroja la excepcion q termina en DUMP, para esos casos es mejor el MODIFY ztabla FROM TABLE itab.


Husos Horarios son GMT. La hora en este momento es 01:25:16.

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