本文介绍如何使用 npm CLI 从 Power Apps 代码应用中发现、添加、调用和删除 Power Automate 云流。
重要
仅支持使用 Power Apps 触发器 的流。 不能将包含其他触发器类型的流添加到代码应用。 这些不受支持的触发器类型包括具有非 Power Apps 触发器的计划、自动化或即时流。
先决条件
- 初始化的 Power Apps 应用程序代码。 请参阅 快速入门:使用 npm CLI 创建代码应用。
- 一个可 识别解决方案 的 Power Automate 流,是具有 PowerApps 触发器类型的即时流。 如果流尚不在解决方案中,请参阅 向解决方案添加现有流。
-
@microsoft/power-appsnpm 包版本 1.1.1 或更高版本。
注释
流命令仅在基于 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(可选) |
当 success 是 false 时的错误详细信息. |
注释
确切的输入和输出类型由流的 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中不可用。 |