---
title: "Declaração \"switch\" versus tabela de pesquisa no MapForce"
date: "2011-05-17"
categories: 
  - "data-integration"
tags: 
  - "altova"
  - "blog"
  - "data-integration"
  - "data-mapping"
  - "legacy-data"
  - "mapforce"
  - "software-tools"
description: Este artigo compara a utilização de estruturas de controlo "switch" e tabelas de pesquisa no Altova MapForce, destacando em que situações é mais adequado utilizar cada uma delas para soluções de mapeamento de dados eficazes.
---
Status: #blog

Tags:  #altova #blog #data-integration #data-mapping #legacy-data #mapforce #software-tools

Categories: [data-integration](/blog/pt/category/data-integration.md)
# Declaração "switch" versus tabela de pesquisa no MapForce

Uma das coisas fantásticas de trabalhar com desenvolvedores de software é que não só se tem a oportunidade de criar coisas novas que nunca existiram antes, como também se pode observar como a mente de outras pessoas funciona quando encontram soluções alternativas para qualquer desafio de design. Recebemos um comentário de um desenvolvedor de software sobre a nossa publicação recente intitulada "[O "If-Else" expansível funciona como uma declaração "Switch" no MapForce](https://www.altova.com/blog/2011/04/expandable-if-else-works-like-switch.html)", relativamente a um dos exemplos que utilizamos. O leitor sugere que o nosso segundo exemplo ilustrava um problema que seria resolvido de forma mais elegante no [Altova MapForce](https://www.altova.com/pt/mapforce.html) utilizando um "Value-Map" em vez da nossa declaração "If-Else" expandida. Eis o exemplo original que recebia o mês como uma sequência de caracteres e que precisava de gerar o número correspondente:

[![Exemplo expandido de "se...então" (If_Else) no MapForce](https://lh4.ggpht.com/_REdrfeVqYdU/Tc10Xf41UHI/AAAAAAAAAYc/8PxVPCcIyA4/originalExample_thumb%5B2%5D.png?imgmax=800 "If-Else in MapForce")](http://lh3.ggpht.com/_REdrfeVqYdU/Tc10W9gCFsI/AAAAAAAAAYY/awJZUbwdlQc/s1600-h/originalExample%5B4%5D.png) 

Numa ferramenta como o MapForce, um "Value-Map" é uma solução alternativa que funciona como uma tabela de pesquisa, enquanto um "Expanded If-Else" age como uma instrução "switch". Eis como seria o nosso mapeamento com um "Value-Map" em vez de um "Expanded If-Else": 

[![Alternativa ao "Value-Map" no MapForce ](https://lh4.ggpht.com/_REdrfeVqYdU/Tc10X_1DapI/AAAAAAAAAYk/mj6Zql6R4qw/valueMap_thumb%5B2%5D.png?imgmax=800 "Value-Map in MapForce ")](http://lh6.ggpht.com/_REdrfeVqYdU/Tc10Xn36yzI/AAAAAAAAAYg/AQFsPDaUUHE/s1600-h/valueMap%5B4%5D.png) 

Sim, é isso. Em vez de copiar, colar e modificar conjuntos de elementos, como fizemos com a nossa versão original do "Se-Então" expandido, um "Mapa de Valores" permite-nos criar facilmente toda a tabela de pesquisa no seu diálogo de propriedades: 

[![Diálogo de Propriedades do Mapa de Valores no MapForce](https://lh4.ggpht.com/_REdrfeVqYdU/Tc10YezxYsI/AAAAAAAAAYs/Z1F3erUvweo/valueMapProperties_thumb%5B2%5D.png?imgmax=800 "Value-Map Properties in MapForce")](http://lh6.ggpht.com/_REdrfeVqYdU/Tc10YOTQBuI/AAAAAAAAAYo/zahnOsDlnrA/s1600-h/valueMapProperties%5B4%5D.png) 

Concordamos com o comentário: o "Value-Map" funciona definitivamente melhor para o problema que escolhemos, porque é muito mais rápido e fácil de criar! A tabela das propriedades do Value-Map é também mais concisa e mais fácil de interpretar no MapForce[documentação de mapeamento gerada](https://www.altova.com/pt/mapforce/mapping-documentation.html) do que a nossa estrutura original de "se...então...senão" expandida. Claro que não _sempre_ Substituir uma estrutura condicional "if-else" expandida por um mapeamento de valores. Os dados que entram no Value-Map devem _igual_ Um único valor na tabela de entrada é utilizado para gerar uma saída específica, enquanto a função "Se-Então-Senão" expandida permite definir uma série de condições com diferentes testes lógicos. Por vezes, a natureza exata de um projeto de conversão de dados torna a escolha entre um elemento de comutação e uma tabela de pesquisa uma questão de avaliação e discernimento. Suponha que o seu projeto recebe dados como um número que representa um comprimento de onda do espectro eletromagnético e que pretende processar a radiação ultravioleta, as cores visíveis e a energia infravermelha de forma independente. Nesse caso, poderíamos usar uma estrutura "Se-Senão" expandida para verificar intervalos de valores de entrada. A secção expandida de "se...então...senão" do mapeamento pode ter a seguinte aparência: 

[![Mapeamento expandido de "se-então" no Altova MapForce](https://lh5.ggpht.com/_REdrfeVqYdU/Tc10ZKz3yfI/AAAAAAAAAY0/490MeBeYGQc/visibleLight2_thumb%5B2%5D.png?imgmax=800 "Expanded If-Else in MapForce")](http://lh3.ggpht.com/_REdrfeVqYdU/Tc10Yt3rsnI/AAAAAAAAAYw/qXuhyxpsMqY/s1600-h/visibleLight2%5B4%5D.png) 

Se a entrada for um número inteiro, também seria possível criar uma solução utilizando o Value-Map, mas seria necessário construir uma tabela de pesquisa muito extensa. Além disso, o que aconteceria mais tarde se os requisitos do projeto mudassem e a entrada se tornasse um número decimal, ou se fosse necessário filtrar cada cor visível separadamente por nome? Essencialmente, o [Altova MapForce](https://www.altova.com/pt/mapforce.html) é uma representação gráfica muito interessante de uma caixa de ferramentas completa para linguagens de programação, que o protege da sintaxe detalhada das linguagens de programação, oferecendo uma vasta coleção de componentes que pode combinar de forma criativa para resolver os seus próprios desafios de mapeamento, conversão e integração de dados. 

**Descubra por si mesmo como é fácil aplicar o MapForce aos seus próprios projetos de mapeamento de dados.** [**Descarregue uma versão de avaliação gratuita de 30 dias.**](https://www.altova.com/pt/download/mapforce/data_mapping_enterprise.html) **da MapForce.**
