cancel
Showing results for 
Search instead for 
Did you mean: 

Duda Transaction Notification (picking)

armandomuozsule
Active Participant
0 Kudos

Buena tarde expertos coloque un Transact SQL en Transaction Notification el cual evita la duplicidad de ciertos campos del socio de negocio cuando realizo las pruebas me funciona perfectamente al crear el SN, lo implemente en la base de datos productiva , pero dio un error en el picking al actualizarlo y no se porque me afecta, yo no veo ninguna relacion puede ser que exista pero la descononozco, estoy seguro que es esta restriccion implementada la que provoca el error porque luego la comentarie y el picking siguio funcionando perfectamente. Dejare el Query y una imagen del error que da cuando se implementa el mismo. De antemano muchas gracias por su ayuda.

saludos Cordiales,

if @transaction_type in ('A','U') and @object_type = 2

begin

  set @Refe = (select U_NIT from OCRD where cardcode = @list_of_cols_val_tab_del)

IF Exists (SELECT COUNT(U_NIT) FROM OCRD WHERE U_NIT = @Refe HAVING COUNT(U_NIT) > '1')

IF  @Refe <> @consumidor_final

set @error =300

--Bloqueo Nombre SN--

set @Refe = (select CardName from OCRD where cardcode = @list_of_cols_val_tab_del)

IF Exists (SELECT COUNT(cardname) FROM OCRD WHERE CardName = @Refe HAVING COUNT(CardName) > '1')

set @error =400

--Bloqueo Direccion SN--

set @Refe = (select Street from CRD1 where cardcode = @list_of_cols_val_tab_del)

IF Exists (SELECT COUNT(Street) FROM CRD1 WHERE Street = @Refe HAVING COUNT(Street) > '1')

if @Refe is null

begin

set @error =500

end

SET @error_message=

CASE @error

WHEN 300 THEN 'Nit Repetido en la Base de Datos'

WHEN 400 THEN 'Nombre repetido en la Base de Datos'

WHEN 500 THEN 'Direccion repetida en la base de Datos'

END

END

Accepted Solutions (1)

Accepted Solutions (1)

former_member413321
Contributor
0 Kudos

Que tipo de Dato es @Refe?

El error lo que indica es que cuando se hace el picking envia una llave llamada "Picking" en texto, la cual se esta asignando a una variable integer. Por lo que es probable que en esta pantalla estes recibiendo parametros no esperados para tu consulta.

Por lo que habria que determiner los parametros en el Transaccion cuando se hace el picking, o bien pensar si este proceso levanta algun otro evento que nos pueda estar afectando.

Puede ser que el primer select donde sacas el contenido de @Refe no retorna datos, por lo parametros enviados por la forma.

armandomuozsule
Active Participant
0 Kudos

la variable @refe es nvarchar(50), crees que eso puede ser?

gracias por la ayuda Alejandro.

former_member413321
Contributor
0 Kudos

Y la variable @consumidor_Final? y El campo U_NIT? alguno de ellos es integer

El tema es que la pantalla esta entrando en la notificion. En caso contrario puede poner al transaccion a ingresar a una tabla el contenido de @list_if_cols_val_tab_del para ver que esta llevando cuando modificas esta pantalla.

armandomuozsule
Active Participant
0 Kudos

Despues de estar haciendo pruebas, la solucion era muy sencilla si a alguien le sirve como referencia

pongo un fragmento del query

if @transaction_type in ('A','U') and @object_type = 2

begin

  set @Refe = (select U_NIT from OCRD where cardcode = @list_of_cols_val_tab_del)

IF Exists (SELECT COUNT(U_NIT) FROM OCRD WHERE U_NIT = @Refe HAVING COUNT(U_NIT) > '1')

simplemente @object_type = '2' (poner entre comillas el 2 y listo)

Answers (0)