|
#1
|
|||
|
|||
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!!!! |
#2
|
||||
|
||||
hola, porque no probas con un modify
te agrega un registro a la tabla de diccionario si no existe |
#3
|
|||
|
|||
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. |
#4
|
||||
|
||||
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.
__________________
David Carballido Córdova |
#5
|
|||
|
|||
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???
|
#6
|
||||
|
||||
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.
__________________
David Carballido Córdova |
Herramientas | Buscar en Tema |
Desplegado | |
|
|