Personalizar uma tarefa do servidor FlowForce

No nosso artigo anterior, intitulado "Automatize o mapeamento e a transformação de dados com o FlowForce Server", criámos um processo chamado SimpleMapAndTransform para automatizar o mapeamento de dados com o MapForce Server e para criar relatórios em formato HTML com o StyleVision Server. Após o processo do FlowForce Server ter sido executado várias vezes, acumulámos muitos ficheiros de saída na mesma pasta que utilizamos para processar os ficheiros de entrada, bem como ficheiros temporários intermédios na pasta "workFiles", como se pode ver na imagem abaixo.

Neste artigo, vamos otimizar o processo para obter resultados mais organizados e eliminar ficheiros temporários desnecessários.

Reorganização da saída

Primeiro, podemos adicionar mais etapas ao ciclo "para cada" que processa os ficheiros de entrada, de forma a mover os novos ficheiros .gpx e .html criados durante o mapeamento e a transformação de dados para a pasta "completedInput". Estas são as etapas 3 e 4 na sequência abaixo.

A opção "working-directory" em cada etapa também pode redirecionar a saída. No entanto, a variável que utilizamos para selecionar cada ficheiro de entrada para processamento contém o caminho completo e o nome do ficheiro, pelo que é mais simples continuar a usar essa cadeia de caracteres e mover todos os ficheiros de saída quando o processamento estiver concluído.

O nosso design StyleVision para o relatório inclui um gráfico que é guardado como um ficheiro .png, separadamente do documento .html principal. A última etapa do processo utiliza uma função de linha de comandos do sistema para mover todos os ficheiros .png da pasta de entrada para a pasta de trabalho finalizada.

A função de linha de comandos permite definir qualquer comando válido do sistema operativo como um passo de trabalho no FlowForce Server. Neste trabalho, continuamos dentro do ciclo "para cada", pelo que os ficheiros .png serão movidos juntamente com o documento .html associado. Utilizamos um caractere curinga para o nome do ficheiro .png porque os ficheiros .png não seguem exatamente o padrão de nomenclatura dos documentos de entrada. O padrão de caractere curinga também funciona para designs do StyleVision que criam vários gráficos para cada relatório.

Passos para a função de empregada de limpeza

É uma boa prática limpar periodicamente o conteúdo dos diretórios de trabalho. O nosso sistema utiliza a pasta "workFiles" para expandir o conteúdo do ficheiro .pxf, que é utilizado para gerar os relatórios. A captura de ecrã deste diretório, mostrada na imagem no topo desta publicação, mostra o esquema XML, os ficheiros de trabalho para o design, os ficheiros .XSLT para renderizar vários formatos de relatório e os ficheiros de trabalho temporários.

Poderíamos adicionar uma etapa de limpeza após o ciclo "para cada" no nosso processo, para remover os ficheiros imediatamente após o processamento. No entanto, o servidor FlowForce permite executar múltiplas instâncias simultâneas do mesmo processo. Seria lamentável que uma instância apagasse a pasta "workFiles" enquanto outra instância ainda a estivesse a utilizar!

Uma solução melhor é definir uma tarefa de limpeza separada e programá-la para ser executada num momento em que a tarefa principal esteja inativa. Aqui está um exemplo de uma tarefa de limpeza muito simples para a pasta "workingFiles", utilizando novamente a função de linha de comandos:

Utilizámos um caractere curinga para eliminar tudo no diretório "workFiles", mas essa opção pode não ser adequada em todos os casos. Se o ficheiro .pxf contiver folhas de estilo .css ou ficheiros de imagem que são necessários para o documento .html, serão necessários passos de limpeza mais personalizados.

Gatilhos de emprego

A tarefa original "SimpleMapAndTransform" está programada para ser executada a cada 15 minutos, das 8:30 às 17:00, de segunda a sexta-feira. Como se pode ver acima, a tarefa de limpeza está programada para ser executada uma vez por dia, às 19:00 (7 da tarde). A página inicial da interface web do servidor FlowForce mostra a programação das tarefas:

Aqui está um truque rápido que pode usar para testar um trabalho do FlowForce Server enquanto o define. Cada trabalho pode ter múltiplos gatilhos de calendário. Podemos definir um gatilho de "executar uma vez" para testar imediatamente um novo trabalho e agendá-lo para alguns segundos no futuro:

Podemos obter feedback imediato consultando o registo do servidor FlowForce, onde se encontram os detalhes de cada etapa do processo.

O servidor FlowForce está disponível para as plataformas Windows, Linux e, em breve, para Mac OS. Para começar a utilizar, ** clique aqui para descarregar uma versão de avaliação gratuita!**