常见问题
遇到问题了吗?不用担心,答案都在这。
全站搜索

如何记录特定字段的最后数据修改日期?

Ragic 提供了默认值功能协助您纪录整笔数据的修改日期

如果您只需要纪录单一字段的最后修改日期,则可以利用程序帮助你达成需求

请依如下步骤设置:

步骤一: 打开 JavaScript 工作流程编辑器

在任一表单名称上单击下右键,并选择“ JavaScript 工作流程”:

步骤二:切换至 Global Workflow

步骤三:将以下程序代码拷贝贴上并保存

独立字段 :

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();

}

}

子表格字段 :

function setLastModifiedOnSubtableField(pathSheet,observeSubtableKeyField, observeSubtableField, recordField) {

var list = param.getSubtableEntry(observeSubtableKeyField);

var entry = param.getUpdatedEntry();

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());

for (var i = 0; i < list.length; i++) {

if(list[i].getOldValue(observeSubtableField) != list[i].getNewValue(observeSubtableField) && (list[i].getOldValue(observeSubtableField) !== null || list[i].getNewValue(observeSubtableField) !== "" )){

var subRootNodeId = list[i].getSubRootNodeId();

entry.setSubtableFieldValue(recordField, subRootNodeId, fmtValue);

entry.save();

}

}

}

步骤四:切换至字段所在的表单的 "Post-workflow"

Post-workflow

若表单路径为

https://www.ragic.com/accountname/tabname/1

独立字段 :

那么请在此处填上:

setLastModifiedOnField("/tabname/1", 特定字段ID, 纪录日期字段ID);

查询字段ID的方法请看这边

*此做法在新增一笔数据时,如果特定字段为空值,保存后一样会在记录日期字段生成修改日期,如果希望只在修改时才触发,可以在Post-workflow将上述的程序调整为以下:

if(param.getOldValue(特定字段ID) !== null || param.getNewValue(特定字段ID) !== "" ){

setLastModifiedOnField("/tabname/1", 特定字段ID, 纪录日期字段ID);

}

子表格字段 :

请在此处填上:

setLastModifiedOnSubtableField("/tabname/1", 子表格KeyField, 特定字段ID, 纪录日期字段ID);

子表格KeyField可以在数据库字段定义文档中找到,以下为示意图:

完成编辑后请务必保存再离开。

纪录的时间根据“帐号设置”中的时区调整。

*如果保存时出现类似:TypeError: null has no such function "addFetchDomains" in at line number 25的错误的话,代表"/tabname/1"可能错了,可以检查看看这边有没有写错。

回最上面

    马上登记
    免费试用 Ragic!

    用 Google 帐号登记

    立即科技 Ragic, Inc.
    02-7728-8692
    台北市中正区南昌路二段81号9楼