Share via


Processador de Relatório

O Processador de Relatório é um componente interno de uma instância do servidor de relatório que processa relatórios, bem como os modelos de relatório usados para relatórios ad hoc.

Visão geral do processamento de relatório

O processamento de relatório descreve uma série de etapas de processamento que transformam as instruções estáticas dentro de uma definição de relatório em um relatório renderizado que aparece em um formato de apresentação final. O diagrama a seguir mostra os estágios e os elementos de processamento de relatório.

Diagrama de processamento de relatório

diagrama de processamento de relatório

Quando um relatório é acessado, por meio de acesso por demanda ou push, o servidor de relatório executa processamento de ponta a ponta ou retorna um relatório que foi pré-processado e salvo em um formato imediato para exibição subsequente em um formato específico. As configurações de execução do relatório determinam qual resultado ocorre. Se um administrador de servidor de relatório especifica que um relatório seja acessado do cache ou como um instantâneo, o formato intermediário é recuperado do banco de dados do servidor de relatório e, em seguida, renderizado para exibição. Caso contrário, todos os estágios do processamento são executados.

Solicitações de processamento de relatório

O Processador de Relatório responde a estas solicitações:

  • Solicitação de um relatório sob demanda. A ação de um usuário de abrir um relatório configurado para execução sob demanda dispara o processamento do relatório no servidor de relatório. O Processador de Relatório recupera a definição do relatório, envia a solicitação de dados a uma extensão de processamento de dados, combina a definição do relatório com os dados, envia essa combinação a uma extensão de renderização e retorna o relatório renderizado. O processamento de relatório sob demanda também ocorre em resposta às ações de usuário em um relatório com base no modelo. Um usuário que explora um caminho de dados em um relatório com base no modelo dispara uma série de solicitações de relatórios de clickthrough temporários.

  • Solicitação de um relatório armazenado em cache. O processamento de relatórios armazenados em cache é uma variação do relatório sob demanda executada no serviço Web. A ação de um usuário de abrir um relatório configurado para execução de uma cópia armazenada em cache disparará o processamento do relatório, caso essa cópia tenha expirado. Nesse caso, o relatório será processado novamente antes de ser adicionado ao cache outra vez e, em seguida, enviado ao navegador do usuário.

  • Solicitação do Processador de Agendamento e Entrega. O processamento de relatório agendado é iniciado pelo servidor de relatório e executado em segundo plano. Todo o acesso push ao processamento e à entrega de relatório é orientado por agendas e eventos manipulados pelo componente Processador de Agendamento e Entrega do servidor de relatório. Quando a solicitação é recebida, o Processador de Relatório recupera a definição do relatório, envia a solicitação de dados a uma extensão de processamento de dados, combina a definição do relatório com os dados e armazena o relatório compilado no banco de dados do servidor de relatório.

Estágios do processamento de relatório

Durante a execução do relatório, o servidor de relatório processa um relatório em três estágios: processamento de relatório, processamento de dados e renderização. O processamento de dados e relatório é executado em uma definição de relatório, que resulta em um relatório no formato intermediário. Os relatórios no formato intermediário são subsequentemente renderizados para um formato de exibição específico.

Recuperando a definição do relatório

O processamento de relatório começa com uma definição de relatório publicada. Uma definição de relatório contém uma ou mais consultas, informações de layout e referências de código ou expressões. O Processador de Relatório obtém a definição do relatório do banco de dados do servidor de relatório, inicializa os parâmetros e as variáveis presentes nas expressões e executa outros itens de processamento preliminar que prepara o relatório para os dados. A extensão de processamento de dados se conecta à fonte de dados e recupera os dados.

Processar os dados

O processamento de dados ocorre em um servidor de banco de dados. Se o relatório recuperar arquivos de dados estáticos ou documentos XML, o processamento de dados poderá ficar limitado a obter esses arquivos e retornar os dados ao servidor de relatório.

Mesclar dados e layout em um formato intermediário

Depois que os dados são retornados, eles são mesclados às informações de layout na definição do relatório para construir um relatório em um formato intermediário que pode ser salvo para recuperação rápida ou direcionados a uma extensão de renderização que os processa em um formato visível para o usuário. Os dados são processados por linha para cada seção. As seções incluem o cabeçalho e o rodapé do relatório, cabeçalhos e rodapés de grupo e detalhes. Funções agregadas e expressões também são processadas nesse momento.

Um relatório configurado para execução como um instantâneo ou que seja mantido em um histórico sempre é armazenado em um formato intermediário que inclui dados e informações de layout atuais para o relatório quando esse formato intermediário é salvo.

O servidor de relatório pode usar o formato intermediário de diversas formas. O armazenamento em cache, os instantâneos e o histórico de relatórios são recursos que usam relatórios armazenados no formato intermediário. O formato intermediário é portátil. É possível renderizá-lo em qualquer formato de exportação com suporte do servidor de relatório e implantado nele.

ObservaçãoObservação

O formato intermediário é um formato de aplicativo interno. Para trabalhar com um relatório nesse formato em um aplicativo personalizado, você deve usar interfaces programáticas que criam ou recuperam instantâneos.

Renderizar o relatório

Depois que o relatório estiver no formato intermediário, os relatórios poderão ser renderizados em um formato de apresentação. Um relatório renderizado é compilado como um assembly de tempo de execução de linguagem comum e executado no servidor de relatório.

Durante o estágio de renderização, a extensão de renderização pagina o relatório e processa expressões que não podem ser processadas durante o estágio de execução. O relatório é renderizado no formato específico de dispositivo apropriado.

Processamento de modelo e relatórios de clickthrough

Os relatórios podem usar modelos de relatório como uma interface para fontes de dados subjacentes. Os modelos especificam metadados e incluem referências a fontes de dados compartilhadas que definem a conexão de dados. O processamento de modelo ocorre no servidor de relatório, sempre que as seguintes ações de usuário são executadas:

  • Explorar um modelo no Construtor de Relatórios.

  • Consultar dados do modelo ao criar um relatório no Construtor de Relatórios.

  • Navegar em relatórios de clickthrough salvos em um servidor de relatório.

O processamento de relatórios de clickthrough é semelhante ao processamento de definições de relatório, exceto que os relatórios são gerados automaticamente com base em modelos, em vez de definições de relatório publicadas no servidor. O processamento de dados é iniciado pelo modelo para recuperar dados de interesse.