문서 템플릿 스크립트
문서 템플릿 스크립트를 사용하여 HTML 템플릿의 본문에서 텍스트를 동적으로 변경할 수 있습니다. 문서 템플릿 스크립트를 사용하면 HR 데이터를 표시하는 등의 단순한 작업을 수행하거나 고급 데이터베이스 쿼리를 표시하는 등의 복잡한 작업을 수행할 수 있습니다.
HTML 템플릿의 본문에 ${template_script:script name} 포함된 스크립트 태그를 추가하여 스크립트 이름을 직접 생성한 스크립트 이름으로 바꿀 수 있습니다. 이렇게 하면 여러 문서 템플릿에서 동일한 스크립트를 쉽게 사용할 수 있습니다. 다음으로 이동하여 스크립트를 생성할 수 있습니다..
HTML 템플릿에서 문서 템플릿 스크립트를 생성하고 사용하는 방법의 예제
- employee_emergency_contacts 스크립트는 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); - employee_emergency_contacts 스크립트는 Employee Profile HTML 문서 템플릿의 본문에 $ {template_script:employee_emergency_contacts}를 입력하여 HTML 문서 템플릿에서 호출됩니다.
- 케이스에서 Employee Profile HTML 문서 템플릿을 선택하고 다음과 같이 긴급 연락처 목록으로 문서 템플릿을 생성합니다.
문서 템플릿 스크립트가 HTML 템플릿의 텍스트를 번역하는 방법의 예
다음은 직원 프로파일 문서의 비상 연락처 목록을 채우는 employee_emergency_contacts 스크립트입니다.
이 스크립트의 docTemplate는 문서 템플릿 기록을 참조하며, 이는 문서 템플릿에서 선택된 언어와 날짜 형식을 식별하는 데 도움이 됩니다. getDisplayValueLang은 동적 토큰의 언어를 문서 템플릿의 템플릿 언어 필드에 설정된 표시 언어로 변경하는 데 도움이 되는 API입니다. getByFormat은 문서 템플릿의 템플릿 날짜 형식 필드에 설정된 형식으로 날짜를 표시하는 데 도움이 되는 API입니다.
(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);- HTML 템플릿을 구성하는 동안 템플릿 언어는 독일어로 선택되고 날짜 형식은 dd/MM/yyyy로 설정됩니다.
- HTML 문서 템플릿은 HR 케이스에서 참조됩니다.
- 에이전트가 문서를 미리 보거나, 첨부 파일을 생성하거나, 참가자에 대한 문서 작업을 시작하면 우선순위 및 관계 필드가 독일어로 번역되고 날짜가 dd/MM/yyyy 형식으로 표시됩니다.