Kopiera data från Xero med Hjälp av Azure Data Factory eller Synapse Analytics

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

Den här artikeln beskriver hur du använder kopieringsaktiviteten i en Azure Data Factory- eller Synapse Analytics-pipeline för att kopiera data från Xero. Den bygger på översiktsartikeln för kopieringsaktivitet som visar en allmän översikt över kopieringsaktiviteten.

Funktioner som stöds

Den här Xero-anslutningsappen stöds för följande funktioner:

Funktioner som stöds IR
aktiviteten Kopiera (källa/-) ① ②
Sökningsaktivitet ① ②

(1) Azure Integration Runtime (2) Lokalt installerad integrationskörning

En lista över datalager som stöds som källor/mottagare finns i tabellen Datalager som stöds.

Mer specifikt stöder den här Xero-anslutningsappen:

  • OAuth 2.0- och OAuth 1.0-autentisering. För OAuth 1.0 stöder anslutningsappen ett privat Xero-program men inte ett offentligt program.
  • Alla Xero-tabeller (API-slutpunkter) utom "Rapporter".

Komma igång

Om du vill utföra aktiviteten Kopiera med en pipeline kan du använda något av följande verktyg eller SDK:er:

Skapa en länkad tjänst till Xero med hjälp av användargränssnittet

Använd följande steg för att skapa en länkad tjänst till Xero i azure-portalens användargränssnitt.

  1. Bläddra till fliken Hantera i Din Azure Data Factory- eller Synapse-arbetsyta och välj Länkade tjänster och klicka sedan på Ny:

  2. Sök efter Xero och välj Xero-anslutningsappen.

    Select the Xero connector.

  3. Konfigurera tjänstinformationen, testa anslutningen och skapa den nya länkade tjänsten.

    Configure a linked service to Xero.

Anslut eller konfigurationsinformation

Följande avsnitt innehåller information om egenskaper som används för att definiera Data Factory-entiteter som är specifika för Xero-anslutningsprogrammet.

Länkade tjänstegenskaper

Följande egenskaper stöds för Xero-länkad tjänst:

Property Beskrivning Obligatoriskt
type Typegenskapen måste anges till: Xero Ja
connectionProperties En grupp med egenskaper som definierar hur du ansluter till Xero. Ja
Under connectionProperties:
värd Slutpunkten för Xero-servern (api.xero.com). Ja
authenticationType Tillåtna värden är OAuth_2.0 och OAuth_1.0. Ja
consumerKey För OAuth 2.0 anger du klient-ID för Xero-programmet.
För OAuth 1.0 anger du konsumentnyckeln som är associerad med Xero-programmet.
Markera det här fältet som en SecureString för att lagra det på ett säkert sätt eller referera till en hemlighet som lagras i Azure Key Vault.
Ja
privateKey För OAuth 2.0 anger du klienthemligheten för Xero-programmet.
För OAuth 1.0 anger du den privata nyckeln från .pem-filen som genererades för ditt privata Xero-program. Observera att det inte går att generera privatekey.pem med domningar på 512 med , openssl genrsa -out privatekey.pem 5121024. Inkludera all text från .pem-filen, inklusive Unix-radslut(\n), se exemplet nedan.

Markera det här fältet som en SecureString för att lagra det på ett säkert sätt eller referera till en hemlighet som lagras i Azure Key Vault.
Ja
tenantId Klientorganisations-ID:t som är associerat med ditt Xero-program. Gäller för OAuth 2.0-autentisering.
Lär dig hur du hämtar klientorganisations-ID:t från Avsnittet Kontrollera vilka klienter du har behörighet att komma åt.
Ja för OAuth 2.0-autentisering
refreshToken Gäller för OAuth 2.0-autentisering.
OAuth 2.0-uppdateringstoken är associerad med Xero-programmet och används för att uppdatera åtkomsttoken. åtkomsttoken upphör att gälla efter 30 minuter. Lär dig mer om hur Xero-auktoriseringsflödet fungerar och hur du hämtar uppdateringstoken från den här artikeln. Om du vill hämta en uppdateringstoken måste du begära offline_access omfång.
Vet begränsning: Obs! Xero återställer uppdateringstoken när den har använts för uppdatering av åtkomsttoken. Innan varje kopieringsaktivitet körs för operationaliserad arbetsbelastning måste du ange en giltig uppdateringstoken som tjänsten ska använda.
Markera det här fältet som en SecureString för att lagra det på ett säkert sätt eller referera till en hemlighet som lagras i Azure Key Vault.
Ja för OAuth 2.0-autentisering
useEncryptedEndpoints Anger om datakällans slutpunkter krypteras med HTTPS. Standardvärdet är sant. Nej
useHostVerification Anger om värdnamnet krävs i serverns certifikat för att matcha serverns värdnamn vid anslutning via TLS. Standardvärdet är sant. Nej
usePeerVerification Anger om serverns identitet ska verifieras vid anslutning via TLS. Standardvärdet är sant. Nej

