Scripts de modèles de documents

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 3 minutes de lecture
  • Avec les scripts de modèles de documents, vous pouvez changer dynamiquement le texte dans le corps du modèle HTML. Les scripts de modèles de documents vous permettent d'effectuer des tâches simples, telles que l'affichage des données RH, et complexes, telles que la création de requêtes de base de données avancées.

    Vous pouvez ajouter une balise de script incorporé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éé. Il est donc facile d'utiliser les mêmes scripts dans plusieurs modèles de documents. Vous pouvez créer un script en accédant àModèles de documents > Script des 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 d'urgence dans un document Employee Profile.
      (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 Employee Profile.

    3. Le modèle de document HTML Employee Profile est sélectionné sur un ticket, et le modèle de document est généré avec la liste des contacts d'urgence comme suit :

    Exemple de traduction de texte dans un modèle HTML par un script de modèle de document

    Voici un script employee_emergency_contacts qui remplit la liste des contacts d’urgence dans un document Employee Profile.

    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 remplacer la langue des jetons dynamiques par la langue d’affichage définie dans le champ Langue du modèle dans 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 dans 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 la façon dont les jetons dynamiques sont traduits 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 allemand et le format de date est défini sur jj/MM/aaaa.
    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 apparaissent au format jj/MM/aaaa.