Criando um Fluxo de Dados

Para editar o modelo, selecione-o na lista de modelos e clique no botão Editar. Será aberta a tela de Edição de Modelo.

Neste tutorial, utilizaremos um arquivo de dados no formato CSV. Este arquivo contém informações de usuários, como nome, sexo, CPF, profissão, etc.

Se você não fez o download do arquivo na página inicial do tutorial, baixe ele aqui.

Para carregar dados e manipulá-los, sejam originários de arquivos ou bancos de dados, utilizamos uma tarefa chamada Fluxo de Dados. Com um Fluxo de Dados também é possível realizar saída de dados, salvando o resultado da manipulação dentro do próprio modelo (em entidades) ou em arquivos e bancos de dados.

Na tela de edição de modelo, clique com o botão direito no item Tarefas. Selecione Adicionar > Manipulação de Dados > Fluxo de Dados… para criar um fluxo de dados, conforme mostra a imagem abaixo.

Criando o Fluxo de Dados

Dê o nome de “Carga de usuários” para este fluxo.

Na tela do Fluxo de Dados, selecione à direita o componente Leitura de Arquivo e arraste-o para dentro do fluxo:

Leitura de Arquivos

Abaixo do fluxo, na tela de Configuração do componente, selecione na propriedade Nome/máscara do(s) arquivo(s) o caminho do arquivo “user_data.csv”. Na aba Definições do Arquivo, especifique a propriedade Codificação do texto como UTF8. Na aba Campos de Entrada, clique em Atualizar. Serão exibidos os campos existentes no arquivo e na parte inferior uma prévia dos dados. Mantenha todos os campos habilitados.

Dica: o Wiseminer pode carregar tanto arquivos com campos de tamanho variáveis, separados por ponto-e-vírgula, vírgula, ou TAB, quanto arquivos com campos de tamanho fixo. O tipo do arquivo é definido na aba Definições do Arquivo do componente Leitura de Arquivo.

Campos de Entrada

No componente “Leitura de Arquivo” que acabamos de adicionar, clique com o botão direito e depois em Listar campos de saída….

Serão exibidos os campos que saem deste componente e passam adiante no fluxo de dados. Repare que o campo “DATA_NASCIMENTO” está com o tipo Texto, embora seja uma data. Para alterar isto, vamos adicionar um outro componente ao fluxo.

Selecione, na lista de Componentes, o componente Aplicação de Função e arraste-o para dentro do fluxo de dados. Agora, conecte a “Leitura de Arquivo 1” a “Aplicação de Função 1”, puxando uma seta do primeiro em direção ao segundo. O componente Aplicação de Função permite que você aplique uma função a um ou mais campos de uma vez.

Clique no componente que acabamos de adicionar e vá para a aba Função. Nesta aba, nós iremos selecionar a função desejada. Na caixa de seleção Função, escolha a opção Texto para Data/Hora. Serão exibidas as propriedades desta função. Na propriedade Máscara da Data, preencha com o formato “DD/MM/YYYY”, que é o formato em que as datas estão no nosso arquivo de exemplo.

Dica: Se os dados que você está lendo possuem mais de um formato de data, é possível definir uma máscara alternativa. Caso não seja possível converter o texto para data com a máscara primária, o Wiseminer tentará fazer a conversão com a alternativa.

Na aba Campos a serem Manipulados, cliquem em +, selecione o campo “DATA_NASCIMENTO” e clique em Ok. Caso houvessem outras datas, todas poderiam ser selecionadas de uma vez para aplicar a mesma função.

Clique com o botão direito no componente “Aplicação de Função 1” e selecione Listar campos de saída…. Repare que agora o campo “DATA_NASCIMENTO” está com o tipo Data/Hora, do jeito que queríamos.

Vamos agora adicionar ao fluxo um componente para termos alguma visão do que nosso arquivo contém. Selecione na lista de Componentes o componente Visualização de Gráficos e arraste-o para o fluxo. Conecte o componente “Aplicação de Função 1” ao componente recém adicionado.

Clique no componente “Visualização de Gráficos 1” que adicionamos. Na parte inferior do fluxo, será exibido a aba de configuração do gráfico. Em uma mesma visualização, é possível adicionar um ou mais gráficos de diferentes tipos. Vamos adicionar um gráfico de pizza. Clique em + e depois em Gráfico de Pizza…, deixe o nome padrão e clique em Ok. Clique no item Série de Dados e vá para aba Dados

Nesta aba, selecione a opção Agrupar campos e no painel Campos Agrupados, clique em + e adicione o campo “UF”. Nós iremos exibir em um gráfico de pizza a distribuição de usuários por estado.

Volte na aba Propriedades da série de dados. Em Campo primário selecione “UF” e em Campo secundário selecione “Contagem Total”.

Agora, mantendo o componente “Visualização de Gráficos 1” selecionado, clique em Carregar para exibir a saída deste componente. Espere carregar e feche a janela de Execução de Fluxo de Dados. Será exibido na tela o gráfico de pizza com a distribuição dos usuários por estado:

