Deluge脚本输入值变更后Decimal_5字段不更新问题求助
问题原因与解决方案
核心原因
你遇到的问题是因为计算Decimal_5时用了更新前的Decimal_3旧值:
当编辑Decimal_1或Decimal_2触发脚本时,你先通过zoho.crm.getRecordById获取了当前记录的所有字段值,此时Decimal_3还是未被本次脚本更新的旧数据。你用这个旧的Decimal_3值乘以Decimal_4得到output2,再赋值给Decimal_5。如果Decimal_4没有变化,那么output2和Decimal_5当前的数值完全一致,Zoho CRM会自动忽略这种无变更的字段更新,所以看起来Decimal_5没更新。
解决方案
根据你的需求选择对应的修改方式:
场景1:希望Decimal_5是新计算的Decimal_3 × Decimal_4
直接用刚算出的output(也就是要更新到Decimal_3的新值)来计算output2,不需要从旧记录里取Decimal_3:
r_account = zoho.crm.getRecordById("Accounts",AccountID); value1 = r_account.get("Decimal_1"); value2 = r_account.get("Decimal_2"); value4 = r_account.get("Decimal_4"); // 用新的Decimal_3值计算Decimal_5 output = value1 * value2; output2 = output * value4; updatemap = Map(); updatemap.put("Decimal_3",output); updatemap.put("Decimal_5",output2); response = zoho.crm.updateRecord("Accounts",AccountID,updatemap); info response;
场景2:确认是否是字段值无变化导致的更新被忽略
如果确实需要用旧的Decimal_3值计算Decimal_5,可以在脚本中添加日志,检查Decimal_4和output2的数值是否有变化:
r_account = zoho.crm.getRecordById("Accounts",AccountID); value1 = r_account.get("Decimal_1"); value2 = r_account.get("Decimal_2"); value3 = r_account.get("Decimal_3"); value4 = r_account.get("Decimal_4"); output = value1 * value2; output2 = value3 * value4; // 新增日志查看数值 info "当前Decimal_4值:" + value4; info "计算出的Decimal_5值:" + output2; updatemap = Map(); updatemap.put("Decimal_3",output); updatemap.put("Decimal_5",output2); response = zoho.crm.updateRecord("Accounts",AccountID,updatemap); info response;
如果日志显示output2和Decimal_5当前值一致,就说明是Zoho CRM跳过了无变更的字段更新,这是正常机制。
内容的提问来源于stack exchange,提问作者cluelesscoder
相关产品推荐
相关产品推荐

