Partager via


Copier des données à partir de QuickBooks Online à l’aide d’Azure Data Factory ou d’Azure Synapse Analytics

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics

Conseil

Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, la business intelligence et le reporting. Découvrez comment démarrer un nouvel essai gratuitement !

Cet article explique comment utiliser l’activité de copie dans un pipeline Azure Data Factory ou Azure Synapse Analytics pour copier des données à partir de QuickBooks Online. Il s’appuie sur l’article de vue d’ensemble sur l’activité de copie.

Important

Le connecteur QuickBooks version 1.0 est à l’étape de suppression. Vous êtes recommandé de mettre à niveau le connecteur QuickBooks de la version 1.0 vers la version 2.0.

Fonctionnalités prises en charge

Le connecteur QuickBooks est pris en charge pour les fonctionnalités suivantes :

Fonctionnalités prises en charge IR
Activité de copie (source/-) (1) (2)
Activité de recherche (1) (2)

① Runtime d’intégration Azure ② Runtime d’intégration auto-hébergé

Pour obtenir la liste des magasins de données pris en charge en tant que sources ou récepteurs, consultez magasins de données pris en charge.

Le connecteur prend en charge l’authentification OAuth 2.0 de QuickBooks.

Prise en main

Pour effectuer l’activité de copie avec un pipeline, vous pouvez utiliser l’un des outils ou kits sdk suivants :

Créer un service lié à QuickBooks à l’aide de l’interface utilisateur

  1. Dans le portail Azure, accédez à votre espace de travail Azure Data Factory ou Azure Synapse.

  2. Accédez à l’onglet Gérer , sélectionnez Services liés, puis Sélectionnez Nouveau.

  3. Recherchez QuickBooks, puis sélectionnez le connecteur QuickBooks.

    Capture d’écran des résultats de recherche pour le connecteur QuickBooks.

  4. Configurez les informations du service, testez la connexion et créez le nouveau service lié.

    Capture d’écran du volet pour la configuration du service lié pour QuickBooks.

Détails de configuration du connecteur

Vous utilisez des propriétés pour définir des entités Data Factory spécifiques au connecteur QuickBooks.

Propriétés du service lié

Le connecteur QuickBooks prend désormais en charge la version 2.0. Pour mettre à niveau votre connecteur QuickBooks de la version 1.0 vers la version 2.0, reportez-vous à la procédure décrite plus loin dans cet article. Les sections suivantes décrivent les détails de la propriété pour les deux versions.

Version 2.0

Le service lié QuickBooks prend en charge les propriétés suivantes pour le connecteur version 2.0 :

Propriété Description Obligatoire
type Type du service lié. Elle doit être définie sur QuickBooks. Oui
version Version que vous spécifiez. La valeur est 2.0. Oui
endpoint Le point de terminaison du serveur QuickBooks Online. La valeur est quickbooks.api.intuit.com. Oui
companyId L’ID de la société QuickBooks à autoriser. Pour plus d’informations sur la recherche de l’ID d’entreprise, consultez la rubrique d’aide de QuickBooks Online. Oui
consumerKey ID client de votre application QuickBooks Online pour l’authentification OAuth 2.0. En savoir plus. Oui
consumerSecret Clé secrète client de votre application QuickBooks Online pour l’authentification OAuth 2.0. Marquez ce champ pour SecureString le stocker en toute sécurité ou référencez un secret stocké dans Azure Key Vault. Oui
refreshToken Jeton d’actualisation OAuth 2.0 associé à l’application QuickBooks. En savoir plus. Marquez ce champ pour SecureString le stocker en toute sécurité ou référencez un secret stocké dans Azure Key Vault.

Le jeton d’actualisation expire après 180 jours. Les clients doivent donc le mettre à jour régulièrement.
Oui

Voici un exemple :

{
    "name": "QuickBooksLinkedService",
    "properties": {
        "type": "QuickBooks",
        "version": "2.0",
        "typeProperties": {
            "endpoint": "quickbooks.api.intuit.com",
            "companyId": "<company id>",
            "consumerKey": "<consumer key>", 
            "consumerSecret": {
                 "type": "SecureString",
                 "value": "<clientSecret>"
            },
            "refreshToken": {
                "type": "SecureString",
                "value": "<refresh token>"
            }
        }
    }
}

Version 1.0

Le service lié QuickBooks prend en charge les propriétés suivantes pour le connecteur version 1.0 :

