常见问题
在这里,我们汇集了用户在构建和使用工作流自动化(RPA)时最常遇到的问题,并提供了直接、清晰的解答和进一步阅读的指引。
关于节点与流程
Section titled “关于节点与流程”工作流自动化和 RPA 是两个东西吗?
Section titled “工作流自动化和 RPA 是两个东西吗?”答: 不是。在 MagicAI 里,工作流自动化 = RPA,是同一个能力的两种叫法。文档统一称 工作流自动化(RPA) 或 RPA 工作流。
一条工作流可以同时混用:
- 接口、数据库、文件、表格、模型类节点;
- 浏览器、手机 App、桌面软件类操作节点;
- 条件、循环、并行、try-catch 流程控制节点。
不需要按”接口流”或”界面流”二选一。前几步调 API 拿数据、中间几步操作网页、最后几步发飞书通知,可以放在同一条工作流里。
深入了解:请回顾什么是工作流自动化(RPA)。如果想看一条只调接口、不操作界面的最小示例,可以参考示例:搭建一条接口型 RPA 工作流。
节点出错了,整个流程就中止了吗?如何处理异常?
Section titled “节点出错了,整个流程就中止了吗?如何处理异常?”答: 默认情况下,任何一个节点执行失败都会导致整个工作流中止。但您可以通过Try-Catch 节点来主动捕获和处理异常,从而增强流程的健壮性。
- 将可能出错的节点(例如,一个不稳定的 API 请求)放入 Try 模块中。
- 在 Catch 模块中,定义当 Try 中出现错误时,应该执行的“补救”措施。例如:
- 记录错误日志。
- 发送告警通知。
- 调用一个备用接口重试。
- 给出一个默认的友好返回值。
通过这种方式,您可以确保工作流在遇到可预见的“小意外”时,依然能够优雅地完成,而不是直接“崩溃”。
每个节点也可以单独配置“失败时停止 / 失败时继续 / 可选 / 自动重试”,与 try-catch 配合可以覆盖大部分异常场景。
工作流和子流程有什么区别?应该如何选择?
Section titled “工作流和子流程有什么区别?应该如何选择?”答: 在工作流自动化(RPA)中,当您希望复用一段逻辑时,有两条常见路径:调用工作流和调用子流程。
- 调用工作流:把一个已存在的、独立的工作流当作一个节点来使用。它有自己的生命周期(编辑、发布),通常作为一个完整的“技能”对外提供服务。相关指令请见执行工作流。
- 类比:调用一个外部的、可独立运行的程序或模块。
- 调用子流程:在当前工作流内部拆分出一段逻辑,方便在主流程中复用或进行结构化拆分。它完全依附于主流程。详见工作流管理与高级应用中的「使用子流程」。
- 类比:在当前代码中定义一个内部函数。
选择建议:
- 当一段逻辑是通用的、需要被多个不同流程、甚至被数字员工独立调用时,请使用工作流。
- 当一段逻辑只服务于当前这一个主流程,仅仅是为了让主流程更整洁、可读性更高时,请使用子流程。
关于数据与变量
Section titled “关于数据与变量”上一个节点的输出,下一个节点如何使用?
Section titled “上一个节点的输出,下一个节点如何使用?”答: 通过变量。工作流中的变量就像是“接力棒”,负责在不同节点(步骤)之间传递数据。
- 赋值:在一个节点的“输出”或“设置变量”部分,您可以将这个节点的运行结果(比如 API 返回的 JSON 数据、模型生成的文本)保存到一个变量中(例如,命名为 api_result)。
- 引用:在后续的任何节点中,您都可以通过特定的语法(例如 ${api_result})来引用这个变量,从而获取之前保存的数据。
几乎所有节点的输入、参数都可以使用变量。
如何从一堆复杂的 JSON 数据中只提取我想要的某个字段?
Section titled “如何从一堆复杂的 JSON 数据中只提取我想要的某个字段?”答: 这是工作流中最常见的操作之一。MagicAI 提供了多种方式来处理 JSON:
- 使用 JsonPath 解析节点:这是最推荐的专业方式。JsonPath 是一种专门用来在 JSON 结构中查询数据的语言。您可以用它精确地定位到任何您想要的字段,无论它藏得多深。
- 使用“代码执行”节点(如 Python/JS):如果数据处理逻辑非常复杂,超出了 JsonPath 的能力范围,您可以随时添加一个代码节点,用您熟悉的编程语言来解析和转换 JSON。
深入了解:请查阅执行代码-Python/JS了解如何通过代码解析和转换 JSON。
关于工作流与数字员工
Section titled “关于工作流与数字员工”工作流和数字员工的“技能”有什么区别?
Section titled “工作流和数字员工的“技能”有什么区别?”答: 工作流是一条“生产线”,而技能是这台生产线最终包装成的“产品”。
- 工作流 是构建过程。您在这里编排节点、处理逻辑、连接内外系统,它关注的是“如何完成一个任务”。一个工作流可以非常复杂。
- 技能 是最终接口。您将一个已经调试好的工作流“封装”成一个技能,并为它编写清晰的“使用说明”(描述)。数字员工看到的是这个技能和它的说明,而不是工作流内部复杂的实现细节。
简单来说: 您用工作流自动化(RPA)来实现一个能力,然后把它注册成一个技能,交给数字员工去调用。
关于界面操作类节点
Section titled “关于界面操作类节点”操作网页时总是提示“元素未找到”怎么办?
Section titled “操作网页时总是提示“元素未找到”怎么办?”答: “元素未找到”通常意味着页面状态或定位规则与预期不一致。可以按以下步骤排查:
- 确认页面状态一致:重放失败时的步骤,确保浏览器已经停留在与当初捕获元素时相同的页面,例如已经点击了”校园招聘”按钮并进入职位列表页。详细示例可参考搭建浏览器 RPA 工作流中关于”捕获元素”的说明。
- 重新捕获或优化元素定位:在相关节点中重新点击 捕获元素,或者在元素详情里检查 Xpath / Css / Text / Image 等定位规则,避免依赖易变的属性(如纯位置、无语义 class)。
- 优先使用更稳定的定位方式:在条件允许时,优先用文本内容或语义化的属性(如带业务含义的 id / data-*)进行定位,而不是依赖复杂的层级 Xpath。
如需系统排查工作流自动化(RPA)运行问题,请优先阅读常见问题与排障。如需查询具体 UI 指令和元素选择器能力,可以查阅对应的指令文档,例如网页指令-点击和网页指令-获取文本。