你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure 数据工厂或 Azure Synapse Analytics 从 QuickBooks Online 复制数据

适用于: Azure 数据工厂 Azure Synapse Analytics

提示

试用 Microsoft Fabric 中的数据工厂,这是一种适用于企业的一站式分析解决方案。 Microsoft Fabric 涵盖了从数据移动到数据科学、实时分析、商业智能和报告的所有内容。 了解如何免费开始新的试用

本文概述了如何使用 Azure 数据工厂或 Azure Synapse Analytics 管道中的复制活动从 QuickBooks Online 复制数据。 它基于 有关复制活动的概述文章

重要

QuickBooks 连接器版本 1.0 处于 删除阶段。 建议将 QuickBooks 连接器 从版本 1.0 升级到 2.0。

支持的功能

以下功能由 QuickBooks 连接器支持:

支持的功能 IR
复制活动(源/-) (1) (2)
Lookup 活动 (1) (2)

① Azure 集成运行时 ② 自承载集成运行时

有关作为源或接收器支持的数据存储的列表,请参阅 支持的数据存储

连接器支持 QuickBooks OAuth 2.0 身份验证。

入门

若要使用管道执行复制活动,可以使用以下工具或 SDK 之一:

使用 UI 创建到 QuickBooks 的链接服务

  1. Azure 门户中,转到 Azure 数据工厂或 Azure Synapse 工作区。

  2. 转到“ 管理 ”选项卡,选择 “链接服务”,然后选择“ 新建”。

  3. 搜索 QuickBooks,然后选择 QuickBooks 连接器。

    QuickBooks 连接器搜索结果的屏幕截图。

  4. 配置服务详细信息,测试连接,然后创建新的链接服务。

    QuickBooks 链接服务配置的窗格的屏幕截图。

连接器配置详细信息

可利用属性来定义特定于 QuickBooks 连接器的数据工厂实体。

链接服务属性

QuickBooks 连接器现在支持版本 2.0。 若要将 QuickBooks 连接器从版本 1.0 升级到版本 2.0,请参阅 本文后面的过程。 以下部分介绍这两个版本的属性详细信息。

版本 2.0

QuickBooks 链接服务支持连接器版本 2.0 的以下属性:

properties 说明 必选
type 链接服务的类型。 它必须设置为 QuickBooks
version 指定的版本。 该值为 2.0
endpoint QuickBooks Online 服务器的终结点。 该值为 quickbooks.api.intuit.com
companyId QuickBooks 公司授权的公司 ID。 有关如何查找公司 ID 的信息,请参阅 QuickBooks Online 帮助主题
consumerKey 用于 OAuth 2.0 身份验证的 QuickBooks Online 应用程序的客户端 ID。 了解详细信息
consumerSecret 用于 OAuth 2.0 身份验证的 QuickBooks Online 应用程序的客户端密码。 将此字段 SecureString 标记为安全存储,或 引用存储在 Azure Key Vault 中的机密
refreshToken 与 QuickBooks 应用程序关联的 OAuth 2.0 刷新令牌。 了解详细信息。 将此字段 SecureString 标记为安全存储,或 引用存储在 Azure Key Vault 中的机密

刷新令牌会在 180 天后过期,因此客户需要定期更新它。

下面是一个示例:

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

版本 1.0

QuickBooks 链接服务支持连接器版本 1.0 的以下属性:

properties 说明 必选
type 链接服务的类型。 它必须设置为 QuickBooks
connectionProperties 定义如何连接到 QuickBooks 的一组属性。
connectionProperties
endpoint QuickBooks Online 服务器的终结点。 该值为 quickbooks.api.intuit.com
companyId QuickBooks 公司授权的公司 ID。 有关如何查找公司 ID 的信息,请参阅 QuickBooks Online 帮助主题
consumerKey 用于 OAuth 2.0 身份验证的 QuickBooks Online 应用程序的客户端 ID。 了解详细信息
consumerSecret 用于 OAuth 2.0 身份验证的 QuickBooks Online 应用程序的客户端密码。 将此字段 SecureString 标记为安全存储,或 引用存储在 Azure Key Vault 中的机密
refreshToken 与 QuickBooks 应用程序关联的 OAuth 2.0 刷新令牌。 了解详细信息。 将此字段 SecureString 标记为安全存储,或 引用存储在 Azure Key Vault 中的机密

