Scripts de modelo de documento
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é.
Exemplo de como criar e usar um script de modelo de documento em um modelo HTML
- 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); - 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.
- 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);- Ao configurar um modelo HTML, o idioma do modelo é selecionado como Alemão e o formato de data é definido como dd/MM/aaaa.
- O modelo de documento HTML é referenciado em um caso de RH.
- 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.