As funções de nó simplificam a estruturação de dados hierárquicos
As funções dos nós do MapForce simplificam a mapeamento de dados hierárquicos, como nós XML ou campos CSV, JSON, EDI ou de bases de dados, permitindo que os utilizadores definam uma função de processamento de dados a nível do nó e a apliquem recursivamente a todos os elementos descendentes.
Da mesma forma, valores padrão também podem ser atribuídos aos nós e aplicados automaticamente aos seus elementos descendentes.
As definições padrão e as funções dos nós são particularmente úteis quando.. mapeamento e transformação de dados A tarefa requer a mesma lógica de processamento para vários elementos descendentes numa estrutura, por exemplo:
- Substituir os valores nulos por outro valor, de forma recursiva, para todos os elementos descendentes
- Substituir um valor específico (por exemplo, "N/A") por outro valor, de forma recursiva, para todos os elementos descendentes
- Substituir todos os valores nulos no banco de dados sempre que se leia dados de uma tabela
- Remover todos os espaços em branco no final de todos os valores provenientes de uma base de dados
- Adicionar um prefixo ou sufixo personalizado a todos os valores que são escritos num ficheiro ou base de dados de destino
- Formatação dos valores de saída
- E muitos outros
As definições padrão e as funções de nó simplificam a organização de dados hierárquicos, eliminando a necessidade de copiar e colar a mesma função várias vezes numa organização. A repetição desnecessária da mesma função dificulta a compreensão e a revisão da estrutura da organização.
Vamos analisar um exemplo.

A correspondência entre XML e CSV mostrada abaixo é o exemplo OrderinUSD.mfd, fornecido no projeto MapForce Examples, e ilustra tanto a eficiência como a flexibilidade das funções de nó.

Este exemplo demonstra como transformar dados de um ficheiro XML de origem para um ficheiro de texto CSV. Requisitos adicionais incluem a conversão do valor do elemento "Preço" no ficheiro de origem, expresso em euros, para dólares, e a conversão do nome de cada artigo encomendado para letras maiúsculas.
Uma função de nó cumpre ambos os requisitos e é indicada pelo símbolo da função, localizado à direita do nó do artigo. Clicar duas vezes no símbolo da função abre a caixa de diálogo de definição das funções do nó, que se encontra acima do painel de mapeamento:

Esta função de nó único combina duas operações do MapForce para realizar tanto as conversões de moeda como as conversões de texto necessárias. É possível adicionar mais linhas ao nó, clicando nos ícones à esquerda para definir um valor padrão ou adicionar uma função.
A primeira coluna de cada linha define se a linha se aplica a um nível específico de filho ou a todos os descendentes do modo pai.
O segundo campo define qual o tipo de dado que será modificado. Ao clicar no botão "...", abre-se a caixa de diálogo mostrada aqui, onde pode escolher o tipo de dado:

O nosso exemplo contém linhas apenas para dois tipos de dados, mas uma função de nó poderia ser definida com linhas para todos os tipos de dados possíveis. Para cada elemento filho do nó pai, a linha correspondente ao tipo de dados será executada.
O terceiro campo indica se a linha utiliza uma função ou um valor padrão. Em qualquer um dos casos, o botão "Editar" permite modificar essa linha:

A definição de uma função de um nó é realizada arrastando funções da janela da Biblioteca de Funções e/ou definindo constantes para a função, e conectando-as a fontes e saídas.
O elemento "Amount" (Quantidade) no ficheiro de entrada de exemplo representa, na realidade, a quantidade encomendada para cada artigo e não deve ser multiplicado pelo fator de conversão de moeda definido no nó da função. É fácil definir o "Amount" como uma exceção: basta clicar com o botão direito no símbolo da função correspondente e desmarcar a opção "Herdar Funções do Nó de Saída" no menu de contexto.

Existe mais um requisito para o ficheiro de saída CSV. O preço unitário e o subtotal de cada artigo devem ser indicados com um sinal de dólar no início. A definição do ficheiro de saída mostra que as colunas "SinglePrice" e "Price" são definidas como dados de texto, e o MapForce converte automaticamente os valores decimais da fonte para texto.
A adição dos sinais de dólar no início é realizada através de uma função de nó adicional, aplicada ao nó "Linhas" do componente de saída, como se pode ver aqui:

Para evitar que esta função de nó se aplicasse a todas as colunas que contêm dados de texto, foram aplicadas exceções às colunas "Empresa" e "Artigo". Agora, o exemplo para mapear dados hierárquicos com funções de nó está completo.
Tal como em outros exemplos do MapForce, um ficheiro de dados de origem é fornecido para esta transformação, de forma a demonstrar os resultados. Aqui está o ficheiro de origem visualizado no XMLSpy Editor XML:

As configurações do MapForce que exigem transformações repetitivas, como as utilizadas num sistema de processamento de encomendas online, podem ser automatizadas através do MapForce Advanced Server. Para executar a configuração para testes ou para uma conversão única, basta clicar no botão "Saída" na janela de design da configuração.
De qualquer forma, o nosso exemplo de mapeamento produz o seguinte resultado:

Além do mapeamento de dados descrito neste artigo, o MapForce inclui vários outros exemplos de funções de nó. O sistema de ajuda integrado do MapForce inclui até mesmo um tutorial passo a passo para criar um mapeamento de função de nó do zero.
Para verificar por si mesmo como as funções de nó simplificam a mapeamento de dados hierárquicos, clique aqui para descarregar uma versão de avaliação gratuita e totalmente funcional do MapForce.
ATUALIZAÇÃO: Consulte este artigo para conhecer outra estratégia para aplicar funções a nós, com base em metadados dos nós, como o nome do nó, o comprimento do nó, a precisão do tipo de dados do nó, anotações personalizadas do nó e muito mais.