适用于:
Azure 数据工厂
Azure Synapse Analytics
本文概述了如何使用 Azure 数据工厂或 Azure Synapse Analytics 管道中的复制活动从 QuickBooks Online 复制数据。 它基于 有关复制活动的概述文章。
重要
QuickBooks 连接器版本 1.0 处于 删除阶段。 建议将 QuickBooks 连接器 从版本 1.0 升级到 2.0。
支持的功能
以下功能由 QuickBooks 连接器支持:
| 支持的功能 | IR |
|---|---|
| 复制活动(源/-) | (1) (2) |
| 查找活动 | (1) (2) |
① Azure 集成运行时 ② 自承载集成运行时
有关作为源或接收器支持的数据存储的列表,请参阅 支持的数据存储。
连接器支持 QuickBooks OAuth 2.0 身份验证。
入门指南
若要使用管道执行复制活动,可以使用以下工具或 SDK 之一:
使用 UI 创建到 QuickBooks 的链接服务
在 Azure 门户中,转到 Azure 数据工厂或 Azure Synapse 工作区。
转到“ 管理 ”选项卡,选择 “链接服务”,然后选择“ 新建”。
搜索 QuickBooks,然后选择 QuickBooks 连接器。
配置服务详细信息、测试连接并创建新的链接服务。
连接器配置详细信息
利用属性来定义 QuickBooks 连接器中数据工厂的实体。
链接服务属性
QuickBooks 连接器现在支持版本 2.0。 若要将 QuickBooks 连接器从版本 1.0 升级到版本 2.0,请参阅 本文后面的过程。 以下部分介绍这两个版本的属性详细信息。
版本 2.0
QuickBooks 链接服务支持连接器版本 2.0 的以下属性:
| Property | Description | Required |
|---|---|---|
type |
链接服务的类型。 它必须设置为 QuickBooks。 |
Yes |
version |
指定的版本。 该值为 2.0。 |
Yes |
endpoint |
QuickBooks Online 服务器的终结点。 该值为 quickbooks.api.intuit.com。 |
Yes |
companyId |
QuickBooks 公司授权的公司 ID。 有关如何查找公司 ID 的信息,请参阅 QuickBooks Online 帮助主题。 | Yes |
consumerKey |
用于 OAuth 2.0 身份验证的 QuickBooks Online 应用程序的客户端 ID。 了解详细信息。 | Yes |
consumerSecret |
用于 OAuth 2.0 身份验证的 QuickBooks Online 应用程序的客户端密码。 将此字段 SecureString 标记为安全存储,或 引用存储在 Azure Key Vault 中的机密。 |
Yes |
refreshToken |
与 QuickBooks 应用程序关联的 OAuth 2.0 刷新令牌。
了解详细信息。 将此字段 SecureString 标记为安全存储,或 引用存储在 Azure Key Vault 中的机密。 刷新令牌会在 180 天后过期,因此客户需要定期更新它。 |
Yes |
下面是一个示例:
{
"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 的以下属性:
| Property | Description | Required |
|---|---|---|
type |
链接服务的类型。 它必须设置为 QuickBooks。 |
Yes |
connectionProperties |
定义如何连接到 QuickBooks 的一组属性。 | Yes |
在 connectionProperties: |
||
endpoint |
QuickBooks Online 服务器的终结点。 该值为 quickbooks.api.intuit.com。 |
Yes |
companyId |
QuickBooks 公司授权的公司 ID。 有关如何查找公司 ID 的信息,请参阅 QuickBooks Online 帮助主题。 | Yes |
consumerKey |
用于 OAuth 2.0 身份验证的 QuickBooks Online 应用程序的客户端 ID。 了解详细信息。 | Yes |
consumerSecret |
用于 OAuth 2.0 身份验证的 QuickBooks Online 应用程序的客户端密码。 将此字段 SecureString 标记为安全存储,或 引用存储在 Azure Key Vault 中的机密。 |
Yes |
refreshToken |
与 QuickBooks 应用程序关联的 OAuth 2.0 刷新令牌。
了解详细信息。 将此字段 SecureString 标记为安全存储,或 引用存储在 Azure Key Vault 中的机密。 刷新令牌会在 180 天后过期,因此客户需要定期更新它。 |
Yes |
useEncryptedEndpoints |
指定是否通过 HTTPS 加密数据源终结点。 默认值为 true。 |
No |
下面是一个示例:
{
"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 数据集支持以下属性:
| Property | Description | Required |
|---|---|---|
type |
数据集的类型。 它必须设置为 QuickBooksObject。 |
Yes |
tableName |
表的名称。 | 否(如果在活动源 query 中指定) |
下面是一个示例:
{
"name": "QuickBooksDataset",
"properties": {
"type": "QuickBooksObject",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<QuickBooks linked service name>",
"type": "LinkedServiceReference"
}
}
}
连接器版本 2.0 支持以下 QuickBooks 表:
- 帐户
- 可附加
- Attachable_AttachableRef
- 可附加_可附加引用_自定义字段
- Bill
- 账单支付_行
- 账单支付_线路_关联交易
- 账单_账户_基础_费用_行
- 基于项目的账单费用行
- Bill_LinkedTxn
- 账单支付
- Bill_TxnTaxDetail_TaxLine
- 预算
- 预算_细节
- Class
- CompanyCurrency_CustomField
- 公司信息_名称值
- 公司_货币
- 公司_信息
- 信用卡支付
- CreditMemo_CustomField
- 贷项凭证_描述_行
- 信用单_折扣_行
- 信用凭证_组_单项_条目_行
- 信用票据_组_项目_行
- CreditMemo_Sales_Item_Line
- 信用备忘录_小计_行
- CreditMemo_TxnTaxDetail_TaxLine
- 贷项通知单
- 客户
- 客户类型
- Department
- 存款
- 存款_自定义字段
- Deposit_Line
- 定金_行_自定义字段
- 存款关联交易明细
- 存款_关联_交易_行
- Deposit_TxnTaxDetail_TaxLine
- 员工
- 预估
- 估算_自定义字段
- 估算_描述_行
- 估算_折扣_线
- 估算_组_个体_项目_行
- 估算组项目行
- Estimate_LinkedTxn
- 估算_销售_项目_行
- 估算_小计_行
- Estimate_TxnTaxDetail_TaxLine
- Invoice
- 发票_自定义字段
- 发票描述行
- 发票_折扣_行
- 发票_组_个人_项目_行
- 发票_组_项目_行
- 发票_关联交易
- 发票_销售_项目_行
- 发票小计行
- 发票_交易税细节_税行 (Invoice_TxnTaxDetail_TaxLine)
- Item
- JournalCode_自定义字段
- 日志条目_描述_行
- 日记账条目_行
- JournalEntry_TxnTaxDetail_TaxLine
- 期刊代码
- 日志条目
- 付款
- 支付_线路
- 支付_行_关联交易
- 支付方式
- Preferences
- 偏好设置_销售表单偏好_自定义字段
- Preferences_OtherPrefs_NameValue
- 首选项_供应商和采购首选项_PO自定义字段
- 购买
- 采购基于账户的费用行
- 采购_基于项目_费用_行
- 采购_交易税细节_税行
- 采购订单
- 采购订单_自定义字段
- 采购订单_按账户_费用_线条
- 采购订单_基于项目的支出行
- 采购订单_关联事务
- 采购订单_交易税详细_税行
- 定期交易
- 重复交易条目
- 退款收据_自定义字段
- RefundReceipt_Description_Line
- RefundReceipt_折扣_行
- 退款收据_组_单项_物品_行
- 退款收据_组_项目_行
- 退款收据_销售_项目_行
- 退款收据_小计_行
- RefundReceipt_TxnTaxDetail_TaxLine
- 退款收据
- 报销费用
- 报销费用_行
- 销售收据_自定义字段
- 销售收据_描述_行
- 销售收据_折扣_行
- 销售收据_分组_个别_项目_行
- 销售收据_项目组_条目_行
- 销售收据_销售_项目_行
- 销售收据_小计_行
- SalesReceipt_TxnTaxDetail_TaxLine
- 销售收据
- 税务分类
- 税法代码_采购税率列表_税率详情
- TaxCode_销售税率列表_税率详情 (TaxCode_SalesTaxRateList_TaxRateDetail)
- 税务机构
- 税收代码
- 税率
- 术语
- 时间_活动
- 传输
- 供应商
- 供应商贷记_基于账户的费用行
- 供应商信用_基于项目_费用_行
- 供应商信用
复制活动属性
有关可用于定义活动的节和属性的完整列表,请参阅 Azure 数据工厂和 Azure Synapse Analytics 中的管道和活动。 本部分提供 QuickBooks 源支持的属性列表。
QuickBooks 作为源
若要从 QuickBooks Online 复制数据,请将复制活动中的源类型设置为 QuickBooksSource。 QuickBooks 数据集支持复制活动 source 部分中的以下属性:
| Property | Description | Required |
|---|---|---|
type |
复制活动源的类型。 它必须设置为 QuickBooksSource。 |
Yes |
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 |
Lookup 活动属性
有关查找活动属性的详细信息,请参阅 Azure 数据工厂和 Azure Synapse Analytics 中的查找活动。
Quickbooks 连接器生命周期和升级
下表汇总了有关 QuickBooks 连接器版本的信息:
| Version | 发布阶段 | 更改日志 |
|---|---|---|
| 1.0 | Removed | 不適用。 |
| 2.0 | 正式发布时间 | 支持 QuickBooks 本机查询,但存在限制。
GROUP BY子句、JOIN子句和聚合函数(Avg、Max、Sum)不支持。 有关详细信息,请参阅 Intuit 开发人员网站上的 查询作和语法 。 不支持 SQL-92 查询。 不支持该 useEncryptedEndpoints 属性。 支持特定的 Quickbooks 数据库表。 对于支持的表列表,请转到 “数据集”属性。 |
将 Quickbooks 连接器从版本 1.0 升级到版本 2.0
在 Azure 门户中,转到 Azure 数据工厂或 Azure Synapse 工作区。
转到“ 管理 ”选项卡,选择 “链接服务”,然后选择“ 编辑 ”链接服务。
在 “编辑链接服务 ”窗格中,为版本选择 2.0 。 有关详细信息,请参阅本文前面的 版本 2.0 的链接服务属性 。
如果在复制活动的源或查找活动中使用引用版本1.0的链接服务的SQL查询,则需要将其转换为QuickBooks原生查询。 从本文前面的 复制活动属性 以及 Intuit 开发人员网站上的 查询操作和语法 中了解有关本机查询的详细信息。
请注意,版本 2.0 支持特定的 Quickbooks 表。 对于支持的表列表,请转到 “数据集”属性。
相关内容
- 有关复制活动支持作为源和接收器的数据存储的列表,请参阅 支持的数据存储和格式。