Partilhar via


Copiar dados do Xero usando o Azure Data Factory ou o Synapse Analytics

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!

Este artigo descreve como usar a Atividade de Cópia em um pipeline do Azure Data Factory ou do Synapse Analytics para copiar dados do Xero. Ele se baseia no artigo de visão geral da atividade de cópia que apresenta uma visão geral da atividade de cópia.

Nota

O conector Xero requer autenticação OAuth e não se destina ao uso de servidor para servidor.

Importante

O conector Xero versão 2.0 fornece suporte nativo melhorado ao Xero. Se estiver a usar o conector Xero versão 1.0 na sua solução, por favor atualize o conector Xero antes de 31 de março de 2026. Consulte esta seção para obter detalhes sobre a diferença entre a versão 2.0 e a versão 1.0.

Capacidades suportadas

Este conector Xero é suportado para as seguintes capacidades:

Capacidades suportadas IR
Atividade de cópia (fonte/-) (1) (2)
Atividade de Pesquisa (1) (2)

(1) Tempo de execução de integração do Azure (2) Tempo de execução de integração auto-hospedado

Para obter uma lista de armazenamentos de dados suportados como fontes/coletores, consulte a tabela Armazenamentos de dados suportados.

Especificamente, este conector Xero suporta:

  • Autenticação OAuth 2.0.
  • Todas as tabelas Xero (pontos de extremidade API), exceto "Relatórios".
  • Versões do Windows neste artigo.

Nota

Devido ao fim da autenticação OAuth 1.0 no Xero, atualize para o tipo de autenticação OAuth 2.0 se você estiver usando o tipo de autenticação OAuth 1.0.

Introdução

Para executar a atividade de cópia com um pipeline, você pode usar uma das seguintes ferramentas ou SDKs:

Criar um serviço vinculado ao Xero usando a interface do usuário

Use as etapas a seguir para criar um serviço vinculado ao Xero na interface do usuário do portal do Azure.

  1. Navegue até a guia Gerenciar em seu espaço de trabalho do Azure Data Factory ou Synapse e selecione Serviços Vinculados e clique em Novo:

  2. Procure Xero e selecione o conector Xero.

    Selecione o conector Xero.

  3. Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.

    Configure um serviço vinculado ao Xero.

Detalhes de configuração do conector

As seções a seguir fornecem detalhes sobre as propriedades que são usadas para definir entidades do Data Factory específicas para o conector Xero.

Propriedades do serviço vinculado

O conector Xero agora suporta a versão 2.0. Consulte esta seção para fazer a atualização do conector Xero a partir da versão 1.0. Para obter os detalhes da propriedade, consulte as seções correspondentes.

Versão 2.0

O serviço Xero ligado suporta as seguintes propriedades ao utilizar a versão 2.0.

Property Descrição Obrigatório
tipo A propriedade type deve ser definida como: Xero Sim
versão A versão que especificares. O valor é 2.0. Sim
alojar O ponto de extremidade do servidor Xero (api.xero.com). Sim
clientId Especifique o ID do cliente para seu aplicativo Xero.
Marque este campo como um SecureString para armazená-lo com segurança ou faça referência a um segredo armazenado no Cofre de Chaves do Azure.
Sim
clientSecret Especifique o segredo do cliente para seu aplicativo Xero.
Marque este campo como um SecureString para armazená-lo com segurança ou faça referência a um segredo armazenado no Cofre de Chaves do Azure.
Sim
tenantId O ID do locatário associado ao seu aplicativo Xero. Aplicável à autenticação OAuth 2.0.
Saiba como obter o ID do inquilino na secção Verificar os inquilinos a que está autorizado a aceder.
Sim
refreshToken O token de atualização OAuth 2.0 está associado ao aplicativo Xero e é usado para atualizar o token de acesso; O token de acesso expira após 30 minutos. Saiba mais sobre como o fluxo de autorização do Xero funciona e como obter o token de atualização deste artigo. Para obter um token de atualização, você deve solicitar o escopo offline_access.
Limitação conhecida: Observação O Xero redefine o token de atualização depois que ele é usado para a atualização do token de acesso. Para carga de trabalho operacionalizada, antes de cada atividade de cópia ser executada, você precisa definir um token de atualização válido para o serviço usar.
Marque este campo como um SecureString para armazená-lo com segurança ou faça referência a um segredo armazenado no Cofre de Chaves do Azure.
Sim
conectarVia O ambiente de execução de integração a ser usado para se conectar ao armazenamento de dados. Se nenhum valor for especificado, a propriedade usará o tempo de execução de integração padrão do Azure. Pode usar o runtime de integração auto-hospedado e a sua versão deve ser 5.61 ou superior. Não

