了解如何使用 Power Platform 连接器将代码应用连接到数据,以便你可以从应用添加数据源和调用生成的服务。
使用以下步骤:
- 使用 Power Apps CLI 创建和设置连接
- 在代码应用中添加连接
- 更新应用以调用连接
注释
使用 初始化应用后,请按照以下步骤操作。
使用 Power Apps CLI 创建和设置连接
使用 Power Apps CLI 查找连接器并创建其连接。 按照从 Power Apps CLI 创建连接,并保存命令返回的连接 ID。
除以下部分列出的连接器外,所有连接器均受到正式支持。
尚不支持的连接器
小窍门
有关将代码应用连接到 Azure SQL 的分步指南,请参阅 如何:将代码应用连接到 Azure SQL。
获取连接元数据
如果您未保存 pa connection create 返回的 ID,请使用 pa connection list 列出可用的连接并获取其 ID:
pa connection list
该命令显示连接表,包括 连接 ID 和连接器标识符。 添加数据源时使用这些值。
为代码应用程序添加连接
创建或标识要使用的现有连接,并从上一步复制连接元数据后,将这些连接添加到应用。
将数据源添加到应用时,该过程会在存储库中自动生成类型化的 TypeScript 模型和服务文件。 例如,Office 365 用户数据源生成 Office365UsersModel 和 Office365UsersService 文件。
添加非表格数据源
使用 pa app add data-source 添加非表格数据源,例如Office 365 用户。
在命令行中运行以下命令。 使用从前面步骤收集的连接器标识符和连接 ID。
pa app add data-source --connector <connector-id> --connection-id <connection-id>
例如:
pa app add data-source --connector "shared_office365users" --connection-id "aaaaaaaa000011112222bbbbbbbbbbbb"
添加表格数据源
SQL 或 SharePoint 是表格数据源的示例。
使用相同的 pa app add data-source 命令,但包括表和数据集。 表格数据源的架构指定这些值。 如果还没有这些值,请参阅 “发现可用的数据集和表”。
pa app add data-source `
--connector <connector-id> `
--connection-id <connection-id> `
--table <table-id> `
--dataset <dataset-name>
SQL 示例
pa app add data-source `
--connector "shared_sql" `
--connection-id "aaaaaaaa000011112222bbbbbbbbbbbb" `
--table "[dbo].[MobileDeviceInventory]" `
--dataset "paconnectivitysql0425.database.windows.net,paruntimedb"
pa app add data-source `
--connector "shared_sql" `
--connection-id "aaaaaaaa000011112222bbbbbbbbbbbb" `
--table "[dbo].[EmployeeInformation]" `
--dataset "paconnectivitysql0425.database.windows.net,paruntimedb"
SharePoint示例
对于 SharePoint,--table 是列表名称,--dataset 是 SharePoint 站点:
pa app add data-source `
--connector "shared_sharepointonline" `
--connection-id "aaaaaaaa000011112222bbbbbbbbbbbb" `
--table "Travel%20Request" `
--dataset "https://contoso.sharepoint.com/sites/TravelPolicies"
发现可用的数据集和表
使用 pa connection 命令发现连接的可用数据集、表和存储过程。
pa connection list-datasets --connector <connector-id> --connection-id <connection-id>
列出表格:
pa connection list-tables --connector <connector-id> --connection-id <connection-id> --dataset <dataset-name>
pa connection list-procedures --connection-id <connection-id> --dataset <dataset-name>
SQL Server 的示例工作流:
# Step 1: List available datasets
pa connection list-datasets --connector "shared_sql" --connection-id "aaaaaaaa000011112222bbbbbbbbbbbb"
# Step 2: List tables in the dataset
pa connection list-tables --connector "shared_sql" --connection-id "aaaaaaaa000011112222bbbbbbbbbbbb" `
--dataset "paconnectivitysql0425.database.windows.net,paruntimedb"
# Step 3: Add the table to your code app
pa app add data-source --connector "shared_sql" --connection-id "aaaaaaaa000011112222bbbbbbbbbbbb" `
--table "[dbo].[MobileDeviceInventory]" `
--dataset "paconnectivitysql0425.database.windows.net,paruntimedb"
小窍门
在使用 pa app add data-source 时,请从命令输出中精确复制名称值。 名称区分大小写,可能包含特殊字符。
将 SQL 存储过程添加为数据源
从命令行运行以下命令。 使用之前收集的连接器标识符和连接 ID。
pa app add data-source `
--connector <connector-id> `
--connection-id <connection-id> `
--dataset <dataset-name> `
--procedure <stored-procedure-name>
例如:
pa app add data-source `
--connector "shared_sql" `
--connection-id "33dd33ddee44ff55aa6677bb77bb77bb" `
--dataset "paconnectivitysql0425.database.windows.net,paruntimedb" `
--procedure "[dbo].[GetRecordById]"
删除数据源
如果需要,可以在添加数据源后将其删除。
将 pa app remove data-source 与连接器标识符和数据源名称一起使用。
pa app remove data-source --connector <connector-id> --name <data-source-name>
例如:
pa app remove data-source `
--connector "shared_sql" `
--name "MobileDeviceInventory"
刷新数据源
如果架构发生更改,则用于 pa app refresh data-source 刷新生成的模型和服务文件:
pa app refresh data-source --name <data-source-name>
使用连接引用来添加数据源
使用连接引用将数据源添加到代码应用。 连接引用是解决方案组件,用于指向连接器的特定连接。 避免将应用直接绑定至用户专属连接,改为绑定引用。 此方法使解决方案环境感知且可移植到开发、测试和 Prod 环境,以便顺利进行应用程序生命周期管理。
注释
本部分假定你对 Power Apps 和连接参考中的解决方案有基本的了解。 应已创建解决方案,并在该解决方案中为数据源创建连接引用。 如果没有,请按照下一部分链接中概述的步骤创建一个。
获取解决方案 ID
使用解决方案列表命令获取解决方案的 ID。
打开命令提示符或终端窗口。
运行以下命令,获取 连接到的环境中的解决方案列表:
pa solution list此命令会在控制台输出一个表格,其中包含
Id、SolutionUniqueName、Version和FriendlyName解决方案属性。复制解决方案
Id并将其保存以供以后使用。
获取数据源的连接引用的名称
使用 Power Apps CLI 列出解决方案中的连接引用:
打开命令提示符或终端窗口。
使用
pa connection list-references获取数据源连接引用的解决方案 ID 和名称:pa connection list-references --solution-id <solution-id>输出包括解决方案中连接引用的显示名称、逻辑名称和说明。
使用连接引用将数据源添加到代码应用
在命令行中运行以下命令。 使用从前面的步骤收集的解决方案 ID 和连接引用逻辑名称。
pa app add data-source `
--connector <connector-id> `
--connection-ref <connection-reference-logical-name> `
--solution-id <solution-id>
应用程序现使用 Power Apps 解决方案中连接引用关联的连接。
更新应用以调用连接
添加连接后,更新应用以使用生成的模型和服务。
注释
还可以通过在 IDE 中使用代理进行这些更改。 例如,在Visual Studio Code中,你可以在添加数据源后使用GitHub Copilot智能助手模式为你创建它们。
导入所需的类型和服务
添加数据源时,CLI 会自动生成模型和服务文件。 它将这些文件放在
/generated/services/文件夹中。 例如,如果添加Office365Users为数据源,门户将创建以下文件:-
Office365UsersModel.ts– 定义连接器中Office365Users请求和响应对象的数据模型。 -
Office365UsersService.ts– 提供用于与Office365Users数据交互的服务方法。
在代码中导入并使用这些文件,如下所示:
import { Office365UsersService } from './generated/services/Office365UsersService'; import type { User } from './generated/models/Office365UsersModel';-
更新应用以使用非表格数据源(例如,Office 365 用户)
对于类型化连接 API,请查看
src/generated/models和src/generated/services文件夹下生成的文件。await Office365UsersService.MyProfile()const profile = (await Office365UsersService.MyProfile_V2("id,displayName,jobTitle,id,userPrincipalName")).data; setUser(profile); if (profile?.id || profile?.userPrincipalName) { // Try both id and userPrincipalName for photo let photoData = null; try { photoData = (await Office365UsersService.UserPhoto_V2(profile.id || profile.userPrincipalName)).data; } catch { // fallback to userPrincipalName if id fails if (profile.userPrincipalName) { photoData = (await Office365UsersService.UserPhoto_V2(profile.userPrincipalName)).data; } } if (photoData) setPhoto(`data:image/jpeg;base64,${photoData}`);(可选)更新应用以使用表格数据源(例如 SQL)
对于类型化连接 API,请查看
src/Models和src/Services文件夹下生成的文件。例如:
await MobileDeviceInventoryService.create(<record>) await MobileDeviceInventoryService.update(id, <record>) await MobileDeviceInventoryService.delete(id) await MobileDeviceInventoryService.get(id) await MobileDeviceInventoryService.getall()await MobileDeviceInventoryService.update(assetId, changedFields); setAssets((prevAssets) => prevAssets.map((asset) => { if (asset.id === assetId) {在本地运行应用以验证更改
在终端中使用此命令:
npm run dev将应用推送到 Power Apps 上运行
构建应用,然后使用
pa app push发布它:npm run build pa app push