FAQ
¿Tienes dudas? No te preocupes, aquí encontrarás las soluciones.
Búsqueda Completa en el Sitio

    Generar fecha y hora de última modificación de un campo específico en un registro

    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:

    Paso 1: Abre el editor de workflow de Ragic

    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.

    Paso 2: Cambia a la página de edición "Global workflow"

    Paso 3: Pega el siguiente código y guárdalo

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

    Paso 4: Cambia la página de edición a la página "Post-workflow" de la hoja deseada

    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
    El código después de completar el campo ID correspondiente:
    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); 
        }
    }
    

    Paso 5: Guarda el Post-workflow

    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.

    Comparte tu opinión con Ragic

    ¿Qué te gustaría comentarnos?(obligatorio, selección múltiple)

    Proporcione explicaciones detalladas para los elementos seleccionados anteriormente:

    Capturas de pantalla para ayudarnos a comprender mejor tus comentarios:

    ¡Gracias por sus valiosos comentarios!

    Iniciar Ragic Gratis

    Registrarse con Google

    Términos de Servicio | Política de Privacidad