Exemplo:

{
    "name": "XeroLinkedService",
    "properties": {
        "type": "Xero",
        "typeProperties": {
            "host": "api.xero.com",
            "clientId": "<client ID>",
            "clientSecret": "<client secret>",
            "tenantId": "<tenant ID>", 
            "refreshToken": {
                "type": "SecureString",
                "value": "<refresh token>"
            },
            "authenticationType":"OAuth_2.0", 
            "version": "2.0"         
        }
    }
}

Versão 1.0

O serviço associado Xero suporta as seguintes propriedades ao utilizar a versão 1.0:

Property Descrição Obrigatório
tipo A propriedade type deve ser definida como: Xero Sim
connectionProperties Um grupo de propriedades que define como se conectar ao Xero. Sim
Em connectionProperties:
alojar O ponto de extremidade do servidor Xero (api.xero.com). Sim
authenticationType Os valores permitidos são OAuth_2.0 e OAuth_1.0. Sim
consumerKey [en] Para OAuth 2.0, especifique o ID do cliente para seu aplicativo Xero.
Para OAuth 1.0, especifique a chave de consumidor associada ao aplicativo Xero.
Marque este campo como um SecureString para armazená-lo com segurança ou faça referência a um segredo armazenado no Cofre de Chaves do Azure.
Sim
chave privada Para OAuth 2.0, especifique o segredo do cliente para seu aplicativo Xero.
Para OAuth 1.0, especifique a chave privada do arquivo .pem que foi gerado para seu aplicativo privado Xero. Observação para gerar o privatekey.pem com numbits de 512 usando openssl genrsa -out privatekey.pem 512, 1024 não é suportado. Inclua todo o texto do arquivo .pem, incluindo as terminações de linha Unix(\n), veja o exemplo abaixo.

Marque este campo como um SecureString para armazená-lo com segurança ou faça referência a um segredo armazenado no Cofre de Chaves do Azure.
Sim
tenantId O ID do locatário associado ao seu aplicativo Xero. Aplicável à autenticação OAuth 2.0.
Saiba como obter o ID do inquilino na secção Verificar os inquilinos a que está autorizado a aceder.
Sim para autenticação OAuth 2.0
refreshToken Aplicável à autenticação OAuth 2.0.
O token de atualização OAuth 2.0 está associado ao aplicativo Xero e é usado para atualizar o token de acesso; O token de acesso expira após 30 minutos. Saiba mais sobre como o fluxo de autorização do Xero funciona e como obter o token de atualização deste artigo. Para obter um token de atualização, você deve solicitar o escopo offline_access.
Limitação conhecida: Observação O Xero redefine o token de atualização depois que ele é usado para a atualização do token de acesso. Para carga de trabalho operacionalizada, antes de cada atividade de cópia ser executada, você precisa definir um token de atualização válido para o serviço usar.
Marque este campo como um SecureString para armazená-lo com segurança ou faça referência a um segredo armazenado no Cofre de Chaves do Azure.
Sim para autenticação OAuth 2.0
useEncryptedEndpoints Especifica se os pontos de extremidade da fonte de dados são criptografados usando HTTPS. O valor predefinido é true. Não
useHostVerification Especifica se o nome do host é necessário no certificado do servidor para corresponder ao nome do host do servidor ao se conectar por TLS. O valor predefinido é true. Não
usePeerVerification Especifica se a identidade do servidor deve ser verificada ao se conectar por TLS. O valor predefinido é true. Não

Exemplo: autenticação OAuth 2.0

{
    "name": "XeroLinkedService",
    "properties": {
        "type": "Xero",
        "typeProperties": {
            "connectionProperties": { 
                "host": "api.xero.com",
                "authenticationType":"OAuth_2.0", 
                "consumerKey": {
                    "type": "SecureString",
                    "value": "<client ID>"
                },
                "privateKey": {
                    "type": "SecureString",
                    "value": "<client secret>"
                },
                "tenantId": "<tenant ID>", 
                "refreshToken": {
                    "type": "SecureString",
                    "value": "<refresh token>"
                }, 
                "useEncryptedEndpoints": true, 
                "useHostVerification": true, 
                "usePeerVerification": true
            }            
        }
    }
}

Exemplo: autenticação OAuth 1.0

{
    "name": "XeroLinkedService",
    "properties": {
        "type": "Xero",
        "typeProperties": {
            "connectionProperties": {
                "host": "api.xero.com", 
                "authenticationType":"OAuth_1.0", 
                "consumerKey": {
                    "type": "SecureString",
                    "value": "<consumer key>"
                },
                "privateKey": {
                    "type": "SecureString",
                    "value": "<private key>"
                }, 
                "useEncryptedEndpoints": true,
                "useHostVerification": true,
                "usePeerVerification": true
            }
        }
    }
}

