Hola todos, de ante mano les digo que es la primera consulta que hago por este medio y ofrezco disculpas si no lo hago correctamente!
Ahora les cuento un poco mi necesidad para ver si puedo encontrar algun apoyo con todo este equipo!
En el momento estoy tratando de implementar un control SP en SBO y necesito subirlo en SQL para revisar que la fecha que se introduce al programa al crear un documento tipo solicitud de compra no sea diferente a la fecha del sistema. y me arroje el error que NO SE PUEDE MODIFICAR LA FECHA DE CONTABILIZACION o DEL DOCUMENTO.
Si me pudieran ayudar con la forma como poder expresar esto, se los agradeceria.
Gracias
Aca tienes un ejemplo para cuando se REGISTRA la orden de compra, de tarea te dejo que hagas el codigo en caso de la MODIFICACION, que deberas usar el campo CreateDate para validar.
IF @transaction_type = 'A' AND @object_type = '22'
BEGIN
IF EXISTS (SELECT T0.[DocNum]
FROM OPOR T0
WHERE (CONVERT(char(10),T0.[DocDate], 103) != CONVERT(char(10), getdate(), 103)
OR CONVERT(char(10),T0.[DocDate], 103) != CONVERT(char(10), getdate(), 103))
AND @object_type='22' AND T0.DocEntry=@list_of_cols_val_tab_del)
BEGIN
SELECT @error = 20, @error_message = 'Las Fechas de Contabilizacion y Documento NO pueden ser distintas a la Fecha Actual'
END
Saludos
1 me gusta
Hola gracias por su oportuna respuesta, he realizado los cambios pertinentes dejando el codigo de la forma que expresare en la parte inferior pero tampoco me realiza el bloqueo en el campo fecha de contabilización, el tema es que al revisar y colocar en el documento una fecha superior si me envia el mensaje siguiente:
(En el campo “Fecha de contabilización”, introduzca la fecha de contabilización que es igual o anterior a la fecha del sistema. Campo: Fecha de contabilización)
No se donde esta colocado este bloqueo y mensaje pues en el archivo de SP´s no esta para tratar de utilizarlo, a continuación coloco el codigo que modifique y gracias por toda su colaboración.
– Validacion en la Fecha del documento en Solicitud de Compra igual a la Fecha delSsistema
IF @object_type IN(‘1470000113’) AND @transaction_type IN(‘A’,‘U’)
BEGIN
IF EXISTS (SELECT T0.[DocNum]
FROM OPRQ T0
WHERE (CONVERT(char(10),T0.[DocDate], 103) != CONVERT(char(10), getdate(), 103)
OR CONVERT(char(10),T0.[DocDate], 103) != CONVERT(char(10), getdate(), 103))
AND @object_type='1470000113' AND T0.DocEntry=@list_of_cols_val_tab_del)
BEGIN
SELECT @error = 00043975, @error_message = 'Las Fechas de Contabilizacion y Documento NO pueden ser Distintas a la Fecha Actual'
END
END
hasta pronto.
Trata de leer un poco sobre el TransactionNotification hay mucha info en internet, un detalle es que no debes aplicar esa validacion contra la fecha actual (getdate()) en caso de una Modificacion(@transaction_type = ‘U’) .
Por que no intenta usando la funcion datediff entre getdate() y la fecha del documento:
datediff(dd,getdate(),docdate) <>0
Gracias Nelson, la verdad es que no sabria como usarlo exactamente, me podrias ayudar con esa sentencia del where al menos por fa. Gracias
IF @transaction_type = ‘A’ AND @object_type = '22’
BEGIN
IF EXISTS (SELECT T0.[DocNum]
FROM OPOR T0
WHERE
DATEDIFF(DD,GETDATE(),t0.DOCDATE)<>0 AND T0.DocEntry=@list_of_cols_val_tab_del)
BEGIN
set @error = 20
set @error_message = 'Las Fechas de Contabilizacion y Documento NO pueden ser distintas a la Fecha Actual'
END
end
1 me gusta
Gracias Nelson lo probare y espero me sea efectivo. feliz tarde