Zoho CRM客户端脚本:如何获取页面加载时的修改时间
Zoho CRM 客户端脚本获取页面加载时的原始Modify Time值
直接通过$Page.record._Modify_time在onSave事件中获取的是服务器端的最新值,而非页面加载时的原始数据——这是因为onSave触发时会重新拉取服务器的当前记录状态。要获取页面加载时的原始Modify Time,可通过以下步骤实现:
在onPageLoad事件中提前存储页面加载时的原始Modify Time值
页面加载完成时,$Page.record包含的是当时从服务器拉取的记录数据,此时将Modify Time存入客户端全局变量或Zoho本地存储:// onPageLoad 事件处理函数 function onPageLoad() { // 存入全局变量(同一页面上下文有效) window.originalModifyTime = $Page.record._Modify_time; // 若全局变量受环境限制,可改用Zoho本地存储API // ZDK.Storage.set("originalModifyTime", $Page.record._Modify_time); }在onSave事件中调用存储的原始值
当用户点击保存时,直接读取之前存储的变量即可得到页面加载时的原始Modify Time,不受其他用户修改的影响:// onSave 事件处理函数 function onSave() { // 从全局变量读取 let originalModifyTime = window.originalModifyTime; // 若用本地存储则读取 // let originalModifyTime = ZDK.Storage.get("originalModifyTime"); // 示例:对比原始值与当前服务器值判断是否有冲突 let currentServerModifyTime = $Page.record._Modify_time; if (originalModifyTime !== currentServerModifyTime) { ZDK.UI.Alert.show("提示", "该记录已被其他用户修改,请刷新页面后重试"); return false; // 阻止保存 } }
注意事项
- onPageLoad事件会优先于onSave触发,符合Zoho CRM的事件执行顺序
- 若页面长时间停留后刷新,存储的原始值会自动更新为刷新时的记录状态,符合操作预期
- 多用户场景下,该方法能准确区分当前用户页面加载时的原始数据与服务器最新数据,避免冲突覆盖
内容的提问来源于stack exchange,提问作者Joril
相关产品推荐
相关产品推荐

