cancel
Showing results for 
Search instead for 
Did you mean: 

Duda comparando datos en el TransactionNotification

Former Member
0 Kudos

Un cordial saludo a todos,

Tengo una duda, estoy haciendo una restricción usando el TransactionNotification y me encuentro que si busco el valor del campo que estoy restringiendo en la tabla de la Base de Datos me devuelve el valor que esta modificandose en ese momento

por ejemplo, si estoy validando en el pedido el campo RDR1.U_prueba y quiero comparar el valor con el mismo campo RDR1.U_prueba que esta grabado en base de datos el valor que me devuelve no es el que esta guardado en la tabla sino el que se esta modificando

Cómo hago en este caso para obtener el valor RDR1.U_prueba que esta guardado en la tabla?

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hola...

En transaction notification las validaciones se realizan contra los valores que se presentan en pantalla. Se me ocurre que si quieres validar contra otro valor que esté guardado en alguna tabla, entonces debas declarar una variable y en ella dejar el valor para la comparación.

Saludos Cordiales,

Former Member
0 Kudos

Hola Paul, muchas gracias por contestar

No me queda claro lo de la variable porque sigo sin encontrar el valor guardado en la tabla, por lo pronto estoy resolviendo el caso tomando el valor de la tabla que guarda el log de modificaciones del documento, en este caso el pedido, pero sera otra vez problema si necesito validar un campo de un documento que no sea de marketing.

si alguien tiene para recomendarme otra forma mas eficiente que la que actualmente estoy utilizando por favor comentelo en el foro

Muchas gracias a todos

former_member188440
Active Contributor
0 Kudos

Guarda en una variable tal como lo indica Paul, el valor que quieres comparar en las tablas ya existentes.

Por ejemplo, suponiendo que quieres comparar el numatcard del documento que estas creando pondrias algo asi

set @tuvariable= (select numatcard from ordr where docentry=@list_of_cols_val_tab_del)

if @tuvariable in (select numatcard from ordr where numatcard=@tuvariable)

set @error=1

set @errro_message='Hola'

Algo asi es como puedes hacerlo

Former Member
0 Kudos

Hola...

La lógica podría ser así...

declare @conta int

declare @var nvarchar

set @var= (select CAMPO_ESTANDAR from TABLA_ESTANDAR where docentry=@list_of_cols_val_tab_del)

set @conta = (select count(T0.U_CAMPO_USUARIO) from @TABLA_USUARIO WHERE U_CAMPO_USUARIO = @var)

if @conta > '0'

set @error=1

set @errror_message='Hola'

Espero te sea de ayuda

Saludos Cordiales,