【Bug反馈】多维表格自动化流程「修改记录时」触发,AirScript脚本读取到的是旧数据

问题描述

在多维表格中,配置自动化流程:

  • 触发条件: 新增或修改记录时

  • 生效范围: 指定字段(如「字段A」「字段B」)

  • 执行动作: 执行 AirScript 脚本

脚本逻辑很简单——读取当前记录的「字段A」和「字段B」值,写入到「字段C」中用于验证。

实际表现: 修改字段值后触发自动化流程,脚本读取到的仍然是修改之前的旧数据,而非最新已保存的数据。

复现步骤

  1. 新建一张测试表,包含字段:字段A(数字)、字段B(数字)、字段C(文本)

  1. 新建自动化流程:新增或修改记录时 → 执行 AirScript 脚本

  1. 脚本内容如下(仅读取当前字段值并写入字段C):

function main() {
    const SHEET_NAME = "测试表";
    const FIELD_A = "字段A";
    const FIELD_B = "字段B";
    const FIELD_C = "字段C";

    let recordId = Context.argv.recordid || Context.argv.b?.[0];
    if (!recordId) return;

    const sheet = Application.Sheets(SHEET_NAME);
    const valA = sheet.RecordRange(recordId, "@" + FIELD_A).Value;
    const valB = sheet.RecordRange(recordId, "@" + FIELD_B).Value;

    sheet.RecordRange(recordId, "@" + FIELD_C).Value =
        "A=" + valA + " B=" + valB;
}
main();
  1. 在表中录入一条数据:字段A=2,字段B=3

  1. 此时字段C显示:A=2 B=3

  1. 修改字段A为 5

  1. 自动化流程触发后,字段C显示:A=2 B=3 (应为 A=5 B=3

预期结果

自动化流程触发后,脚本应读取到修改后的最新数据。即修改字段A为5后,字段C应显示 A=5 B=3


实际结果

脚本读取到的仍是修改的数据,说明自动化流程传给脚本的记录数据是触发时刻的快照,而非数据库中已持久化的最新数据。


补充说明

  • 通过 按钮触发 执行同一脚本,能正确读取到最新数据

  • 在脚本开头增加 1~3 秒延迟等待后重试,问题依然存在

  • 排除网络延迟和数据库写入时序因素


希望官方能排查一下自动化流程中 AirScript 脚本读取数据的时序机制,确认是否为已知 Bug 或设计限制。谢谢!

上海
浏览 134
收藏
3
分享
3 +1
5
+1
全部评论 5
 
Mr Chen
Mr Chen WPS资深用户Lv.3 优质创作者KVPWPS产品体验官WPS寻令官

Lv.3 优质创作者

回答:可以让灵犀帮你检查一下自动化的代码,看看是不是哪里设置的有问题,我昨天遇到自动化任务的问题,灵犀给出了具体的指导意见。
举报
1
0
 
管理员
这个我之前也遇到过,我读取的是联系人字段,中途修改后,依然读取的是之前的联系人,但是是概率出现的;后来我把自动化流程分成两个就可以正常了。第一个自动化流程用于修改联系人字段,第二个再用脚本去读取修改后的联系人字段。
   江苏省
举报
1
3
小明明
照你的例子:我是相当于监听联系人修改,脚本把修改后的联系人设置到其他列里。这个怎么分为2个流程呢?
·
举报
0
0