Scripts de modèle de document

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 3 minutes de lecture
  • Les scripts de modèle de document vous permettent de modifier dynamiquement le texte dans le corps du modèle HTML. Les scripts de modèle de document vous permettent d’effectuer des tâches simples, telles que l’affichage de données RH, et des tâches complexes, telles que des requêtes de base de données avancées.

    Vous pouvez ajouter une balise de script intégrée ${template_script :script name} au corps du modèle HTML, en remplaçant le nom du script par le nom du script que vous avez créé. Cela facilite l’utilisation des mêmes scripts dans plusieurs modèles de documents. Vous pouvez créer un script en accédant àModèles de documents > Script de modèles de documents.

    Exemple de création et d’utilisation d’un script de modèle de document dans un modèle HTML

    1. Le script employee_emergency_contacts remplit la liste des contacts en cas d’urgence dans un document de profil de l’employé.
      (function runTemplateScript(target /*GlideRecord for target task*/ ) {
      	var getHeaderCell = function(label) {
      		return '<th style="border: 1px solid #dddddd; text-align: left; padding: 8px;">' + label + '</th>';
      	};	
      	var getDataCell = function(value) {
      		return '<td style="border: 1px solid #dddddd; text-align: left; padding: 8px;">' + value + '</td>';
      	};
      	
      	var html = '';
      	var hrTaskGr = new GlideRecord('sn_hr_core_contact');
      	hrTaskGr.addQuery('user', target.getValue('subject_person'));
      	hrTaskGr.query();
      	while(hrTaskGr.next()) {
      		html = html + '<tr>';
      		html = html + getDataCell(hrTaskGr.getDisplayValue('name'));
      		html = html + getDataCell(hrTaskGr.getDisplayValue('mobile_phone'));
      		html = html + getDataCell(hrTaskGr.getDisplayValue('relation_to_employee'));
      		html = html + '</tr>';
      	}
      	
      	if(!gs.nil(html))
      		html = '<h4>Emergency Contact Information</h4><table width="500px;"><tr>' + getHeaderCell('Name') + getHeaderCell('Mobile phone') + getHeaderCell('Relationship') + html + '</table>';
      	
      	return html;
      })(target);
    2. Le script employee_emergency_contacts est appelé dans un modèle de document HTML en tapant $ {template_script :employee_emergency_contacts} dans le corps du modèle de document HTML Profil de l’employé.

      Modèle affichant des champs, y compris une zone d’entrée de script dotée de contrôles de modification de base.

    3. Le modèle de document HTML de profil de l’employé est sélectionné sur un ticket et le modèle de document est généré avec la liste des contacts en cas d’urgence comme suit :

      Formulaire de ticket RH dans lequel vous pouvez saisir « Profil de l’employé » dans le champ Modèle de document.

      Un aperçu du document de profil de l’employé.

    Exemple de la façon dont le script de modèle de document traduit du texte dans un modèle HTML

    Voici un script employee_emergency_contacts qui remplit la liste des contacts en cas d’urgence dans un document de profil de l’employé.

    docTemplate dans ce script fait référence à l’enregistrement du modèle de document, ce qui permet d’identifier la langue et le format de date sélectionnés sur le modèle de document. getDisplayValueLang est une API qui permet de changer la langue des jetons dynamiques pour qu’elle corresponde à la langue d’affichage définie dans le champ Langue du modèle d’un modèle de document. getByFormat est une API qui permet d’afficher la date au format défini dans le champ Format de date du modèle d’un modèle de document.

    (function runTemplateScript(target /*GlideRecord for target task*/, docTemplate /*GlideRecord for doc template*/) {
    
        //Add your code here to return the dynamic content for template
        var getHeaderCell = function(label) {
            return '<th style="border: 1px solid #dddddd; text-align: left; padding: 8px;">' + label + '</th>';
        };  
        var getDataCell = function(value) {
            return '<td style="border: 1px solid #dddddd; text-align: left; padding: 8px;">' + value + '</td>';
        };
        
        var html = '';
        var templateLang = docTemplate.getValue('language');
        var templateDateFormat = docTemplate.getValue('template_date_format');
        var hrTaskGr = new GlideRecord('sn_hr_core_contact');
        hrTaskGr.addQuery('user', target.getValue('subject_person'));
        hrTaskGr.query();
        while(hrTaskGr.next()) {
            var dob = hrTaskGr.getDisplayValue('date_of_birth');
            var grDOB = new GlideDateTime(dob);
            html = html + '<tr>';
            html = html + getDataCell(hrTaskGr.getDisplayValue('name'));
            html = html + getDataCell(hrTaskGr.getDisplayValue('mobile_phone'));
            html = html + getDataCell(hrTaskGr.getElement('relation_to_employee').getDisplayValueLang(templateLang));
            html = html + getDataCell(hrTaskGr.getElement('priority').getDisplayValueLang(templateLang));
            html = html + getDataCell(grDOB.getLocalDate().getByFormat(templateDateFormat)
            );
            html = html + '</tr>';
        }
        
        if(!gs.nil(html))
            html = '<h4>Emergency Contact Information</h4><table width="500px;"><tr>' + getHeaderCell('Name') + getHeaderCell('Mobile phone') + getHeaderCell('Relationship') + getHeaderCell('Priority') + getHeaderCell('Date of birth') + html + '</table>';
        
        return html;
    
    })(target, docTemplate);
    Voici un exemple de traduction des jetons dynamiques dans un modèle de document HTML.
    1. Lors de la configuration d’un modèle HTML, la langue du modèle est sélectionnée comme l’allemand et le format de date est défini sur jj/MM/aaaa.Le modèle de lettre de vérification des emplois précédents du ticket RH. Il affiche tous les champs et le corps de texte utilisé pour la lettre.
    2. Le modèle de document HTML est référencé dans un ticket RH.
    3. Lorsque l’agent prévisualise le document, génère la pièce jointe ou lance des tâches de document pour les participants, les champs de priorité et de relation sont traduits en allemand, et les dates s’affichent au format jj/mm/aaaa.

      L’aperçu traduit du modèle de document. I est traduit en allemand.