Artigo
Fernando Ferreira · Mar. 25, 2021 6min de leitura

InterSystems IRIS Reports - 4º parte ( Distribuição de um relatório por e-mail, utilizando um relatório “master” como base.

Olá comunidade,

  Nesta 4ª parte vamos falar de uma funcionalidade do InterSystems IRIS Reports chamada de “Bursting”. Vamos primeiro relembrar o que já vimos até o momento.

Entendemos o que é o InterSystems IRIS Reports, instalamos os ambientes: Designer e Server, verificamos os diversos tipos e formatos de relatórios que podemos desenvolver, e entendemos como distribuir um relatório em diversos formatos.

Mas afinal o que é o “Bursting”? Antes de demonstrar está funcionalidade em ação, vamos primeiro refletir sobre a sua necessidade.

Todos nós já nos deparamos com necessidade de processar relatórios com milhares de linhas, e este tipo de relatório normalmente tem um alto custo de processamento no banco de dados com milhares de linhas que não são destinadas a um único usuário, você precisa segregar as informações por região, por alguma categoria seja de produto ou um tipo de exame, ou por alguma hierarquia existente para o seu tipo de negócio. Sem o InterSystems IRIS Reports, você precisaria desenvolver uma ou mais queries aplicando técnicas para filtrar dados com as opções de “filtro” que usuário precisa ou pode ter acesso, e podem ocorrer mais de uma execução por diversos usuários ao longo do dia.

Vamos pegar como exemplo a fonte de dados que estamos usando para esta nossa jornada de conhecimento do InterSystems IRIS Reports. Estamos usando uma base de dados disponível no Kaggle. A base é da Olist, são informações de e-commerce de diversos marketplaces. Neste exemplo determinamos que cada categoria de produto possui um vendedor responsável e precisamos enviar informações para os responsáveis segregando os dados por categoria.

Agora você me pergunta? Então está funcionalidade “Bursting” serve para fazer uma “explosão”, “segregação” de um grande relatório para diversos destinatários? Sim você está certo!

Eu particularmente adoro essa funcionalidade, porque acabamos reduzindo custo de desenvolvimento, reduzindo custo de processamento do banco de dados, nos proporciona a facilidade e a distribuição de relatórios de forma automatizada, ou seja, deixamos todos “stakeholders” dos processos satisfeitos!

Então vamos automatizar o posicionamento de vendas para todas as regiões da sua empresa? Ou automatizar envio de bilhetagem? Qual a sua necessidade de segregação e automatização de relatórios?

Bom vamos colocar então a mão na massa desta funcionalidade: “Bursting”!

 Vamos começar com alguns conceitos do “Bursting”:

Bursting Schema

 É onde definimos como vamos fazer a divisão dos dados. Para fazer a divisão dos dados precisamos dentro do “bursting Schema” definir o “bursting key” e o “bursting recipientes”.

  • Bursting key: É um ou mais campos onde o definimos uma chave para que possa ocorrer a segregação dos dados, como exemplo vamos usar a base de dados que estamos utilizando neste tutorial. Temos uma tabela chamada produto e nela temos o campo: product_category_name. Através deste campo definimos o time de vendas responsável em acompanhar o status dos pedidos com os valores sumarizados, portanto, este campo será o nosso “bursting key”.
  • Bursting recipientes:  É a tabela que contêm os campos com as informações dos destinatários que receberam os relatórios. É mandatório que exista o campo que será relacionado com o “bursting key”, no nosso caso é a product_category_name. Para nosso exemplo criamos uma tabela chamada comercial, onde nela contém os campos:
    • productcategoryname / folderdestino / emaildestino

Como podemos perceber temos o campo que será feito o relacionamento com a tabela produto e mais dois campos. O campo folderdestino contêm o caminho do servidor onde os arquivos do relatório serão distribuídos e o campo emaildestino contêm o e-mail do destinatário que receberá o e-mail. O Bursting também permite a distribuição dos relatórios via FTP. No nosso exemplo vamos distribuir os relatórios por e-mail e na pasta do servidor.

Um passo importante para que possamos criar o “Bursting” é relembrar um passo que fizemos na 3ª parte deste. Precisamos criar uma query onde vamos ter o relacionamento entre a tabela que contém o bursting key e com a tabela Bursting recipientes.

Vamos para o primeiro passo. Como base vamos utilizar o relatório que contém as todas as vendas sumarizadas por categoria:

1º - Dentro do designer, na barra superior clicar em Report, e em seguida clique na opção Bursting.

2º - Clique em: Enable Bursting Report. É possível mudar o nome do Bursting Schema, aqui vamos manter o padrão.

3º - Agora vamos fazer o Mapping do Bursting Key com o Bursting recipientes.

4º - No campo Dataset, carrega automaticamente o Query que está sendo utilizada no relatório, abaixo temo como escolher o campo do bursting key, aqui vamos selecionar o campo que estamos utilizando neste tutorial: product_category_name.

5º - Em Recipient, Data Source, é onde escolhemos a query criada onde possui a relação entre as tabelas do Bursting Key com o Bursting recipientes.

6º - No campo Recipient Mapping Identifier, é onde vamos selecionar o campo que fará o relacionamento com o Bursting Key.

7º - Em Recipient escolhemos os campos onde contém o conteúdo do destinatário do e-mail e da pasta destino.

8º - Opcionalmente pode clicar em E-mail Settings para colocar o assunto do e-mail, informar algum comentário, ou até mesmo selecionar o campo Cc ou Bcc.

9º Agora é só publicar o relatório para o servidor! Lembra deste passo? Fizemos isto na 3ª parte deste artigo, caso não lembre, dá uma passadinha lá!

 

Agora que o relatório está publicado no servidor, vamos colocar o nosso “Bursting” para trabalhar. Para executar o relatório com está funcionalidade precisamos criar um agendamento no servidor para execução. Já fizemos este tipo de agendamento na 3ª parte deste artigo, mas nesta etapa teremos algumas parametrizações adicionais, segue:

1º Selecionar o relatório e clicar na opção de agendamento.

2º Em Schedule Name, é opcional dar um nome para o agendamento.

3º Em Select Report Tabs, aqui uma opção nova: Select bursting reports, vamos selecionar está opção.

4º Em Report Tab Name, selecionar o relatório onde foi parametrizado nossa funcionalidade.

5º Em Bursting Configuration, escolher o relatório e o Bursting Schema criado no passo anterior.

6º Na aba superior clicar em Publish.

7º Em Bursting Result temos duas opções: To Disk e To E-mail. Aqui uma observação importante parametrizamos o Bursting com duas possibilidades de publicação, para pasta e para e-mail, ou seja, podemos criar agendamentos distintos ou no mesmo agendamento fazer a explosão para os dois destinos. Aqui neste tutorial vamos criar um único agendamento com a explosão para os dois destinos.

8º Em ToDisk, clique em Publish to Disk, agora temos a opção de diversos formatos de geração do relatório, para disco, vamos criar no formato TXT, após clicar em TXT, vamos dar o nome para o relatório e podemos escolher opção o formato da delimitação do TXT.

9º Em ToEmail, clique em Publish to E-mail, e podemos escolher o formato do relatório, para a opção e-mail vamos gerar em PDF, e ao selecionar a opção PDF, vamos dar o nome do arquivo que será gerado.

10º Na aba Conditions podemos escolher o horário e a periodicidade que o relatório será executado, no nosso tutorial vamos usar a opção: Run this task immediately.

11º - Em Notification podemos selecionar um destinatário de e-mail para quando o agendamento executado com sucesso e outro e-mail em caso de falha.

Agora é só clicar em Finish, e verificar resultado do relatório.

 

Resultado em disco: podemos observar que para cada Bursting Key foi criada uma pasta com o respectivo nome com o relatório gerado:

 

E aqui o resultado no e-mail:

 

 

Obrigado e até a próxima parte!

 

10
1 0 0 15
Log in or sign up to continue