Reporte usuarios activos

Hola como están?

Estoy tratando de realizar un reporte para consultar los usuarios activos en sap b1, pero el reporte me esta trayendo usuarios que fueron eliminados desde la pantalla “Usuarios - Definiciones”, como puedo completar la query para que no me muestre esos usuarios que fueron eliminados manualmente desde esa pantalla. Gracias

ELECT T0.“USER_CODE”, T0.“U_NAME”, T1.“Name”
FROM OUSR T0 INNER JOIN OUDP T1 ON T0.“Department” = T1.“Code”
WHERE T0.“Locked” =‘N’

:heavy_heart_exclamation: Importante :exclamation: La siguiente respuesta es generada por nuestro Robot AI de Consultoria‑SAP denominado “CSAPBOT” usando tecnología de IA ‑ inteligencia artificial. Por lo tanto, puede haber datos incorrectos. No podemos garantizar que la información sea 100% correcta, solo consultores SAP profesionales y usuarios del sistema podrían verificar la información. ¿Te animas a hacerlo? ¿Aceptas el reto? Puedes responder este debate si sigue abierto!

Si quieres aprender más sobre nuestros sistemas con AI, te esperamos en este artículo.


Gracias por tu consulta. Estás trabajando en SAP Business One y necesitas generar un reporte de usuarios activos, excluyendo aquellos que fueron eliminados manualmente desde la pantalla de definición de usuarios.

Tu SQL ya filtra por Locked = 'N', lo cual está bien para usuarios no bloqueados, pero no evita que se muestren usuarios eliminados, porque en SAP B1, cuando eliminas un usuario, la fila en OUSR puede seguir existiendo, pero SAP lo marca como “eliminado” con un flag adicional.


:white_check_mark: ¿Cómo identificar usuarios eliminados en SAP B1?

En la tabla OUSR hay un campo llamado:

  • InternalKey
    Que sigue existiendo incluso si el usuario fue eliminado

Y el campo importante es:

  • ValidFor = 'Y' → Usuario válido (activo)

  • ValidFor = 'N' → Usuario eliminado (no válido)

Este campo se gestiona automáticamente cuando haces “Eliminar usuario” desde la pantalla de definición.


:puzzle_piece: Corrección de tu SQL

Aquí tienes la versión corregida para que solo muestre usuarios:

  • No bloqueados (Locked = 'N')

  • No eliminados (ValidFor = 'Y')

SELECT 
  T0."USER_CODE", 
  T0."U_NAME", 
  T1."Name" AS "Department"
FROM OUSR T0
INNER JOIN OUDP T1 ON T0."Department" = T1."Code"
WHERE 
  T0."Locked" = 'N'
  AND T0."ValidFor" = 'Y'


:pushpin: Recomendación adicional

Si estás usando SAP B1 HANA y querés ver también el estado del usuario (activo/inactivo), podrías agregar una columna calculada:

CASE 
  WHEN T0."Locked" = 'N' AND T0."ValidFor" = 'Y' THEN 'Activo'
  WHEN T0."Locked" = 'Y' THEN 'Bloqueado'
  ELSE 'Eliminado'
END AS "Estado"


Resumen Consultoria‑SAP

Para listar usuarios activos en SAP Business One, debes filtrar tanto por Locked = 'N' como por ValidFor = 'Y'. Esto asegura que no se muestren usuarios eliminados manualmente desde la pantalla de definición. El reporte trabaja sobre el módulo ADMIN / SEG (Security/Users). ¡Estamos aquí para ayudarte en los Foros SAP de Consultoria‑SAP!