Histórico da Página
...
- Visão Geral
- Exemplo de utilização
- Tela XXX
- Outras Ações / Ações relacionadas
- Outras Ações / Ações relacionadas
- Tela XXX
- Principais Campos e Parâmetros
- Principais Campos e Parâmetros
- Tabelas utilizadas
- Postman
- Client Progress
- AppServer
01. VISÃO GERAL
Com a utilização da ferramenta BIRT para geração de relatórios, caso ocorra alguma inconsistência na geração, é trabalhoso para a equipe de atendimento diferenciar se há problemas na parametrização do ambiente, na funcionalidade ou até mesmo no relatório de responsabilidade das áreas de negócio.
Para facilitar a análise de uma inconsistência na geração do relatório em BIRT, foi desenvolvido um relatório padrão do Framework, que executa os mesmos processos internos para a geração de um relatório em PDF.
02. EXEMPLO DE UTILIZAÇÃO
A partir da release 12.1.2205, estão disponíveis três métodos para efetuar geração de um relatório padrão do Framework, para utiliza-los, deve-se incluir o template rel_framework_test (disponível em ../webapps/totvs-report/WEB-INF/classes) no diretório de templates do BIRT (Propriedades Relatório - https://tdn.totvs.com/pages/viewpage.action?pageId=601702111), pasta fnd.
Exemplo:
Postman
Com a utilização de uma ferramenta externa "Postman", a geração do relatório é efetuada diretamente com a execução do endpoint no Apache Tomcat. Nesta forma de execução, a camada Progress não é executada.
Para efetuar a geração do relatório, efetuar as seguintes etapas:
- Criar uma requisição POST com a URL abaixo, substitua os campos {host} e {port} conforme os nomes do servidor que será testado:
Bloco de código | ||
---|---|---|
| ||
http://{{host}}:{{port}}/totvs-report/printTest/fnd/rel_framework_test?format=pdf&download=true |
...
- Na aba Authorization, informar o tipo Basic Auth e inserir um usuário e senha do produto TOTVS Datasul.
- Informar na aba Body, os dados (formato Json), que serão enviados ao template do relatório.
Bloco de código |
---|
{ "ttData": |
...
[{ |
...
"titulo_1": |
...
"TÍTULO DO RELATÓRIO", "conteudo_1": |
...
" |
...
Conteúdo 1", |
...
"conteudo_2": |
...
" |
...
Conteúdo 2", |
...
"conteudo_3": |
...
3, "ttList": |
...
[{ |
...
"item_1": |
...
"14272", |
...
"item_2": |
...
"Teste Item 2.1" |
...
}, { "item_1": |
...
"15273", |
...
"item_2": |
...
"Teste Item 2.2" |
...
}, { "item_1": |
...
"16274", |
...
"item_2": |
...
"Teste Item 2.3" }] }] } |
- O template rel_framework_test
Dica | ||
---|---|---|
| ||
O sucesso da execução direta exclui Potenciais problemas caso |
CLIENT PROGRESS
}]
}]
}
Bloco de código |
---|
/* Definição das variáveis de testes para geração do relatório. */ DEFINE VARIABLE c_report AS CHARACTER NO-UNDO INITIAL "fnd/rel_framework_test". DEFINE VARIABLE c_program AS CHARACTER NO-UNDO INITIAL "". DEFINE VARIABLE c_format AS CHARACTER NO-UNDO INITIAL "pdf". DEFINE VARIABLE c_dialect AS CHARACTER NO-UNDO INITIAL "pt". DEFINE VARIABLE l_publish AS LOGICAL NO-UNDO INITIAL FALSE. DEFINE VARIABLE l_download AS LOGICAL NO-UNDO INITIAL TRUE. DEFINE VARIABLE h_report AS HANDLE NO-UNDO. DEFINE VARIABLE lc_content AS LONGCHAR NO-UNDO. DEFINE VARIABLE c_query_params AS CHARACTER NO-UNDO. DEFINE VARIABLE i_response_code AS INTEGER NO-UNDO. DEFINE VARIABLE c_response_status AS CHARACTER NO-UNDO. DEFINE VARIABLE mptr_response AS MEMPTR NO-UNDO. /* Ajuste do CODEPAGE para UTF-8 */ FIX-CODEPAGE(lc_content) = "UTF-8". /* Adiciona os parâmetros de query para o relatório, os parâmetros complexos como temp-tables e datasets devem ser passamos como JSON na variável lc_content. */ ASSIGN c_query_params = "". /* Dados para a geração do relatório */ RUN getReportData IN THIS-PROCEDURE(OUTPUT lc_content). /* Para fins de testes gera um arquivo de dump com os dados a serem enviados para o Datasul Report Service */ COPY-LOB FROM lc_content TO FILE SESSION:TEMP-DIRECTORY + "lc_content.json" NO-CONVERT. IF NOT VALID-HANDLE(h_report) THEN RUN utp/ut-report-api.p PERSISTENT SET h_report. /* Executa a procedure de geração do relatório de teste */ RUN printTest IN h_report (INPUT c_report, INPUT c_program, INPUT c_format, INPUT c_dialect, INPUT l_publish, INPUT l_download, INPUT lc_content, INPUT c_query_params, OUTPUT mptr_response, OUTPUT i_response_code, OUTPUT c_response_status). IF VALID-HANDLE(h_report) THEN DO: DELETE PROCEDURE h_report. END. /* Exibe o status de retorno da requisição ao totvs-report */ MESSAGE i_response_code VIEW-AS ALERT-BOX. IF i_response_code = 200 THEN DO: DEFINE VARIABLE ms AS DECIMAL NO-UNDO. DEFINE VARIABLE endTime AS DATETIME-TZ NO-UNDO INIT NOW. ASSIGN ms = INTERVAL(endTime, DATETIME-TZ (1, 1, 1970,0, 0, 0, 0, 0), "milliseconds"). /* Gera o relatório no diretóri temporário com o nome rel_framework_test_<MILLISECONDS> */ COPY-LOB FROM mptr_response TO FILE SESSION:TEMP-DIRECTORY + 'rel_framework_test_' + STRING(ms) + "." + c_format NO-CONVERT. END. /* Dados fixos para a geração do relatório */ PROCEDURE getReportData: DEFINE OUTPUT PARAM lc_data AS LONGCHAR NO-UNDO. ASSIGN LC_data = "~{ ~"ttData~": ~[~{ ~"titulo_1~": ~"TÍTULO DO RELATÓRIO~", ~"conteudo_1~": ~"Conteúdo 1~", ~"conteudo_2~": ~"Conteúdo 2~", ~"conteudo_3~": 3, ~"ttList~": ~[~{ ~"item_1~": ~"14272~", ~"item_2~": ~"Teste Item 2.1~" ~} , ~{ ~"item_1~": ~"15273~", ~"item_2~": ~"Teste Item 2.2~" ~} , ~{ ~"item_1~": ~"16274~", ~"item_2~": ~"Teste Item 2.3~" ~} ~] ~} ~] ~} ". RETURN "OK":U. END PROCEDURE. |
03. TELA XXXXX
Outras Ações / Ações relacionadas
...
04. TELA XXXXX
Principais Campos e Parâmetros
...
Card documentos | ||||
---|---|---|---|---|
|
...
APPSERVER