刷新令牌会在 180 天后过期,因此客户需要定期更新它。
useEncryptedEndpoints 指定是否通过 HTTPS 加密数据源终结点。 默认值为 true

下面是一个示例:

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

处理链接服务的刷新令牌

在链接服务中使用 QuickBooks Online 连接器时,必须正确管理 QuickBooks 中的 OAuth 2.0 刷新令牌。

链接服务使用刷新令牌来获取新的访问令牌。 但是,QuickBooks Online 会定期更新刷新令牌。 此操作使上一个令牌失效。

链接服务不会自动更新 Azure Key Vault 中的刷新令牌,因此需要管理更新刷新令牌以确保不间断的连接。 否则,刷新令牌过期后可能会遇到身份验证失败。

可以根据 QuickBooks Online 关于刷新令牌过期的策略,在 Azure Key Vault 中手动更新刷新令牌。 另一种方法是使用计划任务或 Azure 函数 自动执行更新,该函数检查新的刷新令牌并在 Azure Key Vault 中更新。

数据集属性

有关用于定义数据集的可用部分和属性的完整列表,请参阅 Azure 数据工厂和 Azure Synapse Analytics 中的数据集

若要从 QuickBooks Online 复制数据,请将 type 数据集的属性设置为 QuickBooksObject。 QuickBooks 数据集支持以下属性:

properties 说明 必选
type 数据集的类型。 它必须设置为 QuickBooksObject
tableName 表的名称。 否(如果在活动源 query 中指定)

下面是一个示例:

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

连接器版本 2.0 支持以下 QuickBooks 表:

  • 帐户
  • 可附加
  • Attachable_AttachableRef
  • Attachable_AttachableRef_CustomField
  • Bill
  • BillPayment_Line
  • BillPayment_Line_LinkedTxn
  • Bill_Account_Based_Expense_Line
  • Bill_Item_Based_Expense_Line
  • Bill_LinkedTxn
  • 账单支付
  • Bill_TxnTaxDetail_TaxLine
  • 预算
  • 预算_细节
  • Class
  • CompanyCurrency_CustomField
  • 公司信息_名称值
  • 公司_货币
  • 公司_信息
  • 信用卡支付
  • CreditMemo_CustomField
  • 贷项凭证_描述_行
  • CreditMemo_Discount_Line
  • CreditMemo_Group_Individual_Item_Line
  • CreditMemo_Group_Item_Line
  • CreditMemo_Sales_Item_Line
  • CreditMemo_Subtotal_Line
  • CreditMemo_TxnTaxDetail_TaxLine
  • 贷项通知单
  • 客户
  • 客户类型
  • Department
  • 存款
  • Deposit_CustomField
  • Deposit_Line
  • Deposit_Line_CustomField
  • 存款关联交易明细
  • Deposit_Linked_Transaction_Line
  • Deposit_TxnTaxDetail_TaxLine
  • 员工
  • 预估
  • Estimate_CustomField
  • Estimate_Description_Line
  • 估算_折扣_线
  • Estimate_Group_Individual_Item_Line
  • Estimate_Group_Item_Line
  • Estimate_LinkedTxn
  • Estimate_Sales_Item_Line
  • Estimate_Subtotal_Line
  • Estimate_TxnTaxDetail_TaxLine
  • Invoice
  • 发票_自定义字段
  • 发票描述行
  • Invoice_Discount_Line
  • Invoice_Group_Individual_Item_Line
  • Invoice_Group_Item_Line
  • Invoice_LinkedTxn
  • Invoice_Sales_Item_Line
  • Invoice_Subtotal_Line
  • Invoice_TxnTaxDetail_TaxLine
  • Item
  • JournalCode_自定义字段
  • 日志条目_描述_行
  • JournalEntry_Line
  • JournalEntry_TxnTaxDetail_TaxLine
  • 期刊代码
  • 日志条目
  • 付款
  • Payment_Line
  • Payment_Line_LinkedTxn
  • 支付方式
  • Preferences
  • 偏好设置_销售表单偏好_自定义字段
  • Preferences_OtherPrefs_NameValue
  • 首选项_供应商和采购首选项_PO自定义字段
  • 购买
  • Purchase_Account_Based_Expense_Line
  • Purchase_Item_Based_Expense_Line
  • Purchase_TxnTaxDetail_TaxLine
  • 采购订单
  • 采购订单_自定义字段
  • PurchaseOrder_Account_Based_Expense_Line
  • PurchaseOrder_Item_Based_Expense_Line
  • PurchaseOrder_LinkedTxn
  • PurchaseOrder_TxnTaxDetail_TaxLine
  • 定期交易
  • 重复交易条目
  • 退款收据_自定义字段
  • 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
  • 退款收据
  • ReimburseCharge
  • ReimburseCharge_Line
  • 销售收据_自定义字段
  • 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
  • 销售收据
  • 税务分类
  • 税法代码_采购税率列表_税率详情
  • TaxCode_销售税率列表_税率详情 (TaxCode_SalesTaxRateList_TaxRateDetail)
  • 税务机构
  • 税收代码
  • 税率
  • 术语
  • 时间_活动
  • 传输
  • 供应商
  • VendorCredit_Account_Based_Expense_Line
  • VendorCredit_Item_Based_Expense_Line
  • 供应商信用

