Mashup Builder > Servicios de datos y enlaces > Parámetros de sesión
Parámetros de sesión
Una sesión es la conexión que el usuario crea con el servidor al visualizar un mashup en una visualización. Se pueden crear parámetros de sesión para almacenar datos temporales de la sesión de usuario actual. Por ejemplo, se puede utilizar un parámetro de sesión para almacenar una configuración para el tema de estilo preferido para un mashup. Los valores de los parámetros de sesión son únicos para cada usuario conectado al servidor y se almacenan hasta que finaliza la sesión. Los datos de parámetros de sesión también se conservan cuando un usuario navega entre distintos mashups.
Una sesión finaliza cuando un usuario cierra la aplicación, cierra la sesión con la función Cerrar sesión o agota el tiempo de espera después de una inactividad del servidor. El período de tiempo de espera por defecto para una sesión de la plataforma es de 30 minutos. El tiempo de espera por defecto se puede configurar mediante el servicio de administrador de SetPlatformSessionTimeout. Para obtener información, consulte Servicios de administrador.
Prácticas recomendadas
Utilice una base de datos o una cosa para almacenar datos que se necesitan para más de una única sesión.
Los parámetros del mashup se utilizan para pasar datos entre mashups siempre que sea posible. El uso de demasiados parámetros de sesión puede afectar al rendimiento. Para obtener más información, consulte Configuración de los parámetros de mashup.
Uso de eventos modificados para valores de parámetro de sesión
Se pueden añadir parámetros de sesión en UserManagementSubsystem y, a continuación, utilizar el panel Sesión en Mashup Builder para crear enlaces a widgets, servicios o funciones en un mashup. Cuando se selecciona el panel, se muestran los parámetros de sesión disponibles.
En el panel Propiedades de datos se muestra un objeto <Parameter_Name>Changed para cada parámetro. Estos eventos solo se activan cuando el valor de un parámetro de sesión cambia en el lado del cliente. El cambio del valor de un parámetro mediante el servicio SetGlobalSessionValues en el servidor no activa este evento. Para activar un evento cuando el valor cambia en el servidor, utilice el evento ServiceInvokeComplete del servicio que se utiliza para actualizar el parámetro en su lugar.
Adición de parámetros de sesión
Se puede utilizar una entidad de definición de cosa con una o varias propiedades como parámetros de sesión. Para añadir una definición de datos a la entidad UserManagementSubsystem:
1. En Composer, pulse en Inspeccionar.
2. En Sistema, seleccione Subsistemas y, a continuación, abra la entidad UserManagementSubsystem.
3. Añada una definición de cosa al subsistema de una de las siguientes maneras:
En la ficha Servicios, ejecute el servicio AddSessionShape:
a. Localice el servicio y pulse en Ejecutar servicio de la columna Ejecutar. Se abre el cuadro de diálogo Ejecutar servicio.
b. En el campo Nombre, seleccione la definición de cosa que contiene los parámetros de sesión y, a continuación, pulse en Ejecutar.
c. Pulse en Terminado para cerrar el cuadro de diálogo.
d. Pulse en Guardar para guardar los cambios en el subsistema.
En la ficha Configuración, en Configuración de definición de sesión de usuario, pulse en Añadir. Se abre un cuadro de diálogo.
a. Escriba el nombre de una definición de cosa y pulse en Añadir.
b. Pulse en Guardar para guardar los cambios en el subsistema.
La definición de cosa se añade al subsistema. Las propiedades de la definición de datos se muestran como parámetros de sesión enlazables cuando se abre el panel Sesión.
* 
El uso de una infotable con varias filas y columnas como parámetro de sesión puede reducir el rendimiento.
Para obtener más información, consulte Subsistema de gestión de usuarios.
Acceso a los parámetros de sesión en el servidor de plataforma
Para recuperar los valores de los parámetros de sesión:
1. En Composer, pulse en Inspeccionar.
2. En Sistema, seleccione Recursos y, a continuación, abra la entidad de recurso CurrentSessionInfo.
3. En la ficha Servicios, ejecute el servicio GetGlobalSessionValues:
a. Localice el servicio en la lista y, a continuación, en la columna Ejecutar, pulse en Ejecutar servicio. Se abre el cuadro de diálogo Ejecutar servicio.
b. Pulse en Ejecutar. Los valores de los parámetros de la sesión actual se muestran en el panel Salida.
c. Pulse en Terminado para cerrar el cuadro de diálogo.
Los parámetros de la sesión disponibles se muestran en el panel Sesión. Se puede utilizar el panel Datos para añadir el servicio GetGlobalSessionValues a un mashup y enlazar sus valores devueltos a funciones, servicios o widgets.
Ejemplo: Uso de un parámetro de sesión para almacenar la entrada de un widget de campo de texto
El valor de propiedad de la sesión se pierde después de renovar la página cuando una propiedad de widget se enlaza directamente a un parámetro de sesión. Para conservar el valor al volver a cargar la página, se deben utilizar los servicios de establecedor y captador para actualizar y recuperar el valor del parámetro.
1. Para definir un parámetro de sesión, siga los pasos de la sección Adición de parámetros de sesión.
2. Cree una cosa de asistente que contenga un servicio que defina el valor del parámetro de sesión.
3. Añada un parámetro de entrada al servicio de establecedor denominado input_string y, a continuación, añada el siguiente código JavaScript:
Resources["CurrentSessionInfo"].SetGlobalSessionStringValue({name: "your_session_var", value: input_string});
4. Cree un mashup y, a continuación, añada un widget de cuadro de texto, un widget de botón y una función de validador.
5. Utilice el panel Datos para añadir los siguientes servicios:
El servicio de establecedor que se ha creado en el paso 2.
El servicio GetGlobalSessionValues del recurso CurrentSessionInfo.
6. Enlace la propiedad Text del widget de campo de texto al parámetro input_string del servicio de establecedor.
7. Enlace la variable de sesión de la propiedad All Data del servicio GetGlobalSessionValues a la propiedad Text del widget de campo de texto.
8. Enlace el evento Clicked del widget de botón al servicio de establecedor.
9. Enlace el evento ServiceInvokeCompleted del servicio de establecedor al servicio Evaluate de la función de validador. El uso de este método incluso garantiza que el valor del parámetro de la sesión se actualice siempre antes de que se ejecute la función.
10. Edite la función y añada el siguiente código a la expresión:
location.reload()
11. Guarde y, a continuación, visualice el mashup.
Introduzca un valor en el cuadro de texto y, a continuación, pulse el botón para volver a cargar la página. El valor persiste después de volver a cargar la página.
¿Fue esto útil?