Existem três formas de gerar um relatório por meio de job:

1- Classe 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:

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-Server

 

RptExecutorJobServerReturn execReturn = null;
using (IRptExecutorOnJobServer executorJobServer = RMSBroker.CreateServer<IRptExecutorOnJobServer>("RptExecutorOnJobServer"))
{
    int timeoutMillisec = 600000;
    RMSJobID jobId = executorJobServer.SubmitReport(_CodColigada, _IdReport, _CodUsuario, executorParams, onlineMode, scheduleTo,  recurrencePattern);
    execReturn = executorJobServer.Wait(timeoutMillisec, jobId);
}

 

Está API deve ser utilizada na camada Server mas não deverá ser utilizada de dentro de um RMSProcess pelo fato que ela mesma gerará um processo a ser executado como job.

 

 

3- Criar um Processo (RMSProcess) e à partir dele chamar  a API IRptExecutor