En Navision, es fundamental gestionar correctamente las sesiones activas de los usuarios. En este caso, voy a modificar la página estándar de lista de sesiones para incluir una nueva funcionalidad: un botón que permite eliminar sesiones activas. Esto puede facilitar la administración del sistema y ayudar a liberar recursos cuando sea necesario.
¡Vamos manos a la obra! 😏
Explicación general del código
Navision cuenta con una página estándar denominada “Lista de sesiones” (Page 9506
). Esta página muestra información sobre las sesiones activas en el sistema, como el ID de sesión, el tipo de cliente, la fecha de inicio de sesión y más. El código que has visto gestiona cómo se muestran las sesiones y ofrece acciones como depurar sesiones o activar el seguimiento de consultas SQL.
La estructura del código incluye las siguientes secciones:
- Propiedades de la página: Se configuran permisos y el comportamiento general de la página, como si se permiten insertar, eliminar o modificar registros.
- Filtros automáticos: Se aplican filtros para mostrar solo las sesiones activas y no incluir la sesión propia del usuario actual.
- Acciones de depuración: Hay varias acciones estándar que permiten depurar sesiones. Por ejemplo, se puede depurar una sesión seleccionada o la siguiente sesión que interrumpa la ejecución del código.
- Seguimiento de SQL: Permite habilitar y deshabilitar el seguimiento completo de las consultas SQL, útil para la depuración y optimización del rendimiento.
Estas partes del código forman la base de la página estándar de Navision para la gestión de sesiones. Sin embargo, donde se realiza la modificación más interesante es en la acción que has añadido: el botón de eliminar sesión.
Botón para eliminar sesiones: La gran modificación
Aquí es donde has realizado el cambio más significativo: la adición de un botón para eliminar sesiones activas. Voy a desglosar esta parte en detalle.
{ 1000000000;2 ;Action ;
Name=DeleteSesion;
CaptionML=[ENU=Delete Sesion;
ESP=Eliminar Sesi�n];
Promoted=Yes;
PromotedIsBig=Yes;
Image=Delete;
PromotedCategory=Process;
OnAction=BEGIN
//Boton para cerrar sesion
STOPSESSION("Session ID");
END;
}
Explicación de cada componente:
- Name=DeleteSesion: Aquí defines el nombre de la acción que aparece en el código. Este nombre es importante ya que es el identificador interno que se utiliza para esta acción en particular.
- CaptionML: En esta línea defines cómo se verá el nombre del botón en distintos idiomas. En inglés aparece como “Delete Session” y en español como “Eliminar Sesión”. Es esencial que este tipo de textos multilingües estén bien definidos, especialmente en un entorno donde los usuarios pueden trabajar con distintos idiomas.
- Promoted=Yes: Esto hace que la acción sea visible de forma destacada en la interfaz de usuario. Es decir, el botón será fácil de encontrar, lo que facilita el acceso a la función de eliminar sesiones.
- PromotedIsBig=Yes: Esto le da al botón un tamaño mayor, lo que mejora la visibilidad y accesibilidad. De esta manera, el usuario puede identificar más rápidamente que se trata de una acción importante.
- Image=Delete: Aquí se asigna un icono al botón. En este caso, es el icono estándar de eliminación, lo que ofrece un reconocimiento visual claro para los usuarios de lo que hace el botón.
- PromotedCategory=Process: Esto agrupa el botón dentro de una categoría de procesos en la interfaz, lo que ayuda a organizar las acciones y evita que el botón de eliminar se mezcle con otras funciones no relacionadas.
La funcionalidad más importante: OnAction
OnAction=BEGIN
STOPSESSION("Session ID");
END;
Esta es la parte clave de la modificación. El bloque OnAction
define lo que sucede cuando el usuario pulsa el botón “Eliminar sesión”. En este caso, se utiliza el comando STOPSESSION("Session ID")
.
- STOPSESSION(“Session ID”): Este comando cierra la sesión correspondiente al
Session ID
especificado. Cuando un usuario selecciona una sesión en la lista y pulsa el botón, Navision ejecuta este comando y fuerza el cierre de esa sesión en particular.
Este botón es sumamente útil cuando un usuario se queda bloqueado o no cierra correctamente su sesión. También es práctico para los administradores que necesitan liberar recursos del sistema rápidamente sin tener que esperar a que las sesiones se cierren automáticamente.
Al implementar este botón, has añadido una funcionalidad que no solo mejora la administración de Navision, sino que también facilita la resolución de problemas comunes relacionados con sesiones atascadas o inactivas.
Beneficios y Aplicaciones Prácticas:
Este código modificado ofrece varias ventajas claras para la gestión de sesiones en Navision:
- Cierre manual de sesiones: Si una sesión queda abierta debido a problemas de red o errores del usuario, puedo cerrarla manualmente, lo que evita que consuma recursos innecesarios.
- Mejor visibilidad y control: El botón “Eliminar sesión” está claramente identificado, lo que me permite controlar más fácilmente las sesiones activas desde la interfaz gráfica.
- Optimización de recursos: Forzar el cierre de sesiones inactivas o bloqueadas puede ayudar a optimizar el rendimiento del sistema, ya que se liberan recursos que de otro modo podrían quedar ocupados indefinidamente.
Conclusión
La adición del botón para eliminar sesiones demuestra cómo una pequeña modificación en Navision puede simplificar la gestión de las sesiones activas y ayudar a los administradores a mantener el sistema funcionando de manera eficiente. Al implementar esta funcionalidad, puedo mejorar el control sobre los recursos del sistema y reaccionar de manera más proactiva a posibles problemas con las sesiones.
Si quieres ver el código completo, está en GitHub.
¡Espero que esta funcionalidad te sea de ayuda en tu día a día! 😄