CONTEÚDO

01. VISÃO GERAL

Com o objetivo de facilitar o desenvolvimento de geração de relatórios Smart View de forma assíncrona utilizando RPW / Automação de tarefas, foi desenvolvida uma classe que centralizará as informações necessárias para execução de pedidos agendados.



02. EXEMPLO DE UTILIZAÇÃO

A classe GenerateReport() será responsável por recuperar o ID do pedido de execução com base nos parâmetros recebidos. Com essa informação, será realizado o refresh do token de autenticação para a execução dos pedidos agendados referentes ao relatório solicitado, e, em seguida, o relatório será recuperado no endpoint do Smart View.

02.1 Parâmetros de entrada da classe

NomeTipoDescrição
pOrderINTEGERCódigo do pedido de execução.
pLayoutNameCHARACTERNome do relatório do Cadastro de Programas Datasul.
pReportParamsJSONOBJECTObjeto com os parâmetros do relatório.
pFormatCHARACTERFormato do relatório. Formatos permitidos: .csv, .docx, .html, .jpeg, .mht, .pdf, .png, .rtf, .txt, .xls, .xlsx.

O nome externo do relatório cadastrado em Programas Datasul - bas_prog_dtsul será inserido no escopo de programas permitidos a utilizarem o token de autenticação do pedido agendado. Sendo assim, é de extrema importância que este cadastro esteja correto ou o relatório não será gerado.


02.2 Instância da classe

USING com.totvs.framework.smartview.GenerateReport.

DEFINE VARIABLE oGenerateReport AS GenerateReport NO-UNDO.

oGenerateReport = NEW GenerateReport(pOrder, pLayoutName, pReportParams, pFormat).

02.3 Chamada do método gerador do relatório

oGenerateReport:getReport().

02.4 Modelo JSON parâmetros do relatório

{
    "progIni":["rpHistorLogin"],
    "progFim":["rpHistorLogin"]
}

O json de parâmetros do relatório deve estar de acordo com o Objeto de Negócio do mesmo.

02.5 Programa exemplo

USING com.totvs.framework.smartview.GenerateReport.
USING Progress.Json.ObjectModel.JsonArray.
USING Progress.Json.ObjectModel.JsonObject.

DEFINE VARIABLE oGenerateReport AS GenerateReport NO-UNDO.
DEFINE VARIABLE oParamsReport   AS JsonObject     NO-UNDO.
DEFINE VARIABLE aParamsReport   AS JsonArray      NO-UNDO.
  
// Objeto com os parâmetros do relatório
oParamsReport = NEW JsonObject().

aParamsReport = NEW JsonArray().
aParamsReport:ADD("rpHistorLogin").
oParamsReport:ADD("progIni", aParamsReport).

aParamsReport = NEW JsonArray().
aParamsReport:ADD("rpHistorLogin").
oParamsReport:ADD("progFim", aParamsReport).

// Instancia da classe
oGenerateReport = NEW GenerateReport(217540, "rpProgramasDatasul", oParamsReport, "pdf").

// Chama o método que gera o relatório no diretório spool do usuário responsável pelo pedido RPW
oGenerateReport:getReport().

FINALLY: 
    IF VALID-OBJECT(oGenerateReport) THEN DELETE OBJECT oGenerateReport.
END.

02.6 Diretório de saída do relatório

O diretório de saída dos relatórios será o spool do usuário responsável pelo agendamento de execução dos pedidos, cadastrado no programa SEC000AA.




03. INFORMAÇÕES IMPORTANTES

Para evitar erros na execução, considerar as seguintes informações:

    • O código do pedido deve existir na tabela ped_exec;
    • O relatório deverá estar cadastrado no Programas Datasul - bas_prog_dtsul;
    • O nome externo do relatório cadastrado no Programas Datasul deve estar de acordo com o padrão de diretórios reportView: <MODULO>/reportview/<NOME_RELATORIO>.treports. Por exemplo: men/reportview/rpProgramasDatasul.treports;
    • O layout do relatório deve estar importado no programa Importação Layout SmartView - html.fwk-smartview-layout;
    • O relatório será salvo no diretório spool cadastrado para o usuário responsável pelo pedido de execução;
    • O nome do servidor (HOST) e porta do servidor (PORT) utilizados para a requisição do token de autenticação será recuperado do cadastro de Propriedades do Sistema > Propriedades Gerais > Configuração Servidor.