如何将代码应用程序连接到数据

了解如何使用 Power Platform 连接器将代码应用连接到数据,以便你可以从应用添加数据源和调用生成的服务。

使用以下步骤:

  1. 使用 Power Apps CLI 创建和设置连接
  2. 在代码应用中添加连接
  3. 更新应用以调用连接

注释

使用 初始化应用后,请按照以下步骤操作。

使用 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 和连接器标识符。 添加数据源时使用这些值。

Power Apps CLI 输出的屏幕截图,其中包含连接 ID 和连接器标识符。

为代码应用程序添加连接

创建或标识要使用的现有连接,并从上一步复制连接元数据后,将这些连接添加到应用。

将数据源添加到应用时,该过程会在存储库中自动生成类型化的 TypeScript 模型和服务文件。 例如,Office 365 用户数据源生成 Office365UsersModelOffice365UsersService 文件。

添加非表格数据源

使用 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>

列出 SQL 存储过程

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。

  1. 打开命令提示符或终端窗口。

  2. 运行以下命令,获取 连接到的环境中的解决方案列表:

    pa solution list
    

    此命令会在控制台输出一个表格,其中包含 IdSolutionUniqueNameVersionFriendlyName 解决方案属性。

  3. 复制解决方案 Id 并将其保存以供以后使用。

获取数据源的连接引用的名称

使用 Power Apps CLI 列出解决方案中的连接引用:

  1. 打开命令提示符或终端窗口。

  2. 使用 pa connection list-references 获取数据源连接引用的解决方案 ID 和名称:

    pa connection list-references --solution-id <solution-id>
    
  3. 输出包括解决方案中连接引用的显示名称、逻辑名称和说明。

使用连接引用将数据源添加到代码应用

在命令行中运行以下命令。 使用从前面的步骤收集的解决方案 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智能助手模式为你创建它们。

  1. 导入所需的类型和服务

    添加数据源时,CLI 会自动生成模型和服务文件。 它将这些文件放在 /generated/services/ 文件夹中。 例如,如果添加 Office365Users 为数据源,门户将创建以下文件:

    • Office365UsersModel.ts – 定义连接器中 Office365Users 请求和响应对象的数据模型。
    • Office365UsersService.ts – 提供用于与 Office365Users 数据交互的服务方法。

    在代码中导入并使用这些文件,如下所示:

    import { Office365UsersService } from './generated/services/Office365UsersService';
    import type { User } from './generated/models/Office365UsersModel';
    
  2. 更新应用以使用非表格数据源(例如,Office 365 用户)

    对于类型化连接 API,请查看 src/generated/modelssrc/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}`); 
    
  3. (可选)更新应用以使用表格数据源(例如 SQL)

    对于类型化连接 API,请查看 src/Modelssrc/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) { 
    
  4. 在本地运行应用以验证更改

    在终端中使用此命令:

    npm run dev
    
  5. 将应用推送到 Power Apps 上运行

    构建应用,然后使用 pa app push 发布它:

    npm run build
    pa app push