문서 템플릿 스크립트

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기6분
  • 문서 템플릿 스크립트를 사용하여 HTML 템플릿의 본문에서 텍스트를 동적으로 변경할 수 있습니다. 문서 템플릿 스크립트를 사용하면 HR 데이터를 표시하는 등의 단순한 작업을 수행하거나 고급 데이터베이스 쿼리를 표시하는 등의 복잡한 작업을 수행할 수 있습니다.

    HTML 템플릿의 본문에 ${template_script:script name} 포함된 스크립트 태그를 추가하여 스크립트 이름을 직접 생성한 스크립트 이름으로 바꿀 수 있습니다. 이렇게 하면 여러 문서 템플릿에서 동일한 스크립트를 쉽게 사용할 수 있습니다. 다음으로 이동하여 스크립트를 만들 수 있습니다.문서 템플릿 > 문서 템플릿 스크립트.

    HTML 템플릿에서 문서 템플릿 스크립트를 생성하고 사용하는 방법의 예제

    1. 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);
    2. employee_emergency_contacts 스크립트는 Employee Profile HTML 문서 템플릿의 본문에 $ {template_script:employee_emergency_contacts}를 입력하여 HTML 문서 템플릿에서 호출됩니다.

    3. 케이스에서 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 문서 템플릿에서 동적 토큰이 번역되는 방법의 예입니다.
    1. HTML 템플릿을 구성하는 동안 템플릿 언어는 독일어로 선택되고 날짜 형식은 dd/MM/yyyy로 설정됩니다.
    2. HTML 문서 템플릿은 HR 케이스에서 참조됩니다.
    3. 에이전트가 문서를 미리 보거나, 첨부 파일을 생성하거나, 참가자에 대한 문서 작업을 시작하면 우선순위 및 관계 필드가 독일어로 번역되고 날짜가 dd/MM/yyyy 형식으로 나타납니다.