cancel
Showing results for 
Search instead for 
Did you mean: 

transaction notication a veces funciona y a veces no

angeles804
Active Contributor
0 Kudos

Ya me apoyaron con la actualización, pero ahora quisiera saber si algo estoy haciendo mal, de repente se van algunos documentos con el campo vació que segun yo estoy bloqueando con el transaction notification.

Alguien me podría ayudar a saber por que sucede esto?. tengo el siguiente código en el transaction notifcation.



USE [FEYCO]
GO
/****** Object:  StoredProcedure [dbo].[SBO_SP_TransactionNotification]    Script Date: 09/22/2010 13:21:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[SBO_SP_TransactionNotification] 

@object_type nvarchar(20), 				-- SBO Object Type
@transaction_type nchar(1),			-- [A]dd, <u>pdate, [D]elete, [C]ancel, C[L]ose
@num_of_cols_in_key int,
@list_of_key_cols_tab_del nvarchar(255),
@list_of_cols_val_tab_del nvarchar(255)

AS

begin

-- Return values
declare @error  int				-- Result (0 for no error)
declare @error_message nvarchar (200) 		-- Error string to be displayed
select @error = 0
select @error_message = N'Ok'



--------------------------------------------------------------------------------------------------------------------------------

--	ADD	YOUR	CODE	HERE
--revisa precio unitario debajo de costo o igual a costo excepto promociones.
IF  @object_type = '17'  and @transaction_type  IN ('A','U')
BEGIN
if exists (SELECT T1.[ItemCode] 
			FROM ORDR T0  
			INNER JOIN RDR1 T1 ON T0.DocEntry = T1.DocEntry 
			INNER JOIN OITM T2 ON T1.ITEMCODE=T2.ITEMCODE
			WHERE (T1.[price] <= T2.[avgprice])and (T0.docentry = @list_of_cols_val_tab_del) 
			and (t1.itemcode<>'PREF-15')and(t1.itemcode<>'POLV-17'))
begin
	SELECT @error = 1, @error_message = 'orden de venta con precio bajo de costo !'
end
END
-- Revisa ordenes de venta en actualizaciones tambien sin código de vendedor.
IF  (@object_type = '17')  and @transaction_type  IN ('A','U') 
BEGIN 
   DECLARE @CODV NVARCHAR(10) 
		SET @CODV = (SELECT T0.U_CODIGO
						FROM ORDR T0 
						WHERE T0.DocEntry = @list_of_cols_val_tab_del) 
		IF @CODV is null
	BEGIN
	SELECT @error = 1
	SELECT @error_message = 'Orden de Venta sin codigo de vendedor!'
	END
END
--Revisa Oferta de venta sin código de vendedor.

IF  (@object_type = '23')  and @transaction_type  IN ('A','U')
BEGIN 
   DECLARE @COD NVARCHAR(10) 
		SET @COD = (SELECT T0.U_CODIGO
						FROM OQUT T0 
						WHERE T0.DocEntry = @list_of_cols_val_tab_del) 
		IF @COD is null
	BEGIN
	SELECT @error = 1
	SELECT @error_message = 'Oferta de Venta sin codigo de vendedor!'
	END
END




--Oferta de venta sin código de vendedor.

--------------------------------------------------------------------------------------------------------------------------------

-- Select the return values
select @error, @error_message

end

o acaso tengo que borrar el @error y asignarle otro número dependiendo del if que tenga?...

ojalay alguien pueda orientarme :):D saludos!

Accepted Solutions (0)

Answers (2)

Answers (2)

angeles804
Active Contributor
0 Kudos

ya anide los if y con eso quedo. saludos. y gracias

Former Member
0 Kudos

Hola...

La verdad es que el transaction notification te debe validar siempre, porque el criterio siempre será el mismo. No entiendo muy bien cuando señalas que en algunos documentos el campo está vacio. Se asume que existen documentos que están de antes que se creara el transaction y que por ende pueden mostrar el campo en blanco. Ahora si quieres actualizar esos documentos entiendo que la validación si se aplicará y te enviará el mensaje correspondiente, pero en su estado actual no es posible ver los datos.

Eso es lo que entiendo de tu consulta

Espero te sea de ayuda

Saludos Cordiales,

PD: Otra consulta....el campo de usuario lo estás llenando con una búsqueda formateada?

Edited by: Paul Ponce on Sep 22, 2010 9:47 PM

angeles804
Active Contributor
0 Kudos

es que no entiendo, he estado sensando los documentos y a veces el campo va vacío, por eso mi pregunta, si , es lo mismo que yo digo, que debería de validar siempre, es por eso que no le hayo razón, he querido encontrar coincidencias de tiempo o sesiones pero la verdad no lo hayo.

angeles804
Active Contributor
0 Kudos

sabes he ido a ventas a hacer las pruebas y me marca un error con la tabla de las series nnm1. sera que tengo mal ubicado mi código o que necesitaré anidar los if?