复制活动属性

有关可用于定义活动的节和属性的完整列表,请参阅 Azure 数据工厂和 Azure Synapse Analytics 中的管道和活动。 本部分提供 QuickBooks 源支持的属性列表。

QuickBooks 作为源

若要从 QuickBooks Online 复制数据,请将复制活动中的源类型设置为 QuickBooksSource。 QuickBooks 数据集支持复制活动 source 部分中的以下属性:

properties 说明 必选
type 复制活动源的类型。 它必须设置为 QuickBooksSource
query 使用自定义 SQL 查询读取数据。

对于 QuickBooks 连接器 2.0 版本,只能使用 QuickBooks 本机查询且存在限制。 有关详细信息,请参阅 Intuit 开发人员网站上的 查询作和语法

对于 QuickBooks 连接器版本 1.0,可以使用 SQL-92 查询。 例如:"SELECT * FROM "Bill" WHERE Id = '123'"
否(如果在数据集tableName中进行了指定)

下面是一个示例:

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

有关用于定义活动的可用部分和属性的完整列表,请参阅 Azure 数据工厂和 Azure Synapse Analytics 中的管道和活动

从 QuickBooks Desktop 复制数据

服务中的复制活动无法直接从 QuickBooks Desktop 复制数据。 若要从 QuickBooks Desktop 复制数据,请将 QuickBooks 数据导出到逗号分隔值(CSV)文件,然后将该文件上传到 Azure Blob 存储。 从该存储中,可以使用服务将数据复制到所选的接收器。

对 QuickBooks 进行数据类型映射

从 QuickBooks 复制数据时,以下映射适用于从 QuickBooks 数据类型到服务使用的内部数据类型。 若要了解复制活动如何将源架构和数据类型映射到接收器,请参阅 复制活动中的架构和数据类型映射

QuickBooks 数据类型 临时服务数据类型(适用于版本 2.0) 临时服务数据类型(适用于版本 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

“查找”活动属性

有关查找活动属性的详细信息,请参阅 Azure 数据工厂和 Azure Synapse Analytics 中的查找活动

Quickbooks 连接器生命周期和升级

下表汇总了有关 QuickBooks 连接器版本的信息:

版本 发布阶段 更改日志
1.0 Removed 不適用。
2.0 正式版 支持 QuickBooks 本机查询,但存在限制。 GROUP BY子句、JOIN子句和聚合函数(AvgMaxSum)不支持。 有关详细信息,请参阅 Intuit 开发人员网站上的 查询作和语法

不支持 SQL-92 查询。

不支持该 useEncryptedEndpoints 属性。

支持特定的 Quickbooks 数据库表。 对于支持的表列表,请转到 “数据集”属性

将 Quickbooks 连接器从版本 1.0 升级到版本 2.0

  1. 在 Azure 门户中,转到 Azure 数据工厂或 Azure Synapse 工作区。

  2. 转到“ 管理 ”选项卡,选择 “链接服务”,然后选择“ 编辑 ”链接服务。

  3. “编辑链接服务 ”窗格中,为版本选择 2.0 。 有关详细信息,请参阅本文前面的 版本 2.0 的链接服务属性

  4. 如果在复制活动的源或查找活动中使用引用版本1.0的链接服务的SQL查询,则需要将其转换为QuickBooks原生查询。 通过本文前面的复制活动属性以及 Intuit 开发者网站上的查询操作和语法详细了解本机查询。

  5. 请注意,版本 2.0 支持特定的 Quickbooks 表。 对于支持的表列表,请转到 “数据集”属性