function cancelTicket(){
var answer=confirm("Are you sure you want to cancel this record?");
if (answer==true)
{
gsftSubmit(null, g_form.getFormElement(), 'cancel_change'); //MUST call the 'Action name' set in this UI Action
}
else
{
return false;
}
}
if(typeof window == 'undefined')
{
current.state = 8;
current.update();
action.setRedirectURL(current);
gs.addInfoMessage('The current change request has been cancelled.');
}
ServiceNowQA20210730
Q1)メールクライアントを有効にして、To: フィールドを自動入力する方法は?
リクエストフォームでメールクライアントを有効にする方法と、「To」アドレスに「Requested For」のメールアドレスを入力する必要があります...。
Answer
テンプレートのToフィールドにフィールド名をブラケット内に入れずに追加してください。
例)caller_idを${caller_id}の代わりに使うこと。
(補足)sys_email_client_template で、Subjectはブラケットが必要になる。
例)${number}で${short_description}
Question1.2)ログインユーザーをCcに追加したい
ご参考までに、スクリーンショットをご覧ください......この件についてご協力いただけますか?
Q2)onLoadクライアントスクリプトからスクリプトインクルードに含まれる配列へのアクセス
Script Include:
var submit_hr_request = Class.create();
submit_hr_request.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
hrRequest: function() {
var gr = new GlideRecord('sn_hr_core_profile');
gr.addQuery('user', gs.getUserID());
gr.query();
var myInfo = [];
if(gr.next()) {
var info = {};
info.hr_profile = gr.getDisplayValue('user');
info.hr_contact = gr.getDisplayValue('x_dnf_hr_contact');
myInfo.push(info);
}
return myInfo;
},
type: 'submit_hr_request'
});
Client Script:
function onLoad() {
var ga = new GlideAjax('submit_hr_request');
ga.addParam('sysparm_name', 'hrRequest');
ga.getXML(hrRequestParse);
function hrRequestParse(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
g_form.setValue('hr_profile', ???);
}
}
//Answer
//ユーザーのシステムIDではなく、人事プロファイルのシステムIDを返す必要があります。
Script Include:
var submit_hr_request = Class.create();
submit_hr_request.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
hrRequest: function() {
var myInfo = [];
var gr = new GlideRecord('sn_hr_core_profile');
gr.addQuery('user', gs.getUserID());
gr.query();
if(gr.next()) {
//ここのgetで人事プロファイルを取得している
return gr.getValue('sys_id')+','+gr.getDisplayValue('x_dnf_hr_contact');
}
},
type: 'submit_hr_request'
});
Client Script:
function onLoad() {
var ga = new GlideAjax('submit_hr_request');
ga.addParam('sysparm_name', 'hrRequest');
ga.getXML(hrRequestParse);
function hrRequestParse(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
//ここのセット方式に変更を加える
var myObj = answer.split(',');
alert(myObj[0]+' - '+myObj[1]);
g_form.setValue('hr_profile', myObj[0]);
}
}
Question3)レポートをエクセル形式でエクスポート
Question4)キャンセルボタンを押した後のキャンセル確認画面
Question5)インシデントまたはリクエストアイテムへの直接リンクURL
https://xxx.service-now.com/nav_to.do?uri=change_request.do?sysparm_query=number=<CHG number>
https://xxx.service-now.com/nav_to.do?uri=incident.do?sysparm_query=number=<INC number>
Question6)バックグラウンドスクリプトを用いた複数レコードの削除
var gr = new GlideRecord('pa_scores');
gr.addQuery('breakdown','=', 'Model Category');
gr.addEncocdedQuery(sys_created_on<=javascript:gs.dateGenerate('2016-03-31','23:59:59'));
gr.query();
while (gr.next()) {
//Delete each record in the query result set
gr.deleteRecord();
}
var gr = new GlideRecord('pa_scores');
gr.addQuery('breakdown.name','=', 'Model Category'); // Pradeep Sharma update
gr.addEncodedQuery('sys_created_on<=' + gs.dateGenerate('2016-03-31','23:59:59')); // Chuck Tomasi update
gr.query();
while (gr.next()) {
gr.deleteMultiple(); // Ken and Santosh update
}