Scripts de modelo de documento

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 3 min. de leitura
  • Com scripts de modelo de documento, você pode alterar dinamicamente o texto no corpo do modelo HTML. Os scripts de modelo de documento permitem que você execute tarefas simples, como exibir dados de RH, e complexas, como fazer consultas avançadas ao banco de dados.

    Você pode adicionar um marcador de script integrado ${template_script:script name} ao corpo do modelo HTML, substituindo o nome do script pelo nome do script que você criou. Isso facilita o uso dos mesmos scripts em vários modelos de documento. Você pode criar um script navegando atéModelos de documento > Script de modelos de documento.

    Exemplo de como criar e usar um script de modelo de documento em um modelo HTML

    1. O script employee_emergency_contacts preenche a lista de contatos de emergência em um documento de perfil do funcionário.
      (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. O script employee_emergency_contacts é chamado em um modelo de documento HTML, digitando $ {template_script:employee_emergency_contacts} no corpo do modelo de documento HTML do perfil do funcionário.

    3. O modelo de documento HTML do perfil do funcionário é selecionado em um caso e o modelo de documento é gerado com a lista de contatos de emergência da seguinte forma:

    Exemplo de como o script de modelo de documento traduz texto em um modelo HTML

    A seguir está um script employee_emergency_contacts que preenche a lista de contatos de emergência em um documento de perfil do funcionário.

    O docTemplate neste script faz referência ao registro do modelo de documento, o que ajuda a identificar o idioma e o formato de data selecionados no modelo de documento. getDisplayValueLang é uma API que ajuda a mudar o idioma dos tokens dinâmicos para o idioma de exibição definido no campo Idioma do modelo em um modelo de documento. getByFormat é uma API que ajuda a exibir a data no formato definido no campo Formato de data do modelo em um modelo de documento.

    (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);
    A seguir está um exemplo de como os tokens dinâmicos são traduzidos em um modelo de documento HTML.
    1. Ao configurar um modelo HTML, o idioma do modelo é selecionado como Alemão e o formato de data é definido como dd/MM/aaaa.
    2. O modelo de documento HTML é referenciado em um caso de RH.
    3. Quando o agente visualiza o documento, gera o anexo ou inicia tarefas de documento para os participantes, os campos de prioridade e relacionamento são traduzidos para o idioma alemão e as datas aparecem no formato dd/MM/aaaa.