GeneXus - Mensaje "duplicidad de clave foranea"

 
Vista:

Mensaje "duplicidad de clave foranea"

Publicado por Ana (43 intervenciones) el 18/07/2007 18:13:11
Hola
Yo de nuevo..... alguien me da una mano?, Tengo una Trn con una clave foranea a la cual debo controlar: esto es, si se ingresa dos registros iguales para esta clave foranea, tengo que avisar al usuario que el ingresado es "reincidente", es decir no es que esté mal, si pueden haber varios registros de la misma persona, pero si hay resulta que es "reincidente", cómo hago este control?....Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Mensaje

Publicado por Leandro (146 intervenciones) el 18/07/2007 18:48:44
Luego de ingresar la clave que queres controlar, recorre la tabla con un proceso, de esta manera....

parm(in:&Claveabuscar, out:&repetido);

for each
where Clave = &Claveabuscar
&repetido = 'S'
exit
when none
&repetido = 'N'
endfor

En la Trn yo lo llamaria asi.
&Repetido = Proceso.Udp(Claveforanea) if insert and after(Claveforanea);

Exitos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mensaje

Publicado por Ana (43 intervenciones) el 26/07/2007 17:08:14
Leandro
Tu Prc me funcionó bárbaro GRACIAS!!, pero ahora se me ocurrió que ademas de avisar que es "Reincidente" tambien tendría que mostrar otro dato de la tabla, como el Nro de Acta. Y resulta que: en el Prc coloco una variable &Acta que toma el Nro de la tabla, la pongo además en los parametros de salida
Pero no sé como recibirla en la TRN porque la variable que recibe el dato del Prc (&Repetido) es character y esta es numérica.
Además no puedo mostrarla en el MSG que avisa que el comercio es reincidente, es decir quiero hacer algo así:
Msg ("Reincidente", &Acta,' ' ) if &Repetido ="S"
Se entiende?
Muchas gracias desde ya
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mensaje

Publicado por Leandro (146 intervenciones) el 26/07/2007 19:36:12
No se si te habre entendido. Pero si lo que queres es devolver no solo que está repetido, sino tambíen que dato está repetido, el mismo procedimiento deberia guardar el acta repetida y enviarse en los parámetros de salida.

En la trn podes recibir cuantos parametros quieras si cambias la sintaxis de llamada del procedimiento...de esta forma

call(PProcedure, ClaveABuscar, &RepetidoSN, &Acta_Repetida) if after(ClaveABuscar);

&repetidosn es un caracter de 1, y &acta-repetida es el acta que ya existe, definida en base a atributo acta.

No se si te entendi, ojala si. Exitos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mensaje

Publicado por Ana (43 intervenciones) el 31/07/2007 16:29:33
Gracias Leandro!!!!!!!!
Listo ya muestra los datos del registro repetido!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar