将 Power Automate 流添加到代码应用(预览版)

本文介绍如何使用 npm CLI 从 Power Apps 代码应用中发现、添加、调用和删除 Power Automate 云流。

重要

仅支持使用 Power Apps 触发器 的流。 不能将包含其他触发器类型的流添加到代码应用。 这些不受支持的触发器类型包括具有非 Power Apps 触发器的计划、自动化或即时流。

先决条件

注释

流命令仅在基于 npm 的 CLI 中可用(npx power-apps)。 它们在 Power Platform CLI () 命令中pac code

步骤 1:列出可用流

运行以下命令,列出当前环境中的所有解决方案感知流:

npx power-apps list-flows

该命令输出可用流的表:

Name                    Status   Modified On   Flow ID
──────────────────────────────────────────────────────────────────────────────
Approval Workflow       Started  2026-01-15    a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1
Send Notification       Started  2026-02-01    b1b1b1b1-cccc-dddd-eeee-f2f2f2f2f2f2

Total flows: 2

注释

仅列出对解决方案敏感的流。 如果缺少流,请参阅: 在解决方案中创建云流

若要按名称筛选结果,请使用 --search 以下选项:

npx power-apps list-flows --search approval

复制要添加的流的 流 ID 值。

第2步:在您的代码应用中添加流程

运行以下命令,将 <flow-id> 替换为上一步中的值:

npx power-apps add-flow --flow-id <flow-id>

示例:

npx power-apps add-flow --flow-id a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1

命令成功后,CLI 确认添加了流:

Flow added successfully.

小窍门

使用相同的流 ID 重新运行 add-flow 是幂等的。 使用它可以检测流程定义中所做的更改(如新的参数、更新的连接等),而无需手动清理旧文件。

什么是add-flow的功能

该命令会下载流的 OpenAPI 定义,在项目中生成强类型 TypeScript 文件,并使用流的连接引用更新power.config.json

重要

运行 add-flow 的人员必须具备读取流程和访问流程基础连接的权限(例如 Office 365 Outlook 连接)。 如果缺少对所需连接的访问权限,该命令将失败,并出现授权错误。

生成的文件

运行 add-flow后,CLI 会在项目中创建以下文件(文件名派生自流的显示名称):

src/
  services/
    ApprovalWorkflowService.ts   ← generated service class with typed methods
  models/
    ApprovalWorkflowModel.ts     ← generated TypeScript types for inputs/outputs
schemas/
  logicflows/
    ApprovalWorkflow.Schema.json ← flow's OpenAPI schema (do not edit manually)

以下条目也添加到 power.config.json

"<uuid>": {
  "id": "/providers/microsoft.powerapps/apis/shared_logicflows",
  "displayName": "Logic flows",
  "dataSources": ["ApprovalWorkflow"],
  "workflowDetails": {
    "workflowEntityId": "<dataverse-entity-guid>",
    "workflowDisplayName": "Approval Workflow",
    "workflowName": "<flow-id>",
    "dependencies": {
      "shared_office365": "<dependency-uuid>"
    }
  }
}

步骤 3:从应用调用流

生成的服务类公开静态 Run 方法。 确切的签名取决于流的触发器是否定义输入参数。

包含输入参数的流

import { ApprovalWorkflowService } from './services/ApprovalWorkflowService';

const result = await ApprovalWorkflowService.Run({
  requester: 'Alex',
  amount: 1500,
});

if (result.success) {
  console.log('Flow triggered. Response:', result.data);
} else {
  console.error('Flow failed:', result.error);
}

没有输入参数的流

import { SendNotificationService } from './services/SendNotificationService';

const result = await SendNotificationService.Run();

if (result.success) {
  console.log('Flow triggered.');
}

result 对象具有以下形状:

财产 类型 说明
success boolean true 如果已成功触发流,
data (变化) 流程中的类型化响应负载(如果有)。
error Error(可选) successfalse 时的错误详细信息.

注释

确切的输入和输出类型由流的 OpenAPI 定义确定。 打开生成的服务文件以查看流的特定类型。 使用默认值标记 x-ms-visibility: internal 的参数由代码生成器自动内联,不会在方法签名中公开。

更新流程

如果流的定义发生更改(例如,其作者添加了一个新参数或更新连接引用)则使用相同的流 ID 重新运行 add-flow 以选取最新定义并重新生成服务文件:

npx power-apps add-flow --flow-id a1b2c3d4-e5f6-7890-abcd-ef1234567890

该命令通过 workflowEntityId 匹配流并在 power.config.json 中重用现有的 UUID,因此不需要进行手动清理。

删除流

若要从代码应用中删除流,请使用 remove-flow。 可以通过数据源名称(在 power.config.json 中出现)或原始流 ID 来标识流。

按数据源名称:

npx power-apps remove-flow --flow-name ApprovalWorkflow

按流 ID:

npx power-apps remove-flow --flow-id a1b2c3d4-e5f6-7890-abcd-ef1234567890

命令:

  • power.config.json中删除流。
  • 重新生成所有模型服务。

部署应用

使用本地 npm run dev添加流并验证应用后,像往常一样生成和部署:

npm run build
npx power-apps push

限制和考虑事项

将流添加到代码应用时,请记住以下限制和注意事项。

Limitation 详细信息
仅使用 PowerApps 触发器的手动流 仅支持使用 PowerApps 触发器的手动流。 不支持具有其他触发器类型的流(具有非 PowerApps 触发器的计划流、自动流或即时流),并且无法在代码应用中正常运行。
仅限解决方案感知流 list-flows 命令仅显示属于解决方案的流。 若要添加非解决方案流, 请首先将其添加到解决方案
需要创建者访问权限 正在运行 add-flow 的创建者必须有权访问流 流的基础连接。 如果缺少对所需连接的访问权限,该命令将失败。
运行时所需的 Dataverse 权限 最终用户必须具有足够的 Dataverse 权限才能调用流。 分配 应用打开器 安全角色(或等效角色)。 请参阅 在环境中配置用户安全性
更改流时需要手动刷新 如果流的定义发生更改,请使用相同的流 ID 重新运行 add-flow 。 应用不会自动检测流更改。
仅限 npm CLI 这些命令在pac code中不可用。