Google Apps脚本:创建顺序ID

时间:2016-03-17 00:13:44

标签: google-apps-script google-sheets

我正在使用Google Spreadsheet作为基本数据库。这里讨论的一对多关系是“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的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

每个回复都有一个时间戳。您可以将其用作响应ID。

另一种方法是在编辑响应URL中使用response_id。

回复网址如下所示

https://docs.google.com/forms/d/0awKpg_finiay86360kNXrcjihl36azP3DJEaZqXDY7A/viewform?edit2=2_ABaOmuk-sIHc2HrfDJO6d8CsST-Te-5ib2l0uFknhPt0DyjM3YhSXEkEtyirN8l

response_id是edit2=之后的字符串,因此对于上面的示例,response_id是

2_ABaOmuk-sIHc2HrfDJO6d8CsST-Te-5ib2l0uFknhPt0DyjM3YhSXEkEtyirN8l

要获取唯一回复网址,请使用FormResponse.getResponseUrl