cancel
Showing results for 
Search instead for 
Did you mean: 

Alerta a usuario conectado usando $[USER]

Former Member
0 Kudos

Hola y saludos a todos.

Ocupo hacer una alerta para todos los usuarios con los documentos creados por cada uno, pero en vez de hacer muchas alertas

me gustaría hacer una sola y marcar a todos los usuarios.

Intente haciando un query asi.

DECLARE @USUARIO INT

SET     @USUARIO = (SELECT $[USER])

SELECT     T0.[DocNum], T0.[DocDate], T0.[DocTotal]

FROM     OQUT T0

WHERE     T0.[UserSign] = @USUARIO

Con este query se creo una alerta y se marcaron todos los usuarios.

Para que la alerta sea, digamas inteligente, y trabaje contra el usuario conectado, pero no me funciono.

Alguien a hecho al parecido o tiene alguna idea.

Saludos y gracias de antemano.

Accepted Solutions (1)

Accepted Solutions (1)

former_member188471
Active Contributor
0 Kudos

Prueba así y comenta tus resultados.

SELECT     T0.[DocNum], T0.[DocDate], T0.[DocTotal],T1.USER_CODE

FROM     OQUT T0 INNER JOIN OUSR T1 ON T0.UserSign = T1.INTERNAL_K

WHERE    T1.USER_CODE =  (Select top 1 UserCode from USR5 where SessionID=@@spid order by Date desc,Time desc )

Former Member
0 Kudos

Hola, gracias por la respuesta.

Te comento, si ejecuto el reporte desde el query manager me da perfecto.

Usuario 1 ve sus ofertas

Usuario 2 ve sus ofertas

Sin embargo al ejecutarse la alerta no me muestra algunos registros, ejemplo tengo una ofertas de ayer y no me salen en la alerta, pero desde el QM si me salen.

Y otro caso, estoy haciendo la prueba con 2 usuarios y a los 2 usuarios les sale los mismo registros, osea usuario 1 ve las alertas de usuario 2 y viceversa.

Gracias de nuevo.

Saludos.

former_member188471
Active Contributor
0 Kudos

Te comento abajo segun tu comentarios:

Sin embargo al ejecutarse la alerta no me muestra algunos registros, ejemplo tengo una ofertas de ayer y no me salen en la alerta, pero desde el QM si me salen.

Tienes que tener en cuenta que el informe que te genera las alertas esta limitado, cuantos registros te muestra actualmente?

Y otro caso, estoy haciendo la prueba con 2 usuarios y a los 2 usuarios les sale los mismo registros, osea usuario 1 ve las alertas de usuario 2 y viceversa.

Este caso quiero pensar que lo ejecutaste desde SQL o en el query manager?

Former Member
0 Kudos

Hola.

En el caso uno,  lo tengo ordenedo por fecha y le indique un top 10 y ejemplo

- Si lo ejecuto desde el query Manager, me muestra las ultimas Ofertas creadas,

   incluidas las de ayer.

- En la alerta no me salen las de ayer, me inicia con Ofertas de dias atras.

En el segundo caso, si lo ejecuto desde el Query Manager me sale bien, ejemplo

  - Voy a usuario1 y ejecuto y me salen las de él

  - Voy a usuario2 y me salen las de él.

  Pero la alerta me muestra los registros de los 2, osea como que no respeta el

  usuario conectado

  - La Alerta del usuario1, me muestra tambien Ofertas de usuario2

  - La Alerta de usuario2, me muestra tambien Ofertas de usuario1

Lo extraño es que desde el Query manager si me salen bien.

Saludos y gracias.

gerardo_mendez
Active Contributor
0 Kudos

Hola compañeros, me parece interesante este tema.

Sobre su punto número 1: Cristian, ¿Podrías compartirnos tu Query definitivo?, recordemos que las alertas no son otra cosa más que la ejecución automática de un query por lo que la hora en que la tengas programada, será de mucha influencia en los resultados que te envíe.

Sobre su punto número 2: Interesante el aporte del compañero Julian, y sobre esto una pregunta, ¿tu subquery equivale a decirle al generador de consulta: "Tráeme el código de usuario de la sesión que está activa ejecutando el query"?; Si es así dudo mucho que funcione en una alerta ya que las alertas se ejecutan sin que el usuario haya iniciado la sesión o al menos así lo entiendo yo, equivale a ejecutar tu consulta desde SQL y por lo tanto no trae la misma información que te arroja el query manager.

Estos son mis comentarios sobre el tema. Saludos.

Por cierto, si las respuestas del compañero Cab Canul Julian te están siendo de ayuda, podrías agradecerle marcándolas como respuestas de ayuda y cuando encuentres la respuesta correcta, lo ideal sería marcarla como tal. Saludos.

Former Member
0 Kudos

Hola Gerardo.

Este es mi query final.

SELECT     top 10 T0.[DocNum], T0.[DocDate], T0.[DocTotal], t0.usersign, t1.internal_k

FROM     OQUT T0

        inner join ousr t1 on t0.usersign = t1.internal_k

WHERE     T1.[User_Code] = (Select top 1 UserCode from USR5 where SessionID=@@spid  order by Date desc,Time desc )

order by t0.[DocDate] desc

Gracias por las sugerencias.. Así lo seguire haciendo..

Saludos.

former_member188471
Active Contributor
0 Kudos

Apoyando el comentario acerca de la #2, precisamente ese es el detalle que pasa cuando se ejecuta y te mezcla documentos de los usuarios.

Lo que yo creo te seria bueno es que hagas un script en el QM y que el usuario logueado lo ejecute.

Former Member
0 Kudos

Hola CAB CANUL JULIAN


Precisamente asi lo estoy programando ahorita. deje el reporte en el query manager

y pienso indicarle a los usuarios que lo ejecuten manuelmente cuando lo necesiten.


Si voy a continuar haciendo pruebas para ver si de alguna forma resuelvo el tema de la

alerta.


Si logro algo se los comparto.


Gracias por la ayuda CAB CANUL JULIAN y Gerardo.


Saludos

Answers (0)