适用于:
Azure 数据工厂
Azure Synapse Analytics
本文概述如何使用 Azure 数据工厂或 Synapse Analytics 管道中的复制活动从 Xero 复制数据。 它是基于概述复制活动总体的复制活动概述一文。
注意
Xero 连接器需要 OAuth 身份验证,不适用于服务器到服务器使用。
重要
Xero 连接器版本 2.0 提供了增强的原生 Xero 支持。 如果在解决方案中使用 Xero 连接器版本 1.0,请在 2026 年 3 月 31 日之前升级 Xero 连接器。 有关版本 2.0 和版本 1.0 之间差异的详细信息,请参阅此部分。
支持的功能
此 Xero 连接器支持以下功能:
| 支持的功能 | IR |
|---|---|
| 复制活动(源/-) | (1) (2) |
| Lookup 活动 | (1) (2) |
① Azure 集成运行时 ② 自承载集成运行时
如需可以用作源/接收器的数据存储的列表,请参阅支持的数据存储表。
具体而言,此 Xero 连接器支持:
- OAuth 2.0 身份验证。
- 除“报告”外的所有 Xero 表(API 终结点)。
- 本文章中的 Windows 版本。
注意
由于 Xero 中 OAuth 1.0 身份验证的停用,如果你当前使用的是 OAuth 1.0 身份验证类型,请升级到 OAuth 2.0 身份验证类型。
入门
若要使用管道执行复制活动,可以使用以下工具或 SDK 之一:
使用 UI 创建一个到 Xero 的链接服务
使用以下步骤在 Azure 门户 UI 中创建一个到 Xero 的链接服务。
浏览到 Azure 数据工厂或 Synapse 工作区中的“管理”选项卡并选择“链接服务”,然后单击“新建”:
搜索 Xero 并选择 Xero 连接器。
配置服务详细信息、测试连接并创建新的链接服务。
连接器配置详细信息
对于特定于 Xero 连接器的数据工厂实体,以下部分提供有关用于定义这些实体的属性的详细信息。
链接服务属性
Xero 连接器现在支持版本 2.0。 请参阅本 部分 ,从版本 1.0 升级 Xero 连接器版本。 关于属性详情,请参阅对应部分。
版本 2.0
应用版本 2.0 时,Xero 链接服务支持以下属性:
| 属性 | 描述 | 必需 |
|---|---|---|
| 类型 | type 属性必须设置为:Xero | 是 |
| 版本 | 指定的版本。 该值为 2.0。 |
是 |
| 主持人 | Xero 服务器的终结点 (api.xero.com)。 |
是 |
| consumerKey | 指定 Xero 应用程序的 客户端 ID 。 将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure Key Vault 中的机密。 |
是 |
| privateKey | 指定 Xero 应用程序的 客户端密码 。 将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure Key Vault 中的机密。 |
是 |
| tenantId | 与 Xero 应用程序关联的租户 ID。 适用于 OAuth 2.0 身份验证。 请参阅查看你有权访问的租户部分,了解如何获取租户 ID。 |
是 |
| refreshToken | OAuth 2.0 刷新令牌与 Xero 应用程序关联,用于刷新访问令牌;访问令牌在 30 分钟后过期。 了解 Xero 授权流的工作原理,并了解如何从此文获取刷新令牌。 若要获取刷新令牌,必须请求 offline_access 范围。 已知限制:请注意,在将刷新令牌用于访问令牌刷新后,Xero 会将其重置。 对于操作化工作负荷,在每个复制活动运行之前,需要设置有效的刷新令牌供服务使用。 将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure Key Vault 中的机密。 |
是 |
| connectVia | 用于连接到数据存储的集成运行时。 如果未指定任何值,该属性将使用默认的 Azure 集成运行时。 可以使用自承载集成运行时,其版本应为 5.61 或更高版本。 | 否 |
示例:
{
"name": "XeroLinkedService",
"properties": {
"type": "Xero",
"typeProperties": {
"host": "api.xero.com",
"consumerKey": "<client ID>",
"privateKey": {
"type": "SecureString",
"value": "<client secret>"
},
"tenantId": "<tenant ID>",
"refreshToken": {
"type": "SecureString",
"value": "<refresh token>"
},
"authenticationType":"OAuth_2.0",
"version": "2.0"
}
}
}
版本 1.0
应用版本 1.0 时,Xero 链接服务支持以下属性:
| 属性 | 描述 | 必需 |
|---|---|---|
| 类型 | type 属性必须设置为:Xero | 是 |
| connectionProperties | 定义如何连接到 Xero 的一组属性。 | 是 |
在 connectionProperties 下: |
||
| 主持人 | Xero 服务器的终结点 (api.xero.com)。 |
是 |
| authenticationType | 允许的值为 OAuth_2.0 和 OAuth_1.0。 |
是 |
| consumerKey | 对于 OAuth 2.0,请指定 Xero 应用程序的客户端 ID。 对于 OAuth 1.0,请指定与 Xero 应用程序关联的使用者密钥。 将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure Key Vault 中的机密。 |
是 |
| privateKey | 对于 OAuth 2.0,请指定 Xero 应用程序的客户端密码。 对于 OAuth 1.0,指定为 Xero 专用应用程序生成的 .pem 文件中的私钥。 注意:使用 可生成数位为 512 的 privatekey.pem,不支持生成 1024 数位。 包括 .pem 文件中的所有文本,包括 Unix 行尾(\n),请参见下面的示例。 将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure Key Vault 中的机密。 |
是 |
| tenantId | 与 Xero 应用程序关联的租户 ID。 适用于 OAuth 2.0 身份验证。 请参阅查看你有权访问的租户部分,了解如何获取租户 ID。 |
是,适用于 OAuth 2.0 身份验证 |
| refreshToken | 适用于 OAuth 2.0 身份验证。 OAuth 2.0 刷新令牌与 Xero 应用程序关联,用于刷新访问令牌;访问令牌在 30 分钟后过期。 了解 Xero 授权流的工作原理,并了解如何从此文获取刷新令牌。 若要获取刷新令牌,必须请求 offline_access 范围。 已知限制:请注意,在将刷新令牌用于访问令牌刷新后,Xero 会将其重置。 对于操作化工作负荷,在每个复制活动运行之前,需要设置有效的刷新令牌供服务使用。 将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure Key Vault 中的机密。 |
是,适用于 OAuth 2.0 身份验证 |
| useEncryptedEndpoints | 指定是否使用 HTTPS 加密数据源终结点。 默认值为 true。 | 否 |
| useHostVerification | 指定通过 TLS 进行连接时是否要求服务器证书中的主机名与服务器的主机名匹配。 默认值为 true。 | 否 |
| usePeerVerification | 指定通过 TLS 进行连接时是否要验证服务器的标识。 默认值为 true。 | 否 |
示例:OAuth 2.0 身份验证
{
"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
}
}
}
}
示例:OAuth 1.0 身份验证
{
"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
}
}
}
}
示例私钥值:
包括 .pem 文件中的所有文本,包括 Unix 行尾(\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-----"
数据集属性
有关可用于定义数据集的各部分和属性的完整列表,请参阅数据集一文。 本部分提供 Xero 数据集支持的属性列表。
要从 Xero 复制数据,请将数据集的 type 属性设置为“XeroObject” 。 支持以下属性:
| 属性 | 描述 | 必需 |
|---|---|---|
| 类型 | 数据集的 type 属性必须设置为:XeroObject | 是 |
| 表 | 表的名称。 表名使用对象名称,例如: Accounts 此属性仅在版本 2.0 中受支持。 |
是 |
| tableName | 表的名称。 表名使用前缀的对象名称,例如 "Global"."Accounts"。 此属性仅在版本 1.0 中受支持。 |
否(如果指定了活动源中的“query”) |
示例
{
"name": "XeroDataset",
"properties": {
"type": "XeroObject",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<Xero linked service name>",
"type": "LinkedServiceReference"
}
}
}
连接器版本 2.0 支持以下 Xero 表:
- Accounts
- Bank_Transactions
- 银行_交易_行_项目
- 银行转账
- Budgets
- 联系人
- Contacts_Addresses
- Contact_Groups
- 联系人组_联系人
- Contacts_Phones
- Credit_Notes
- 贷记通知单项目
- 信用单行项目追踪
- 货币
- 发票
- Invoices_Credit_Notes
- 发票项目明细
- 发票项目跟踪
- Invoices_Overpayments
- 发票_预付款
- 物品
- 日记帐
- 日志行
- 日记行跟踪类别
- Manual_Journals
- 手动日志行
- 组织
- Overpayments
- Payments
- Prepayments
- Prepayments_Allocations
- 预付款条目
- 项目
- ProjectUsers
- 采购订单
- 采购订单行项目
- Receipts
- 税率
- Tracking_Categories
- 跟踪类别选项
- 用户
复制活动属性
有关可用于定义活动的各部分和属性的完整列表,请参阅管道一文。 本部分提供 Xero 数据源支持的属性列表。
以 Xero 作为源
要从 Xero 复制数据,请将复制活动中的源类型设置为“XeroSource” 。 复制活动source部分支持以下属性:
| 属性 | 描述 | 必需 |
|---|---|---|
| 类型 | 复制活动 source 的 type 属性必须设置为:XeroSource | 是 |
| 查询 | 使用自定义 SQL 查询读取数据。 例如:"SELECT * FROM Contacts"。 |
否(如果指定了数据集中的“tableName”) |
注意
在版本 2.0 中,不支持query。
示例:
"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>"
}
}
}
]
指定 Xero 查询时,请注意以下事项:
包含复杂项的表将拆分为多个表。 例如,银行事务具有复杂数据结构“LineItems”,因此银行事务数据将映射到表
Bank_Transaction和Bank_Transaction_Line_Items,并使用Bank_Transaction_ID作为外键将这些表链接在一起。可通过两个架构使用 Xero 数据:
Minimal(默认值)和Complete。 完整架构包含先决条件调用表,这些表在进行所需的查询之前需要其他数据(例如 ID 列)。
以下表的最小架构和完整架构具有相同信息。 若要减少 API 调用数,请使用最小架构(默认值)。
- Bank_Transactions
- Contact_Groups
- 联系人
- Contacts_Sales_Tracking_Categories
- Contacts_Phones
- Contacts_Addresses
- Contacts_Purchases_Tracking_Categories
- Credit_Notes
- Credit_Notes_Allocations
- Expense_Claims
- Expense_Claim_Validation_Errors
- 发票
- Invoices_Credit_Notes
- Invoices_Prepayments
- Invoices_Overpayments
- Manual_Journals
- Overpayments
- Overpayments_Allocations
- Prepayments
- Prepayments_Allocations
- Receipts
- Receipt_Validation_Errors
- Tracking_Categories
以下表只能使用完整架构查询:
- 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
Xero 的数据类型映射
从 Xero 复制数据时,以下映射从 Xero 的数据类型应用到服务使用的内部数据类型。 若要了解复制活动如何将源架构和数据类型映射到接收器,请参阅架构和数据类型映射。
| Xero 数据类型 | 临时服务数据类型(适用于版本 2.0) | 临时服务数据类型(适用于版本 1.0) |
|---|---|---|
| String | String | String |
| 日期 | String | 日期 |
| 日期/时间 | String | String |
| 布尔 | 布尔 | 布尔 |
| 数字(标准) | Int32 | Int32 |
| 数字(大) | Int64 | Int64 |
Lookup 活动属性
若要了解有关属性的详细信息,请查看 Lookup 活动。
Xero 连接器生命周期和升级
下表显示了不同版本的 Xero 连接器的发布阶段和更改日志:
| 版本 | 发布阶段 | 更改日志 |
|---|---|---|
| 版本 1.0 | 宣布终止支持 | / |
| 版本 2.0 | GA版本现已可用 | • 使用 table 而不是 tableName。 • 其值为 table对象名称,例如: Accounts • 自承载集成运行时版本应为 5.61 或更高版本。 • 日期作为字符串数据类型读取。 • 链接服务中不支持 useEncryptedEndpoints、useHostVerification、usePeerVerification。 • query 不受支持。 • 不支持 OAuth 1.0 身份验证。 • 支持特定的 Xero 表。 对于支持的表列表,请转到 “数据集”属性。 |
将 Xero 连接器从版本 1.0 升级到版本 2.0
在 “编辑链接服务 ”页中,选择版本 2.0,并通过引用 链接服务属性版本 2.0 配置链接服务。
Xero 链接服务版本 2.0 的数据类型映射不同于版本 1.0 的数据类型映射。 若要了解最新的数据类型映射,请参阅 Xero 的数据类型映射。
如果使用自承载集成运行时,其版本应为 5.61 或更高版本。
在版本 2.0 中使用
table,而不是tableName。 有关详细配置,请转到 数据集属性。query仅在版本 1.0 中受支持。 应在版本 2.0 中使用table而不是query。请注意,版本 2.0 支持特定的 Xero 表。 对于支持的表列表,请转到 “数据集”属性。
相关内容
有关复制活动支持的数据存储列表,请参阅支持的数据存储。