Identificar el estado de ejecución

El Protocolo de transferencia de hipertexto (HTTP) es un protocolo sin estado y sin conexión, lo que significa que no indica de manera automática si las diferentes solicitudes provienen del mismo cliente o si una instancia del explorador todavía está viendo una página o un sitio. Las sesiones crean una conexión lógica para mantener el estado entre el servidor y el cliente sobre HTTP. La información específica del usuario pertinente para una sesión determinada se conoce como estado de sesión.

La administración de la sesión implica poner en correlación una solicitud HTTP con otras solicitudes anteriores generadas en la misma sesión. Sin la administración de sesiones, estas solicitudes parecen no estar relacionadas con el servicio web del servidor de informes debido a la naturaleza sin conexión y sin estado del protocolo HTTP.

Reporting Services no expone un concepto holístico del estado de sesión como el expuesto a través de ASP.NET. Sin embargo, al ejecutar los informes, el servidor de informes mantiene el estado entre las llamadas al método en forma de una ejecución. Una ejecución permite al usuario interactuar con el informe de varias maneras, por ejemplo al cargar el informe del servidor de informes, establecer las credenciales y los parámetros para el informe, y representar el informe.

Mientras se comunican con un servidor de informes, los clientes utilizan la ejecución para administrar la visualización de los informes y la navegación del usuario a otras páginas de un informe, y para mostrar u ocultar las secciones de un informe. Existe solo una ejecución para cada informe que la aplicación cliente ejecuta.

En general, la vigencia de una ejecución se inicia cuando un usuario navega a un explorador o aplicación cliente y selecciona un informe para verlo. La ejecución se descarta después de un breve período de tiempo de espera, una vez recibida la última solicitud de ejecución (el tiempo de espera predeterminado es de 20 minutos).

Desde la perspectiva del servicio web, la vigencia comienza cuando se llama a los métodos LoadReport, LoadReportDefinition o Render del servicio web del servidor de informes. La aplicación puede utilizar otros métodos para manipular la ejecución activa (por ejemplo, configurar los parámetros y establecer los orígenes de datos). La ejecución se descarta después de un breve período de tiempo de espera, una vez recibida la última solicitud de ejecución (el tiempo de espera predeterminado es de 20 minutos).

Para mantener el seguimiento de varias ejecuciones activas entre las llamadas a los métodos del servicio web Render y RenderStream, una aplicación guarda el ExecutionID, que los métodos LoadReport y LoadReportDefinition devuelven en el encabezado SOAP.

El diagrama siguiente muestra el procesamiento y la representación de la ruta de acceso para los informes.

Ruta de representación/procesamiento de informe

Para admitir las funciones descritas antes, el método SOAP Render actual se ha dividido en varios métodos que abarcan las fases de inicialización de la ejecución, procesamiento y representación.

Para representar mediante programación un informe, debe:

Aunque un informe esté en sesión, el informe subyacente almacenado en la base de datos del servidor de informes puede cambiar. Por ejemplo, la definición de informe puede cambiar, el informe se puede eliminar o mover, y los permisos de usuario pueden cambiar. Si el informe está en una sesión activa, los cambios realizados no afectan al informe subyacente (es decir, el informe almacenado en la base de datos del servidor de informes).

También puede administrar una sesión de informe mediante comandos de acceso URL. Para obtener más información, vea Administrar sesiones de informes mediante una dirección URL.