Propriété Description Obligatoire
type Type du service lié. Elle doit être définie sur QuickBooks. Oui
connectionProperties Groupe de propriétés qui définissent comment se connecter à QuickBooks. Oui
Sous connectionProperties:
endpoint Le point de terminaison du serveur QuickBooks Online. La valeur est quickbooks.api.intuit.com. Oui
companyId L’ID de la société QuickBooks à autoriser. Pour plus d’informations sur la recherche de l’ID d’entreprise, consultez la rubrique d’aide de QuickBooks Online. Oui
consumerKey ID client de votre application QuickBooks Online pour l’authentification OAuth 2.0. En savoir plus. Oui
consumerSecret Clé secrète client de votre application QuickBooks Online pour l’authentification OAuth 2.0. Marquez ce champ pour SecureString le stocker en toute sécurité ou référencez un secret stocké dans Azure Key Vault. Oui
refreshToken Jeton d’actualisation OAuth 2.0 associé à l’application QuickBooks. En savoir plus. Marquez ce champ pour SecureString le stocker en toute sécurité ou référencez un secret stocké dans Azure Key Vault.

Le jeton d’actualisation expire après 180 jours. Les clients doivent donc le mettre à jour régulièrement.
Oui
useEncryptedEndpoints Spécifie si les points de terminaison de source de données sont chiffrés via HTTPS. La valeur par défaut est true. Non

Voici un exemple :

{
    "name": "QuickBooksLinkedService",
    "properties": {
        "type": "QuickBooks",
        "typeProperties": {
            "connectionProperties": {
                "endpoint": "quickbooks.api.intuit.com",
                "companyId": "<company id>",
                "consumerKey": "<consumer key>", 
                "consumerSecret": {
                     "type": "SecureString",
                     "value": "<clientSecret>"
              },
                "refreshToken": {
                     "type": "SecureString",
                     "value": "<refresh token>"
              },
                "useEncryptedEndpoints": true
            }
        }
    }
}

Gestion des jetons d’actualisation pour le service lié

Lorsque vous utilisez le connecteur QuickBooks Online dans un service lié, il est important de gérer correctement les jetons d’actualisation OAuth 2.0 à partir de QuickBooks.

Le service lié utilise un jeton d’actualisation pour obtenir de nouveaux jetons d’accès. Toutefois, QuickBooks Online met régulièrement à jour le jeton d’actualisation. Cette action invalide le jeton précédent.

Le service lié ne met pas automatiquement à jour le jeton d’actualisation dans Azure Key Vault. Vous devez donc gérer la mise à jour du jeton d’actualisation pour garantir une connectivité ininterrompue. Sinon, vous pouvez rencontrer des échecs d’authentification après l’expiration du jeton d’actualisation.

Vous pouvez mettre à jour manuellement le jeton d’actualisation dans Azure Key Vault en fonction de la stratégie QuickBooks Online pour l’expiration des jetons d’actualisation. Une autre approche consiste à automatiser les mises à jour à l’aide d’une tâche planifiée ou d’une fonction Azure qui recherche un nouveau jeton d’actualisation et les met à jour dans Azure Key Vault.

Propriétés du jeu de données

Pour obtenir la liste complète des sections et propriétés disponibles pour définir des jeux de données, consultez Jeux de données dans Azure Data Factory et Azure Synapse Analytics.

Pour copier des données à partir de QuickBooks Online, définissez la propriété type du jeu de données sur QuickBooksObject. Le jeu de données QuickBooks prend en charge les propriétés suivantes :

Propriété Description Obligatoire
type Type du jeu de données. Elle doit être définie sur QuickBooksObject. Oui
tableName Nom de la table. Non (si query dans la source d’activité est spécifiée)

Voici un exemple :

