You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

模型驱动Power App中审批流待编辑记录存储方案咨询

模型驱动应用编辑审批功能实现方案探讨

现有场景与需求

  • 刚接触Power Apps,正在修改现有模型驱动应用,需为记录编辑添加审批功能
  • 当用户编辑包含可编辑关联表子网格的表单时,触发审批通知,审批者需查看所有关联表的编辑内容,并能执行批准、拒绝、带修改批准操作(审批者可修改编辑内容后批准)
  • 现有应用结构:
    • 存在多个关联表
    • 主表单包含关联表的子网格
    • 应用为自动保存模式

提议的实现方案

  1. 为所有现有表创建结构一致的「审批复制表」,添加ApprovalStatus选项列(可选值:批准、拒绝、带修改批准),例如TableA对应TableAApprovals
  2. 表单修改后点击保存按钮触发审批流:
    • 先通过指定方法禁用主表单的自动保存
    • 点击保存时执行:
      • 将修改内容保存至对应TableXApprovals表
      • 触发审批流,把TableXApprovals表的内容纳入审批通知(如Teams审批应用)
      • 审批通知提供TableXApprovals表单的深度链接,供审批者编辑
  3. 审批者操作逻辑:
    • 批准/带修改批准:将TableXApprovals的内容复制到主/原始表,同时更新TableXApprovals的ApprovalStatus
    • 拒绝:仅更新TableXApprovals的ApprovalStatus

核心疑问

  • 创建带Approval后缀的复制表存储待批准内容,是否为不佳方案?
  • OnSave事件能否程序化将所有子网格的编辑内容保存至各对应TableXApprovals表?

方案分析与解答

关于复制表方案的合理性

创建复制表的思路并非绝对不佳,但存在几个需要权衡的点:

  • 优点:
    • 完全隔离待审批内容与生产数据,避免自动保存机制干扰审批流程
    • 无需修改原始表结构,降低对现有业务的影响
  • 缺点:
    • 表结构维护成本高:原始表字段变更时,所有对应审批表都要同步修改,长期来看容易出现结构不一致
    • 数据冗余:重复存储大量近似数据,增加存储成本与管理复杂度
  • 替代思路:
    • 在原始表中新增审批相关字段(如ApprovalStatus、IsDraft、SubmittedBy、SubmittedDate等),用状态字段区分「正式数据」与「待审批草稿」
    • 若担心草稿数据影响业务查询,可通过视图过滤只展示已批准的记录,同时给审批者开放包含草稿的视图

关于OnSave批量保存子网格内容到审批表

OnSave事件可以实现程序化保存所有子网格的编辑内容,但需要注意细节:

  • 首先必须禁用自动保存:可以通过表单的AutoSaveEnabled属性设置为false,或者用脚本在表单加载时禁用
  • 实现逻辑:
    1. 在OnSave事件中,先获取主表单的修改内容,保存到对应的主审批表
    2. 遍历主表单上的所有子网格控件,获取每个子网格中新增/修改的记录
    3. 针对每条子网格记录,将其字段值映射到对应关联审批表的字段,执行创建/更新操作
  • 注意事项:
    • 子网格的编辑状态需要准确捕获:可以通过GridControl.getGrid()获取网格数据,区分新增、修改、删除的记录
    • 要处理数据关联:确保主审批表记录与关联审批表记录之间建立正确的关系(如外键关联)
    • 异常处理:添加错误捕获逻辑,避免某一条子网格记录保存失败导致整个审批提交中断

内容的提问来源于stack exchange,提问作者drivenj17

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 20:49:59