En Ragic, puedes establecer un valor predeterminado para rellenar automáticamente un campo de fecha con la fecha y hora de la última modificación de la entrada. Sin embargo, si necesita rellenar automáticamente el campo con la fecha y hora de la última modificación de un campo específico en el registro, debes agregar un script para lograrlo.
Sigue esta guía para agregar tu script:
Haz clic con el botón derecho en el nombre de cualquier hoja y selecciona Workflow JavaScript, o haz clic con el botón derecho en cualquier pestaña y selecciona Workflow JavaScript Global.



Campos independientes:
function setLastModifiedOnField(pathSheet, observeField, recordField) {
if (param.getOldValue(observeField) !== param.getNewValue(observeField) || param.isCreateNew()) {
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();
}
}
Campos de subtabla :
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();
}
}
}

Si el URL de tu hoja es: https://www.ragic.com/nombredecuenta/nombredepestaña/1?PAGEID=wSM (ignora la parte ?PAGEID=wSM)
Campos independientes:
Agrega el siguiente código al Post-workflow:
setLastModifiedOnField("/nombredepestaña/1", ID de campo específico, ID de campo de fecha de registro);;
Para encontrar el ID del campo, consulta este artículo.
Tomando como ejemplo "Orden de venta", consulte la siguiente imagen y tabla:
| Campo | Nombre del campo | ID del campo |
|---|---|---|
| Campo específico | Estado | 2000880 |
| Fecha de registro | Fecha de actualización del estado | 1001110 |
setLastModifiedOnField("/nombredepestaña/1", 2000880, 1001110);
Al crear un nuevo registro, si un campo específico está vacío, la fecha de última modificación se generará igualmente en el campo de fecha del registro después de guardarlo. Para que esto solo ocurra durante las actualizaciones, ajusta el código de la siguiente manera:
if(param.getOldNodeId(ID del campo específico) !== -1 || param.getNewValue(ID del campo específico)){
setLastModifiedOnField("/nombredepestaña/1", ID del campo específico, fecha de registro);
}
Campos de subtabla:
Agrega el siguiente código al Post-workflow:
setLastModifiedOnSubtableField("/nombredepestaña/1", campo clave de la subtabla, ID de campo específico, ID de campo de fecha de registro);
Nota: Solo se pueden seleccionar campos de subtabla como "campo de fecha de registro".
Puedes encontrar el campo clave de la subtabla en el diccionario de datos. Consulta el siguiente ejemplo, donde el campo clave de la subtabla campo clave es 1004134.

Por ejemplo, como se muestra en la imagen superior:
| Campo | Nombre del campo | ID del campo |
|---|---|---|
| Campo específico | Estado | 1001111 |
| Fecha de registro | Fecha de actualización | 1001112 |
El código después de completar la subtabla correspondiente campo clave y ID de campo:
setLastModifiedOnSubtableField("/nombredepestaña/1", 2001138, 1001111, 1001112);
Al crear un nuevo registro, si un campo específico está vacío, la fecha de última modificación se generará igualmente en el campo de fecha del registro después de guardarlo. Para que esto solo ocurra durante las actualizaciones, ajusta el código de la siguiente manera:
var paramList = param.getSubtableEntry(Subtable Key Field);
var list = paramList.toArray();
for(var i = 0; i < list.length; i ++) {
if(paramList[i].getOldNodeId(Specific Field ID) !== -1 param.getNewValue(Specific Field ID) !== ""){
setLastModifiedOnSubtableField("/nombredepestaña/1" , campo clave de subtabla, ID de campo específico, ID de campo de fecha de registro);
}
}
No olvides guardar los cambios antes de salir.
Nota:
1. Si al guardar aparece un error como TypeError: null no tiene la función "addFetchDomains" en la línea 25, comprueba que /nombredepestaña/1 sea correcto.
2. La fecha y hora de actualización se registrarán según la zona horaria local de la empresa configurada en la configuración de la empresa.