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

帳票の出力形式
選択できる帳票の出力形式は、次のとおりです。帳票レイアウトの種類によって異なります。
XMLファイル(SVF Cloud Designerで作成)
PDFファイルをダウンロード
プリンターから印刷(ダイレクトプリント)
Excelファイル(Microsoft Excelで作成)
Excelファイルをダウンロード
PDFファイルをダウンロード
Wordファイル(Microsoft Wordで作成)
Wordファイルをダウンロード
PDFファイルをダウンロード
手順の流れ
ここでは、インシデントテーブルのリストから帳票出力する例で説明しています。本ページの作成例を参考に、目的に合わせて開発してください。
帳票レイアウトの作成
帳票レイアウト作成ツールで、帳票レイアウトを作成します。詳細は『SVF Cloud for ServiceNow 管理ガイド』の「1. 帳票レイアウトを作成する」を参照して下さい。
帳票出力スクリプトの作成
SVF Cloud for ServiceNowの[印刷設定]モジュールで、帳票レイアウト上のフィールドと、ServiceNowのフィールドとをマッピングし、帳票出力スクリプトを生成します。詳細は『SVF Cloud for ServiceNow 管理ガイド』の「2. 帳票出力スクリプトを生成する」を参照して下さい。
生成した帳票生成スクリプトは、後の手順で作成するスクリプトインクルードで使用します。
制限
リストからの帳票出力は、[印刷設定]モジュールで設定した事前処理・事後処理に対応していません。同等の処理をご自身で開発し、スクリプトインクルードに追加してください。
参考
データベースビューを利用した帳票出力スクリプトを作成した場合は、データベースビューで選択されたすべてのレコードが出力対象となります。
UIアクションの作成
ServiceNowでUIアクションを作成します。
作成例は「UIアクションの作成例」を参照して下さい。
スクリプトインクルードの作成
ServiceNowでスクリプトインクルードを作成します。
スクリプトインクルードには、手順2で生成した帳票出力スクリプトを挿入します。なお、作成するスクリプトインクルードに合わせて、帳票出力スクリプトを編集する必要があります。
作成例は「スクリプトインクルードの作成例」を参照して下さい。
帳票の出力
ServiceNowでUIアクションを実行して、帳票を出力します。
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()); } // [印刷設定]モジュールで生成した帳票出力スクリプト(ここまで) } }); |