Kopieren von Daten aus Xero mithilfe von Azure Data Factory oder Synapse Analytics

GILT FÜR: Azure Data Factory Azure Synapse Analytics

Tipp

Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!

In diesem Artikel wird beschrieben, wie Sie die Copy-Aktivität in einer Azure Data Factory- oder Synapse Analytics-Pipeline verwenden, um Daten aus Xero zu kopieren. Er baut auf dem Artikel zur Übersicht über die Kopieraktivität auf, der eine allgemeine Übersicht über die Kopieraktivität enthält.

Hinweis

Der Xero-Connector erfordert OAuth-Authentifizierung und ist nicht für die Verwendung von Server zu Server vorgesehen.

Unterstützte Funktionen

Für den Xero-Connector werden die folgenden Funktionen unterstützt:

Unterstützte Funktionen IR
Kopieraktivität (Quelle/-) ① ②
Lookup-Aktivität ① ②

① Azure Integration Runtime ② Selbstgehostete Integration Runtime

Eine Liste der Datenspeicher, die als Quellen/Senken unterstützt werden, finden Sie in der Tabelle Unterstützte Datenspeicher.

Dieser Xero-Connector unterstützt insbesondere Folgendes:

  • OAuth 2.0-Authentifizierung.
  • Alle Xero-Tabellen (API-Endpunkte) mit Ausnahme von „Reports“.
  • Windows-Versionen in diesem Artikel.

Hinweis

Aufgrund der Einstellung der OAuth 1.0-Authentifizierung in Xero sollten Sie ein Upgrade auf den OAuth 2.0-Authentifizierungstyp durchführen, wenn Sie derzeit den OAuth 1.0-Authentifizierungstyp verwenden.

Erste Schritte

Sie können eines der folgenden Tools oder SDKs verwenden, um die Kopieraktivität mit einer Pipeline zu verwenden:

Erstellen eines verknüpften Diensts mit Xero über die Benutzeroberfläche

Verwenden Sie die folgenden Schritte, um einen verknüpften Dienst mit Xero auf der Azure-Portal-Benutzeroberfläche zu erstellen.

  1. Navigieren Sie in Ihrem Azure Data Factory- oder Synapse-Arbeitsbereich zu der Registerkarte „Verwalten“, wählen Sie „Verknüpfte Dienste“ aus und klicken Sie dann auf „Neu“:

  2. Suchen Sie nach Xero, und wählen Sie den Xero-Connector aus.

    Wählen Sie den Xero-Connector aus.

  3. Konfigurieren Sie die Dienstdetails, testen Sie die Verbindung, und erstellen Sie den neuen verknüpften Dienst.

    Konfigurieren Sie einen verknüpften Dienst für Xero.

Details zur Connector-Konfiguration

Die folgenden Abschnitte enthalten Details zu Eigenschaften, die zum Definieren von Data Factory-Entitäten speziell für den Xero-Connector verwendet werden.

Eigenschaften des verknüpften Diensts

Folgende Eigenschaften werden für den mit Xero verknüpften Dienst unterstützt:

Eigenschaft Beschreibung Erforderlich
type Die type-Eigenschaft muss auf Folgendes festgelegt werden: Xero Ja
connectionProperties Eine Gruppe von Eigenschaften zum Definieren, wie eine Verbindung mit Xero hergestellt werden soll. Ja
Unter connectionProperties:
host Der Endpunkt des Xero-Servers (api.xero.com). Ja
authenticationType Zulässige Werte sind OAuth_2.0 und OAuth_1.0. Ja
consumerKey Geben Sie für OAuth 2.0 die Client-ID für Ihre Xero-Anwendung an.
Geben Sie für OAuth 1.0 den Consumerschlüssel an, der der Xero-Anwendung zugeordnet ist.
Markieren Sie dieses Feld als einen „SecureString“, um es sicher zu speichern, oder verweisen Sie auf ein in Azure Key Vault gespeichertes Geheimnis.
Ja
privateKey Geben Sie für OAuth 2.0 den geheimen Clientschlüssel für Ihre Xero-Anwendung an.
Geben Sie für OAuth 1.0 den privaten Schlüssel aus der PEM-Datei ein, der für Ihre private Xero-Anwendung generiert wurde. Achten Sie darauf, „privatekey.pem“ mit dem NumBits-Wert 512 mithilfe von openssl genrsa -out privatekey.pem 512 zu generieren – 1.024 wird nicht unterstützt. Schließen Sie gesamten Text der PEM-Datei einschließlich der Unix-Zeilenschaltungen (\n) ein (siehe Beispiel unten).

