Ir para o conteúdo

Trabalhar com dados hierárquicos no Jitterbit Integration Studio

Introdução

Estruturas de dados hierárquicas contêm uma ou mais relações de pai-filho ou aninhadas entre campos e registros. Exemplos comuns incluem clientes com vários endereços, pedidos com itens de linha ou empresas com várias localizações.

No Integration Studio, estruturas hierárquicas também são chamadas de dados relacionais, multilevel, complexos ou estruturas em árvore.

Para informações sobre notação de nós e campos, veja Nós e campos em Conceitos-chave.

Identificar estruturas hierárquicas

Dados hierárquicos aparecem como uma estrutura de árvore em transformações:

<customer>
    <id>10123</id>
    <name>ABC Co.</name>
    <addresses>
        <address>
            <street>1 Main St.</street>
            <city>Anytown</city>
            <state>NY</state>
            <zip>12345</zip>
        </address>
        <address>
            <street>1 Time Square</street>
            <city>New York City</city>
            <state>NY</state>
            <zip>54321</zip>
        </address>
    </addresses>
</customer>

Mapear dados hierárquicos

Ao mapear estruturas hierárquicas, você deve mapear dentro do mesmo nível. Por exemplo:

  • Campos pai mapeiam para campos pai.
  • Campos filho mapeiam para campos filho correspondentes.
  • Nós de loop são gerados automaticamente para elementos repetidos.

Se o mapeamento automático não funcionar para sua estrutura, veja Controlar loops de dados.

Lidar com incompatibilidades de estrutura

Quando as estruturas de origem e destino diferem, você pode lidar com elas usando um destes métodos:

  1. Mapear múltiplas instâncias para uma única instância: Quando você mapeia arrays para objetos únicos, aparece este diálogo:

    Citação

    Uma fonte de múltiplas instâncias não pode ser mapeada para um destino de única instância. Você deseja alterar o mapeamento para usar a primeira instância para cada fonte?

    Clicar em Sim mapeia apenas o primeiro registro adicionando #1 ao caminho.

  2. Achatar hierárquicos para estruturas planas: Para criar um registro de saída por elemento filho, siga estas etapas:

    1. Mapeie campos do nó repetido mais profundo.
    2. Os dados pai se repetem automaticamente para cada filho.
    3. A linha do iterador se move para o nível filho.

Usar normalização de dados

Se você mapear dados de uma estrutura plana para uma estrutura hierárquica, os dados podem precisar ser normalizados antes da transformação.

Por padrão, o Harmony utiliza um algoritmo de normalização para construir a árvore de destino. Esse processo converte a estrutura plana da fonte em uma estrutura de fonte hierárquica que pode então ser mapeada para a estrutura de destino hierárquica.

Na estrutura de destino, o elemento raiz e todos os elementos de múltiplas instâncias sob a raiz são usados para criar a estrutura dos elementos de fonte secundários. Os atributos (ou campos) desses elementos de fonte secundários são elementos de dados planos que são então utilizados nos mapeamentos do elemento de destino correspondente.

Com a estrutura da fonte devidamente definida, o processo de normalização se simplifica para combinar nós com os mesmos pais.

Você tem três opções para normalização:

  • Normalização Completa: Todos os elementos com o mesmo pai e todos os campos são reduzidos a um elemento. Esta é a configuração padrão.
  • Normalização Parcial: Isso é o mesmo que a normalização completa, exceto que os filhos mais baixos não são normalizados.
  • Sem Normalização: Cada registro plano cria um ramo de elementos. Nenhuma redução de elementos é realizada ao criar a estrutura de fonte hierárquica.

A estrutura hierárquica pode conter um nó de instância única. Nesse caso, apenas o primeiro elemento para esta raiz é mantido, e registros planos que entram em conflito com este nó de dados raiz são ignorados.

Para desabilitar a normalização, defina a variável Jitterbit jitterbit.transformation.disable_normalization como true. Para mais informações, veja Variáveis de transformação Jitterbit.

Lidar com esquemas XML complexos

Quando você usa um esquema que contém tipos derivados ou grupos de substituição, é necessário fornecer algumas entradas antes de prosseguir com o mapeamento de transformação.

Especificar o esquema

Tipos derivados ou grupos de substituição são comuns em esquemas XSD e WSDL baseados em XML. Você pode fazer o upload desses tipos de esquemas em uma atividade ou em uma transformação, ou eles podem ser buscados diretamente do endpoint por alguns conectores. Por exemplo, esquemas de resposta retornados por uma pesquisa salva em uma atividade de Pesquisa NetSuite frequentemente contêm tipos derivados.

Para mais informações, veja Escolher fontes de esquema.

Selecionar tipos derivados ou grupo de substituição

Após especificar o esquema, selecione os tipos derivados ou grupo de substituição dentro da transformação. Pode haver nós para os quais você pode selecionar tipos derivados tanto no lado de origem quanto no lado de destino da transformação.

Um link para Selecionar Tipo(s) Derivado(s) ou Grupo de Substituição é exibido ao lado do nome do nó, conforme aplicável:

derived types substitution group annotated pp

A interface do usuário é a mesma tanto para selecionar tipos derivados quanto para selecionar um grupo de substituição.

Clique no link Selecionar Tipo(s) Derivado(s) ou Grupo de Substituição para abrir uma caixa de diálogo onde você pode selecionar entre os nós disponíveis:

add remove derived type nodes

Para filtrar a lista de nós, insira qualquer parte do nome do nó na caixa de pesquisa. A pesquisa não diferencia maiúsculas de minúsculas.

Selecione os nós que você deseja usando as caixas de seleção ao lado dos nomes dos nós. Os links Selecionar Todos e Deselecionar Todos podem ser usados para selecionar ou desmarcar todos os nós de uma vez. Em seguida, clique em OK para usar os nós de tipo derivado dentro do esquema.

Nota

Quando você seleciona um grande número de nós de tipo derivado de uma só vez (30 ou mais), o sistema pode responder lentamente ao atualizar a transformação.

Os nós selecionados são então exibidos dentro do esquema. Você pode expandi-los ou recolhê-los para mostrar nós e campos filhos adicionais dentro deles:

tipos derivados de origem

Depois de selecionar os nós, você pode alterar suas seleções clicando no link Selecionar Tipo(s) Derivado(s) ou Grupo de Substituição novamente para retornar à tela de seleção e adicionar ou remover nós conforme apropriado.

Você pode então prosseguir com o mapeamento de transformação normalmente, mapeando os campos de origem dentro dos nós selecionados para campos de destino, ou mapeando para campos de destino dentro dos nós selecionados.