Exempel: OAuth 2.0-autentisering

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

Exempel: OAuth 1.0-autentisering

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

Exempel på värde för privat nyckel:

Inkludera all text från .pem-filen, inklusive Unix-radslut(\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-----"

Egenskaper för datauppsättning

En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera datauppsättningar finns i artikeln datauppsättningar . Det här avsnittet innehåller en lista över egenskaper som stöds av Xero-datauppsättningen.

Om du vill kopiera data från Xero anger du datauppsättningens typegenskap till XeroObject. Följande egenskaper stöds:

Property Beskrivning Obligatoriskt
type Datamängdens typegenskap måste anges till: XeroObject Ja
tableName Tabellens namn. Nej (om "fråga" i aktivitetskällan har angetts)

Exempel

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

Kopiera egenskaper för aktivitet

En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera aktiviteter finns i artikeln Pipelines . Det här avsnittet innehåller en lista över egenskaper som stöds av Xero-källan.

Xero som källa

Om du vill kopiera data från Xero anger du källtypen i kopieringsaktiviteten till XeroSource. Följande egenskaper stöds i avsnittet kopieringsaktivitetskälla:

Property Beskrivning Obligatoriskt
type Typegenskapen för kopieringsaktivitetskällan måste anges till: XeroSource Ja
query Använd den anpassade SQL-frågan för att läsa data. Exempel: "SELECT * FROM Contacts". Nej (om "tableName" i datauppsättningen har angetts)

Exempel:

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

Observera följande när du anger Xero-frågan:

  • Tabeller med komplexa objekt delas upp i flera tabeller. Banktransaktioner har till exempel en komplex datastruktur "LineItems", så data för banktransaktioner mappas till tabell Bank_Transaction och Bank_Transaction_Line_Items, med Bank_Transaction_ID som sekundärnyckel för att länka dem.

  • Xero-data är tillgängliga via två scheman: Minimal (standard) och Complete. Schemat Slutför innehåller nödvändiga anropstabeller som kräver ytterligare data (t.ex. ID-kolumn) innan du gör önskad fråga.

Följande tabeller har samma information i schemat Minimal och Fullständig. Om du vill minska antalet API-anrop använder du Minimalt schema (standard).

  • Bank_Transactions
  • Contact_Groups
  • Kontakter
  • Contacts_Sales_Tracking_Categories
  • Contacts_Telefon
  • Contacts_Addresses
  • Contacts_Purchases_Tracking_Categories
  • Credit_Notes
  • Credit_Notes_Allocations
  • Expense_Claims
  • Expense_Claim_Validation_Errors
  • Fakturor
  • Invoices_Credit_Notes
  • Invoices_ förskottsbetalningar
  • Invoices_Overpayments
  • Manual_Journals
  • Överbetalningar
  • Overpayments_Allocations
  • Förskottsbetalningar
  • Prepayments_Allocations
  • Kvitton
  • Receipt_Validation_Errors
  • Tracking_Categories

Följande tabeller kan bara efterfrågas med ett fullständigt schema:

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

Egenskaper för uppslagsaktivitet

Mer information om egenskaperna finns i Sökningsaktivitet.

En lista över datalager som stöds av kopieringsaktiviteten finns i datalager som stöds.