Markieren Sie dieses Feld als einen „SecureString“, um es sicher zu speichern, oder verweisen Sie auf ein in Azure Key Vault gespeichertes Geheimnis.
Ja
tenantId Die Mandanten-ID, die Ihrer Xero-Anwendung zugeordnet ist. Gilt für die OAuth 2.0-Authentifizierung.
Informationen zum Abrufen der Mandanten-ID finden Sie im Abschnitt Check the tenants you're authorized to access (Überprüfen der Mandanten, denen Zugriff gewährt wurde).
Ja, für die OAuth 2.0-Authentifizierung
refreshToken Gilt für die OAuth 2.0-Authentifizierung.
Das OAuth 2.0-Aktualisierungstoken ist der Xero-Anwendung zugeordnet und wird zum Aktualisieren des Zugriffstokens verwendet. Das Zugriffstoken läuft nach 30 Minuten ab. In diesem Artikel erfahren Sie, wie der Xero-Autorisierungsflow funktioniert und wie Sie das Aktualisierungstoken abrufen. Um ein Aktualisierungstoken zu erhalten, müssen Sie den offline_access-Bereich anfordern.
Bekannte Beschränkung: Beachten Sie, dass Xero das Aktualisierungstoken zurücksetzt, nachdem es zur Aktualisierung des Zugriffstokens verwendet wurde. Bei operationalisierten Workloads müssen Sie vor jeder Ausführung der Copy-Aktivität ein gültiges Aktualisierungstoken festlegen, das der Dienst verwenden kann.
Markieren Sie dieses Feld als einen „SecureString“, um es sicher zu speichern, oder verweisen Sie auf ein in Azure Key Vault gespeichertes Geheimnis.
Ja, für die OAuth 2.0-Authentifizierung
useEncryptedEndpoints Gibt an, ob die Endpunkte der Datenquelle mit HTTPS verschlüsselt sind. Der Standardwert lautet „true“. Nein
useHostVerification Gibt an, ob der Hostname im Zertifikat des Servers mit dem Hostnamen des Servers übereinstimmen muss, wenn eine Verbindung über TLS hergestellt wird. Der Standardwert lautet „true“. Nein
usePeerVerification Gibt an, ob die Identität des Servers überprüft werden soll, wenn eine Verbindung über TLS hergestellt wird. Der Standardwert lautet „true“. Nein

Beispiel: OAuth 2.0-Authentifizierung

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

Beispiel: OAuth 1.0-Authentifizierung

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

Beispiel für den Wert eines privaten Schlüssels:

Schließen Sie gesamten Text der PEM-Datei einschließlich der Unix-Zeilenschaltungen (\n) ein.

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

Dataset-Eigenschaften

Eine vollständige Liste mit den Abschnitten und Eigenschaften, die zum Definieren von Datasets zur Verfügung stehen, finden Sie im Artikel zu Datasets. Dieser Abschnitt enthält eine Liste der Eigenschaften, die vom Xero-Dataset unterstützt werden.

Legen Sie zum Kopieren von Daten aus Xero die „type“-Eigenschaft des Datasets auf XeroObject fest. Folgende Eigenschaften werden unterstützt:

Eigenschaft Beschreibung Erforderlich
type Die type-Eigenschaft des Datasets muss auf folgenden Wert festgelegt werden: XeroObject Ja
tableName Der Name der Tabelle. Nein (wenn „query“ in der Aktivitätsquelle angegeben ist)

Beispiel

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

Eigenschaften der Kopieraktivität

Eine vollständige Liste mit den Abschnitten und Eigenschaften zum Definieren von Aktivitäten finden Sie im Artikel Pipelines. Dieser Abschnitt enthält eine Liste der Eigenschaften, die von der Xero-Quelle unterstützt werden.

Xero als Quelle

Legen Sie zum Kopieren von Daten aus Xero den Quelltyp in der Kopieraktivität auf XeroSource fest. Folgende Eigenschaften werden im Abschnitt source der Kopieraktivität unterstützt:

Eigenschaft Beschreibung Erforderlich
type Die type-Eigenschaft der Quelle der Kopieraktivität muss auf Folgendes festgelegt werden: XeroSource Ja
Abfrage Verwendet die benutzerdefinierte SQL-Abfrage zum Lesen von Daten. Beispiel: "SELECT * FROM Contacts". Nein (wenn „tableName“ im Dataset angegeben ist)

Beispiel:

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

Beachten Sie Folgendes, wenn Sie die Xero-Abfrage angeben:

  • Tabellen mit komplexen Elementen werden in mehrere Tabellen aufgeteilt. Beispielsweise weist die Tabelle zu den Banktransaktionen eine komplexe Datenstruktur „LineItems“ auf, sodass Daten von Banktransaktion den Tabellen Bank_Transaction und Bank_Transaction_Line_Items mit Bank_Transaction_ID als Fremdschlüssel zugeordnet werden, um sie miteinander verknüpfen.

  • Xero-Daten sind über zwei Schemas verfügbar: Minimal (Standardeinstellung) und Complete. Das gesamte Schema enthält erforderliche Aufruftabellen, die zusätzliche Daten (z.B. eine ID-Spalte) erfordern, bevor Sie die gewünschte Abfrage vornehmen können.

Die folgenden Tabellen enthalten die gleichen Informationen im Schema „Minimal“ und „Complete“. Verwenden Sie zum Verringern der Anzahl der API-Aufrufe das Schema „Minimal“ (Standardeinstellung).

  • Bank_Transactions
  • Contact_Groups
  • Kontakte
  • Contacts_Sales_Tracking_Categories
  • Contacts_Phones
  • Contacts_Addresses
  • Contacts_Purchases_Tracking_Categories
  • Credit_Notes
  • Credit_Notes_Allocations
  • Expense_Claims
  • Expense_Claim_Validation_Errors
  • Invoices
  • Invoices_Credit_Notes
  • Invoices_Prepayments
  • Invoices_Overpayments
  • Manual_Journals
  • Overpayments
  • Overpayments_Allocations
  • Prepayments
  • Overpayments_Allocations
  • Receipts
  • Receipt_Validation_Errors
  • Tracking_Categories

Die folgenden Tabellen können nur mit dem Schema „Complete“ abgefragt werden:

  • 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

Eigenschaften der Lookup-Aktivität

Ausführliche Informationen zu den Eigenschaften finden Sie unter Lookup-Aktivität.

Eine Liste der von der Kopieraktivität unterstützten Datenspeicher finden Sie unter Unterstützte Datenspeicher.