Dica: O botão Carregar processa o fluxo até o componente que estiver selecionado, e ao final exibe os dados resultantes deste componente. No caso do componente “Visualização de Graficos 1”, o resultado é a exibição do gráfico de pizza definido. Em outros componentes o resultado geralmente será uma tabela com os dados de saída do componente, chamados de dados intermediários. O botão Carregar também é uma boa forma de ir testando o fluxo criado, componente a componente.

Agora, vamos adicionar um Filtro para filtrar apenas os usuários com UF igual a “MG”. Para isto, na lista de Componentes, arraste o componente Filtro para dentro do fluxo de dados. O componente Visualização de Gráficos não possui saída de dados, assim, conecte o componente “Aplicação de Função 1” ao “Filtro 1”, para que o componente de filtro possa receber registros.

Clique no componente “Filtro 1” e vá para a aba Filtro.

Nesta aba, vamos definir as condições do filtro. Clique no botão + para adicionar uma comparação. Será aberta a janela Edição de Comparação. Em Campo, selecion “UF”. Em Operação, mantenha “=” e “Valor”, e em Valor, digite “MG”.

Após configurar a comparação, clique em Ok para fechar a janela.

Com o componente “Filtro 1” selecionado, clique em Carregar para carregar os dados do arquivo de maneira temporária, da forma em que eles sairão do componente “Filtro 1”. Será exibido uma janela para você escolher se deseja carregar os dados que atendem ao filtro ou os que não atendem, dando as opções Sim ou Não.

Escolha Sim.

Enquanto os dados são carregados, será exibida a tela de Execução de Fluxo de Dados, mostrando todo log da execução. Ao terminar, clique em Fechar para voltarmos ao fluxo de dados. Repare que foi adicionada e exibida uma nova aba chamada Dados Intermediários.

Com os dados intermediários carregados, é possível criar diretamente uma Entidade para armazená-los de forma definitiva no modelo. Para isto, na aba de Dados Intermediários, clique em Criar Entidade… e será exibida a janela de criação de entidade. Nesta janela, defina o nome da nova entidade como “Usuário”, na coluna Chave marque apenas o campo “CPF”. O CPF será o campo chave, pois cada usuário é identificado por um CPF único.

Nova Entidade

Clique em Ok para criar a Entidade. Repare que no lado esquerdo da tela, embaixo de Entidades, aparecerá a entidade “Usuário” recém criada. Além disto, no Fluxo de Dados será adicionado um componente Gravação de ‘Usuário’, que fica responsável por receber os dados lidos e manipulados no fluxo, e salvar na entidade criada.

Repare também que a conexão entre os componentes “Filtro 1” e “Gravação de ‘Usuário’” possui a palavra “Sim”. Isso significa que por ali estão passando os dados que atendem as regras definidas no Filtro. Caso deseje trocar, basta clicar com o botão direito em cima da conexão e selecionar Saída > Não.

O fluxo de dados está pronto. Agora selecione o componente “Gravação de ‘Usuário’” e clique em Carregar. Após fechar a tela de execução, observe que será exibida uma listagem com um resumo do dados inseridos conforme a imagem abaixo:

Dica: quando um componente é carregado com o botão Carregar, ele fica com a cor alaranjada, indicando que ele possui dados intermediários carregados. Desta forma, quando um componente posterior é executado, os dados intermediários dos componentes anteriores são utilizados, ao invés de executar o fluxo completo desde o primeiro componente. Você pode limpar os dados intermediários de qualquer componente, ou do fluxo inteiro, utilizando o botão direito no componente ou no diagrama do fluxo respectivamente, e selcionando a opção Limpar dados intermediários. Observe que os dados intermediários são apenas temporários e servem principalmente para lhe auxiliar na elaboração do fluxo de dados.

Executando o fluxo de dados em segundo plano

Uma vez que o fluxo de dados esteja pronto, é natural que você queira executá-lo novamente futuramente. O fluxo de dados é uma tarefa do modelo e por isto ele também pode ser executado em segundo plano diretamente com o botão Executar. Com o fluxo de dados selecionado na grupo Tarefas do modelo, clique em Executar na barra superior do Wiseminer. Neste caso será aberta a aba Eventos do Workbench e o log de execução do fluxo de dados será exibido. Observe no log de execução que há uma descrição de tudo o que foi feito no fluxo de dados. Vale notar que no final do log existirá a informação de quantos registros da entidade “Usuário” foram atualizados, afinal estamos gravando os mesmos usuários (campo as mesmas chaves) que já tinham sido gravados anteriormente, por isto eles foram apenas atualizados e não inseridos novamente.

Dica: Observe que ao executar o fluxo de dados em segundo plano, todos os seus dados intermediários que possam ter sido carregados em alguns dos componentes do fluxo serão descartados. Se você voltar para a tela de edição do fluxo de dados verá que nenhum componente encontra-se na cor alaranjada mais. Observe também que na execução em segundo plano o componente “Visualização de Gráficos” será ignorado, pois este é um componente usado apenas para visualização de gráficos diretamente na tela de edição do fluxo.