ドキュメントテンプレートスクリプト

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:7分
  • ドキュメントテンプレートスクリプトを使用すると、HTML テンプレートの本文内のテキストを動的に変更できます。ドキュメントテンプレートスクリプトを使用すると、HR データの表示など簡単なタスクや、高度なデータベースクエリ作成などの複雑な作業を実行できます。

    スクリプト名を作成したスクリプトの名前に置き換えて、${template_script:script name} 埋め込みスクリプトタグを HTML テンプレートの本文に追加できます。これにより、複数のドキュメントテンプレートで同じスクリプトを簡単に使用できます。スクリプトを作成するには、次の場所に移動します。ドキュメントテンプレート > ドキュメントテンプレートスクリプト.

    HTML テンプレートでドキュメントテンプレートスクリプトを作成して使用する方法例

    1. Employee_emergency_contacts スクリプトは、従業員プロファイルドキュメントの緊急連絡先リストを入力します。
      (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 スクリプトは、従業員プロファイル HTML ドキュメントテンプレートの本文に $ {template_script:employee_emergency_contacts} と入力することで、HTML ドキュメントテンプレートで呼び出されます。

      基本的な編集コントロールを備えたスクリプト入力領域を含むフィールドが表示されたテンプレート。

    3. 以下のように、ケースで 従業員プロファイル HTML ドキュメントテンプレートが選択され、緊急連絡先リストとともにドキュメントテンプレートが生成されます。

      [ドキュメントテンプレート] フィールドに「従業員プロファイル」を入力できる [HR ケース] フォーム。

      [従業員プロファイル] ドキュメントのプレビュー。

    ドキュメントテンプレートスクリプトが HTML テンプレート内のテキストを翻訳する方法の例

    以下は、従業員プロファイルドキュメントに緊急連絡先リストを設定する employee_emergency_contacts スクリプトです。

    このスクリプトの docTemplate は、ドキュメントテンプレートレコードを参照します。これは、ドキュメントテンプレートで選択されている言語と日付形式を識別するのに役立ちます。getDisplayValueLang は、動的トークンの言語を、ドキュメントテンプレートの [テンプレート言語 (Template language)] フィールドに設定されている表示言語に変更するのに役立つ 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 に設定されます。HR ケース雇用証明書のテンプレート。書類に使用されるすべてのフィールドと本文テキストが表示されています。
    2. HTML ドキュメントテンプレートが HR ケースで参照されます。
    3. エージェントがドキュメントのプレビュー、添付ファイルの生成、または参加者のドキュメントタスクを開始すると、優先度フィールドと関係フィールドがドイツ語に翻訳され、日付が dd/MM/yyyy の形式で表示されます。

      ドキュメントテンプレートの翻訳済みプレビュー。ドイツ語に翻訳されています。