Ayuda SAP

Crear control SP en SBO con SQL

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’) .

Listo Gabriel gracias

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