Calcul des champs fonctions
Le module technique Calcul des champs fonction est utilisé uniquement pour calculer ou recalculer des champs dépendant d'autres champs. L’utilité principale est lors d'ajout de champ manuellement dans l'interface. Si le champ créé manuellement est un champ propagé et stocké, alors cette modification ne sera utilisée que pour les futurs enregistrements.
Exemple concret
Le champ Pays transitaire est calculé (donc fonction) à partir du pays du partenaire. Le paramétrage du champ est Stocké et Interface seulement (onchange). Ainsi le champ est calculé mais modifiable après son calcul. Sur la capture, la valeur remontée était France initialement mais fût modifié en Albanie.
BILAN : A chaque nouvelle vente, le pays transitaire sera alors calculé.
Qu'en est-il des enregistrements passés ?
Le calcul du champ Pays transitaire étant à la sélection du partenaire, aucun enregistrement du passé n'est renseigné.
Le module Calcul de champ fonction est donc nécessaire pour recalculer le passé.
Paramétrage d'un calcul de champ
Les paramétrages sont accessibles dans le menu Configuration > Technique > Calcul des champs fonctions.
Le Modèle est l'objet auquel appartiennent le ou les champs à recalculer. Le nom technique est déduit du modèle. Le cadre Champs liste les champs à recalculer. Les champs appartiennent au modèle.
Le cadre Dernière exécution est renseigné lors de l’exécution avec le bouton Calculer.
Le champ Ignorer est utilisé pour ignorer le résultat d'une erreur d'un calcul dans le cas où sont lancés plusieurs calculs depuis la liste. Si une erreur apparaît, le calcul suivant est lancé et l'erreur est décrite dans le cadre Dénière exécution. Le champ SQL permet d'appliquer les méthodes de calcul en SQL pour gagner en performance. Si les champs calculés sont de type manytomany, il faut décocher la case SQL puisque cela ne fonctionnera pas.
Conséquence du calcul
Dans l'exemple précédent, les pays transitaire des enregistrements passés ont été recalculé.
Tous les valeurs sont calculées y compris celle enregistrées a posteriori de la création du champ. Il faut donc, Créer le champ > Lancer le calcul pour les enregistrements passés > Créer et générer de nouvelles valeurs.