Ragic 提供了預設值功能協助您紀錄整筆資料的修改日期
如果您只需要紀錄單一欄位的最後修改日期,則可以利用程式幫助你達成需求
請依如下步驟設定:
*請注意,此方法僅適用於獨立欄位,子表格欄位不適用
在任一表單名稱上按下右鍵,並選擇「 JavaScript 工作流程」:
function setLastModifiedOnField(pathSheet, observeField, recordField) {
if ((param.isCreateNew() == false && param.getOldValue(observeField) !== param.getNewValue(observeField)) || (param.isCreateNew() && param.getNewValue(observeField) !== null)) {
var today = new Date(new Date().getTime() + account.getTimeZoneOffset());
function pad2(n) { return n < 10 ? '0' + n : n }
var fmtValue = today.getFullYear() + "/" +
pad2(today.getMonth() + 1) + "/" +
pad2(today.getDate()) + " " +
pad2(today.getHours()) + ":" +
pad2(today.getMinutes()) + ":" +
pad2(today.getSeconds());
var query = db.getAPIQuery(pathSheet);
query.addFetchDomains(recordField);
var entry = query.getAPIEntry(response.getRootNodeId());
entry.setFieldValue(recordField, fmtValue);
entry.save();
}
}
若表單路徑為
https://www.ragic.com/accountname/tabname/1
那麼請在此處填上:
setLastModifiedOnField("/tabname/1", 特定欄位ID, 紀錄日期欄位ID);
完成編輯後請務必儲存再離開。
紀錄的時間根據「帳號設定」中的時區調整。
*如果儲存時出現類似:TypeError: null has no such function "addFetchDomains" in at line number 25的錯誤的話,代表"/tabname/1"可能錯了,可以檢查看看這邊有沒有寫錯。
*此做法在新增一筆資料時,如果特定欄位為空值,儲存後一樣會在記錄日期欄位產生修改日期,如果希望只在修改時才觸發,可以在Post-workflow將上述的程式調整為以下:
if(param.getOldValue(特定欄位ID) !== null || param.getNewValue(特定欄位ID) !== "" ){
setLastModifiedOnField("/tabname/1", 特定欄位ID, 紀錄日期欄位ID);
}