Modèles scriptés
Vous pouvez appliquer un modèle actif à un enregistrement à l’aide de JavaScript.
Appliquer un modèle à la version actuelle
Pour appliquer un modèle, utilisez la méthode applyTemplate .current.applyTemplate("<templatename>");
Appliquer un modèle à un GlideRecord
Pour appliquer le modèle à un enregistrement autre que actuel, remplacez current par une variable GlideRecord. Lors de l’utilisation d’une variable GlideRecord, vous devrez peut-être l’initialiser après avoir déclaré la variable.
var rec1 = new GlideRecord("incident");
rec1.initialize();
rec1.applyTemplate("my_incident_template");
Appliquer un modèle à partir d’une action d’interface utilisateur
Le script suivant présente une personnalisation possible de l’action Create Change d’interface utilisateur sur le formulaire de problème. Après avoir ajouté ce script à l’action d’interface utilisateur, un utilisateur peut sélectionner l’action d’interface utilisateur pour créer un enregistrement de changement avec des informations provenant à la fois de l’enregistrement de problème et du modèle de changement.var change = new GlideRecord("change_request");
change.initialize();
change.short_description = current.short_description;
change.description = current.u_details;
change.cmdb_ci = current.u_service;
change.priority = current.priority;
change.requested_by = current.caller_id;
change.assignment_group.setDisplayValue('Change & Release');
change.u_status = 'New';
change.parent = current.number;
if(0 == change.applyTemplate("standard_rfc")) {
current.rfc = change.insert();
current.comments = 'Change ' + change.number + ' created.';
}
var mySysID = current.update();
gs.addInfoMessage("Change " + change.number + " created");
action.setRedirectURL(change);
action.setReturnURL(current);
Scripter un modèle avec des modèles enfants
Lors de l’utilisation de applyTemplate avec un modèle qui a un ou plusieurs modèles enfants, le système crée l’enregistrement parent avant d’appliquer les modèles enfants. Ce comportement garantit que toutes les références ou champs de type « remontée pas à pas » de l’enregistrement enfant vers le parent ont une cible valide.
Par exemple, si un modèle de la table Demande de changement possède un modèle enfant pour la table Tâche de changement, l’application du modèle de demande de changement insère un enregistrement de demande de changement dans la base de données. Elle affecte cet enregistrement en tant que demande de changement pour l’enregistrement de tâche de changement, puis applique le modèle enfant à l’enregistrement de tâche de changement.
Appliquer un modèle à l’aide d’un sys_id au lieu d’un nom
GlideTemplate.get(template.sys_id).apply(GlideRecord)