Export Templated (passo)
Descrição
Seção intitulada “Descrição”Renderiza tabelas de projeto através de um modelo para produzir um documento estruturado, em vez da extração em bruto de colunas que os outros passos de exportação escrevem. Utilize-o quando o sistema de destino exige uma estrutura XML específica, ou outro formato de texto, em vez de uma tabela.
Itens de configuração exclusivos
Seção intitulada “Itens de configuração exclusivos”Modelo de origem
Seção intitulada “Modelo de origem”O modelo Jinja a partir do qual a saída é renderizada. Consulte O que um modelo pode utilizar.
Saída de destino
Seção intitulada “Saída de destino”A conta de documentos, a pasta e o nome de ficheiro do resultado renderizado. O modelo decide o que o ficheiro contém; um nome de ficheiro sem extensão recebe .xml.
Utilizar DataFrames Pandas para os dados da tabela altera a forma como as linhas de cada origem chegam ao modelo. Consulte Linhas de origem como tabela.
Tabela de origem
Seção intitulada “Tabela de origem”Indique as tabelas explicitamente ou encontre-as por caminho e uma regra de pesquisa — exata, começa com, termina com, contém ou glob.
O que um modelo pode utilizar
Seção intitulada “O que um modelo pode utilizar”O modelo é renderizado num ambiente isolado: lê os dados que o passo lhe fornece e mais nada.
- Cada origem, pelo seu Nome. Cada tabela de origem que indicar fica disponível para o modelo através do Nome que lhe atribuir, pelo que deve usar um nome que funcione como variável, como
invoices. - As variáveis do fluxo de trabalho, como
variable— por exemplo{{ variable.region }}.
<Invoices>{% for row in invoices %} <Invoice id="{{ row.invoice_id }}" amount="{{ row.amount }}" />{% endfor %}</Invoices>Linhas de origem como lista
Seção intitulada “Linhas de origem como lista”Com Utilizar DataFrames Pandas para os dados da tabela desativado, uma origem é uma lista de linhas só de leitura. Percorra-a em ciclo ou utilize |length, keys(), first(), one(), all(), scalar(), scalars(), mappings(), fetchmany(n) e columns('a', 'b'). Leia um valor de uma linha como row.amount, row['amount'] ou row[0]; row._mapping, row._asdict() e row._fields também funcionam. As linhas de columns('a', 'b') aceitam row.amount ou row[0], não row['amount'].
Linhas de origem como tabela
Seção intitulada “Linhas de origem como tabela”Com Utilizar DataFrames Pandas para os dados da tabela ativado, uma origem é uma tabela só de leitura. Percorrê-la em ciclo dá cada linha como um dicionário, pelo que row.amount e row['amount'] funcionam ambos. Também pode utilizar:
columns,empty,shape,valueseindexhead(n)etail(n)itertuples(), que coloca a posição da linha em primeiro lugar comoIndex, pelo quer[1]é a primeira coluna;itertuples(index=False)omite-aiterrows(), que dá a posição da linha e a linhainvoices['amount'], os valores de uma coluna, comsum(),min(),max(),mean(),unique()etolist();sum,min,maxemeanignoram nulos
Outros métodos do pandas, como loc e groupby, não estão disponíveis. Molde os dados num passo anterior e exporte o resultado.
O que um modelo não pode fazer
Seção intitulada “O que um modelo não pode fazer”- Chamar um método cujo nome comece por
to_, em qualquer valor —to_csveto_json, e também os inofensivos, comoto_pydatetime. - Ler um atributo cujo nome comece por um sublinhado, exceto
_mapping,_asdicte_fieldsde uma linha. - Escrever ou abrir ficheiros.
Uma chamada to_ ou uma operação com ficheiros faz o passo falhar. Um atributo com sublinhado que não seja esses três é simplesmente renderizado como vazio.
Itens de configuração comuns
Seção intitulada “Itens de configuração comuns”Configuração do Data Mapper

