FAQ
Comment pouvons-nous vous aider ?
Recherche intégrale du site

    Générer la date et l’heure de dernière modification d’un champ spécifique dans l’enregistrement

    Dans Ragic, vous pouvez définir une valeur par défaut pour remplir automatiquement un champ Date avec la date et l’heure de dernière modification de l’enregistrement. Cependant, si vous souhaitez remplir automatiquement le champ avec la date et l’heure de dernière modification d’un champ spécifique de l’enregistrement, vous devez ajouter un script pour le réaliser.

    Veuillez suivre ce guide pour ajouter votre script :

    Étape 1 : ouvrir l’éditeur de workflow Ragic

    Cliquez avec le bouton droit sur le nom de n’importe quelle feuille et sélectionnez Workflow Javascript, ou cliquez avec le bouton droit sur n’importe quel onglet et sélectionnez Workflow Javascript Global.

    Étape 2 : accéder à la page d’édition "Workflow Global"

    Étape 3 : coller le code suivant et sauvegarder

    Champs indépendants :

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

    Champs de sous-table :

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

    Étape 4 : accéder à la page d’édition du "post-worklfow" de la feuille concernée

    Si l'URL de votre feuille est : https://www.ragic.com/accountname/tabname/1?PAGEID=wSM (ignorer la partie ?PAGEID=wSM)

    Champs indépendants :

    Ajoutez le code suivant dans le Post-workflow :

    setLastModifiedOnField("/tabname/1", ID du champ spécifique, ID du champ de date de l’enregistrement);

    Pour trouver l’ID d’un champ, veuillez consulter cet article.

    En prenant l'exemple de "Commandes client" :

    Champ Nom du champ ID de champ
    Champ spécifique Statut 1009947
    Champ de date de l’enregistrement Date de mise à jour du statut 1009948

    Le code une fois que les ID des champs y ont été intégrées :

    setLastModifiedOnField("/tabname/1", 1009947, 1009948);

    Lors de la création d'un nouvel enregistrement, si un champ spécifique est vide, la date de dernière modification sera tout de même générée dans le champ de date d'enregistrement après la sauvegarde. Pour ne déclencher ceci que lors des mises à jour, ajustez le code comme suit :

    if(param.getOldNodeId(Specific Field ID) !== -1 || param.getNewValue(Specific Field ID)){
        setLastModifiedOnField("/tabname/1", ID du champ spécifique, ID du champ de date de l’enregistrement);
    }
    

    Champs de sous-table :

    Ajoutez le code suivant au post-workflow:

    setLastModifiedOnSubtableField("/tabname/1", champ clé de la sous-table, ID du champ spécifique, ID du champ de date de l’enregistrement);

    Remarque : Seuls les champs de sous-table peuvent être sélectionnés comme "champ de date de l’enregistrement".

    Vous pouvez trouver le champ clé de la sous-table en téléchargeant le dictionnaire des données. Pour reprendre notre exemple précédent, le champ clé est 1009900.

    Ainsi, comme l'indique l'illustration ci-dessus :

    Champ Nom du champ ID du champ
    Champ spécifique Statut 1009947
    Champ de date de l’enregistrement Date de mise à jour du statut 1009948

    Le code après avoir renseigné le champ clé de la sous-table et l'ID du champ:

    setLastModifiedOnSubtableField("/tabname/1", 1009900, 1009947, 1009948);

    Lors de la création d'un nouvel enregistrement, si un champ spécifique est vide, la date de dernière modification sera tout de même générée dans le champ de date d'enregistrement après la sauvegarde. Pour ne déclencher ceci que lors des mises à jour, ajustez le code comme suit :

    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("/tabname/1" , champ clé de la sous-table, ID du champ spécifique, ID du champ de date de l'enregistrement); 
        }
    }
    

    Étape 5 : sauvegarder le post-workflow

    N'oubliez pas de sauvegarder vos modifications avant de quitter.


    Note:

    1. Si une erreur du type TypeError: null has no such function "addFetchDomains" in at line number 25 apparaît lors de la sauvegarde, vérifiez et confirmez si /tabname/1 est correct.

    2. La date et l'heure de mise à jour seront enregistrées selon le Fuseau horaire local de l'organisation défini dans les paramètres d'organisation.

    Donnez-nous votre avis sur Ragic

    Que souhaitez-vous partager avec nous ?(obligatoire, choix multiples)

    Veuillez donner des explications détaillées pour les éléments sélectionnés ci-dessus :

    Captures d’écran pour mieux comprendre votre retour:

    Merci pour votre précieux retour !

    Essayer Ragic gratuitement

    Connectez-vous avec Google

    Conditions d'utilisation | Politique de confidentialité