GlideSystem - グローバル
サーバー側の JavaScript で変数名 gs で参照される GlideSystem API には、システムに関する情報、現在ログインしているユーザー、日時情報を取得するための便利なメソッドが多数用意されています。
GlideSystem メソッドの多くは、クエリ範囲に日付を簡単に含めることを容易にし、フィルターやレポートで最もよく使用されます。
GlideSystem - addErrorMessage(オブジェクトメッセージ)
現在のセッションのエラーメッセージを追加します。
getErrorMessages() を使用して、現在表示されているエラーメッセージのリストを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| メッセージ | オブジェクト | 追加するメッセージ。 |
| タイプ | 説明 |
|---|---|
| なし |
gs.include("PrototypeServer");
var ValidatePasswordStronger = Class.create();
ValidatePasswordStronger.prototype = {
process : function() {
var user_password = request.getParameter("user_password");
var min_len = 8;
var rules = "Password must be at least " + min_len +
" characters long and contain a digit, an uppercase letter, and a lowercase letter.";
if (user_password.length() < min_len) {
gs.addErrorMessage("TOO SHORT: " + rules);
return false;
}
var digit_pattern = new RegExp("[0-9]", "g");
if (!digit_pattern.test(user_password)) {
gs.addErrorMessage("DIGIT MISSING: " + rules);
return false;
}
var upper_pattern = new RegExp("[A-Z]", "g");
if (!upper_pattern.test(user_password)) {
gs.addErrorMessage("UPPERCASE MISSING: " + rules);
return false;
}
var lower_pattern = new RegExp("[a-z]", "g");
if (!lower_pattern.test(user_password)) {
gs.addErrorMessage("LOWERCASE MISSING: " + rules);
return false;
}
return true; // password is OK
}
}
[edit]
スコープ対象と同等のもの
スコープ対象のアプリケーションで addErrorMessage() メソッドを使用するには、対応するスコープ対象のメソッド addErrorMessage() を使用します。
GlideSystem - addInfoMessage(オブジェクトメッセージ)
現在のセッションの情報メッセージを追加します。
getInfoMessages() を使用して、表示されている情報メッセージのリストを取得します。このメソッドは非同期ビジネスルールではサポートされておらず、変換スクリプト内では使用できません。
| 名前 | タイプ | 説明 |
|---|---|---|
| メッセージ | オブジェクト | 追加するメッセージ。 |
| タイプ | 説明 |
|---|---|
| なし |
if ((!current.u_date1.nil()) && (!current.u_date2.nil())) {
var start = current.u_date1.getGlideObject().getNumericValue();
var end = current.u_date2.getGlideObject().getNumericValue();
if (start > end) {
gs.addInfoMessage('start must be before end');
current.u_date1.setError('start must be before end');
current.setAbortAction(true);
}
}
スコープ対象と同等のもの
スコープ対象のアプリケーションで addInfoMessage() メソッドを使用するには、対応するスコープ対象のメソッド addInfoMessage() を使用します。
GlideSystem - addMessage(文字列タイプ, オブジェクトメッセージ)
現在のセッションのメッセージを追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| タイプ | 文字列 | エラーや情報などのメッセージのタイプ。 |
| メッセージ | オブジェクト | 現在のセッションに追加するメッセージ。 |
| タイプ | 説明 |
|---|---|
| なし |
GlideSystem - beginningOfLastMonth()
先月の初めの日時を GMT で取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 先月初めの GMT (yyyy-mm-dd hh:mm:ss 形式)。 |
この例では、GlideDateTime オブジェクトの日時を先月の初めに設定します。
var date = new GlideDate();
date.setValue(gs.beginningOfLastMonth());
var dateasint = date.toString().replace('-','');
gs.print(dateasint);
スコープ対象と同等のもの
スコープ対象のアプリケーションで beginningOfLastMonth() メソッドを使用するには、対応するスコープ対象のメソッド beginningOfLastMonth() を使用します。
GlideSystem - beginningOfLastWeek()
先週の開始時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 先週の初めのグリニッジ標準時。 形式:yyyy-mm-dd hh:mm:ss |
この例では、現在の Glide 日付/時刻レコードの値を先週の初めに設定します。
var gdt2 = new GlideDateTime(dt);
gdt2.setValue(gs.beginningOfLastWeek());
スコープ対象と同等のもの
スコープ対象のアプリケーションで beginningOfLastWeek() メソッドを使用するには、対応するスコープ対象のメソッド beginningOfLastWeek() を使用します。
GlideSystem - beginningOfNextWeek()
来週の開始時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 来週初めのグリニッジ標準時。 形式:yyyy-mm-dd hh:mm:ss |
この例では、現在の Glide 日付/時刻レコードの値を翌週の初めに設定します。
var gdt2 = new GlideDateTime(dt);
gdt2.setValue(gs.beginningOfNextWeek());
スコープ対象と同等のもの
スコープ対象のアプリケーションで beginningOfNextWeek() メソッドを使用するには、対応するスコープ対象のメソッド beginningOfNextWeek() を使用します。
GlideSystem - beginningOfNextMonth()
翌月初めの日時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 来月初めのグリニッジ標準時。 形式:yyyy-mm-dd hh:mm:ss |
この例では、現在の Glide 日付/時刻レコードの値を翌月の初めに設定します。
var gdt2 = new GlideDateTime(dt);
gdt2.setValue(gs.beginningOfNextMonth());
スコープ対象と同等のもの
スコープ対象のアプリケーションで beginningOfNextMonth() メソッドを使用するには、対応するスコープ対象のメソッド beginningOfNextMonth() を使用します。
GlideSystem - beginningOfNextYear()
来年の初めの日時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 来年の初めの GMT (yyyy-mm-dd hh:mm:ss 形式)。 |
この例では、現在の Glide 日付/時刻レコードの値を翌年の初めに設定します。
var gdt2 = new GlideDateTime(dt);
gdt2.setValue(gs.beginningOfNextYear());
スコープ対象と同等のもの
スコープ対象のアプリケーションで beginningOfNextYear() メソッドを使用するには、対応するスコープ対象のメソッド beginningOfNextYear() を使用します。
GlideSystem - beginningOfThisMonth()
現在の月の初めの日時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 当月の初めの GMT。 形式:yyyy-mm-dd hh:mm:ss |
この例では、現在の Glide 日付/時刻レコードの値を今月の初めに設定します。
var gdt2 = new GlideDateTime(dt);
gdt2.setValue(gs.beginningOfThisMonth());
スコープ対象と同等のもの
スコープ対象のアプリケーションで beginningOfThisMonth() メソッドを使用するには、対応するスコープ対象のメソッド beginningOfThisMonth() を使用します。
GlideSystem - beginningOfThisQuarter()
現在の四半期の開始日時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在の四半期の初めの GMT。 形式:yyyy-mm-dd hh:mm:ss |
この例では、現在の Glide 日付/時刻レコードの値を現在の四半期の初めに設定します。
var gdt2 = new GlideDateTime(dt);
gdt2.setValue(gs.beginningOfThisQuarter());
スコープ対象と同等のもの
スコープ対象のアプリケーションで beginningOfThisQuarter() メソッドを使用するには、対応するスコープ対象のメソッド beginningOfThisQuarter() を使用します。
GlideSystem - beginningOfThisWeek()
今週の開始の日時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 今週の初めの GMT です。 形式:yyyy-mm-dd hh:mm:ss |
この例では、現在の Glide 日付/時刻レコードの値を現在の週の初めに設定します。
var gdt2 = new GlideDateTime(dt);
gdt2.setValue(gs.beginningOfThisWeek());
スコープ対象と同等のもの
スコープ対象のアプリケーションで beginningOfThisWeek() メソッドを使用するには、対応するスコープ対象のメソッド beginningOfThisWeek() を使用します。
GlideSystem - beginningOfThisYear()
今年の初めの日時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 今年の初めの GMT です。 形式:yyyy-mm-dd hh:mm:ss |
この例では、現在の Glide 日付/時刻レコードの値を現在の年の初めに設定します。
var gdt2 = new GlideDateTime(dt);
gdt2.setValue(gs.beginningOfThisYear());
スコープ対象と同等のもの
スコープ対象のアプリケーションで beginningOfThisYear() メソッドを使用するには、対応するスコープ対象のメソッド beginningOfThisYear() を使用します。
GlideSystem - beginningOfToday()
今日の始まりの日時を GMT で取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 当日の GMT の始まり。 形式:yyyy-mm-dd hh:mm:ss |
この例では、現在の Glide 日付/時刻レコードの値を現在の日の始まりに設定します。
var gdt2 = new GlideDateTime(dt);
gdt2.setValue(gs.beginningOfToday());
GlideSystem - beginningOfTomorrow()
現在のセッションのタイムゾーンに合わせて調整された明日の始まり (UTC) を取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 明日の始まりはグリニッジ標準時です。 形式:yyyy-mm-dd hh:mm:ss |
var today = new GlideDateTime(gs.beginningOfTomorrow()).getNumericValue();
GlideSystem - beginningOfYesterday()
昨日の開始の日時を GMT で取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 昨日の GMT の始まり (yyyy-mm-dd hh:mm:ss の形式)。 |
var start = new GlideDateTime();
start.setValue(gs.beginningOfYesterday()); GlideSystem - calDateDiff(文字列 startDate, 文字列 endDate, ブール numericValue)
デフォルトのカレンダーを使用して 2 つの日付の差を計算します。
カレンダーはレガシーになりました。スケジュールを使用している場合は、トピック スケジューリングスクリプトのユースケースの「指定されたスケジュール中に計算する」セクションを参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| startDate | 文字列 | 現在のユーザーの日付形式で比較する開始日。 |
| endDate | 文字列 | 現在のユーザーの日付形式で比較する終了日。 |
| 数値値 | ブール | 返された時間値の形式を示すフラグ。 有効な値:
|
| タイプ | 説明 |
|---|---|
| 文字列 | numericValueパラメーターが true の場合、2 つの日付の差を整数の秒数で返します。 false の場合、2 つの日付の差を ddd hh:mm:ss の形式で返します。 |
var endDateTime = gs.nowDateTime();
gs.print('--- Total records: ' + countRecordsTotal);
gs.print('--- End time: ' + endDateTime);
gs.print('Time diff: ' + gs.calDateDiff(startDateTime, endDateTime));
GlideSystem - dateDiff(String startDate, String endDate, Boolean numericValue)
2 つの日付の差を計算します。
このメソッドでは、最初のパラメーターとして前の日付を想定し、2 番目のパラメーターとして後の日付を想定します。それ以外の場合、メソッドは差を負の値として返します。getDisplayValue() を使用して、文字列を想定される形式に変換します。
このメソッドでは、ユーザー/システムの日時形式のパラメーターが必要ですが、これは内部形式と同じではない場合があります。ユーザー/システムの日時形式以外の形式でパラメーターを使用すると、無効な結果が返される可能性があります。
GlideDateTime オブジェクトを操作している場合は、dateDiff() ではなく GlideDateTime subtract() メソッドを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| startDate | 文字列 | 現在のユーザーの日付形式で比較する開始日。 |
| endDate | 文字列 | 現在のユーザーの日付形式で比較する終了日。 |
| 数値値 | ブール | true の場合、戻り値は秒数でフォーマットされます。false の場合、戻り値は ddd hh:mm:ss の形式になります。 |
| タイプ | 説明 |
|---|---|
| 文字列 | numericValue パラメーターが true の場合、2 つの日付の差を整数の秒数で返します。false の場合、2 つの日付の差を ddd hh:mm:ss の形式で返します。 |
// Given two date/times as DateTime objects
// Set the values this way to ensure a consistent input time
var date1 = new GlideDateTime();
var date2 = new GlideDateTime();
date1.setDisplayValueInternal('2014-01-01 12:00:00');
date2.setDisplayValueInternal('2014-01-01 13:00:00');
// Determine the difference as number of seconds (returns a string)
// Use getDisplayValue() to convert the string to the format expected by dateDiff()
var diffSeconds = gs.dateDiff(date1.getDisplayValue(), date2.getDisplayValue(), true);
// JavaScript will coerce diffSeconds from a string to a number
// since diffSeconds is being compared to a number
var msg = (diffSeconds <= 0) ? ' is on or after ' : ' is before ';
gs.print(date1.getDisplayValue() + msg + date2.getDisplayValue())
GlideSystem - dateGenerate(文字列、日付、文字列範囲)
指定された日付の日時を GMT で生成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| date | 文字列 | GMT で生成する日付。 形式:yyyy-mm-dd |
| 範囲 | 文字列 | 開始、終了、または時刻。 形式:24 時間制 hh:mm:ss |
| タイプ | 説明 |
|---|---|
| 文字列 | 生成された日時。 範囲が start の場合、戻り値は yyyy-mm-dd 00:00:00 です。 range が end の場合、戻り値は yyyy-mm-dd 23:59:59 です。 形式:yyyy-mm-dd hh:mm:ss |
この例では、インシデントテーブルのレコードをクエリするときに 、dateGenerate() を使用して開始日を設定する方法を示しています。
var tableData = new GlideRecord('incident');
tableData.addEncodedQuery("sys_created_onBETWEENjavascript:gs.dateGenerate('2015-10-07','00:00:00')@javascript:gs.daysAgoEnd(0)^priority=1^severityIN1,2");
tableData.query();
gs.info("Count: " + tableData.getRowCount());
出力:
Count: 7
スコープ対象と同等のもの
スコープ対象のアプリケーションで dateGenerate() メソッドを使用するには、対応するスコープ対象のメソッド dateGenerate() を使用します。
GlideSystem - daysAgo(日数)
特定の日数前の日付と時刻を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| days | 番号 | 日数 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された日数前の GMT。 形式:yyyy-mm-dd hh:mm:ss。 |
function contractNoticeDue() {
var now_GR = new GlideRecord("contract");
now_GR.addQuery("u_contract_status", "Active");
now_GR.query();
while (now_GR.next()) {
if ((now_GR.u_termination_date <= gs.daysAgo(-90)) && (now_GR.u_contract_duration == "Long")) {
now_GR.u_contract_status = "In review";
}
else if ((now_GR.u_termination_date <= gs.daysAgo(-50)) && (now_GR.u_contract_duration == "Medium")) {
now-GR.u_contract_status = "In review";
}
else if ((now_GR.u_termination_date <= gs.daysAgo(-10)) && (now_GR.u_contract_duration == "Short")) {
now_GR.u_contract_status = "In review";
}
}
now_GR.update();
}
スコープ対象と同等のもの
スコープ対象のアプリケーションで daysAgo() メソッドを使用するには、対応するスコープ対象のメソッド daysAgo() を使用します。
GlideSystem - daysAgoEnd(日数)
指定された日数前の 1 日の終わりの日時を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| days | 番号 | 整数の日数 |
| タイプ | 説明 |
|---|---|
| 文字列 | yyyy-mm-dd hh:mm:ss 形式の GMT の 1 日の終わり。 |
この例では、インシデントテーブルのレコードをクエリするときに 、daysAgoEnd() を使用して終了日を設定する方法を示しています。
var tableData = new GlideRecord('incident');
tableData.addEncodedQuery("sys_created_onBETWEENjavascript:gs.dateGenerate('2015-10-07','00:00:00')@javascript:gs.daysAgoEnd(0)^priority=1^severityIN1,2");
tableData.query();
gs.addInfoMessage("Count: " +tableData.getRowCount());
スコープ対象と同等のもの
スコープ対象のアプリケーションで daysAgoEnd() メソッドを使用するには、対応するスコープ対象のメソッドである daysAgoEnd() を使用します。
GlideSystem - daysAgoLocal(日数)
指定された日数前の 1 日の開始日時を返します。返される日付と時刻は、現在のセッションのタイムゾーン (現地時間) を反映しています。
| 名前 | タイプ | 説明 |
|---|---|---|
| days | 番号 | 日数前 |
| タイプ | 説明 |
|---|---|
| 文字列 | ユーザー定義の日時形式での 1 日の始まりの現地日時。日時形式が初期値から変更されていない場合、形式は yyyy-mm-dd hh:mm:ss になります。 |
if (due_in == "1 Day") {
dd = gs.daysAgoLocal(-1);
}
if (due_in == "1 Week") {
dd = gs.daysAgoLocal(-7);
}
GlideSystem - daysAgoStart(日数)
指定された日数前の 1 日の開始の日時を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| days | 文字列 | 整数の日数 |
| タイプ | 説明 |
|---|---|
| 文字列 | GMT 形式での 1 日の始まり (yyyy-mm-dd hh:mm:ss 形式) |
var now_GR = new GlideRecord('sysapproval_approver');
now_GR.addQuery('state', 'requested');
now_GR.addQuery('sys_updated_on', '<', gs.daysAgoStart(5));
now_GR.query();
スコープ対象と同等のもの
スコープ対象のアプリケーションで daysAgoStart() メソッドを使用するには、対応するスコープ対象のメソッド daysAgoStart() を使用します。
GlideSystem - endOfLastMonth()
先月末の日時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 先月末の GMT。 形式:yyyy-mm-dd hh:mm:ss |
この例は、先月の最終日のレポートレコードをクエリする方法を示しています。
var month = gs.endOfLastMonth();
var monthd = new GlideDateTime(month);
monthd.addDays(-1);
var queueLast = new GlideRecord('u_amazon_connect_phone_metrics');
queueMtd.addQuery('u_queue_name',queueNames[i]);
queueMtd.addEncodedQuery('u_time_range=MTD');
queueMtd.addEncodedQuery('u_report_date'+ monthd);
queueMtd.orderByDesc('u_report_date');
queueMtd.query();
if(queueMtd.next()){
gs.info(queueMtd.u_report_date);
}
スコープ対象と同等のもの
スコープ対象のアプリケーションで endOfLastMonth() メソッドを使用するには、対応するスコープ対象のメソッド endOfLastMonth() を使用します。
GlideSystem - 先週の終わり ()
先週末の日時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 先週末のグリニッジ標準時。 形式:yyyy-mm-dd hh:mm:ss |
この例は、前月の最後の週にオープンされたレコードをクエリする方法を示しています。
var inc = new GlideRecord('incident');
inc.addQuery('active=true^priority=1^opened_atONLast month@javascript:gs.beginningOfLastMonth()@javascript:gs.endOfLastMonth()^opened_atONLast week@javascript:gs.beginningOfLastWeek()@javascript:gs.endOfLastWeek()');
inc.query();
while(inc.next())
{
gs.addInfoMessage(inc.getRowCount());
}
スコープ対象と同等のもの
スコープ対象のアプリケーションで endOfLastWeek() メソッドを使用するには、対応するスコープ対象のメソッド endOfLastWeek() を使用します。
GlideSystem - endOfLastYear()
昨年末の日時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | yyyy-mm-dd hh:mm:ss 形式の GMT。 |
この例では、前年に作成されたすべてのレコードに対して作成されたレコードをクエリする方法を示します。
var inc = new GlideRecord('incident');
inc.addEncodedQuery('sys_created_onONLast year@javascript:gs.beginningOfLastYear()@javascript:gs.endOfLastYear()');
inc.query();
while(inc.next()){
inc.assignment_group = "d625dccec0a8016700a222a0f7900d06";
inc.update();
}
スコープ対象と同等のもの
スコープ対象のアプリケーションで endOfLastYear() メソッドを使用するには、対応するスコープ対象のメソッド endOfLastYear() を使用します。
GlideSystem - endOfNextMonth()
来月末の日時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | GMT のデータと時刻。 形式:yyyy-mm-dd hh:mm:ss |
この例は、本日の初めから翌月末までに作成された KB ナレッジレコードをクエリする方法を示しています。
var query = "kb_knowledge_base=e81c9a0ddbc15810c38f0763b99619c1^ORkb_knowledge_base=21302e89db055810c38f0763b99619cc^valid_toBETWEENjavascript:gs.beginningOfToday()@javascript:gs.endOfNextMonth()^ORworkflow_state=pending_retirement^latest=true";
var rec = new GlideRecord('kb_knowledge');
rec.addEncodedQuery(query);
rec.addQuery('author', current.author);
rec.query();
while (rec.next()) {
var Kbtitle = rec.getValue('short_description');
articles.push(rec.number.toString()+ '' + Kbtitle);
template.print('Click here to view record<a href="https://give urs instance url here/nav_to.do?uri=kb_knowledge.do?sys_id=' + rec.sys_id + '">' + rec.number + '</a>');
}
var articlesList = "<ul>";
for (i = 0; i <= articles.length-1; i++) {
articlesList = articlesList + "<li>" + articles[i] + "</li>";
}
articlesList = articlesList + "</ul>";
スコープ対象と同等のもの
スコープ対象のアプリケーションで endOfNextMonth() メソッドを使用するには、対応するスコープ対象のメソッド endOfNextMonth() を使用します。
GlideSystem - endOfNextWeek()
来週の終わりの日時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 来週末の GMT 日時。 形式:yyyy-mm-dd hh:mm:ss |
この例は、クエリで endOfNextWeek() を使用して、過去 1 週間のすべての訪問者を取得する方法を示しています。
var title = 'Visitors arriving this Week';
var visitorQuery = 'active=true^category=visitor_request^u_my_start_dateONThis week@javascript:gs.beginningOfThisWeek()@javascript:gs.endOfNextWeek()';
スコープ対象と同等のもの
スコープ対象のアプリケーションで endOfNextWeek() メソッドを使用するには、対応するスコープ対象のメソッド endOfNextWeek() を使用します。
GlideSystem - endOfNextYear()
来年末の日時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 来年末の GMT 日時。 形式:yyyy-mm-dd hh:mm:ss |
この例では、 endOfNextYear() を使用して GlideDateTime オブジェクトを翌年の終わりに設定する方法を示します。
setEndDate : function(dt) {
var gdt2 = new GlideDateTime(dt);
gdt2.setValue(gs.endOfNextYear());
}
スコープ対象と同等のもの
スコープ対象のアプリケーションで endOfNextYear() メソッドを使用するには、対応するスコープ対象のメソッド endOfNextYear() を使用します。
GlideSystem - endOfThisMonth()
今月末の日時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 今月末の GMT 日時。 形式:yyyy-mm-dd hh:mm:ss |
この例では、 endOfThisMonth() を使用して GlideDateTime オブジェクトを現在の月末に設定する方法を示します。
setEndDate : function(dt) {
var gdt2 = new GlideDateTime(dt);
gdt2.setValue(gs.endOfThisMonth());
}
スコープ対象と同等のもの
スコープ対象のアプリケーションで endOfThisMonth() メソッドを使用するには、対応するスコープ対象のメソッド endOfThisMonth() を使用します。
GlideSystem - endOfThisQuarter()
この四半期末の日時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 今四半期末の GMT 日時。 形式:yyyy-mm-dd hh:mm:ss |
この例では、 endOfThisQuarter() を使用して GlideDateTime オブジェクトを現在の月末に設定する方法を示します。
setEndDate : function(dt) {
var gdt2 = new GlideDateTime(dt);
gdt2.setValue(gs.endOfThisQuarter());
}
スコープ対象と同等のもの
スコープ対象のアプリケーションで endOfThisQuarter() メソッドを使用するには、対応するスコープ対象のメソッド endOfThisQuarter() を使用します。
GlideSystem - endOfThisWeek()
今週末の日時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 今週末の GMT 日時。 形式:yyyy-mm-dd hh:mm:ss |
この例では、 endOfThisWeek() を使用して GlideDateTime オブジェクトを現在の月末に設定する方法を示します。
setEndDate : function(dt) {
var gdt2 = new GlideDateTime(dt);
gdt2.setValue(gs.endOfThisWeek());
}
スコープ対象と同等のもの
スコープ対象のアプリケーションで endOfThisWeek() メソッドを使用するには、対応するスコープ対象のメソッド endOfThisWeek() を使用します。
GlideSystem - endOfThisYear()
今年末の日時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 今年末の GMT 日時。 形式:yyyy-mm-dd hh:mm:ss |
この例では、 endOfThisYear() を使用して GlideDateTime オブジェクトを現在の月末に設定する方法を示します。
setEndDate : function(dt) {
var gdt2 = new GlideDateTime(dt);
gdt2.setValue(gs.endOfThisYear());
}
スコープ対象と同等のもの
スコープ対象のアプリケーションで endOfThisYear() メソッドを使用するには、対応するスコープ対象のメソッド endOfThisYear() を使用します。
GlideSystem - endOfToday()
本日の終了日時を GMT で取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | yyyy-mm-dd hh:mm:ss 形式の GMT。 |
var beginToday = gs.beginningOfToday();
var endToday = gs.endOfToday();
var beginTomorrow = gs.beginningOfTomorrow();
var endTomorrow = gs.endOfTomorrow();
var beginYesterday = gs.beginningOfYesterday();
var endYesterday = gs.endOfYesterday();
gs.info('beginningOfToday: ' + beginToday);
gs.info('endOfToday: ' + endToday);
gs.info('-----------');
gs.info('beginningOfTomorrow: ' + beginTomorrow);
gs.info('endOfTomorrow: ' + endTomorrow);
gs.info('beginningOfYesterday: ' + beginYesterday);
gs.info('endOfYesterday: ' + endYesterday);
gs.info('-----------');
var gdt1 = new GlideDateTime(beginToday);
var gdt2 = new GlideDateTime(beginTomorrow);
var dur = GlideDateTime.subtract(gdt1, gdt2); //the difference between gdt1 and gdt2
gs.info('BeginTomorrow: ' + dur.getDisplayValue());
var gdt1 = new GlideDateTime(endToday);
var gdt2 = new GlideDateTime(endTomorrow);
var dur = GlideDateTime.subtract(gdt1, gdt2); //the difference between gdt1 and gdt2
gs.info('EndTomorrow: ' + dur.getDisplayValue());
var gdt1 = new GlideDateTime(beginToday);
var gdt2 = new GlideDateTime(beginYesterday);
var dur = GlideDateTime.subtract(gdt2, gdt1); //the difference between gdt1 and gdt2
gs.info('BeginningYesterday: ' + dur.getDisplayValue());
var gdt1 = new GlideDateTime(endToday);
var gdt2 = new GlideDateTime(endYesterday);
var dur = GlideDateTime.subtract(gdt2, gdt1); //the difference between gdt1 and gdt2
gs.info('EndYesterday: ' + dur.getDisplayValue()); GlideSystem - endOfTomorrow()
明日の終わりの日時を GMT で取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | yyyy-mm-dd hh:mm:ss 形式の GMT。 |
var tomorrowEnd = new GlideDateTime();
tomorrowEnd.setValue(gs.endOfTomorrow()); GlideSystem - endOfYesterday()
昨日の終わりの日時を GMT で取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | (yyyy-mm-dd huh:mm:ss) 形式の GMT。 |
var yesterdayEnd = new GlideDateTime();
yesterdayEnd.setValue(gs.endOfYesterday()); GlideSystem - eventQueue(String name, Object glideRecord, String parm1, String parm2, String queue)
イベントマネージャーのイベントをキューに入れます。
| 名前 | タイプ | 説明 |
|---|---|---|
| 名前 | 文字列 | キューに入れられるイベントの名前。 |
| glideRecord | オブジェクト | GlideRecord オブジェクト (「current」など)。 |
| parm 1 | 文字列 | (オプション)指定されている場合はインスタンスとともに保存されます。 |
| parm 2 | 文字列 | (オプション)指定されている場合はインスタンスとともに保存されます。 |
| キュー | 文字列 | キューの名前です。 |
| タイプ | 説明 |
|---|---|
| なし |
if (current.operation() != 'insert' && current.comments.changes()) {
gs.eventQueue("incident.commented", current, gs.getUserID(), gs.getUserName());
}
スコープ対象と同等のもの
スコープ対象のアプリケーションで eventQueue() メソッドを使用するには、対応するスコープ対象のメソッドである eventQueue() を使用します。
GlideSystem - eventQueueScheduled(String name, Object glideRecord, String parm1, String parm2, Object expiration)
指定された日時にイベントマネージャーのイベントをキューに入れます。
| 名前 | タイプ | 説明 |
|---|---|---|
| 名前 | 文字列 | キューに入れられるイベントの名前。 |
| glideRecord | オブジェクト | GlideRecord オブジェクト (「current」など)。 |
| parm 1 | 文字列 | (オプション)指定されている場合はインスタンスとともに保存されます。 |
| parm 2 | 文字列 | (オプション)指定されている場合はインスタンスとともに保存されます。 |
| 有効期限 | オブジェクト | このイベントを処理する日時。 |
| タイプ | 説明 |
|---|---|
| なし |
if (current.operation() != 'insert' && current.comments.changes()) {
gs.eventQueueScheduled("incident.commented", current, gs.getUserID(), gs.getUserName(), new GlideDateTime('2018-06-02 20:00:00'));
}
スコープ対象と同等のもの
スコープ対象のアプリケーションで eventQueueScheduled() メソッドを使用するには、対応するスコープ対象のメソッド eventQueueScheduled() を使用します。
GlideSystem - flushMessages()
addErrorMessage() または addInfoMessage() を使用して保存されたセッションメッセージをクリアします。
セッションメッセージはフォームの上部に表示されます。クライアント側スクリプトでは、 g_form.clearMessages() を使用してセッションメッセージを削除します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
この例では、エラーメッセージを解析して返し、 flushMessages() を使用してメッセージをクリアする方法を示しています。
MySessionUtil.getSessionError = function() {
var msg = null;
var msgs = gs.getErrorMessages().toArray();
if (msgs.length > 0) {
msg = msgs[0] + '';
gs.flushMessages();
}
return msg;
};
GlideSystem - getAvatar()
ユーザーのアバターへのファイルパスを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | ユーザーのアバターへのファイルパス。 |
var avatarFile = gs.getUser().getAvatar();
gs.addInfoMessage('User avatar ID: ' + avatarFile);
出力:
User avatar ID: c148e1d13741310042106710ce41f149.iix?t=small
GlideSystem - getCurrentScopeName()
現在のアプリケーションスコープの名前を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在のスコープ名。 |
この例では、 getCurrentScopeName() を使用してプロセッサーのスコープを取得する方法を示します。
var incident_GR = new GlideRecord('Incident');
if (incident_GR.get("2e3f6baddb9ad600added8fdbf9618cb")) {
gs.debug("processor scope = "+ gs.getCurrentScopeName());
var w = new global.Workflow();
var context = w.startFlow('1f4a4baddb9ad600affed8fdbf9619bc', incident_GR, "update"); //id = id workflow
}
スコープ対象と同等のもの
スコープ対象のアプリケーションで getCurrentScopeName() メソッドを使用するには、対応するスコープ対象のメソッド getCurrentScopeName() を使用します。
GlideSystem - getDateFormat()
現在のユーザーに関連付けられている日付形式を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在のユーザーに関連付けられている日付形式。 |
次の例では、ユーザーに関連付けられた日付形式を返します。
var userDateFormat = gs. getDateFormat();
gs.info(userDateFormat);
出力:
yyyy-MM-dd
GlideSystem - getDateTimeFormat()
現在のユーザーに関連付けられている日付と時刻の形式を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在のユーザーに関連付けられている日付と時刻の形式。 |
次の例では、ユーザーに関連付けられている日付と時刻の形式を返します。
var userDateTimeFormat = gs.getDateTimeFormat();
gs.info(userDateTimeFormat);
出力:
yyyy-MM-dd HH:mm:ss
GlideSystem - getDisplayColumn(文字列 tableName)
テーブルの表示列を取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| tableName | 文字列 | 表示列名を取得するテーブルの名前。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 列名を表示 |
// Return the sys_id value for a given table and its display value
function GetIDValue(table, displayValue) {
var rec = new GlideRecord(table);
var dn = gs.getDisplayColumn(table);
if (rec.get(dn, displayValue))
return rec.sys_id;
else
return null;
}
GlideSystem - getDisplayValueFor(String tableName, String recordID, String fieldName)
指定されたレコードの指定されたフィールドの表示値を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| tableName | 文字列 | テーブルの名前。 |
| recordID | 文字列 | レコードのSys_id。 |
| fieldName | 文字列 | 表示値を返すフィールドの名前。 |
| タイプ | 説明 |
|---|---|
| 文字列 | フィールドの表示値。 |
この例では、 getDisplayValueFor() を使用して 数値 フィールドの表示値を返す方法を示します。
var value = gs.getDisplayValueFor(current.getTableName(),current.getValue('sys_id'),'number');
GlideSystem - getErrorMessages()
addErrorMessage() によって追加されたセッションのエラーメッセージのリストを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | エラーメッセージのリスト |
この例では、 getErrorMessages() を使用してエラーメッセージを解析して返す方法を示します。
MySessionUtil.getSessionError = function() {
var msg = null;
var msgs = gs.getErrorMessages().toArray();
if (msgs.length > 0) {
msg = msgs[0] + '';
gs.flushMessages();
}
return msg;
};
スコープ対象と同等のもの
スコープ対象のアプリケーションで getErrorMessages() メソッドを使用するには、対応するスコープ対象のメソッド getErrorMessages() を使用します。
GlideSystem - getEscapedProperty(文字列キー, オブジェクト substituteObject)
プロパティを取得し、XML 解析用にエスケープします。
| 名前 | タイプ | 説明 |
|---|---|---|
| キー | 文字列 | 値を返すプロパティのキー。 |
| 代替オブジェクト | オブジェクト | オプション。プロパティが見つからない場合に返されるオブジェクト。 |
| タイプ | 説明 |
|---|---|
| 文字列 | プロパティ、またはプロパティが見つからない場合は substituteObject。 |
var propValue = gs.getEscapedProperty("com.example.my_test_property");
gs.addInfoMessage("This is my property value " + propValue);
GlideSystem - getImpersonatingUserDisplayName()
代理操作ユーザーの表示名を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 代理操作ユーザーの表示名。 |
この例では、代理操作者のユーザー表示名を取得する方法を示します。
var user = gs.getUserDisplayName();
gs.print ("The current user display name is: " + user);
var name = gs.getImpersonatingUserDisplayName();
gs.print("Impersonating user display name: " + name);
The current user display name is: abel.tuter
Impersonating user display name: adminGlideSystem - getImpersonatingUserName()
代理操作しているユーザーの名前を返します。代理操作していない場合は null を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 代理操作ユーザーの名前 |
この例は、代理操作者のユーザー名を取得する方法を示しています。
var name = gs.getImpersonatingUserName();
var actual_user = null;
if (name == null || name == '')
actual_user = user;
else
actual_user = Packages.com.glide.sys.User.getUser(name);
var recent_impersonations = actual_user.getPreference('recent.impersonations');
var admin_role=actual_user.hasRole("admin");
GlideSystem - getInfoMessages()
addInfoMessage() によって追加されたセッションの情報メッセージのリストを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 情報メッセージのリスト。 |
この例では、情報メッセージを取得する方法を示します。
var messages = gs.getInfoMessages();
if (messages.toString().indexOf('Conflicts Detected') == -1)
gs.addInfoMessage(msg);
GlideSystem - getInitials()
ユーザーのイニシャルを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | ユーザーのイニシャル。 |
var userInitials = gs.getUser().getInitials();
gs.addInfoMessage('User initials: ' + userInitials);
出力:
User initials: SA
GlideSystem - getMessage(文字列 messageID, オブジェクト args)
メッセージ [sys_ui_message] テーブルから翻訳されたメッセージを取得して UI に表示します。
指定されたメッセージ識別子 (キー) が現在の言語のメッセージ [sys_ui_message] テーブルに存在する場合、メソッドは翻訳されたメッセージを返します。指定されたメッセージ識別子が現在の言語に存在しない場合、このメソッドは英語版のメッセージを返します。メッセージ識別子がテーブルに存在しない場合は、メッセージ ID が返されます。
メッセージテーブルの詳細については、「 メッセージテーブル」を参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| メッセージ ID | 文字列 | メッセージ識別子。この値は、メッセージ [sys_ui_message] テーブルの [キー] フィールドにあります。[キー] フィールドは、実際のメッセージ文字列とまったく同じように見える場合があります。 |
| 引数 | オブジェクト | オプション。指定されたメッセージ内の変数を置き換える、java.text.MessageFormat で定義された文字列またはその他の値のリスト。 例: この例では 、「{0}」 が current.action.name の内容に置き換えられます。 注: 渡された値は翻訳されません。これらはメッセージに逐語的に挿入されます。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 要求された UI メッセージ。 |
この例は、スペイン語が現在の言語である場合に現在のユーザーに返されるメッセージを示しています。
var my_message = gs.getMessage("rows will not be updated");
alert(my_message);
出力:
las filas no se actualizarán
この例では、メッセージ内の単一の変数を置き換える方法を示します。
// current.action.name is "update record"
var my_message = gs.getMessage("Abort adding action '{0}', same subflow can't be added twice in this subflow.", current.action.name);
alert(my_message);
出力:
Abort adding action update record, same subflow can't be added twice in this subflow.
この例では、メッセージ内の複数の変数を置き換える方法を示します。
// current.sub_flow.name is 'schedule users'
// current.action.name is "update record"
var my_message = gs.getMessage("Abort adding action '{0}', same subflow can't be added twice in {1} subflow.", [current.action.name, current.sub_flow.name]);
alert(my_message);
出力:
Abort adding action update record, same subflow can't be added twice in schedule users subflow.
スコープ対象と同等のもの
スコープ対象のアプリケーションで getMessage() メソッドを使用するには、対応するスコープ対象のメソッド getMessage() を使用します。
GlideSystem - getMessageS(文字列 messageID, オブジェクト引数)
UI に表示する翻訳済みメッセージを取得し、すべての目盛り (') をエスケープします。
指定されたメッセージ識別子 (キー) が現在の言語のメッセージ [sys_ui_message] テーブルに存在する場合、メソッドは翻訳されたメッセージを返します。指定されたメッセージ識別子が現在の言語に存在しない場合、このメソッドは英語版のメッセージを返します。メッセージ識別子がテーブルに存在しない場合は、メッセージ ID が返されます。
メッセージテーブルの詳細については、「 メッセージテーブル」を参照してください。
Jelly から JavaScript 式に挿入する場合に便利です。
| 名前 | タイプ | 説明 |
|---|---|---|
| メッセージ ID | 文字列 | メッセージ識別子。この値は、メッセージ [sys_ui_message] テーブルの [キー] フィールドにあります。[キー] フィールドは、実際のメッセージ文字列とまったく同じように見える場合があります。 |
| 引数 | オブジェクト | オプション。指定されたメッセージ内の変数を置き換える、java.text.MessageFormat で定義された文字列またはその他の値のリスト。 例: この例では 、「{0}」 が current.action.name の内容に置き換えられます。 注: 渡された値は翻訳されません。これらはメッセージに逐語的に挿入されます。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 目盛りがエスケープされた指定されたメッセージ。 |
/*
"I love France" translates to "J'aime la France" in French.
Rendering this without escaping the tick in "J'aime" would break Jelly, because
the tick would prematurely end the variable assignment, and everything that
follows (aime la France') would be a jelly syntax error.
*/
var my_message = '${gs.getMessageS("I love France")}';
alert(my_message);
出力:
J'aime la France
GlideSystem - getMessageLang(文字列メッセージ, 文字列言語, アレイ引数)
指定されたメッセージを指定された言語に翻訳します。
渡されたメッセージに変数を埋め込むこともできます。このメソッドは、 args 配列で渡された値でこれらの変数を解決します。
| 名前 | タイプ | 説明 |
|---|---|---|
| メッセージ | 文字列 | 翻訳するメッセージ。 |
| language | 文字列 | メッセージを翻訳する言語。 フォーマット:BCP47規格 |
| 引数 | アレイ | オプション。指定されたメッセージ内の変数を置き換える、java.text.MessageFormat で定義された文字列またはその他の値のリスト。 例: この例では 、「{0}」 が current.action.name の内容に置き換えられます。 注: 渡された値は翻訳されません。これらはメッセージに逐語的に挿入されます。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 翻訳されたメッセージ。 |
次の例では、指定されたメッセージをスペイン語に変換します。
var my_message = gs.getMessageLang("New email", "es");
gs.info(my_message);
出力:
Nuevo correo electrónico
次の例は、メッセージ内の変数を置き換える方法を示しています。
var my_message = gs.getMessageLang("There are {0} new emails for {1}", "es", [current.numEmails, current.userName]);
gs.info(my_message);
出力:
Hay 7 correos nuevos para John Smith
GlideSystem - getNodeName(Object obj, Number index)
指定されたインデックスのノード名を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| obj | オブジェクト | 調査するオブジェクト。 |
| インデックス | 番号 | ノード名を取得するインデックス。 |
| タイプ | 説明 |
|---|---|
| 文字列 | ノードの名前 |
function doInsert(nodeList) {
gs.print('Doing insert');
var task = new GlideRecord('task');
task.initialize();
for (var x=0; x < nodeList.size(); x++) {
var name = gs.getNodeName(nodeList, x);
var value = gs.getNodeValue(nodeList, x);
task.setValue(name, value);
}
task.insert();
}
GlideSystem - getNodeValue(Object obj, Number index)
指定されたインデックスのノード値を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| obj | オブジェクト | 調査するオブジェクト。 |
| インデックス | 番号 | ノード値を取得するインデックス |
| タイプ | 説明 |
|---|---|
| オブジェクト | ノード値 |
function doInsert(nodeList) {
gs.print('Doing insert');
var task = new GlideRecord('task');
task.initialize();
for (var x=0; x < nodeList.size(); x++) {
var name = gs.getNodeName(nodeList, x);
var value = gs.getNodeValue(nodeList, x);
task.setValue(name, value);
}
task.insert();
}
GlideSystem - getPreference(文字列キー、オブジェクトのデフォルト)
指定されたユーザー設定を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| キー | 文字列 | 設定のキー。 |
| デフォルト | オブジェクト | 指定された設定が見つからない場合に使用するデフォルト値。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 設定値。設定がない場合は、指定されたデフォルト値を返します。 |
function getSelectedProject() {
var array= new Array();
var prj_id = gs.getPreference("prj_id"); //This will fetch value from user preference
var gr = new GlideRecord('pm_project_task');
gr.addQuery('parent', prj_id);
gr.addActiveQuery();
while(gr.next()) {
array.push(gr.sys_id.toString());
}
return array;
}
GlideSystem - getProperty(文字列キー, オブジェクト alt)
Glide プロパティの値を返します。プロパティが見つからない場合は、指定された alt 値を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| キー | 文字列 | 値を返すプロパティのキー。 |
| 代替 | オブジェクト | オプション。プロパティが見つからない場合に返す代替オブジェクト。 |
| タイプ | 説明 |
|---|---|
| 文字列 | Glide プロパティの値、または上記で定義した代替オブジェクト。 |
//Check for attachments and add link if there are any
var attachment_link = '';
var rec = new GlideRecord('sc_req_item');
rec.addQuery('sys_id', current.request_item);
rec.query();
if(rec.next()){
if(rec.hasAttachments()){
attachment_link = gs.getProperty('glide.servlet.uri') + rec.getLink();
}
}
GlideSystem - getScriptError(文字列スクリプト)
指定されたスクリプトで見つかったスクリプトエラー (存在する場合) を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| スクリプト | 文字列 | エラーをチェックするスクリプト。 |
| タイプ | 説明 |
|---|---|
| 文字列 | エラーメッセージ。エラーがない場合は null。 |
if (gs.isValidScript(current.script) == false)
{
current.setAbortAction(true);
var error = gs.getScriptError(current.script);
current.script.setError(error);
}
GlideSystem - getSession()
GlideSession オブジェクトを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| GlideSession オブジェクト | 現在のセッションの GlideSession オブジェクト |
if(!gs.hasRole("admin") && gs.getSession().isInteractive() && gs.getUserName() != "guest"){
var qc = current.addQuery('u_visibility', "both");
qc.addOrCondition('u_visibility', '');
if (gs.getImpersonatingUserName() != null) {
gs.getSession().clearClientData('navQuery');
}
var navQuery = gs.getSession().getClientData('navQuery');
if (navQuery == null) {
var isManager = gs.getUser().getRecord().getValue('u_is_manager');
if (!isManager) {
qc.addOrCondition('u_visibility', 'nonmanager');
gs.getSession().putClientData('navQuery', 'nonmanager');
} else {
qc.addOrCondition('u_visibility', 'manager');
gs.getSession().putClientData('navQuery', 'manager');
}
} else {
qc.addOrCondition('u_visibility', navQuery);
}
}
スコープ対象と同等のもの
スコープ対象のアプリケーションで getSession() メソッドを使用するには、対応するスコープ対象のメソッド getSession() を使用します。
GlideSystem - getSessionID()
GlideSession セッション ID を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | セッション ID |
var gr_NOW = new GlideRecord('v_user_session');
var sessionId = gs.getSessionID();
gs.log("Session ID is: " + sessionId);
出力
Session ID is: FEE589B3DB7EE4103DD9C39D139619D7
スコープ対象と同等のもの
スコープ対象のアプリケーションで getSessionID() メソッドを使用するには、対応するスコープ対象のメソッド getSessionID を使用します。
GlideSystem - getStyle(String tableName, String fieldName, String fieldValue)
テーブル、フィールド、およびフィールド値に定義されたスタイルを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| tableName | 文字列 | テーブル名 |
| fieldName | 文字列 | フィールド名 |
| fieldValue | 文字列 | フィールド値 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定されたフィールドのスタイル。 |
var returnString = gs.getStyle('<tableName>', '<fieldName>', '<fieldValue>');
gs.print(returnString);
GlideSystem - getTimeFormat()
現在のユーザーに関連付けられている時間形式を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在のユーザーに関連付けられている時間形式。 |
次のコード例は、このメソッドを呼び出す方法を示しています。
var userTimeFormat = gs. getTimeFormat();
gs.info(userTimeFormat);
出力:
HH:mm:ss
GlideSystem - getUser()
現在のユーザーのユーザーオブジェクトへの参照を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| GlideUser | 現在のユーザーのユーザーオブジェクトへの参照。 |
次の例は、現在のユーザーオブジェクトを取得する方法を示しています。
var user = gs.getUser();
gs.print ("The current user is: " + user);
The current user is: com.glide.sys.User@db5dd9次の例は、現在のユーザーがworkflow_adminロールを持っているかどうかを確認する方法を示しています。
var role = gs.getUser().hasRole('workflow_admin');
gs.print ("Does the current user have the workflow_admin role: " + role);
Does the current user have the workflow_admin role: trueスコープ対象と同等のもの
スコープ対象のアプリケーションで getUser() メソッドを使用するには、対応するスコープ対象のメソッド getUser() を使用します。
GlideSystem - getUserDisplayName()
現在のユーザーの表示名を取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在のユーザーの名前フィールド。 たとえば、このメソッドは abel.tuter ではなく Abel Tuter を返します。 |
この例では、現在のユーザーの表示名を取得します。
gs.info(gs.getUserDisplayName());
出力:
System Administrator
スコープ対象と同等のもの
スコープ対象のアプリケーションで getUserDisplayName() メソッドを使用するには、対応するスコープ対象のメソッド getUserDisplayName() を使用します。
GlideSystem - getUserID()
現在のユーザーのsys_idを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在のユーザーのSys_id。 |
この例では、現在のユーザーのsys_idを取得します。
var currentUserId = gs.getUserID();
gs.print("Current user ID: " + currentUserId);
Current user ID: 6816f79cc0a8016401c5a33be04be441スコープ対象と同等のもの
スコープ対象のアプリケーションで getUserID() メソッドを使用するには、対応するスコープ対象のメソッド getUserID() を使用します。
GlideSystem - getUserName()
現在のユーザーのユーザー名を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在のユーザーのユーザー名。 たとえば、このメソッドは Abel Tuter ではなく abel.tuter を返します。 |
この例では、現在のユーザーと代理操作されたユーザーのユーザー名を取得します。
var user = gs.getUserName();
gs.info("The current user name is: " + user);
var impUser = new GlideImpersonate();
impUser.impersonate("62826bf03710200044e0bfc8bcbe5df1");
var user2 = gs.getUserName();
gs.info("The impersonated user name is: " + user2);
The current user name is: admin
The impersonated user name is: abel.tuterスコープ対象と同等のもの
スコープ対象のアプリケーションで getUserName() メソッドを使用するには、対応するスコープ対象のメソッド getUserName() を使用します。
GlideSystem - getUserNameByUserID(文字列 user_id)
指定されたユーザーログイン名に基づいてユーザーの表示名を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| user_id | 文字列 | 関連する表示名を取得するユーザーのログイン名。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 要求されたユーザーの表示名。 注: このメソッドで要求された ID を持つユーザーが見つからない場合は、指定された入力値が返されます。 |
次の例は、指定されたユーザーの表示名を取得する方法を示しています。
var displayName = gs.getUserNameByUserID('abel.tuter');
gs.info('User display name is: ' + displayName);
User display name is: Abel TuterGlideSystem - getXMLNodeList(文字列 xml)
XML ドキュメント内のすべてのノードと値のアレイを構築します。
| 名前 | タイプ | 説明 |
|---|---|---|
| xml | 文字列 | 解析する XML ドキュメント。 |
| タイプ | 説明 |
|---|---|
| アレイリスト | 最も外側の XML ノードの名前と値のリスト。 |
次の例は、アレイリスト内の XML ノードとそれに関連する値のリストを取得する方法を示しています。
var nodeList = gs.getXMLNodeList("<note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>");
gs.print ("The node contains: " + nodeList);
The node contains: [to : Tove, from : Jani, heading : Reminder, body : Don't forget me this weekend!]
GlideSystem - getXMLText(文字列 xml, 文字列 xpathQuery)
XPath クエリに一致する XML 文字列内の最初の要素の XML テキストを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| xml | 文字列 | 検索する XML 文字列。 |
| xpathQuery | 文字列 | 照合する XPath クエリ。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 検索パラメーターに一致する XML ノード。 |
次の例は、渡されたノード内の指定された XML 要素の値を取得する方法を示しています。
var nodeList = gs.getXMLText("<outer><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note></outer>", "//from");
gs.print ("The from element contains: " + nodeList);
The from element contains: JaniGlideSystem - hasRole(文字列 roleName)
現在のユーザーが渡されたロールの少なくとも 1 つを持っているかどうかを判定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| roleName | 文字列 | ロールのカンマ区切りリスト。 |
| タイプ | 説明 |
|---|---|
| ブール | 現在のユーザーが指定されたロールの少なくとも 1 つを持っているかどうかを示すフラグ。 可能な値:
|
次の例は、現在のユーザーがアドミンロールを持っているかgroups_adminロールを持っているかを確認する方法を示しています。
if (!gs.hasRole("admin, groups_admin") && gs.getSession().isInteractive()) {
var qc = current.addQuery("u_hidden", "!=", "true"); //cannot see hidden groups...
qc.addOrCondition("sys_id", "javascript:getMyGroups()"); //...unless in the hidden group
}
スコープ対象と同等のもの
スコープ対象のアプリケーションで hasRole() メソッドを使用するには、対応するスコープ対象のメソッド hasRole() を使用します。
GlideSystem - hasRoleInGroup(Object roleName, Object group)
現在のユーザーが、指定されたグループ内で指定されたロールを持っているかどうかを判定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| roleName | オブジェクト | ロールの名前。 |
| グループ | オブジェクト | 指定されたロールを確認するグループのSys_id。 |
| タイプ | 説明 |
|---|---|
| ブール | 現在のユーザーが、指定されたグループ内で指定されたロールを持っているかどうかを示すフラグ。 可能な値:
|
次の例は、sys_user_groupグループにrole_nameロールがあるかどうかを確認する方法を示しています。
var group = new GlideRecord('sys_user_group');
group.addQuery('name', 'GROUP_NAME');
group.setLimit(1);
group.query();
if (group.next()) {
if (gs.hasRoleInGroup('role_name', group)) {
gs.print('User has role in group');
} else {
gs.print('User does NOT have role in group');
}
}
GlideSystem - 時間前 (時間数)
指定された時間数前の日時を返します。戻り値は、インスタンスのタイムゾーンに合わせて調整されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| 時間 | 番号 | 時間前。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された時間数前の UTC 日時。 形式:yyyy-mm-dd hh:mm:ss |
var currentDateTime = gs.hoursAgo(0);
gs.info("Current date/time: " + currentDateTime);
var agoDateTime = gs.hoursAgo(1);
gs.info("Ago date/time: " + agoDateTime);
Current date/time: 2021-03-17 20:53:25
Ago date/time: 2021-03-17 19:53:25スコープ対象と同等のもの
スコープ対象のアプリケーションで hoursAgo() メソッドを使用するには、対応するスコープ対象のメソッド hoursAgo() を使用します。
GlideSystem - hoursAgoEnd(数値 hours)
指定された時間数前の 1 時間目の終了日時を返します。戻り値は、インスタンスのタイムゾーンに合わせて調整されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| 時間 | 数値 (整数) | 時間前。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された時間数前の終了を表す UTC 日時。 形式:yyyy-mm-dd hh:mm:ss |
var currentDateTime = gs.hoursAgoEnd(0);
gs.print("Current date/time: " + currentDateTime);
var agoDateTime = gs.hoursAgoEnd(1);
gs.print("Ago date/time: " + agoDateTime);
Current date/time: 2021-03-17 20:59:59
Ago date/time: 2021-03-17 19:59:59スコープ対象と同等のもの
スコープ対象のアプリケーションで hoursAgoEnd() メソッドを使用するには、対応するスコープ対象のメソッド hoursAgoEnd() を使用します。
GlideSystem - hoursAgoStart(数値 hours)
指定された時間数前の時間の開始日時を返します。戻り値は、インスタンスのタイムゾーンに合わせて調整されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| 時間 | 番号 | 時間前。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された時間数前の終了を表す UTC 日時。 形式:yyyy-mm-dd hh:mm:ss |
var currentDateTime = gs.hoursAgoStart(0);
gs.print("Current date/time: " + currentDateTime);
var agoDateTime = gs.hoursAgoStart(1);
gs.print("Ago date/time: " + agoDateTime);
Current date/time: 2021-03-17 20:00:00
Ago date/time: 2021-03-17 19:00:00スコープ対象と同等のもの
スコープ対象のアプリケーションで hoursAgoStart() メソッドを使用するには、対応するスコープ対象のメソッドである hoursAgoStart() を使用します。
GlideSystem:isFirstDayOfMonth (オブジェクト日付)
指定された日付オブジェクトの日付が月の最初の日かどうかを確認します。
| 名前 | タイプ | 説明 |
|---|---|---|
| date | オブジェクト | 日付を確認する日付オブジェクト (GlideDateTime や GlideDate など)。 |
| タイプ | 説明 |
|---|---|
| ブール | 指定された日付オブジェクトの日付が月の最初の日であるかどうかを示すフラグ。 可能な値:
|
この例は、指定した日付オブジェクトの日付が月の最初の日であるかどうかを判断する方法を示しています。
var gdt = new GlideDateTime();
gdt.setValue('2021-04-01 12:00:00');
var currentDay = gs.isFirstDayOfMonth(gdt);
gs.print("First day of month: " + currentDay);
gdt.setValue('2021-04-21 12:00:00');
var currentDay = gs.isFirstDayOfMonth(gdt);
gs.print("First day of month: " + currentDay);
First day of month: true
First day of month: falseGlideSystem - isFirstDayOfWeek(オブジェクト日付)
指定された日付オブジェクトの日付が週の最初の日かどうかを確認します。この方法では、月曜日が週の最初の日であるという ISO 標準を使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| date | オブジェクト | 日付を確認する日付オブジェクト (GlideDateTime や GlideDate など)。 |
| タイプ | 説明 |
|---|---|
| ブール | 現在の日付オブジェクトの日付が週の最初の日 (月曜日) であるかどうかを示すフラグ。 可能な値:
|
この例は、指定された日付オブジェクトの日付が週の最初の日であるかどうかを判断する方法を示しています。
var gdt = new GlideDateTime();
gdt.setValue('2021-03-02 12:00:00');
var currentDay = gs.isFirstDayOfWeek(gdt);
gs.info("First day of week: " + currentDay);
gdt.setValue('2021-03-22 12:00:00');
var currentDay = gs.isFirstDayOfWeek(gdt);
gs.info("First day of week: " + currentDay);
First day of week: false
First day of week: trueGlideSystem - isFirstDayOfYear(オブジェクト日付)
指定された日付オブジェクトの日付が年の最初の日であるかどうかを確認します。
| 名前 | タイプ | 説明 |
|---|---|---|
| date | オブジェクト | 日付を確認する日付オブジェクト (GlideDateTime や GlideDate など)。 |
| タイプ | 説明 |
|---|---|
| ブール | 指定された日付オブジェクトの日付が年の最初の日であるかどうかを示すフラグ。 可能な値:
|
この例は、指定した日付オブジェクトの日付が年の最初の日であるかどうかを判断する方法を示しています。
var gdt = new GlideDateTime();
gdt.setValue('2020-12-31 12:00:00');
var currentDay = gs.isFirstDayOfYear(gdt);
gs.info("First day of year: " + currentDay);
gdt.setValue('2021-01-01 12:00:00');
var currentDay = gs.isFirstDayOfYear(gdt);
gs.info("First day of year: " + currentDay);
First day of year: false
First day of year: trueGlideSystem - isInteractive()
現在のセッションがインタラクティブかどうかを確認します。
インタラクティブセッションの例として、ユーザーがログイン画面を使用してログインした場合などが挙げられます。非インタラクティブセッションの例として、SOAP 要求を使用したデータの取得があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| ブール | セッションがインタラクティブかどうかを示すフラグ。 可能な値:
|
if (!gs.hasRole('admin') && gs.isInteractive()) {
var qc1 = current.addQuery('u_group', '');
var gra = new GlideRecord('sys_user_grmember');
gra.addQuery('user', gs.getUserID());
gra.query();
while (gra.next()) {
qc1.addOrCondition('u_group', gra.group);
}
}
スコープ対象と同等のもの
スコープ対象のアプリケーションで isInteractive() メソッドを使用するには、対応するスコープ対象のメソッドである isInteractive() を使用します。
GlideSystem - isLastDayofMonth (オブジェクト日付)
指定された日付オブジェクトの日付が月の最終日かどうかを確認します。
| 名前 | タイプ | 説明 |
|---|---|---|
| date | オブジェクト | 日付を確認する日付オブジェクト (GlideDateTime や GlideDate など)。 |
| タイプ | 説明 |
|---|---|
| ブール | 指定された日付オブジェクトの日付が月の最終日であるかどうかを示すフラグ。 可能な値:
|
この例では、指定した日付オブジェクトの日付が月の最終日であるかどうかを判断する方法を示します。
var gdt = new GlideDate();
gdt.setValue('2020-12-31 12:00:00');
var currentDay = gs.isLastDayOfMonth(gdt);
gs.print("First day of year: " + currentDay);
gdt.setValue('2021-01-01 12:00:00');
var currentDay = gs.isLastDayOfMonth(gdt);
gs.print("First day of year: " + currentDay);
Last day of month: true
Last day of month: falseGlideSystem - isLastDayOfWeek(オブジェクト日付)
指定された日付オブジェクトの日付が週の最終日であるかどうかを確認します。この方法では、日曜日が週の最終日であるという ISO 標準を使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| date | オブジェクト | 日付を確認する日付オブジェクト (GlideDateTime や GlideDate など)。 |
| タイプ | 説明 |
|---|---|
| ブール | 現在の日付オブジェクトの日付が週の最終日 (日曜日) であるかどうかを示すフラグ。 可能な値:
|
この例は、指定した日付オブジェクトの日付が週の最終日であるかどうかを判断する方法を示しています。
var gdt = new GlideDate();
gdt.setValue('2021-03-01 12:00:00');
var currentDay = gs.isLastDayOfWeek(gdt);
gs.info("Last day of week: " + currentDay);
gdt.setValue('2021-03-21 12:00:00');
var currentDay = gs.isLastDayOfWeek(gdt);
gs.info("Last day of week: " + currentDay);
First day of week: false
First day of week: trueGlideSystem - isLastDayOfYear (オブジェクト日付)
指定された日付オブジェクトの日付が年の最終日であるかどうかを確認します。
| 名前 | タイプ | 説明 |
|---|---|---|
| date | オブジェクト | 日付を確認する日付オブジェクト (GlideDateTime や GlideDate など)。 |
| タイプ | 説明 |
|---|---|
| ブール | 現在の日付オブジェクトの日付が年の最終日であるかどうかを示すフラグ。 可能な値:
|
この例では、指定された日付オブジェクトの日付が年の最終日であるかどうかを判断する方法を示します。
var gdt = new GlideDateTime();
gdt.setValue('2020-12-31 12:00:00');
var currentDay = gs.isLastDayOfYear(gdt);
gs.info("Last day of year: " + currentDay);
gdt.setValue('2021-01-01 12:00:00');
var currentDay = gs.isLastDayOfYear(gdt);
gs.info("Last day of year: " + currentDay);
Last day of year: true
Last day of year: falseGlideSystem - isLoggedIn()
現在のユーザーが現在ログインしているかどうかを判定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| ブール | 現在のユーザーがログインしているかどうかを示すフラグ。 可能な値:
|
この例は、現在のユーザーがログインしているかどうかを判断する方法を示しています。
if(gs.isLoggedIn())
gs.info("Current user is logged in");
else
gs.info("Current user is NOT logged in");
Current user is logged inスコープ対象と同等のもの
スコープ対象のアプリケーションで isLoggedIn() メソッドを使用するには、対応するスコープ対象のメソッドである isLoggedIn() を使用します。
GlideSystem - isMobile()
要求がモバイルデバイスから送信されたかどうかを判断します。
このメソッドは、UI アクション条件とビジネスルールで使用できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| ブール | 要求がモバイルデバイスから送信されたかどうかを示すフラグ。 可能な値:
|
この例では、現在のデバイスがモバイルデバイスかどうかを判断する方法を示します。
if(gs.isMobile())
gs.info("Submitted from mobile UI");
else
gs.info("NOT submitted from mobile UI");
Submitted from mobile UIスコープ対象と同等のもの
スコープ対象のアプリケーションで isMobile() メソッドを使用するには、対応するスコープ対象のメソッドである isMobile() を使用します。
GlideSystem - lastWeek()
1 週間前の日時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 1 週間前の日時。 形式:yyyy-MM-dd hh:mm:ss |
この例は、現在の日付オブジェクトの日付から 1 週間前の日付を取得する方法を示しています。
var gdt = new GlideDateTime();
gdt.setValue('2021-03-22 01:00:00');
gs.info("Current date: " + gs.nowDateTime());
gs.info("One week earlier: " + gs.lastWeek());
Current date: 2021-03-22 15:27:07
One week earlier: 2021-03-15 15:27:07GlideSystem - log(文字列メッセージ, 文字列ソース)
メッセージをシステムログに記録し、syslog テーブルに保存します。
| 名前 | タイプ | 説明 |
|---|---|---|
| メッセージ | 文字列 | ログに記録するメッセージ。 |
| ソース | 文字列 | オプション。メッセージのソース。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、定数と変数を使用してログエントリを投稿する方法を示しています。
var count = new GlideAggregate('incident');
count.addQuery('active', 'true');
count.addAggregate('COUNT', 'category');
count.query();
while (count.next()) {
var category = count.category;
var categoryCount = count.getAggregate('COUNT', 'category');
gs.log("The are currently " + categoryCount + " incidents with a category of " + category, "Incident Counter");
}
GlideSystem - logError(文字列メッセージ, 文字列ソース)
エラーをシステムログに記録し、syslog テーブルに保存します。
| 名前 | タイプ | 説明 |
|---|---|---|
| メッセージ | 文字列 | ログに記録するエラーメッセージ。 |
| ソース | 文字列 | オプション。メッセージのソース。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例では、インシデントテーブルが見つからない場合にエラーをログに記録します。
var gr_NOW = new GlideRecord("incident");
if (!gr_NOW.isValid()) {
gs.logError('Incident table could not be found');
return;
}
GlideSystem - logWarning(文字列メッセージ, 文字列ソース)
警告をシステムログに記録し、syslog テーブルに保存します。
| 名前 | タイプ | 説明 |
|---|---|---|
| メッセージ | 文字列 | ログに記録するメッセージ。 |
| ソース | 文字列 | オプション。メッセージのソース。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例では、インシデントテーブルが見つからない場合に警告をログに記録します。
var gr_NOW = new GlideRecord("incident");
if (!gr_NOW.isValid()) {
gs.logWarning('Incident table could not be found');
return;
}
GlideSystem - minutesAgo(分数)
指定された分数前の日付と時刻を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 分 | 番号 | 戻るまでの過去の分数。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された分数前の UTC 日時。 形式:yyyy-mm-dd hh:mm:ss |
この例では、addQuery() 呼び出しで minutesAgo() メソッドを使用する方法を示します。
// Check to see if the user has failed to login too many times
// when the limit is reached, lock the user out of the system
//
//Check failed logins in the last 15 minutes
var now_GR = new GlideRecord('sysevent');
now_GR.addQuery('name', 'login.failed');
now_GR.addQuery('parm1', event.parm1.toString());
now_GR.addQuery('sys_created_on','>=', gs.minutesAgo(15));
now_GR.query();
var rowCount = now_GR.getRowCount();
if(rowCount >= 5){
var now_GR = new GlideRecord("sys_user");
now_GR.addQuery("user_name", event.parm1.toString());
now_GR.query();
if (now_GR.next()) {
now_GR.locked_out = true;
now_GR.update();
gs.log("User " + event.parm1 + " locked out due to too many invalid login attempts");
}
}
GlideSystem - minutesAgoEnd(数値 分)
特定の分数前の 1 分間の終了日時を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 分 | 番号 | 5 や 11 など、分前の整数です。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された分数前の 1 分 (59 秒) の終わりの GMT。 形式:yyyy-mm-dd hh:mm:ss |
次の例では、現在の日付と時刻、および 30 分前の日時を 1 分の終わりに GMT で表示しています。
var nowDateTime = new GlideDateTime();
gs.print("Now: " + nowDateTime);
var thirtyMinutesAgoDateTime = gs.minutesAgoEnd(30);
gs.print("Thirty minutes ago end time: " + thirtyMinutesAgoDateTime);
出力
Now: 2021-10-20 15:22:13
Thirty minutes ago end time: 2021-10-20 14:52:59
スコープ対象と同等のもの
スコープ対象のアプリケーションで minutesAgoEnd() メソッドを使用するには、対応するスコープ対象のメソッドである minutesAgoEnd() を使用します。
GlideSystem - minutesAgoStart(分数)
特定の分数前の 1 分前の開始日時を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 分 | 番号 | 15 や 112 など、分前の整数です。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定した分数前の GMT (分の開始時)。 形式:yyyy-mm-dd hh:mm:ss |
次の例では、現在の日付と時刻、および 30 分前の 1 分前の日付と時刻を GMT で表示しています。
var nowDateTime = new GlideDateTime();
gs.info("Now: " + nowDateTime);
var thirtyMinutesAgoDateTime = gs.minutesAgoStart(30);
gs.info("Thirty minutes ago: " + thirtyMinutesAgoDateTime);
出力
Now: 2021-10-20 14:56:18
Thirty minutes ago: 2021-10-20 14:26:00
スコープ対象と同等のもの
スコープ対象のアプリケーションで minutesAgoStart() メソッドを使用するには、対応するスコープ対象のメソッドである minutesAgoStart() を使用します。
GlideSystem - monthsAgo(月数)
特定の月数前の日付と時刻を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 月 | 番号 | 月前の整数。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された月数前のまったく同じ時刻の GMT。 形式:yyyy-mm-dd hh:mm:ss |
次の例では、現在の日付と時刻と 1 か月前の日時を同時に GMT で表示しています。
var nowDateTime = new GlideDateTime();
gs.info("Now: " + nowDateTime);
var oneMonthAgoDateTime = gs.monthsAgo(1);
gs.info("One month ago: " + oneMonthAgoDateTime);
出力
Now: 2021-10-20 15:29:15
One month ago: 2021-09-20 15:29:15
スコープ対象と同等のもの
スコープ対象のアプリケーションで monthsAgo() メソッドを使用するには、対応するスコープ対象のメソッド monthsAgo() を使用します。
GlideSystem - monthsAgoEnd(数値月数)
指定された月数前の月の最終日の日時を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 月 | 数値 (整数) | 月数 (4 や 16 など)。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された月数前の月の日時スタンプ (現地時間)。 形式:UTC yyyy-mm-dd hh:mm:ss |
次の例では、営業月末の現在の日付と時刻と 2 か月前の日付と時刻を表示します。
var nowDateTime = new GlideDateTime();
gs.info("Now: " + nowDateTime);
var endOfTheMonthDateTime = gs.monthsAgoEnd(2);
gs.info("End of the month: " + endOfTheMonthDateTime);
出力:
Now: 2021-10-20 19:23:35
End of the month: 2021-08-01 06:59:59
GlideSystem - monthsAgoStart(番号月数)
特定の月数前の月初の日時を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 月 | 番号 | 5 や 14 など、月前の整数です。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された月数前の GMT の月初。 形式:yyyy-mm-dd hh:mm:ss |
次の例では、現在の日付と時刻と 3 か月前の日時を GMT で表示しています。
var nowDateTime = new GlideDateTime();
gs.info("Now: " + nowDateTime);
var threeMonthsAgoDateTime = gs.monthsAgoStart(3);
gs.info("Three months ago start date and time: " + threeMonthsAgoDateTime);
出力
Now: 2021-10-20 15:05:27
Three months ago start date and time: 2021-07-01 07:00:00
スコープ対象と同等のもの
スコープ対象のアプリケーションで monthsAgoStart() メソッドを使用するには、対応するスコープ対象のメソッド monthsAgoStart() を使用します。
GlideSystem:nil(オブジェクトオブジェクト)
オブジェクトをクエリし、オブジェクトが null または空の文字列を含んでいる場合は true を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| obj | オブジェクト | チェックするオブジェクト。 |
| タイプ | 説明 |
|---|---|
| ブール | null または空の文字列の場合は True。それ以外の場合は false です。 |
if ((!current.u_date1.nil()) && (!current.u_date2.nil())) {
var start = current.u_date1.getGlideObject().getNumericValue();
var end = current.u_date2.getGlideObject().getNumericValue();
if (start > end) {
gs.addInfoMessage('start must be before end');
current.u_date1.setError('start must be before end');
current.setAbortAction(true);
}
}
スコープ対象と同等のもの
スコープ対象のアプリケーションで nil() メソッドを使用するには、対応するスコープ対象のメソッド nil() を使用します。
GlideSystem - now()
現在の日付を UTC で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | ユーザー定義形式の現在の日付 (UTC)。 |
// When the user password changes then set the u_password_last_reset field
// to now so we know when to force another update
var now_GR = new GlideRecord("sys_user");
if (now_GR.get(event.parm1.toString())) {
// Do something based on the Password Changing
gs.log("The user password changed so do something else...");
now_GR.u_password_last_reset = gs.now();
now_GR.update();
}
GlideSystem - nowNoTZ()
現在の日付と時刻を UTC 形式で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在の UTC 日時 |
// When the user password changes then set the u_password_last_reset field
// to now so we know when to force another update
var now_GR = new GlideRecord("sys_user");
if (now_GR.get(event.parm1.toString())) {
// Do something based on the Password Changing
gs.log("The user password changed so do something else...");
now_GR.u_password_last_reset = gs.nowNoTZ();
now_GR.update();
}
GlideSystem - nowDateTime()
現在の日付と時刻をユーザー定義形式で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | ユーザー定義形式の現在の日付と時刻。システムの日付と時刻の形式の設定の詳細については、「 日付フィールド」および「日付/時刻」フィールドを参照してください。 |
var currentDateTime = gs.nowDateTime();
gs.print("Current date/time: " + currentDateTime);
Current date/time: 2021-03-17 14:04:02ワークフロースクリプトの変数を現在の日時に設定する場合は、 setDisplayValue() メソッドを使用します。次のスクリプトは、ワークフロー変数 end_date を現在の日時に設定します。
current.variables.end_date.setDisplayValue(gs.nowDateTime());
GlideSystem - nowGlideDateTime()
現在の日付と時刻を持つ GlideDateTime オブジェクトを取得します。
現在の日付と時刻を含む GlideDateTime オブジェクトを取得したら、GlideDateTime メソッドを使用して、日時計算の実行、日時の書式設定、日時形式間の変換などの日時操作を実行できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | GMT 形式の現在の日付と時刻を持つ GlideDateTime オブジェクト。 |
フィールドu_target_dateを GMT 形式で現在の日付と時刻に設定します。
current.u_target_date = gs.nowGlideDateTime();
GlideSystem - print(文字列メッセージ)
メッセージをシステムログに書き込みます。
このメソッドは、debug がアクティブ化されていない限り、syslog テーブルにメッセージを書き込みません。
| 名前 | タイプ | 説明 |
|---|---|---|
| メッセージ | 文字列 | ログに記録するメッセージ |
| タイプ | 説明 |
|---|---|
| なし |
var rec = new GlideRecord('incident');
rec.addQuery('active',false);
rec.query();
while (rec.next()) {
gs.print('Inactive incident ' + rec.number + ' deleted');
rec.deleteRecord();
}
GlideSystem - quartersAgo(数値四半期)
特定の四半期前の日付と時刻を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 四半期 | 番号 | 四半期前の整数。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 四半期前に指定された数である四半期の GMT。 形式:yyyy-mm-dd hh:mm:ss |
次の例では、現在の日付と時刻と 4 四半期前の日付と時刻を同時に表示しています。
var nowDateTime = new GlideDateTime();
gs.print("Now: " + nowDateTime);
var fourQuartersAgoDateTime = gs.quartersAgo(4);
gs.print("Four quarters ago: " + fourQuartersAgoDateTime);
出力
Now: 2021-10-20 16:27:32
Four quarters ago: 2020-10-20 16:27:32
GlideSystem - quartersAgoEnd(Number quarters)
四半期前の指定した数について、四半期の最終日の日時を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 四半期 | 番号 | 四半期の整数 |
| タイプ | 説明 |
|---|---|
| 文字列 | 四半期前に指定された数である四半期末の GMT (yyyy-mm-dd hh:mm:ss 形式) |
スコープ対象と同等のもの
スコープ対象のアプリケーションで quartersAgoEnd() メソッドを使用するには、対応するスコープ対象のメソッド quartersAgoEnd() を使用します。
GlideSystem - quartersAgoStart(番号四半期)
四半期前の指定した数について、四半期の初日の日時を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 四半期 | 番号 | 四半期の整数 |
| タイプ | 説明 |
|---|---|
| 文字列 | 四半期前に指定された数である GMT 月の終わり (yyyy-mm-dd hh:mm:ss の形式) |
スコープ対象と同等のもの
スコープ対象のアプリケーションで quartersAgoStart() メソッドを使用するには、対応するスコープ対象のメソッド quartersAgoStart() を使用します。
GlideSystem - setProperty(文字列キー, 文字列値, 文字列説明)
指定されたキーを指定された値に設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| キー | 文字列 | 設定するプロパティのキー。 |
| 値 | 文字列 | 設定するプロパティの値。 |
| 説明 | 文字列 | プロパティの説明。 |
| タイプ | 説明 |
|---|---|
| なし |
gs.setProperty("glide.foo","bar","foo");
gs.info(gs.getProperty("glide.foo"));
出力:bar
スコープ対象と同等のもの
スコープ対象のアプリケーションで setProperty() メソッドを使用するには、対応するスコープ対象のメソッド setProperty() を使用します。
GlideSystem - setRedirect(オブジェクト URI)
このトランザクションのリダイレクト URI を設定します。これにより、ユーザーに表示される次のページが決まります。
| 名前 | タイプ | 説明 |
|---|---|---|
| URI | オブジェクト | リダイレクトとして設定する URI |
| タイプ | 説明 |
|---|---|
| なし |
この例では、ユーザーを特定のカタログアイテムにリダイレクトし、現在のメールをパラメーターとして渡します。
gs.setRedirect("com.glideapp.servicecatalog_cat_item_view.do?sysparm_id=d41ce5bac611227a0167f4bf8109bf70&sysparm_user="
+ current.sys_id + "&sysparm_email=" + current.email)
スコープ対象と同等のもの
スコープ対象のアプリケーションで setRedirect() メソッドを使用するには、対応するスコープ対象のメソッド setRedirect() を使用します。
GlideSystem - setReturn(オブジェクト URI)
このトランザクションの戻り先 URI を設定します。これにより、ユーザーが次のフォームから戻ったときにどのページに誘導されるかが決まります。
| 名前 | タイプ | 説明 |
|---|---|---|
| URI | オブジェクト | 返品場所として設定する URI。 |
| タイプ | 説明 |
|---|---|
| なし |
この例は、ユーザーが次のページを終えたときに現在のページに戻ることを確認します。
gs.setReturn (current.getLink(true));
GlideSystem - tableExists(文字列 tableName)
データベーステーブルが ServiceNow インスタンスに存在するかどうかを判定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| tableName | 文字列 | チェックするテーブルの名前。 |
| タイプ | 説明 |
|---|---|
| ブール | 指定されたテーブルが ServiceNow インスタンスに存在するかどうかを示すフラグ。 可能な値:
|
この例では、インシデントテーブルと foo テーブルが ServiceNow インスタンスに存在するかどうかを確認する方法を示しています。
gs.info("Does the incident table exist? " + gs.tableExists("incident"));
gs.info("Does the foo table exist? " + gs.tableExists("foo"));
出力
Does the incident table exist? true
Does the foo table exist? false
スコープ対象と同等のもの
スコープ対象のアプリケーションで tableExists() メソッドを使用するには、対応するスコープ対象のメソッドである tableExists() を使用します。
GlideSystem - userID()
このセッションに関連付けられたユーザーのsys_idを返します。代わりに getUserID() を使用してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在のユーザーのSys_id。 |
次の例は、現在のユーザーに割り当てられているすべてのアクティブなインシデントレコードのアサインを解除する方法を示しています。
var incidentGR = new GlideRecord('incident');
incidentGR.addActiveQuery();
// Filter results to incidents assigned to the current user
var currentUserSysId = gs.userID();
incidentGR.addQuery('assigned_to', currentUserSysId);
incidentGR.query();
while (incidentGR.next()) {
incidentGR.setValue('assigned_to', 'NULL');
incidentGR.update();
gs.info(
'Unassigned Incident: {0}: {1}',
incidentGR.number.toString(),
incidentGR.short_description.toString()
);
}
出力:
Unassigned Incident: INC0000057: Performance problems with wifi
Unassigned Incident: INC0009001: Unable to post content on a Wiki page
Unassigned Incident: INC0008111: ATF : Test1
GlideSystem - workflowFlush(オブジェクト glideRecord)
指定された GlideRecord のスケジュール (sys_trigger) テーブルで開いているスケジュール済みジョブレコードを削除します。
| 名前 | タイプ | 説明 |
|---|---|---|
| glideRecord | オブジェクト | The GlideRecord |
| タイプ | 説明 |
|---|---|
| なし |
GlideSystem - yearsAgo(年数)
特定の年数前の日付と時刻を取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 年 | 番号 | 整数の年数 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された年数前の GMT (yyyy-mm-dd hh:mm:ss 形式)。 |
スコープ対象と同等のもの
スコープ対象のアプリケーションで yearsAgo(Number years) メソッドを使用するには、対応するスコープ対象のメソッド yearsAgo(Number years) を使用します。
GlideSystem - yesterday()
昨日の時刻 (24 時間前) を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 24 時間前の GMT (yyyy-mm-dd hh:mm:ss 形式) |
スコープ対象と同等のもの
スコープ対象のアプリケーションで yesterday() メソッドを使用するには、対応するスコープ対象のメソッド yesterday() を使用します。