Skip to main content

リストからの帳票出力

ServiceNowのリストで選択したレコードのデータを、帳票に出力できます。なお、リストv2にのみ対応しています。

incidentTable.png

帳票の出力形式

選択できる帳票の出力形式は、次のとおりです。帳票レイアウトの種類によって異なります。

  • XMLファイル(SVF Cloud Designerで作成)

    • PDFファイルをダウンロード

    • プリンターから印刷(ダイレクトプリント)

  • Excelファイル(Microsoft Excelで作成)

    • Excelファイルをダウンロード

    • PDFファイルをダウンロード

  • Wordファイル(Microsoft Wordで作成)

    • Wordファイルをダウンロード

    • PDFファイルをダウンロード

手順の流れ

ここでは、インシデントテーブルのリストから帳票出力する例で説明しています。本ページの作成例を参考に、目的に合わせて開発してください。

  1. 帳票レイアウトの作成

    帳票レイアウト作成ツールで、帳票レイアウトを作成します。詳細は『SVF Cloud for ServiceNow 管理ガイド』の「1. 帳票レイアウトを作成する」を参照して下さい。

  2. 帳票出力スクリプトの作成

    SVF Cloud for ServiceNowの[印刷設定]モジュールで、帳票レイアウト上のフィールドと、ServiceNowのフィールドとをマッピングし、帳票出力スクリプトを生成します。詳細は『SVF Cloud for ServiceNow 管理ガイド』の「2. 帳票出力スクリプトを生成する」を参照して下さい。

    生成した帳票生成スクリプトは、後の手順で作成するスクリプトインクルードで使用します。

    制限

    リストからの帳票出力は、[印刷設定]モジュールで設定した事前処理・事後処理に対応していません。同等の処理をご自身で開発し、スクリプトインクルードに追加してください。

    参考

    データベースビューを利用した帳票出力スクリプトを作成した場合は、データベースビューで選択されたすべてのレコードが出力対象となります。

  3. UIアクションの作成

    ServiceNowでUIアクションを作成します。

    作成例は「UIアクションの作成例」を参照して下さい。

  4. スクリプトインクルードの作成

    ServiceNowでスクリプトインクルードを作成します。

    スクリプトインクルードには、手順2で生成した帳票出力スクリプトを挿入します。なお、作成するスクリプトインクルードに合わせて、帳票出力スクリプトを編集する必要があります。

    作成例は「スクリプトインクルードの作成例」を参照して下さい。

  5. 帳票の出力

    ServiceNowでUIアクションを実行して、帳票を出力します。

    incidentTable.png

UIアクションの作成例

項目

設定内容

名前

ListPrintSampleAction

バナーリストボタン

チェックをオン

クライアント

チェックをオン

リスト v2 互換

チェックをオン

クリック時

pdfDownload();

スクリプト

function pdfDownload(){
	
	// 選択されたレコードのシステムIDを取得します。
	var sysIds = g_list.getChecked();
	if(!sysIds){
		alert("印刷対象が選択されていません");
		return;
	}

	// スクリプトインクルード「ListPrintSample」を呼び出します。
	var ga = new GlideAjax('global.ListPrintSample');
	ga.addParam('sysparm_name','getDownloadURL'); 
	ga.addParam('sysparm_sys_ids',sysIds);
	ga.getXML(callback);

	function callback(response) {  
		var answer = response.responseXML.documentElement.getAttribute("answer"); 
		top.window.location=answer;
	}
}

スクリプトインクルードの作成例

項目

設定内容

名前

ListPrintSample

クライアントコール可能

チェックをオン

スクリプト

var ListPrintSample = Class.create();
ListPrintSample.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    type: 'ListPrintSample',
	getDownloadURL : function() {
		// 上位から入力された「sys_id」を変数「sysIds」に格納します。
		var param = this.getParameter("sysparm_sys_ids").split(",");
		var sysIds = [];
		for(var i=0;i<param.length;i++){
			sysIds.push(param[i]);
		}

                // [印刷設定]モジュールで生成した帳票出力スクリプト(ここから)
		try {
			// 印刷設定
			var printSetting ={
					developerName: "incident1670896600401",
					hasMultiForms: false,
					formPath: "form/Sample/ServiceNow/障害調査報告書.xml",
					printer: "",
					isDatabaseView: false,
					generated_file_name: "number",
					useEudcFont: false,
					mapping: {
						"caused_by":"caused_by",
						"sys_created_on":"sys_created_on",
						"number":"number",
						"resolved_by":"resolved_by",
						"opened_at":"opened_at",
						"impact":"impact",
						"priority":"priority",
						"category":"category",
						"description":"description",
						"work_notes":null,
						"active":"active"
					}
			}

			// 印刷設定を読み込み、インスタンスを生成します。
			var svf = new x_wa1_svfcloud.SVFCloud(printSetting);

                        // 帳票スクリプトを編集
			// 印刷対象の「システムID(sysIds)」と「テーブル名」をセットします。
			svf.setSysId(sysIds);
			svf.setSysIdTable("incident");

			// 印刷を実行します。
                        // 帳票スクリプトを編集
			// 生成したPDFファイルのダウンロードURLを返却します。
			return svf.pdf().getLocation();
			
		} catch (e) {
			if (e instanceof x_wa1_svfcloud.SvfCloudException) gs.addErrorMessage(e.getErrorCode() + ": " + e.getMessage());
			else gs.addErrorMessage(e.toString());
		}
                // [印刷設定]モジュールで生成した帳票出力スクリプト(ここまで)

	}
});