Skip to Content

Hace tiempo, en un proyecto X, construí este query que devuelve el código del usuario conectado SAP B1, incluso si tiene 2 sesiones abiertas con diferente

usuario devuelve el correcto.


Select top 1 UserCode from USR5 where SessionID=@@spid order by Date desc,Time desc

SQL Server maneja una variable única para cada conexión establecida a la base de datos, llamada “spid”, se puede recuperar obteniendo


select @@spid

Esa query devolverá el numero de conexión que asigna sql a la conexión establecida de ese programa, si lo ejecutan en el cliente, les entregará el numero de conexión de ese cliente, que sería diferente al ejecutarlo en el SQL Management Studio que también tiene una conexión asignada.

Luego en la tabla USR5 se guardan las conexiones de los usuarios con su spid, por lo que se debe recuperar la ultima conexión del usuario que coincide con el spid del cliente actual.

Aquií les dejo el ejemplo de 2 clientes con diferente usuario conectado.

Captura de pantalla de 2015-07-09 13-24-15.png

Espero le sea de utilidad.

Salduos

To report this post you need to login first.

13 Comments

You must be Logged on to comment or reply to a post.

  1. Gonzalo Gomez

    En la versión 9.1 han añadido una opción en Gestión-Utilidades denomindada clientes conectados que especifica esa información por ip

    Captura.PNG

    (0) 
    1. Felipe Loyola Post author

      Claro que existe pero por ejemplo, si quieres filtrar automáticamente un reporte por el código del usuario conectado para que no tenga que especificar el usuario manualmente, si quieres hacer una búsqueda formateada para traer valores asignados al usuario y otras cosas mas.

      La query no apunta a ser un reporte, apunta a traer el dato del usuario conectado para ser usado en algun stored procedure, alguna BF o alguna query.

      Como observación, si bien los nuevos clientes que contratan sap B1 se les implementa la version actual (9.1 en este caso), tenemos clientes que aun están en la versión 2007 o en la 8.81, incluso había 1 que aun tenía 2005 hasta hace poco. La cantidad de clientes que disfrutan de las nuevas funcionalidades son los más recientes, no todos estan buscando el upgrade para estar a la vanguardia con las versiones.

      Saludos

      (0) 
      1. Luis Mendez

        Hola Felipe, con el pago del mantenimiento, todos los clientes tienen derecho a las actualizaciones de SAP, con ello podrían subir a l 9.1

        Por cierto, muy util tu query para asignarlo en un stored

        Saludos

        (0) 
  2. Cesar Davila

    Saludos Felipe.

    He verificado en el SAP 2007 que usamos y no tengo al tabla USR5. Hay alguna otra tabal donde pueda aplicar esa consulta?

    (0) 
  3. Luis Ramirez

    Y si requiero hacerlo desde un rpt desde crystal, es decir necesito que la columna de ganancia aparezca con ***** si el usuario del director no es el que solicita el rpt.

    (0) 

Leave a Reply