{
    "name": "QuickBooksDataset",
    "properties": {
        "type": "QuickBooksObject",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<QuickBooks linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Le connecteur version 2.0 prend en charge les tableaux QuickBooks suivants :

  • Compte
  • Attachable
  • Attachable_AttachableRef
  • Attachable_AttachableRef_CustomField
  • Bill
  • BillPayment_Line
  • BillPayment_Line_LinkedTxn
  • Bill_Account_Based_Expense_Line
  • Ligne_de_Dépense_Basée_sur_l'Article_de_Facture
  • Bill_LinkedTxn
  • Paiement_de_facture
  • Bill_TxnTaxDetail_TaxLine
  • Budget
  • Budget_Detail
  • classe
  • CompanyCurrency_CustomField
  • CompanyInfo_NameValue
  • Entreprise_Monnaie
  • Company_Info
  • PaiementParCarteDeCrédit
  • CreditMemo_CustomField
  • CreditMemo_Description_Line
  • CreditMemo_Discount_Line
  • CreditMemo_Group_Individual_Item_Line
  • CreditMemo_Group_Item_Line
  • CreditMemo_Sales_Item_Line
  • CreditMemo_Subtotal_Line
  • CreditMemo_TxnTaxDetail_TaxLine
  • Note_de_Crédit
  • Client
  • CustomerType
  • Département
  • Deposit
  • Deposit_CustomField
  • Ligne de dépôt
  • Deposit_Line_CustomField
  • Deposit_Linked_Transaction_Detail
  • Ligne_de_Transaction_Liée_au_Dépôt
  • Deposit_TxnTaxDetail_TaxLine
  • Employé
  • Estimation
  • Estimate_CustomField
  • Estimate_Description_Line
  • Estimate_Discount_Line
  • Estimate_Group_Individual_Item_Line
  • Estimate_Group_Item_Line
  • Estimate_LinkedTxn
  • Estimate_Sales_Item_Line
  • Estimate_Subtotal_Line
  • Estimate_TxnTaxDetail_TaxLine
  • Facture
  • Invoice_CustomField
  • Ligne de description de facture
  • Invoice_Discount_Line
  • Invoice_Group_Individual_Item_Line
  • Invoice_Group_Item_Line
  • Invoice_LinkedTxn
  • Invoice_Sales_Item_Line
  • Invoice_Subtotal_Line
  • Invoice_TxnTaxDetail_TaxLine
  • Élément
  • JournalCode_CustomField
  • JournalEntry_Description_Line
  • Ligne_EntréeDuJournal
  • JournalEntry_TxnTaxDetail_TaxLine
  • Journal_Code
  • Entrée_du_journal
  • Paiement
  • Ligne_de_Paiement
  • Payment_Line_LinkedTxn
  • Méthode de paiement
  • Preferences
  • Preferences_SalesFormsPrefs_CustomField
  • Preferences_OtherPrefs_NameValue
  • Preferences_VendorAndPurchasesPrefs_POCustomField
  • Achats
  • Ligne_De_Dépense_Basée_Sur_Compte_Achat
  • Ligne_Dépense_Basée_sur_Article_Acheté
  • Purchase_TxnTaxDetail_TaxLine
  • Bon_de_Commande
  • PurchaseOrder_CustomField
  • PurchaseOrder_Account_Based_Expense_Line
  • Ligne_de_dépense_basée_sur_article_de_commande_d'achat
  • PurchaseOrder_LinkedTxn
  • PurchaseOrder_TxnTaxDetail_TaxLine
  • Transaction Récurrente
  • LignesDeTransactionRécurrentes
  • RefundReceipt_CustomField
  • RefundReceipt_Description_Line
  • RefundReceipt_Discount_Line
  • RefundReceipt_Group_Individual_Item_Line
  • RefundReceipt_Group_Item_Line
  • RefundReceipt_Sales_Item_Line
  • RefundReceipt_Subtotal_Line
  • RefundReceipt_TxnTaxDetail_TaxLine
  • Reçu de remboursement
  • ReimburseCharge
  • ReimburseCharge_Line
  • SalesReceipt_CustomField
  • SalesReceipt_Description_Line
  • SalesReceipt_Discount_Line
  • SalesReceipt_Group_Individual_Item_Line
  • SalesReceipt_Group_Item_Line
  • SalesReceipt_Sales_Item_Line
  • SalesReceipt_Subtotal_Line
  • SalesReceipt_TxnTaxDetail_TaxLine
  • Reçu_de_vente
  • TaxClassification
  • TaxCode_PurchaseTaxRateList_TaxRateDetail
  • TaxCode_SalesTaxRateList_TaxRateDetail
  • Tax_Agency
  • Tax_Code
  • Taux_d'imposition
  • Terme
  • Time_Activity
  • Transférer
  • Fournisseur
  • VendorCredit_Account_Based_Expense_Line
  • VendorCredit_Item_Based_Expense_Line
  • Crédit_fournisseur

Propriétés de l’activité de copie

Pour obtenir la liste complète des sections et propriétés disponibles pour définir des activités, consultez Pipelines et activités dans Azure Data Factory et Azure Synapse Analytics. Cette section fournit la liste des propriétés prises en charge par la source QuickBooks.

QuickBooks en tant que source

Pour copier des données à partir de QuickBooks Online, définissez le type de source dans l’activité de copie sur QuickBooksSource. Le jeu de données QuickBooks prend en charge les propriétés suivantes dans la section source de l’activité Copy :

Propriété Description Obligatoire
type Type de la source d’activité de copie. Elle doit être définie sur QuickBooksSource. Oui
query Utiliser la requête SQL personnalisée pour lire les données.

Pour la version 2.0 du connecteur QuickBooks, vous pouvez utiliser uniquement la requête native QuickBooks, avec des limitations. Pour plus d’informations, consultez Opérations de requête et syntaxe sur le site Développeur Intuit.

Pour la version 1.0 du connecteur QuickBooks, vous pouvez utiliser la requête SQL-92. Par exemple : "SELECT * FROM "Bill" WHERE Id = '123'".
Non (si tableName dans le jeu de données est spécifié)

Voici un exemple :

"activities":[
    {
        "name": "CopyFromQuickBooks",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<QuickBooks input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "QuickBooksSource",
                "query": "SELECT * FROM \"Bill\" WHERE Id = '123' "
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Pour obtenir la liste complète des sections et propriétés disponibles pour la définition d’activités, consultez Pipelines et activités dans Azure Data Factory et Azure Synapse Analytics.

Copier des données à partir de QuickBooks Desktop

L’activité de copie dans le service ne peut pas copier les données directement à partir de QuickBooks Desktop. Pour copier des données à partir de QuickBooks Desktop, exportez vos données QuickBooks vers un fichier de valeurs séparées par des virgules (CSV), puis chargez le fichier dans Stockage Blob Azure. À partir de là, vous pouvez utiliser le service pour copier les données vers le récepteur de votre choix.

Mappage de type de données pour Quickbooks

Lorsque vous copiez des données à partir de QuickBooks, les mappages suivants s’appliquent des types de données QuickBooks aux types de données internes que le service utilise. Pour découvrir comment l’activité Copy mappe le schéma et le type de données la source au récepteur, consultez Mappage de schéma et de type de données dans l’activité Copy.

Type de données QuickBooks Type de données de service intermédiaire (pour la version 2.0) Type de données de service intermédiaire (pour la version 1.0)
String string string
Boolean bool bool
DateTime datetime datetime
Decimal decimal (15,2) decimal (15, 2)
Enum string string 
Date datetime datetime
BigDecimal  decimal (15,2) decimal (15, 2)
Integer int int

Propriétés de l’activité Lookup

Pour plus d’informations sur les propriétés de l’activité de recherche, consultez l’activité Recherche dans Azure Data Factory et Azure Synapse Analytics.

Cycle de vie et mise à niveau du connecteur Quickbooks

Le tableau suivant récapitule les informations sur les versions du connecteur QuickBooks :

Version Phase de mise en production Journal des modifications
1,0 Removed Non applicable.
2.0 Disponibilité générale La requête native QuickBooks est prise en charge, avec des limitations. Les clauses GROUP BY et JOIN, et les fonctions d’agrégation (Avg, Max, Sum) ne sont pas prises en charge. Pour plus d’informations, consultez Opérations de requête et syntaxe sur le site Développeur Intuit.

La requête SQL-92 n’est pas prise en charge.

La useEncryptedEndpoints propriété n’est pas prise en charge.

Prendre en charge des tables QuickBooks spécifiques. Pour la liste de tables prise en charge, accédez aux propriétés du jeu de données.

Mettre à niveau le connecteur Quickbooks de la version 1.0 vers la version 2.0

  1. Dans le portail Azure, accédez à votre espace de travail Azure Data Factory ou Azure Synapse.

  2. Accédez à l’onglet Gérer , sélectionnez Services liés, puis sélectionnez Modifier pour le service lié.

  3. Dans le volet Modifier le service lié , sélectionnez 2.0 pour la version. Pour plus d’informations, consultez les propriétés du service lié pour la version 2.0 plus haut dans cet article.

  4. Si vous utilisez une requête SQL dans la source d’activité de copie ou l’activité de recherche qui fait référence au service lié version 1.0, vous devez la convertir en requête native QuickBooks. En savoir plus sur la requête native à partir des propriétés d’activité de copie plus haut dans cet article, ainsi que sur les opérations de requête et la syntaxe sur le site développeur Intuit.

  5. Notez que la version 2.0 prend en charge des tables Quickbooks spécifiques. Pour la liste de tables prise en charge, accédez aux propriétés du jeu de données.