Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

  1. Visão Geral
  2. Exemplo de utilização
    1. Tela XXX
      1. Outras Ações / Ações relacionadas
    2. Tela XXX
      1. Principais Campos e Parâmetros
    3. Tabelas utilizadas
      1. Postman
      2. Client Progress
      3. 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:

    Image Added

    Image Added

    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
    titleURL de execução
    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.

    Image Added

    • Informar na aba Body, os dados (formato Json), que serão enviados ao template do relatório.

    Image Added

    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
    titleDica

    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
    InformacaoUse esse box para destacar informações relevantes e/ou de destaque.
    TituloIMPORTANTE!

    ...

    APPSERVER