Dokumentvorlagenskripts

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 2 Minuten Lesedauer
  • Mit Dokumentvorlagenskripts können Sie den Text im Textkörper der HTML-Vorlage dynamisch ändern. Mithilfe von Dokumentvorlagenskripts können Sie einfache Aufgaben, z. B. die Anzeige von HR-Daten, und komplexe Aufgaben, z. B. erweiterte Datenbankabfragen, ausführen.

    Sie können ein eingebettetes ${template_script:script name}-Skript-Tag im Textkörper der HTML-Vorlage hinzufügen, indem Sie den Skriptnamen durch den Namen des von Ihnen erstellten Skripts ersetzen. Dies macht es einfach, dieselben Skripts in mehreren Dokumentvorlagen zu verwenden. Sie können ein Skript erstellen, indem Sie zu navigierenDokumentvorlagen > Dokumentvorlagen-Skript.

    Beispiel für die Erstellung und Verwendung eines Dokumentvorlagenskripts in einer HTML-Vorlage

    1. Mit dem Skript „employee_emergency_contacts“ wird die Notfallkontaktliste in einem Employee Profile-Dokument ausgefüllt.
      (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. Das Skript „employee_emergency_contacts“ wird in einer HTML-Dokumentvorlage aufgerufen, indem Sie $ {template_script:employee_emergency_contacts} in den Textkörper der Employee Profile-HTML-Dokumentvorlage eingeben.

    3. Die Employee Profile-HTML-Dokumentvorlage wird für einen Fall ausgewählt, und die Dokumentvorlage wird wie folgt mit einer Notfallkontaktliste generiert:

    Beispiel für die Übersetzung von Text in einer HTML-Vorlage durch ein Dokumentvorlagenskript

    Es folgt ein employee_emergency_contacts-Skript, das die Notfallkontaktliste in einem Employee Profile-Dokument ausfüllt.

    docTemplate verweist in diesem Skript auf den Dokumentvorlagendatensatz, der bei der Identifizierung der Sprache und des Datumsformats hilft, die in der Dokumentvorlage ausgewählt sind. getDisplayValueLang ist eine API, die beim Ändern der Sprache dynamischer Token in die Anzeigesprache hilft, die im Feld Vorlagensprache in einer Dokumentvorlage festgelegt ist. getByFormat ist eine API, die beim Anzeigen des Datums in dem Format hilft, das im Feld Vorlagendatumsformat in einer Dokumentvorlage festgelegt ist.

    (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);
    Im Folgenden finden Sie ein Beispiel dafür, wie dynamische Token in einer HTML-Dokumentvorlage übersetzt werden.
    1. Beim Konfigurieren einer HTML-Vorlage wird die Vorlagensprache als Deutsch ausgewählt, und das Datumsformat wird auf TT/MM/JJJJ festgelegt.
    2. Die HTML-Dokumentvorlage wird in einem HR-Fall referenziert.
    3. Wenn der Service Desk-Mitarbeiter eine Vorschau des Dokuments anzeigt, den Anhang generiert oder Dokumentaufgaben für Teilnehmer initiiert, werden die Felder „Priorität“ und „Beziehung“ in die englische Sprache übersetzt, und die Datumsangaben werden im Format TT/MM/JJJJ angezeigt.