cancel
Showing results for 
Search instead for 
Did you mean: 

Control de items bloqueados por TransactionNotification

former_member188440
Active Contributor
0 Kudos

Que tal amigos!

Aqui una consulta sobre como poder resolver lo siguiente.

Tenemos articulos que por medio de una propiedad (Qrygroup64) activada, son suceptibles de no poderse vender.

Lo que estoy tratando de hacer es que por medio del transactionNotification, cuando se este capturando un articulo que tiene dicha propiedad activa, en una orden de venta, mande el error (luego de abandonar el campo) en rojo de "Articulo bloqueado para su venta".

Es posible hacer esto? Alguna idea?

He estado tratando de usar el transaction, pero no esta funcionando , me gustaria saber si es posible replicar los errores que manda el sistema como por ejemplo cuando uno captura una cantidad de caracteres demasiado grande en un campo y en la parte de abajo manda dicho error. Se puede hacer eso?

Gracias de antemano

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hola...

Por Transaction Notification, puedes efectivamente generar estos mensajes de error, sin embargo, estos mensajes son emitidos una vez que se intenta crear, actualizar, borrar, cancelar y/o cerrar el documento (en este caso la Orden de Venta).

Saludos,

former_member188440
Active Contributor
0 Kudos

OK Paul, si eso lo se, lo que no he podido hacer con el codigo que estoy agregando al Transaction, es que el codigo del articulo que se capturo, sea analizado, es decir, que parte del codigo del Transaction debo utilizar para esto? no he entendido bien el uso o significado del list_cols_of..... esas variables

@num_of_cols_in_key int,

@list_of_key_cols_tab_del nvarchar(255),

@list_of_cols_val_tab_del nvarchar(255

que significan y como se pueden utilizar?

Former Member
0 Kudos

Hola...

El siguiente código te permitiría mostrar un error cuando exista alguna línea en la cual el artículo, tenga asociada esta propiedad (propiedad 64)

if (@Object_type = N'17'and @transaction_type='A') OR (@Object_type = N'17'and @transaction_type='U')
begin
declare @PROP char(1)
set @PROP = (select COUNT(*)
	FROM RDR1 T0 INNER JOIN ORDR T1 ON T0.DocEntry = T1.DocEntry
	INNER JOIN OITM T2 ON T0.ItemCode = T2.ItemCode 
	WHERE T2.Qrygroup64 = 'Y' AND T1.DocEntry = @list_of_cols_val_tab_del)
	IF @PROP > 0
	begin
	SET @error = 1
    SET @error_message = 'ERROR'
    END
end

Respecto de tu consulta. creo que...

@num_of_cols_in_key trae el número de columnas del documento

@list_of_key_cols_tab_del trae el nombre del campo de la base de datos, por ejemplo DocEntry

, mientras que @list_of_cols_val_tab_del trae el número de documento actual sobre el cual estás trabajando (antes que este sea grabado), para efectuar sobre el mismo la validación.

Te sugiero adicionar a la línea en la cual se pone el mensaje de error, estas sentencias, de modo que al visualizar el error en la línea roja que aparecerá en SAP, también puedas visualizar el dato que refleja cada una de ellas.

Espero te sea de ayuda

Saludos Cordiales,

former_member188440
Active Contributor
0 Kudos

Muchas gracias Paul, funciono a la perfeccion.

Gracias por el apoyo.

former_member188440
Active Contributor
0 Kudos

Muchas gracias Paul, funciono a la perfeccion.

Gracias por el apoyo.

Answers (0)