cancel
Showing results for 
Search instead for 
Did you mean: 

Transaction Notice

Former Member
0 Kudos

Hola, buenos días!

Quisiera saber si alguno de ustedes pudiera explicarme cómo funciona el Transaction Notice (no Transaction Notification) ya que he intentado varias pruebas con este procedimiento y no me funciona.

Adicionalmente, me gustaría saber si existe alguna manera de realizar un Transaction Notification colocando en el query algo equivalente al tipo de variable, por ejemplo: $[$4.0.0], ya que como saben este tipo de variables no es reconocida en SQL.

Espero sus comentarios, muchas gracias!

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hola Mauricio, gracias por tu explicación. Efectivamente el Transaction Notification se puede programar para cuando se agrega un registro (ADD) o cuando se actualiza (UPDATE). El tema es que éste te bloquea la transacción. En mi caso solo necesito una alarma (la banda roja que aparece en la parte inferior de la pantalla) sin que me bloquee la transacción, es decir, que pueda crear la factura. Por esta razón estuve pensando en el Transaction Notice en lugar del Notification, pero no me ha funcionado.

En cuanto a la otra duda, me tomó perfectamente el valor del cliente que estoy tomando al momento de crear la factura, pero por alguna razón que desconozco el query me toma la validación así el cliente no posea facturas vencidas :S. Intenté hacer el query de varias formas y nada que ver....

Si tienes alguna sugerencia al respecto no dudes en escribirme...

Gracias!

Former Member
0 Kudos

De todas maneras coloco el código que estoy usando para que la duda sea mas detallada:

IF(@object_type = '13' AND (@transaction_type ='A'))

BEGIN

IF EXISTS (SELECT DocNum FROM OINV WHERE DocDueDate < GETDATE() AND DocStatus='O'

AND CARDCODE = $ ) --entiendo que no se puede colocar esta variable en el código, hay algo equivalente???

BEGIN

SET @error= '1'

SET @error_message = ' EL CLIENTE POSEE SALDO PENDIENTE. '

END

END

former_member188440
Active Contributor
0 Kudos

Tengo entendido que el PostTransactionNotice, se ocupa para eventos que estan relacionados con la actualizacion unicamente, aunque igualmente yo uso el TransactionNotification para ambos casos, ADD o Update, si estoy mal por favor comenten expertos.

por otro lado te comento lo de la variable que dices, haciendo uso de variables te sugiero que intentes lo siguiente:



if (@Object_type in ('13') and @transaction_type in ('A')) OR (@Object_type in ('13') 
	and @transaction_type in ('U'))
begin
/*Guardamos en una variable el codigo del cliente de la factura q vamos a crear*/
declare @cliente nvarchar (8)
select @cliente=cardcode from oinv where docentry=@list_of_cols_val_tab_del
/*Buscamos si tiene saldo pendiente dicho cliente*/
declare @facAbierta as char (1)
set @factAbiert= (select 'Y' from oinv where docStatus='O' and cardcode=@cliente)
if 
@facAbierta ='Y'
set @error=-1
set @error_message= 'Este cliente tiene saldo pendiente'
end

Espero te sirva

former_member210784
Active Contributor
0 Kudos

Hola.

Para complementar un poco acerca del SP_PostTransactionNotice y el SBO_SP_TransactionNotification, su funcionalidad básica es la misma.

Se diferencian en el momento en el que son disparados (el SP_PostTransactionNotice sólo se dispara al final de la transacción mientras que el SP_TransactionNotification puede ser disparado en cualquier parte de la transacción), y en la posibilidad de deshacer una transacción con el objeto @error (con el SP_PostTransactionNotice no se puede usar por su naturaleza de ser disparado al final de la transacción).

Para mayor información pueden revisar esta Nota SAP 1320484 Business One - Stored Procedures.

Para que no se bloquee o se realice el rollback de la transacción, si debe utilizar el SP_PostTransactionNotice (no se usa el @error).

Si desea usar el SP_TransactionNotification, debe devolver @error = 0 para que no se haga el rollback.

Saludos.