Exemplo de valor de chave privada:

Inclua todo o texto do arquivo .pem, incluindo as terminações de linha Unix(\n).

"-----BEGIN RSA PRIVATE KEY-----\nMII***************************************************P\nbu****************************************************s\nU/****************************************************B\nA*****************************************************W\njH****************************************************e\nsx*****************************************************l\nq******************************************************X\nh*****************************************************i\nd*****************************************************s\nA*****************************************************dsfb\nN*****************************************************M\np*****************************************************Ly\nK*****************************************************Y=\n-----END RSA PRIVATE KEY-----"

Propriedades do conjunto de dados

Para obter uma lista completa de seções e propriedades disponíveis para definir conjuntos de dados, consulte o artigo sobre conjuntos de dados. Esta seção fornece uma lista de propriedades suportadas pelo conjunto de dados Xero.

Para copiar dados do Xero, defina a propriedade type do conjunto de dados como XeroObject. As seguintes propriedades são suportadas:

Property Descrição Obrigatório
tipo A propriedade type do conjunto de dados deve ser definida como: XeroObject Sim
tabela Nome da tabela. Os nomes das tabelas usam o nome do objeto, por exemplo: Accounts. Esta propriedade só é suportada na versão 2.0. Sim
tableName Nome da tabela. Os nomes das tabelas usam nomes de objetos com prefixo, por exemplo, "Global"."Accounts". Esta propriedade só é suportada na versão 1.0. Não (caso "consulta" esteja especificada na fonte da atividade)

Exemplo

