on 01-27-2014 10:13 PM
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
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
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)
User | Count |
---|---|
99 | |
11 | |
11 | |
6 | |
6 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.