【发布时间】:2016-03-17 00:13:44
【问题描述】:
我使用 Google 电子表格作为基本数据库。这里讨论的一对多关系是“Leads”表和“Comms”表。每个潜在客户都可以进行多次通信(电子邮件、推文、电话等)
当用户填写 Google 表单时,我有一个脚本,可以将相关表单表中的一些数据插入到“潜在客户”表中,并向用户发送电子邮件:
function formSubmitReply(e) {
srcSheet.getRange(srcLastRow, 1).copyTo(leadsSheet.getRange(leadsLastRow + 1, 1)); // Copy timestamp
srcSheet.getRange(srcLastRow, 6).copyTo(leadsSheet.getRange(leadsLastRow + 1, 5)); // Copy first name
srcSheet.getRange(srcLastRow, 7).copyTo(leadsSheet.getRange(leadsLastRow + 1, 6)); // Copy surname
leadsSheet.getRange(leadsLastRow + 1, 3).setValue("Web - Unknown"); // Mark as WEB lead
leadsSheet.getRange(leadsLastRow + 1, 4).setValue("New"); // Set status to NEW
// Email the user ...
}
我还想生成一个 ID,以便将通信与给定的潜在客户联系起来。最好的方法是什么?到目前为止,我想到的想法包括生成一个很长的 GUID,或者使用顺序 ID,例如L1、L2、L3 等
出于可读性和更好地洞察数据的考虑,我更喜欢后一种想法,但是
a) 我将使用什么代码来查找带有 L 前缀的最后一个 ID,并将其递增?
b) 在我重新排序工作表的情况下,防止错误增加 ID 的最佳方法是什么?
【问题讨论】:
-
如果您根据日期和时间创建一个ID,则永远不会有重复的ID,您无需搜索最后一个ID。这毫秒的时间不会再次发生。如果您遇到很多用户可能“同时”提交数据的情况,那么您可以使用 LockService(无论如何都应该使用)来确保一段代码不会最终同时运行。跨度>
标签: google-apps-script google-sheets