Existem três formas de gerar um relatório por meio de job:
1- Utilizar a API RptExecutorClient
Esta API deverá ser utilizada para requisições de geração de relatório realizadas da camada Cliente (RM.exe). As propriedade relacionadas à execução de relatório via job são:
- ExecuteOnJobServer: Se true, informa que o relatório deverá ser gerado em job. Caso o valor seja false o relatório será gerado diretamente pelo AppServer que receber a requisição.
Valor Default: false - OnlineMode: indica se, caso ExecuteOnJobServer seja true, o job de geração do relatório deverá ser executado diretamente pelo AppServer. Este é uma forma de dar prioridade à execução do job mas deve ser utilizado em casos muito especiais onde justifique que o job relatório seja executado sem passar pela fila de jobs.
Valor Default: false - TimeoutMillisec: Indica quanto tempo (em millisegundos) deve-se aguardar que o relatório seja gerado quando ExecuteOnJobServer = true. Se esse período for ultrapassado será lançada uma exceção.
Valor Default: int.MaxValue
RptExecutorClient report = new RptExecutorClient();
RptExecutorClientParams exeParams = new RptExecutorClientParams();
...
exeParams.ExecuteOnJobServer = true;
exeParams.OnlineMode = false;
exeParams.TimeoutMillisec = 60000;
report.ExecuteReport(lookUpForm.ColigadaRelatorio, lookUpForm.IdRelatorio, RMSSession.Context.CodUsuario, exeParams); |
2- Utilizar a API IRptExecutorOnJobServer
3- Criar um Processo (RMSProcess) e à partir dele chamar a API IRptExecutor