Copiare dati da Xero tramite Azure Data Factory o Synapse Analytics

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!

Questo articolo illustra come usare l'attività Copy in una pipeline di Azure Data Factory o Synapse Analytics per copiare dati da Xero. Si basa sull'articolo di panoramica dell'attività di copia che presenta una panoramica generale sull'attività di copia.

Nota

Il connettore di Xero richiede l'autenticazione OAuth e non è destinato all'uso da server a server.

Funzionalità supportate

Questo connettore di Xero è supportato per le funzionalità seguenti:

Funzionalità supportate IR
Attività Copy (origine/-) ① ②
Attività Lookup ① ②

① Azure Integration Runtime ② Runtime di integrazione self-hosted

Per un elenco degli archivi dati supportati come origini o sink, vedere la tabella Archivi dati supportati.

In particolare, il connettore Xero supporta:

  • Autenticazione OAuth 2.0 e OAuth 1.0. Per OAuth 1.0, il connettore supporta unapplicazione privata Xero ma non un'applicazione pubblica.
  • Tutte le tabelle di Xero (endpoint dell'API), ad eccezione di "Reports".

Introduzione

Per eseguire l'attività di copia con una pipeline, è possibile usare uno degli strumenti o SDK seguenti:

Creare un servizio collegato a Xero usando l'interfaccia utente

Usare la procedura seguente per creare un servizio collegato a Xero nell'interfaccia utente del portale di Azure.

  1. Passare alla scheda Gestisci nell'area di lavoro di Azure Data Factory o Synapse e selezionare Servizi collegati, quindi fare clic su Nuovo:

  2. Cercare Xero e selezionare il connettore di Xero.

    Selezionare il connettore di Xero.

  3. Configurare i dettagli del servizio, testare la connessione e creare il nuovo servizio collegato.

    Configurare un servizio collegato a Xero.

Dettagli di configurazione del connettore

Le sezioni seguenti riportano informazioni dettagliate sulle proprietà che vengono usate per definire entità di Data Factory specifiche per il connettore Xero.

Proprietà del servizio collegato

Per il servizio collegato Xero sono supportate le proprietà seguenti:

Proprietà Descrizione Richiesto
type La proprietà type deve essere impostata su Xero
connectionProperties Gruppo di proprietà che definisce come connettersi a Xero.
In connectionProperties:
host Endpoint del server Xero (api.xero.com).
authenticationType I valori consentiti sono: OAuth_2.0 e OAuth_1.0.
consumerKey Per OAuth 2.0, specificare l'ID client per l'applicazione Xero.
Per OAuth 1.0, specificare la chiave consumer associata all'applicazione Xero.
Contrassegnare questo campo come SecureString per archiviarlo in modo sicuro oppure fare riferimento a un segreto archiviato in Azure Key Vault.
privateKey Per OAuth 2.0, specificare il segreto client per l'applicazione Xero.
Per OAuth 1.0, specificare la chiave privata dal file con estensione pem generato per l'applicazione Xero privata. Si noti che la generazione di file privatekey.pem a 512 bit tramite openssl genrsa -out privatekey.pem 512 1024 non è supportata. Includere tutto il testo dal file con estensione pem, incluse le terminazioni riga Unix (\n): vedere l'esempio seguente.

Contrassegnare questo campo come SecureString per archiviarlo in modo sicuro oppure fare riferimento a un segreto archiviato in Azure Key Vault.
tenantId ID tenant associato all'applicazione Xero. Applicabile per l'autenticazione OAuth 2.0.
Per informazioni su come ottenere l'ID tenant, vedere la sezione Controllare i tenant a cui si è autorizzati ad accedere.
Sì per l'autenticazione OAuth 2.0
refreshToken Applicabile per l'autenticazione OAuth 2.0.
Il token di aggiornamento OAuth 2.0 è associato all'applicazione Xero e viene usato per aggiornare il token di accesso. Il token di accesso scade dopo 30 minuti. Per informazioni sul funzionamento del flusso di autorizzazione Xero e su come ottenere il token di aggiornamento, vedere questo articolo. Per ottenere un token di aggiornamento, è necessario richiedere l'ambito offline_access.
Limitazione nota: si noti che Xero reimposta il token di aggiornamento dopo l'uso per l'aggiornamento del token di accesso. Per il carico di lavoro operativo, prima dell'esecuzione di ogni attività di copia è necessario impostare un token di aggiornamento valido da usare per il servizio.
Contrassegnare questo campo come SecureString per archiviarlo in modo sicuro oppure fare riferimento a un segreto archiviato in Azure Key Vault.
Sì per l'autenticazione OAuth 2.0
useEncryptedEndpoints Specifica se gli endpoint dell'origine dati vengono crittografati tramite HTTPS. Il valore predefinito è true. No
useHostVerification Specifica se è necessario che il nome host nel certificato del server corrisponda al nome host del server per la connessione tramite TLS. Il valore predefinito è true. No
usePeerVerification Specifica se verificare l'identità del server durante la connessione tramite TLS. Il valore predefinito è true. No

Esempio: autenticazione 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
            }            
        }
    }
}

