Lorsque la création dynamique est activée, saisir une valeur inexistante dans un champ de référence crée un nouvel enregistrement sur la table référencée au lieu de renvoyer une erreur.
Avant de commencer
Rôle requis : personalize_dictionary
Pourquoi et quand exécuter cette tâche
Par défaut, un utilisateur doit saisir une valeur dans un champ de référence qui correspond à un enregistrement existant dans la table à laquelle le champ de référence fait référence. Par exemple, le champ Appelant d’un incident doit avoir une valeur qui est un utilisateur existant. Vous pouvez activer la création dynamique pour créer un nouvel enregistrement sur la table référencée lorsqu’un utilisateur saisit une valeur inexistante dans un champ de référence au lieu de renvoyer une erreur.
Procédure
-
Cliquez avec le bouton droit sur l’étiquette du champ dans le formulaire et sélectionnez Configurer le dictionnaire.
-
Renseignez les champs suivants (vous devrez peut-être configurer le formulaire Dictionnaire) :
- dynamic_creation : Cochez la case.
- dynamic_creation_script : entrez un script qui crée l’enregistrement de façon dynamique.
-
Cliquez sur Mettre à jour.
Exemples :
Vous pouvez utiliser la dynamic_creation_script suivante pour créer un enregistrement sur la table référencée.
current.name = value;
current.insert();
Remarque : L’objet parent peut être utilisé pour accéder à tout ce qui se trouve dans l’enregistrement parent.
Vous pouvez créer un script include nommé
MyUserReferenceCreator avec les contenus suivants :
var MyUserReferenceCreator = Class.create();
MyUserReferenceCreator.prototype = {
initialize: function() {
},
create: function(current, value) {
current.name=value;
return current.insert();
},
type: 'MyUserReferenceCreator'
}
Lorsque le script include est créé, la dynamic_creation_script suivante génère un nouvel emplacement pour une valeur de champ de référence non valide :
new MyUserReferenceCreator().create(current, value);