Ir para o conteúdo

Processamento de esquema no Jitterbit Integration Studio

Introdução

Em determinadas circunstâncias, os dados em esquemas podem ser convertidos durante o processamento. Esta página descreve quando e como os dados são convertidos, dependendo do tipo de esquema:

Todos os tipos de esquema

Na maioria dos casos (as exceções são indicadas abaixo), certos dados são convertidos da mesma maneira, independentemente do tipo de esquema:

Tipos de dados

Estas seções descrevem o suporte do Jitterbit a determinados tipos de dados por tipo de esquema. Para todos os tipos de dados suportados pelos Scripts Jitterbit, consulte Tipos de dados em Jitterbit Script.

Tipos de dados de precisão ilimitada

Para a maioria dos tipos de esquema, os tipos de dados de precisão ilimitada, como XML decimal, são convertidos em double tipos de dados e, portanto, têm um limite de precisão imposto a eles que pode, como resultado, truncar os dados.

O limite de precisão está dentro do intervalo dos valores mínimo e máximo de um valor longo com sinal, que é de –2.147.483.648 a 2.147.483.647. Se estiver fora desse intervalo, considere usar um tipo de dado string para evitar truncar os dados.

Tipos de dados não primitivos

Os tipos de dados primitivos boolean, date, double, float, integer, long, e string, e o tipo de dados não primitivo decimal são suportados em todos os tipos de esquema. Ao criar ou editar um plano personalizado ou hierárquico esquema ou editar qualquer esquema carregado em uma transformação, esses tipos de dados estão disponíveis para escolha no menu suspenso Tipo. Para novos esquemas personalizados, outros tipos de dados não primitivos, como datetime não são suportados.

Entretanto, outros tipos de dados não primitivos são suportados para esquemas que são gerados automaticamente a partir de um esquema gerado pelo conector ou foram espelhados de tal esquema. Após serem gerados, tais esquemas também podem ser editados manualmente no editor de esquema personalizado. Se o esquema contiver tipos de dados não primitivos, eles também serão listados no menu suspenso Tipo ao editar tal esquema.

Nomes de campos e nós

Nomes de campos e nós são convertidos em namespaces válidos seguindo o padrão XML. Para referência, consulte NCNameChar para os caracteres permitidos, conforme definido pelo W3C.

Ao espelhar um esquema fornecido por um banco de dados, quaisquer caracteres especiais em um campo de esquema ou nome de nó são substituídos por sublinhados (_) conforme necessário para criar um esquema XML válido.

Valores nulos

Campos com valor nulo são incluídos no esquema de dados resultante, mesmo sem dados. Como também não têm um tipo de dado definido, esses campos são tratados como se tivessem um tipo de dado string.

Esquemas CSV

Ao usar um esquema CSV, certas regras se aplicam aos seguintes dados:

Arquivos CSV com cabeçalhos

Ao fornecer um arquivo CSV com uma linha de cabeçalho como um arquivo de esquema de amostra, estas regras são aplicadas para gerar nomes de colunas:

  • Caracteres especiais são substituídos por um ponto de interrogação (?).
  • Os espaços são substituídos por um sublinhado (_).
  • Se o nome de uma coluna estiver em branco, ele será substituído por f1, f2, f3, e assim por diante.
  • Se o nome de uma coluna começar com um número, ele será prefixado com um sublinhado (_).
  • Se o nome de uma coluna for repetido, ele será anexado com 2, 3, 4, e assim por diante.

Caracteres especiais

Nestas circunstâncias, caracteres especiais (. _ - $ # @ ?) em esquemas CSV são convertidos:

  • Caracteres especiais presentes no lado de origem ou destino de uma transformação são substituídos por um ponto de interrogação (?).
  • Caracteres especiais em um script em um campo de destino em uma transformação são substituídos por um ponto de interrogação (?). Esta regra também se aplica a qualquer apartamento personalizado ou hierárquico personalizado esquema criado em formato CSV.

Nota

Essas conversões são limitadas apenas às estruturas de esquema e não afetam os dados reais.

Esquemas JSON

Ao usar um esquema JSON, certas regras se aplicam aos seguintes dados:

  • Tipos de dados (conforme descrito acima)
  • Nomes de campos e nós (conforme descrito acima)

    Cuidado

    Quando o campo ou nome do nó de um esquema JSON começa com um número ou um @ caractere, esse caractere é substituído por um sublinhado _. Por exemplo, um nome de campo de 12345 é convertido para _2345, e um nome de campo de @account é convertido para _account.

  • Valores nulos (conforme descrito acima)

Esquemas XML

Ao usar um esquema XML, certas regras se aplicam aos seguintes dados:

Para obter informações sobre como solucionar determinados erros de esquema XML e de transformação, consulte Solução de problemas de operação.

Espaços de nomes

Há suporte para namespaces em esquemas XML. Se mais de um namespace for usado em um esquema XML, o agente Jitterbit converterá o esquema XML em vários arquivos XSD durante o processamento.

Etiquetas de fechamento automático

Tags de fechamento automático em elementos em esquemas XML são suportadas com alguma manipulação do XML de exemplo usado para gerar o esquema. Para enviar o elemento XML na payload sem um valor mapeado, você pode usar uma função Jitterbit e uma variável Jitterbit, conforme descrito abaixo.

Manipular o XML de amostra

A manipulação é necessária quando um arquivo de exemplo XML usa notação abreviada para uma tag de abertura e fechamento em um elemento como este:

<tag/>

Se essa abreviação for usada diretamente em um esquema XML, o nó não poderá ser mapeado quando usado como esquema de destino de uma transformação.

Para resolver, manipule o XML de exemplo que está sendo usado para gerar o esquema para expandir as tags de abertura e fechamento ao redor do elemento e forneça um valor de exemplo para que um tipo de dado seja atribuído ao elemento:

<tag>example</tag>

O elemento aparecerá como um campo no esquema XML e, quando usado como esquema de destino em uma transformação, você poderá mapear para esse campo.

Mapa para o campo XML

Se você não tiver um objeto de origem ou variável para mapear o campo de destino, você pode usar a função Jitterbit Null no script de transformação para usar como valor mapeado:

<trans>
Null()
</trans>

Antes da transformação usando o esquema XML, defina uma dessas variáveis Jitterbit (dependendo de qual for apropriada para seu caso de uso) para controlar o que é enviado:

Caracteres especiais

Nessas circunstâncias, caracteres especiais em esquemas XML são convertidos:

  • Caracteres especiais em um script em um campo de destino em uma transformação são substituídos por um ponto de interrogação (?).

  • Esses caracteres especiais em um campo de esquema XML ou nome de nó não são suportados, pois não são suportados por XML:

    $ # @ ?

Nota

Essas conversões são limitadas apenas às estruturas de esquema e não afetam os dados reais.