{
    "name": "XeroDataset",
    "properties": {
        "type": "XeroObject",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Xero linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

O conector versão 2.0 suporta as seguintes tabelas Xero:

  • Accounts
  • Itens_de_Linha_de_Transação_Bancária
  • Transferências_Bancárias
  • Orçamentos
  • Contacts_Addresses
  • Grupo_de_Contatos
  • Contacts_Phones
  • Itens_da_Nota_de_Crédito
  • Rastreamento_de_Itens_de_Linha_de_Notas_de_Crédito
  • Moedas
  • Itens_de_Linha_da_Fatura
  • Rastreamento_de_Itens_de_Linha_da_Fatura
  • Itens
  • Diários
  • Linhas do Diário
  • Categorias_de_Rastreio_de_Linha_do_Jornal
  • Manual_Journals
  • Linhas_de_Jornal_Manual
  • Organizações
  • Itens_de_Linha_de_Prepagamento
  • Projetos
  • Utilizadores do Projeto
  • Itens_de_Linha_de_Ordem_de_Compra
  • Taxas_Fiscais
  • Tracking_Categories
  • Opções_de_Categorias_de_Rastreamento
  • Utilizadores

Propriedades da atividade Copy

Para obter uma lista completa de seções e propriedades disponíveis para definir atividades, consulte o artigo Pipelines . Esta seção fornece uma lista de propriedades suportadas pela fonte Xero.

Xero como fonte

Para copiar dados do Xero, defina o tipo de origem na atividade de cópia como XeroSource. As seguintes propriedades são suportadas na seção de origem da atividade de cópia:

Property Descrição Obrigatório
tipo A propriedade type da fonte de atividade de cópia deve ser definida como: XeroSource Sim
consulta Use a consulta SQL personalizada para ler dados. Por exemplo: "SELECT * FROM Contacts". Não (se "tableName" no conjunto de dados for especificado)

Nota

query não é suportado na versão 2.0.

Exemplo:

"activities":[
    {
        "name": "CopyFromXero",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Xero input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "XeroSource",
                "query": "SELECT * FROM Contacts"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Observe o seguinte ao especificar a consulta Xero:

  • As tabelas com itens complexos serão divididas em várias tabelas. Por exemplo, as transações bancárias têm uma estrutura de dados complexa "LineItems", de modo que os dados da transação bancária são mapeados para a tabela Bank_Transaction e Bank_Transaction_Line_Items, com Bank_Transaction_ID como chave estrangeira para vinculá-los.

  • Os dados do Xero estão disponíveis através de dois esquemas: Minimal (padrão) e Complete. O esquema completo contém tabelas de chamada de pré-requisito que exigem dados adicionais (por exemplo, coluna ID) antes de fazer a consulta desejada.

As tabelas a seguir têm as mesmas informações no esquema Mínimo e Completo. Para reduzir o número de chamadas de API, use Esquema mínimo (padrão).

  • Bank_Transactions
  • Contact_Groups
  • Contactos
  • Contacts_Sales_Tracking_Categories
  • Contacts_Phones
  • Contacts_Addresses
  • Contacts_Purchases_Tracking_Categories
  • Credit_Notes
  • Credit_Notes_Allocations
  • Expense_Claims
  • Expense_Claim_Validation_Errors
  • Faturas
  • Invoices_Credit_Notes
  • Invoices_ Pré-pagamentos
  • Invoices_Overpayments
  • Manual_Journals
  • Pagamentos em excesso
  • Overpayments_Allocations
  • Pré-pagamentos
  • Prepayments_Allocations
  • Recibos
  • Receipt_Validation_Errors
  • Tracking_Categories

As tabelas a seguir só podem ser consultadas com esquema completo:

  • Complete.Bank_Transaction_Line_Items
  • Complete.Bank_Transaction_Line_Item_Tracking
  • Complete.Contact_Group_Contacts
  • Complete.Contacts_Contact_ Pessoas
  • Complete.Credit_Note_Line_Items
  • Complete.Credit_Notes_Line_Items_Tracking
  • Complete.Expense_Claim_ Pagamentos
  • Complete.Expense_Claim_Receipts
  • Complete.Invoice_Line_Items
  • Complete.Invoices_Line_Items_Tracking
  • Complete.Manual_Journal_Lines
  • Complete.Manual_Journal_Line_Tracking
  • Complete.Overpayment_Line_Items
  • Complete.Overpayment_Line_Items_Tracking
  • Complete.Prepayment_Line_Items
  • Complete.Prepayment_Line_Item_Tracking
  • Complete.Receipt_Line_Items
  • Complete.Receipt_Line_Item_Tracking
  • Complete.Tracking_Category_Options

Mapeamento de tipo de dados para Xero

Quando você copia dados do Xero, os mapeamentos a seguir se aplicam dos tipos de dados do Xero aos tipos de dados internos usados pelo serviço. Para saber como a atividade de cópia mapeia o esquema de origem e o tipo de dados para o destino, consulte Mapeamentos de esquema e tipo de dados.

Tipo de dados Xero Tipo de dados de serviço provisório (para a versão 2.0) Tipo de dados de serviço provisório (para a versão 1.0)
Corda Corda Corda
Date Corda Date
DateTime Corda Corda
booleano booleano booleano
Número (padrão) Int32 Int32
Número (grande) Int64 Int64

Propriedades da atividade de pesquisa

Para saber detalhes sobre as propriedades, verifique Atividade de pesquisa.

Ciclo de vida e atualização do conector Xero

A tabela a seguir mostra o estágio de liberação e os logs de alteração para diferentes versões do conector Xero:

Versão Fase de lançamento Registo de alterações
Versão 1.0 Anunciado o fim do suporte /
Versão 2.0 Versão GA disponível • No serviço ligado, consumerKey é substituído por clientId, e privateKey é substituído por clientSecret.

• Usar table em vez de tableName nos conjuntos de dados.

• O valor para table é o nome do objeto, por exemplo: Accounts.

• A versão de runtime de integração auto-hospedada deve ser 5.61 ou superior.

• A data é lida como tipo de dados String.

• Suporte a tabelas Xero específicas. Para a lista de tabelas suportadas, vá para Propriedades do conjunto de dados.

useEncryptedEndpoints, useHostVerification, usePeerVerification não são suportados no serviço ligado.

query• não é suportado.

• A autenticação OAuth 1.0 não é suportada.

Atualize o conector Xero da versão 1.0 para a versão 2.0

  1. Na página Editar serviço vinculado , selecione a versão 2.0 e configure o serviço vinculado consultando as propriedades do serviço vinculado versão 2.0.

  2. O mapeamento de tipo de dados para o serviço vinculado Xero versão 2.0 é diferente daquele para a versão 1.0. Para saber o mapeamento de tipo de dados mais recente, consulte Mapeamento de tipo de dados para Xero.

  3. Se usares o runtime de integração auto-hospedado, a versão deverá ser 5.61 ou superior.

  4. Use table em vez de tableName na versão 2.0. Para a configuração detalhada, vá a Propriedades do Conjunto de Dados.

  5. query só é suportado na versão 1.0. Você deve usar o table em vez de query na versão 2.0.

  6. Note que a versão 2.0 suporta tabelas Xero específicas. Para a lista de tabelas suportadas, vá para Propriedades do conjunto de dados.

Para obter uma lista de armazenamentos de dados suportados pela atividade de cópia, consulte Armazenamentos de dados suportados.