cancel
Showing results for 
Search instead for 
Did you mean: 

Actualizacion de campo de usuario por Transaction Notification

Former Member
0 Kudos

Jovenes expertos, me podrian ayudar necesito actualizar un campo de una tabla de usuario, que es el ultimo numero de cheque emitido, lo estoy tratando de hacer por medio del Transation Notificacion pero me da error en cuando utilizo el update @LISTCHEQUES me da error, disculpen la ignorancia al utilizar esta herramienta.

Les dejo el query que realice


IF @object_type = '3' and @transaction_type in ('A', 'U')
BEGIN
 Select @Cheque = CONVERT(nvarchar,NextChckNo)
	from ODSC 
	where NextChckNo = @list_of_cols_val_tab_del
Begin
UPDATE @LISTCHEQUES SET U_UlChEm = 'NextChCkNo'
Where TransType = '3' and DfltAcct = U_CtaBan 
End
End

Espero me puedan ayudar.

De antemano muy agradecido

Saludos

Accepted Solutions (1)

Accepted Solutions (1)

former_member188440
Active Contributor
0 Kudos

Pon entre corchetes la tabla de usuario


[@LISTCHEQUES]

Former Member
0 Kudos

Gracias Mauricio ahora me da error en el @cheque que esta a la par del select.

Disculpa la molestia y saludos

former_member188440
Active Contributor
0 Kudos

Te falto declarar la variable @cheque

Former Member
0 Kudos

Gracias Mauricio por tu ayuda, pero no me actualizo la tabla ni el campo que problema podria ser, el query al final lo deje de esta forma.


IF @object_type = '3' and @transaction_type in ('A', 'U')
BEGIN
 declare @cheque int
 Select @cheque = CONVERT(nvarchar,NextChckNo)
	from ODSC 
	where NextChckNo = @list_of_cols_val_tab_del
Begin
UPDATE [@LISTCHEQUES] SET U_UlChEm = 'NextChCkNo'
End
End

Agradezco su ayuda.

Saludos

former_member188440
Active Contributor
0 Kudos

Esta incorrecto el codigo, no veo donde estas utilizando la variable @cheque, que estas declarando como int y le haces un convert varchar

Que es lo que necesitas hacer?

Former Member
0 Kudos

Lo que necesito exactamente que el Numero de cheque siguiente que se encuentra en la tabla de Bancos sea colocada en automatico en la tabla de usuario llamada @LISTCHEQUES en el campo U_UlChEm.

De antemano muy agradecido.

Saludos

former_member188440
Active Contributor
0 Kudos

Intenta con


IF @object_type = '3' and @transaction_type in ('A', 'U')
BEGIN
 declare @cheque int
 Select @cheque = CONVERT(nvarchar,NextChckNo)
	from ODSC 
	where NextChckNo = @list_of_cols_val_tab_del
Begin
UPDATE [@LISTCHEQUES] SET U_UlChEm = @cheque where.........
End
End

Agrega la condicion despues del where, de lo contrario utiliza un insert tal cual


Insert into [@LISTCHEQUES] (U_UIChEM) values (@cheque)

felipe_loyolarodriguez
Active Contributor
0 Kudos

Buenos dias

Prueba este codigo


IF @object_type = '3' and @transaction_type in ('A', 'U')
BEGIN
	DECLARE @Cheque INT
	SET @Cheque=(SELECT CONVERT(Nvarchar(50), T0.NextChckNo) FROM dbo.ODSC T0 WHERE T0.NextChckNo=@list_of_cols_val_tab_del)  

	IF (@Cheque IS NOT NULL) OR (@Cheque != '')
	BEGIN
		UPDATE [dbo].[@LISTCHEQUES] 
		SET U_UlChEm = @cheque WHERE U_UlChEm IS NULL
	END
END

Lo otro seria como dice Mauricio


IF @object_type = '3' and @transaction_type in ('A', 'U')
BEGIN
	DECLARE @Cheque INT
	SET @Cheque=(SELECT CONVERT(Nvarchar(50), T0.NextChckNo) FROM dbo.ODSC T0 WHERE T0.NextChckNo=@list_of_cols_val_tab_del)  

	IF (@Cheque IS NOT NULL) OR (@Cheque != '')
	BEGIN
		INSERT INTO [dbo].[@LISTCHEQUES] (U_UIChEM) VALUES (@cheque)
	END
END

Saludos

Edited by: Floyola on Nov 9, 2011 8:43 AM

Former Member
0 Kudos

Gracias jovenes por su ayuda pero con ninguna de las tres formas me actualiza el campo, incluso lo quise hacer de otro object type, y de otra tabla pero tampoco habra alguna otra forma de actualizar estos campos.

De antemano muy agradecido por toda su ayuda.

Saludos

former_member188440
Active Contributor
0 Kudos

Comparte tu codigo, como te quedo?

Former Member
0 Kudos

Gracias Mauricio este fue el ultimo que probe pero tampoco funciono.


IF @object_type = '57' and @transaction_type in ('A', 'U')
BEGIN
	DECLARE @Cheque INT
	SET @Cheque=(SELECT CONVERT(Nvarchar(50), T0.CheckNum) FROM dbo.OCHO T0 WHERE T0.CheckNum=@list_of_cols_val_tab_del)  
	IF (@Cheque IS NOT NULL) OR (@Cheque != '')
	BEGIN
		UPDATE [dbo].[@LISTCHEQUES] 
		SET U_UlChEm = @cheque WHERE U_UlChEm = '0'
		INSERT INTO [dbo].[@LISTCHEQUES] (U_UlChEm) VALUES (@Cheque)
	END
END

Saludos y gracias

former_member188440
Active Contributor
0 Kudos

Hice pruebas con el siguiente codigo



IF @object_type = '57' and @transaction_type in ('A', 'U')
BEGIN

	DECLARE @Cheque INT
	declare @code nvarchar (8)
	declare @nombre nvarchar (30)
	SET @Cheque=(select T0.CheckNum FROM dbo.OCHO T0
	 WHERE T0.CheckNum=@list_of_cols_val_tab_del) 
	IF (@Cheque!=0)
	BEGIN 
		INSERT INTO [dbo].[@LISTCHEQUES] (code,name,U_UlChEm) VALUES (@cheque,@cheque,@Cheque)
	END
END

Funciona, pero necesitas alimentar el campo CODE y NAME con valores que no se repitan, por eso le estoy insertando el mismo numero de cheque en los 3 campos

Que valores tienes en code y name? como alimentas esas columnas?

Former Member
0 Kudos

Gracias Mauricio voy a probar, con respecto a tu pregunta code, name los ingreso manualmente y son el codigo bancario y en Name es el nombre del banco.

Saludos

Former Member
0 Kudos

Por que no probas creando tablas virtuales, con query y a media que te genere lo que deseas si necesitas ayuda para realizarlo haz la consulta y veremos como lo se te puede ayudar.

revisa este link tal vez te pueda ayudar

Saludos

Former Member
0 Kudos

gracias por la ayuda ahi quedo solucionado el problema.

Gracias a todos por la ayuda.

Answers (0)