1
フォームを送信するときに一意の番号を生成しようとしています。テストのためにスクリプトを以下のように単純化しました。GetScriptLockが機能していないようです
function onFormSubmit(event) {
// Get a script lock, because we're about to modify a shared resource.
var lock = LockService.getScriptLock();
// Wait for up to 30 seconds for other processes to finish.
lock.waitLock(30000);
var ticketNumber = Number(ScriptProperties.getProperty('lastTicketNumber')) + 1;
ScriptProperties.setProperty('lastTicketNumber', ticketNumber);
targetCell = event.range.offset(0, event.range.getNumColumns(), 1, 1);
targetCell.setValue(ticketNumber);
SpreadsheetApp.flush();
// Release the lock so that other processes can continue.
lock.releaseLock();
};
2つのフォームを1秒以内に提出すると、同じチケット番号が取得されることがわかります。
ご協力いただければ幸いです。