O Data Mapper serve para mapear colunas dos dados de origem para a tabela de dados de destino.
Inspeção e preenchimento do mapeador
Utilizar o botão de menu Inspecionar origem oferece formas adicionais de mapear colunas da origem para o destino:
- Preencher ambas as tabelas de mapeamento: propaga todos os valores da tabela de dados de origem para a tabela de dados de destino. É o comportamento predefinido.
- Preencher apenas a tabela de mapeamento de origem: mapeia apenas todos os valores da tabela de dados de origem. É útil ao modificar um fluxo de trabalho existente cuja estrutura de colunas de origem mudou.
- Preencher apenas a tabela de mapeamento de destino: propaga todos os valores apenas para a tabela de dados de destino.
Se as opções de colunas de origem e de destino não forem suficientes, podem adicionar-se outras colunas à tabela de dados de destino de várias formas:
- Propagar tudo insere todas as colunas de origem na tabela de dados de destino, quer já existam ou não.
- Propagar selecionadas insere apenas as colunas de origem selecionadas.
- Clique com o botão direito do rato no lado do destino e selecione Inserir linha para inserir uma linha imediatamente acima da linha atualmente selecionada.
- Clique com o botão direito do rato no lado do destino e selecione Acrescentar linha para inserir uma linha no fim (extremo direito) da tabela de dados de destino.
Eliminar colunas
Para eliminar colunas da tabela de dados de destino, selecione as colunas pretendidas, clique com o botão direito do rato e selecione Eliminar.
Colunas de origem que já não constam da lista
Uma linha de destino pode indicar uma Coluna de origem que a tabela de dados de origem já não lista, por exemplo depois de a origem ter sido inspecionada novamente. O passo nunca remove essa linha por si. Em vez disso, o nome da coluna é apresentado a vermelho, atrás de um sinal de aviso ⚠, e, ao passar o cursor por cima, é indicado que a coluna não consta das colunas de origem. Num passo com várias tabelas, como uma união, cada tabela é verificada em relação às suas próprias colunas de origem.
Uma linha com uma Constante, uma Expressão ou um resumo Contagem (incluindo nulos) nunca é sinalizada, porque o passo não lê a respetiva coluna de origem. Nada é sinalizado enquanto a tabela de dados de origem não listar colunas, por exemplo antes de a origem ser inspecionada pela primeira vez.
Ao guardar um passo que ainda tem linhas sinalizadas, uma caixa de diálogo Colunas obsoletas encontradas lista-as sob o separador ou a tabela em que se encontram e oferece três opções:
- Remover todas e guardar: remove as linhas sinalizadas e depois guarda.
- Guardar mesmo assim: guarda o passo tal como está.
- Cancelar: volta ao passo sem guardar.
Para manter uma linha e eliminar o respetivo aviso, adicione a coluna de volta à tabela de dados de origem ou escolha uma coluna que a tabela de dados de origem liste.
Colunas em falta na tabela de origem
Ao guardar, a própria tabela de dados de origem é verificada tal como está agora. Uma coluna que o passo lista nas suas colunas de origem mas que a tabela não tem, por exemplo uma que um passo anterior renomeou ou eliminou, significa que as colunas do passo estão desatualizadas, e um passo que lê uma coluna dessas falha quando é executado. Guardar abre então uma caixa de diálogo Colunas de origem em falta que indica cada tabela e as colunas que lhe faltam, com duas opções:
- Guardar mesmo assim — guardar o passo tal como está.
- Cancelar — voltar ao passo sem guardar.
Nada é removido por si, porque o problema pode estar na tabela, e esta pode voltar a mudar antes de o passo ser executado. Quando há também linhas assinaladas como já não listadas, ambas aparecem em conjunto na caixa de diálogo Colunas obsoletas encontradas, e Remover todas e guardar remove apenas as linhas assinaladas. Enquanto a lista de colunas de origem estiver vazia, são verificadas em vez disso as colunas que o passo mapeia, exceto as linhas com uma Constante, uma Expressão ou um resumo Contagem (incluindo nulos), que não leem nenhuma coluna.
Uma origem nomeada com uma variável, como {year}/Sales, é verificada com o valor da variável no momento em que guarda, e a caixa de diálogo indica a tabela que verificou, como 2026/Sales (from {year}/Sales). Uma variável definida por um ciclo contém o valor da sua última iteração, pelo que um ciclo sobre tabelas com estruturas diferentes pode avisar sobre uma tabela que a execução seguinte não vai ler. Não é verificada uma tabela que ainda não existe, por exemplo uma que um passo anterior do fluxo de trabalho cria, nem uma origem cuja variável não tem valor, uma tabela que o passo encontra por pesquisa quando é executado, ou uma tabela que não pode ser lida neste momento.
Tipo de dados da coluna
Cada coluna de destino tem um Tipo. Uma coluna propagada da origem mantém o tipo da coluna de origem; uma linha que adicione manualmente começa como Texto, e define o Tipo para indicar o que a coluna deve realmente ser. Uma coluna que pretenda somar ou ordenar precisa do respetivo tipo numérico ou de data, porque o texto é ordenado e somado como texto.
Um passo guardado com uma coluna sem qualquer tipo é, mesmo assim, executado. O tipo é determinado quando o passo é iniciado, a partir da coluna de origem que essa coluna lê. Quando não há nada de onde o ler, é tratado como texto: as colunas de um passo Extrair SQL vêm da consulta que escreveu e não de uma origem mapeada e, quando várias origens têm o mesmo nome de coluna com tipos discordantes, é utilizado texto em vez de adivinhar um deles, porque um palpite errado produz uma conversão que o armazém pode rejeitar, e tudo se converte em texto.
Definir o Tipo manualmente continua a ser a forma de indicar o que uma coluna deve ser. Deixá-lo por definir significa aceitar o que a coluna de origem for.
Alterar a ordem das colunas
Para reordenar as colunas na tabela de dados de destino, selecione as colunas pretendidas. Pode utilizar:
- Setas de movimento em massa: selecione a opção de movimento pretendida nas setas no canto superior direito
- Menu de contexto: clique com o botão direito do rato e selecione Mover para o início, Mover para cima, Mover para baixo ou Mover para o fim.
Reduzir o resultado apenas a registos distintos
Para devolver apenas opções distintas, selecione a opção de menu Distinto. Isto apresenta um conjunto de caixas de verificação para cada coluna da origem. Basta marcar a caixa junto da coluna correspondente para devolver apenas resultados distintos.
Consoante a situação, pode ser preferível considerar a utilização da sumarização.
O processo de distinção mantém o primeiro registo único encontrado e descarta os restantes. Pode querer aplicar uma ordenação aos dados, se for importante para a consistência entre execuções.
Agregação e agrupamento
Para agregar resultados, selecione a opção de menu Resumir. Isto apresenta um conjunto de caixas de seleção para cada coluna da tabela de dados de destino. Escolha um método de sumarização adequado para cada coluna.
Quando Inspecionar origem preenche as colunas, uma coluna numérica começa como Agrupar por em vez de Soma se o nome se assemelhar a um identificador, como id, customer_id, Order No ou CustomerKey, se a respetiva tabela a definir como chave ou se a junção a utilizar como chave.
- Agrupar por
- Soma
- Mínimo
- Máximo
- Primeiro
- Último
- Contagem
- Contagem (incluindo nulos)
- Média
- Desvio padrão
- Desvio padrão da amostra
- Desvio padrão da população
- Variância
- Variância da amostra
- Variância da população
- Avançado sem agrupar por
Para uma utilização avançada do Data Mapper, como expressões, limpeza e constantes, consulte Utilização avançada do Data Mapper

Para permitir a máxima flexibilidade, existem filtros de dados disponíveis nos dados de origem e nos dados de destino. Em conjuntos de dados maiores, pode ser especialmente vantajoso filtrar linhas na origem, para que as restantes operações sejam executadas sobre um conjunto de dados mais pequeno.
Selecionar subconjunto de dados
Este tipo de filtro permite filtrar os dados de origem recebidos com base nas condições especificadas.
Aplicar filtro secundário aos dados de resultado
Este tipo de filtro permite aplicar um filtro aos dados de resultado depois de transformados, com base nas condições especificadas. A possibilidade de aplicar um filtro ao resultado transformado permite exclusões com base nos resultados de cálculos complexos, sumarizações ou funções de janela.
Divisão final da tabela de dados (limite)
A capacidade de divisão de linhas permite limitar as linhas do conjunto de resultados com base num intervalo e num ponto de partida.
Sintaxe de filtros
A sintaxe de filtros utiliza o Python SQLAlchemy, que é a mesma sintaxe das outras expressões.
Consulte exemplos e funções de expressão na área Expressões.
Relacionado
Seção intitulada “Relacionado”- Passos de exportação
- Export to XML (passo) — para XML sem modelo
- Passos de relatórios — para relatórios PDF criados a partir de modelos