Skip to Content
avatar image
Former Member

Alarma al crear solicitud de compra

Jóvenes expertos tengo el siguiente inconveniente y es que necesito que cada vez que se crea una solicitud de compra envié un mensaje interno en SAP a un usuario encontré un ejemplo en este link https://archive.sap.com/discussions/thread/1627474 le cambie la tabla a la OPRQ que es la de solicitud de compra y lo grabe el query manager y luego grabe cree una alamar colocando este query y por efecto de prueba coloque el usuario del manager para que le avise cuando haya una solicitud de compra nueva, pero no envia el mensaje el query es el siguiente:

DECLARE @CONT AS INT ---CONTADOR DECLARE @STAT AS NVARCHAR(2) --- ESTATUS DE DOCUMENTO ABIERTO O CERRADO DECLARE @ULTDOC AS INT ---NUMERO ULTIMO DOCUMENTO SET @CONT = (SELECT COUNT(T4.[DocNum]) FROM OPRQ T4) SET @ULTDOC = (SELECT MAX(T4.[DocNum]) FROM OPRQ T4) SET @STAT = (SELECT T4.DocStatus FROM OPRQ T4 WHERE T4.[DocNum] = @ULTDOC) IF @STAT = 'O' BEGIN SELECT DISTINCT T0.[DocEntry] as 'N° de Nueva Solicitud de compra' FROM OPRQ T0 INNER JOIN PRQ1 T1 ON T0.[DocEntry] = T1.[DocEntry] WHERE @CONT > '0' AND T0.[DocStatus] = 'O' AND T0.DocDate = CONVERT(date,GETDATE(),182)

END

La alarma la coloque a 1 minuto, y ejecuto el query y me indica que si hay nuevas Solicitudes de compra. El sistema esta en Version 9.2 y PL 03

Agradeciendo la ayuda y su tiempo. Saludos

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • Jun 10, 2017 at 10:58 PM

    Hola Carlos,

    Yo probado la consulta y funcionó bien. Pero mientras el usuario alertado no cierre la solicitud de compra, recibirá cada minuto la notificación.

    DECLARE @CONT AS INT 
    ---CONTADOR 
    DECLARE @STAT AS NVARCHAR(2) 
    --- ESTATUS DE DOCUMENTO ABIERTO O CERRADO 
    DECLARE @ULTDOC AS INT 
    ---NUMERO ULTIMO DOCUMENTO 
    SET @CONT = (SELECT COUNT(T4.[DocNum]) FROM OPRQ T4) 
    SET @ULTDOC = (SELECT MAX(T4.[DocNum]) FROM OPRQ T4) 
    SET @STAT = (SELECT T4.DocStatus FROM OPRQ T4 WHERE T4.[DocNum] = @ULTDOC) 
    
    SELECT @CONT, @ULTDOC, @STAT
    
    IF @STAT = 'O' BEGIN 
    	SELECT 
    		DISTINCT 
    		T0.[DocEntry] as 'N° de Nueva Solicitud de compra' 
    	FROM 
    		OPRQ T0 
    	WHERE 
    		@CONT > '0' 
    		AND T0.[DocStatus] = 'O' 
    		AND T0.DocDate = CONVERT(date,GETDATE(),182)
    END
    

    Espero que ayude.

    Atte,

    Diego Lother

    Add comment
    10|10000 characters needed characters exceeded