Esempio: autenticazione 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
            }
        }
    }
}

Valore di chiave privata di esempio:

Includere tutto il testo dal file con estensione pem, incluse le terminazioni riga 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-----"

Proprietà del set di dati

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione di set di dati, vedere l'articolo sui set di dati. Questa sezione presenta un elenco delle proprietà supportate dal set di dati Xero.

Per copiare dati da Xero, impostare la proprietà type del set di dati su XeroObject. Sono supportate le proprietà seguenti:

Proprietà Descrizione Richiesto
type La proprietà type del set di dati deve essere impostata su XeroObject
tableName Nome della tabella. No (se nell'origine dell'attività è specificato "query")

Esempio

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

Proprietà dell'attività di copia

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione delle attività, vedere l'articolo sulle pipeline. Questa sezione presenta un elenco delle proprietà supportate dall'origine Xero.

Xero come origine

Per copiare dati da Xero, impostare il tipo di origine nell'attività di copia su XeroSource. Nella sezione origine dell'attività di copia sono supportate le proprietà seguenti:

Proprietà Descrizione Richiesto
type La proprietà type dell'origine dell'attività di copia deve essere impostata su XeroSource
query Usare la query SQL personalizzata per leggere i dati. Ad esempio: "SELECT * FROM Contacts". No (se nel set di dati è specificato "tableName")

Esempio:

"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>"
            }
        }
    }
]

Notare quanto segue quando si specifica la query Xero:

  • Le tabelle con elementi complessi verranno suddivise in più tabelle. Le transazioni bancarie, ad esempio, hanno una struttura di dati complessa "LineItems" e i dati delle transazioni vengono quindi mappati alla tabella Bank_Transaction e a Bank_Transaction_Line_Items, con Bank_Transaction_ID come chiave esterna per collegarli tra loro.

  • I dati Xero sono disponibili tramite due schemi: Minimal (impostazione predefinita) e Complete. Lo schema Complete contiene tabelle di chiamate obbligatorie che richiedono dati aggiuntivi (ad esempio, la colonna ID) per poter eseguire la query desiderata.

Le tabelle seguenti contengono le stesse informazioni degli schemi Minimal e Complete. Per ridurre il numero di chiamate API, usare uno schema Minimal (impostazione predefinita).

  • Bank_Transactions
  • Contact_Groups
  • Contatti
  • Contacts_Sales_Tracking_Categories
  • Contacts_Phones
  • Contacts_Addresses
  • Contacts_Purchases_Tracking_Categories
  • Credit_Notes
  • Credit_Notes_Allocations
  • Expense_Claims
  • Expense_Claim_Validation_Errors
  • Fatture
  • Invoices_Credit_Notes
  • Invoices_ Prepayments
  • Invoices_Overpayments
  • Manual_Journals
  • Overpayments
  • Overpayments_Allocations
  • Pagamenti anticipati
  • Prepayments_Allocations
  • Receipts
  • Receipt_Validation_Errors
  • Tracking_Categories

Nelle tabelle seguenti è possibile eseguire query solo con lo schema Complete:

  • Complete.Bank_Transaction_Line_Items
  • Complete.Bank_Transaction_Line_Item_Tracking
  • Complete.Contact_Group_Contacts
  • Complete.Contacts_Contact_ Persons
  • Complete.Credit_Note_Line_Items
  • Complete.Credit_Notes_Line_Items_Tracking
  • Complete.Expense_Claim_ Payments
  • 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

Proprietà dell'attività Lookup

Per altre informazioni sulle proprietà, vedere Attività Lookup.

Per un elenco di archivi dati supportati dall'attività di copia, vedere Archivi dati supportati.