Я использую электронную таблицу Google в качестве базовой базы данных. Соотношение «один ко многим» здесь является листом «Листы» и листом «Comms». Каждый проводник может иметь несколько сообщений (электронные письма, твиты, телефонные звонки и т. Д.)Сценарий Google Apps: создать последовательный идентификатор
Когда пользователь заполняет форму 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 ...
}
Я также хочу, чтобы генерировать идентификатор, так что я могу связать Comms обратно к данному свинца. Каков наилучший способ сделать это? Идеи, о которых я думал до сих пор, включают в себя создание очень длинного GUID или использование последовательного идентификатора, например. L1, L2, L3 и т.д.
Я предпочитаю последнюю идею для удобства чтения и дать более полное представление о данных, но
а), что код будет использовать, чтобы найти последний идентификатор с префиксом L , и увеличивать это?
b) Каков наилучший способ предотвратить инкремент идентификатора неправильно в случае, когда я повторно сортирую лист?
Если вы создаете идентификатор на основе даты и времени, то никогда не будет дубликатов идентификаторов, и вам не нужно искать последний идентификатор. Эта миллисекунда вовремя не повторится. Если у вас есть ситуация, когда многие пользователи могут отправлять данные в одно и то же время, вы можете использовать LockService (который вы должны использовать в любом случае), чтобы убедиться, что часть кода не закончится одновременно. –