Expansível: A estrutura "se...então...senão" funciona como uma instrução "switch" no MapForce
Em resposta a vários pedidos dos utilizadores, o componente "se...então" (if-else) no MapForce foi melhorado na versão MapForce 2011 Release 2 para suportar um número ilimitado de variáveis. Esta funcionalidade, que é equivalente a uma instrução "switch" em muitas linguagens de programação, permite controlar facilmente o fluxo de dados num projeto de mapeamento, associando um valor a um critério selecionado. Por exemplo, a captura de ecrã abaixo mostra o componente "se...então" utilizado em combinação com outros componentes para analisar dados de temperatura e produzir os seguintes resultados:
- Se a temperatura for superior a 20, o valor "verdadeiro" é atribuído à variável booleana "bool1" e a string "alto" é atribuída à variável "value-true1".
- Se a temperatura for inferior a 5, o valor "verdadeiro" é atribuído à variável booleana "bool2" e a palavra "baixo" é atribuída à variável "value-true2".
- Apenas um dos parâmetros de valor-verdade pode ser verdadeiro para uma determinada temperatura, e é esse o que é transmitido para o atributo "desc" no componente de destino.

A captura de ecrã acima foi extraída do ficheiro de exemplo "Classify Temperatures.mfd", que está incluído durante a instalação do MapForce. Assim, pode processar imediatamente os dados de exemplo ou modificar o mapeamento para ver os resultados por si próprio. A nova funcionalidade "se-então" expansível ajuda os programadores a criar mapeamentos de dados de forma mais rápida, cria um diagrama de mapeamento que exibe o teste condicional de forma mais eficaz e facilita os testes e a depuração, porque a função "se-então" expandida é muito mais fácil de ler do que uma estrutura em cascata de componentes individuais. Isto torna-se ainda mais evidente quando tem de avaliar um grande número de condições. A captura de ecrã abaixo mostra uma conversão de texto para número, onde o texto consiste numa abreviatura de três letras do mês. (Para poupar espaço aqui, esta função "se-então" processa apenas textos referentes aos primeiros seis meses do ano.)
![]()
Devido a um erro de cópia e colagem, esquecemo-nos de atualizar o valor da constante de saída para o mês de maio, alterando-o de 4 para 5. É um erro muito mais fácil de detetar e corrigir quando se consegue visualizar toda a lógica numa única janela! (ATUALIZAÇÃO: Originalmente, criámos este exemplo para ilustrar as vantagens do "If-Else" expandido em relação aos mapeamentos "If-Else" aninhados ou em cascata, que podem rapidamente tornar-se demasiado grandes para serem visualizados numa única tela. Para um design melhor para resolver este e outros problemas semelhantes, utilizando uma tabela de pesquisa, consulte o artigo do blogue Declaração "Switch" vs. Tabela de Pesquisa no MapForce.)
Descubra por si mesmo como é fácil utilizar as funções expandidas de "se...então" nos seus próprios projetos de mapeamento de dados. Descarregue uma versão de avaliação gratuita de 30 dias do MapForce.