GlideSystem - グローバル
サーバー側の JavaScript で変数名 gs で参照される GlideSystem API は、システムや現在ログインしているユーザー、日付/時刻などの情報を取得するための多数の便利なメソッドを提供しています。
GlideSystem メソッドの多くは、日付をクエリ範囲に簡単に含めることができ、フィルターとレポートで最もよく使用されます。
GlideSystem - addErrorMessage(オブジェクト message)
現在のセッションのエラーメッセージを追加します。
getErrorMessages() を使用して、現在表示されているエラーメッセージのリストを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| message | オブジェクト | 追加するメッセージ。 |
| タイプ | 説明 |
|---|---|
| なし |
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 - addErrorMessage(オブジェクト message)
現在のセッションの情報メッセージを追加します。
getInfoMessages() を使用して、表示されている情報メッセージのリストを取得します。このメソッドは、非同期ビジネスルールではサポートされていないため、変換スクリプト内では使用できません。
| 名前 | タイプ | 説明 |
|---|---|---|
| message | オブジェクト | 追加するメッセージ。 |
| タイプ | 説明 |
|---|---|
| なし |
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(文字列 type, オブジェクト message)
現在のセッションのメッセージを追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| type | 文字列 | error や info などのメッセージのタイプ。 |
| message | オブジェクト | 現在のセッションに追加するメッセージ。 |
| タイプ | 説明 |
|---|---|
| なし |
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 で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 先週の初めの GMT。 形式:yyyy-mm-dd hh:mm:ss |
この例では、現在の Glide 日付/時刻レコードの値を先週の初めに設定します。
var gdt2 = new GlideDateTime(dt);
gdt2.setValue(gs.beginningOfLastWeek());
スコープ対応
スコープ対象のアプリケーションで beginningOfLastWeek() メソッドを使用するには、対応するスコープ対象のメソッド beginningOfLastWeek() を使用します。
GlideSystem - beginningOfNextWeek()
来週の初めの日時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 来週の初めの GMT。 形式:yyyy-mm-dd hh:mm:ss |
この例では、現在の Glide 日付/時刻レコードの値を来週の初めに設定します。
var gdt2 = new GlideDateTime(dt);
gdt2.setValue(gs.beginningOfNextWeek());
スコープ対応
スコープ対象のアプリケーションで beginningOfNextWeek() メソッドを使用するには、対応するスコープ対象のメソッド beginningOfNextWeek() を使用します。
GlideSystem - beginningOfNextMonth()
来月の初めの日時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 来月の初めの 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) を取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 明日の初めの GMT。 形式: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 | ブーリアン | 返される時間値の形式を示すフラグ。 有効な値:
|
| タイプ | 説明 |
|---|---|
| 文字列 | 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(文字列 startDate, 文字列 endDate, ブーリアン numericValue)
2 つの日付の差を計算します。
このメソッドは、最初のパラメーターとして早い方の日付、2 番目のパラメーターとして遅い方の日付を想定しています。それ以外の場合、このメソッドはこの差を負の値として返します。getDisplayValue() を使用して文字列を想定される形式に変換します。
このメソッドは、ユーザー/システムの日付形式でパラメーターを想定しています。これは内部形式とは異なる場合があります。ユーザー/システムの日付形式以外の形式でパラメーターを使用すると、無効な結果が返される場合があります。
GlideDateTime オブジェクトを使用する場合は、dateDiff() の代わりに GlideDateTime subtract() メソッドを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| startDate | 文字列 | 現在のユーザーの日付形式で比較する開始日。 |
| endDate | 文字列 | 現在のユーザーの日付形式で比較する終了日。 |
| numericValue | ブーリアン | 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(文字列 date, 文字列 range)
指定された日付の日時を GMT で生成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| date | 文字列 | GMT で生成する日付。 形式:yyyy-mm-dd |
| range | 文字列 | start、end、または time。 形式:24 時間 hh:mm:ss |
| タイプ | 説明 |
|---|---|
| 文字列 | 生成された日時。 range が 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)
特定の日数前の日時を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 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(数値 days)
指定された日数前の 1 日の終わりの日時を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| days | 数値 | 整数の日数 |
| タイプ | 説明 |
|---|---|
| 文字列 | 1 日の終わりの GMT (形式 yyyy-mm-dd hh:mm:ss)。 |
この例では、インシデントテーブルのレコードをクエリするときに 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(数値 days)
指定された日数前の 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(数値 days)
指定された日数前の 1 日の始まりの日時を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| days | 文字列 | 整数の日数 |
| タイプ | 説明 |
|---|---|
| 文字列 | 1 日の始まりの GMT (形式 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 - endOfLastWeek()
先週の終わりの日時を GMT で返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 先週の終わりの 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() を使用して、先週のすべての訪問者を取得する方法を示しています。
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 (文字列 name, オブジェクト glideRecord, 文字列 parm1, 文字列 parm2, 文字列 queue)
イベントマネージャーのイベントをキューに格納します。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | キューに格納されているイベントの名前。 |
| glideRecord | オブジェクト | GlideRecord オブジェクト (「current」など)。 |
| parm1 | 文字列 | (オプション) 指定されている場合はインスタンスとともに保存されます。 |
| parm2 | 文字列 | (オプション) 指定されている場合はインスタンスとともに保存されます。 |
| queue | 文字列 | キューの名前。 |
| タイプ | 説明 |
|---|---|
| なし |
if (current.operation() != 'insert' && current.comments.changes()) {
gs.eventQueue("incident.commented", current, gs.getUserID(), gs.getUserName());
}
スコープ対応
スコープ対象のアプリケーションで eventQueue() メソッドを使用するには、対応するスコープ対象のメソッド eventQueue() を使用します。
GlideSystem - eventQueueScheduled(文字列 name, オブジェクト glideRecord, 文字列 parm1, 文字列 parm2, オブジェクト expiration)
指定された日時にイベントマネージャーのイベントをキューに格納します。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | キューに格納されているイベントの名前。 |
| glideRecord | オブジェクト | GlideRecord オブジェクト (「current」など)。 |
| parm1 | 文字列 | (オプション) 指定されている場合はインスタンスとともに保存されます。 |
| parm2 | 文字列 | (オプション) 指定されている場合はインスタンスとともに保存されます。 |
| expiration | オブジェクト | このイベントを処理する日時。 |
| タイプ | 説明 |
|---|---|
| なし |
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(文字列 tableName, 文字列 recordID, 文字列 fieldName)
指定されたレコードの指定されたフィールドの表示値を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| tableName | 文字列 | テーブルの名前。 |
| recordID | 文字列 | レコードの sys_id。 |
| fieldName | 文字列 | 表示値を返すフィールドの名前。 |
| タイプ | 説明 |
|---|---|
| 文字列 | フィールドの表示値。 |
この例は、getDisplayValueFor() を使用して number フィールドの表示値を返す方法を示しています。
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(文字列 key, オブジェクト substituteObject)
プロパティを取得し、XML 解析のためにエスケープします。
| 名前 | タイプ | 説明 |
|---|---|---|
| key | 文字列 | 値を返す必要があるプロパティのキー。 |
| substituteObject | オブジェクト | オプション。プロパティが見つからない場合に返されるオブジェクト。 |
| タイプ | 説明 |
|---|---|
| 文字列 | プロパティ。プロパティが見つからない場合は 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 を返します。
メッセージテーブルの詳細については、「 メッセージテーブル」を参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| messageID | 文字列 | メッセージ識別子。この値は、メッセージ [sys_ui_message] テーブルの [Key] フィールドにあります。[Key] フィールドは、実際のメッセージ文字列とまったく同じように見えることに注意してください。 |
| args | オブジェクト | オプション。指定されたメッセージ内の変数を置き換える、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, オブジェクト args)
UI に表示する翻訳されたメッセージを取得し、すべてのチェックマーク (') をエスケープします。
指定されたメッセージ識別子 (キー) が現在の言語のメッセージ [sys_ui_message] テーブルに存在する場合、メソッドは翻訳されたメッセージを返します。指定されたメッセージ識別子が現在の言語に存在しない場合、メソッドは英語版のメッセージを返します。メッセージ識別子がテーブルに存在しない場合は、メッセージ ID を返します。
メッセージテーブルの詳細については、「 メッセージテーブル」を参照してください。
Jelly から JavaScript 式に挿入する場合に便利です。
| 名前 | タイプ | 説明 |
|---|---|---|
| MessageID | 文字列 | メッセージ識別子。この値は、メッセージ [sys_ui_message] テーブルの [Key] フィールドにあります。[Key] フィールドは、実際のメッセージ文字列とまったく同じように見えることに注意してください。 |
| args | オブジェクト | オプション。指定されたメッセージ内の変数を置き換える、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(文字列 message, 文字列 language, アレイ args)
指定されたメッセージを指定された言語に翻訳します。
渡されたメッセージに変数を埋め込むこともできます。このメソッドは、これらの変数をアレイで渡された値で解決します args 。
| 名前 | タイプ | 説明 |
|---|---|---|
| message | 文字列 | 翻訳するメッセージ。 |
| language | 文字列 | メッセージを翻訳する言語。 形式:BCP 47 標準 |
| args | アレイ | オプション。指定されたメッセージ内の変数を置き換える、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 - getNodeValue(オブジェクト obj, 数値 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 - getNodeName(オブジェクト obj, 数値 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(文字列 key, オブジェクト default)
指定されたユーザー初期設定を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| key | 文字列 | 設定のキー。 |
| default | オブジェクト | 指定された設定が見つからない場合に使用するデフォルト値。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 設定値。設定がない場合は、指定されたデフォルト値を返します。 |
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(文字列 key, オブジェクト alt)
Glide プロパティの値を返します。プロパティが見つからない場合は、指定された alt 値を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| key | 文字列 | 値を返す必要があるプロパティのキー。 |
| 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(文字列 script)
指定されたスクリプトで見つかったスクリプトエラーを返します (存在する場合)。
| 名前 | タイプ | 説明 |
|---|---|---|
| スクリプト | 文字列 | エラーをチェックするスクリプト。 |
| タイプ | 説明 |
|---|---|
| 文字列 | エラーメッセージ。エラーがない場合は 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(文字列 tableName, 文字列 fieldName, 文字列 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()
現在のユーザーの [名前] フィールドを返します。たとえば、API は jsmith の代わりに John Smith を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | ユーザーの表示名。これはシステム管理者にすることもできます。 |
次の例は、現在のユーザーの表示名を取得する方法を示しています。
var user = gs.getUserDisplayName();
gs.print ("The current user display name is: " + user);
The current user display name is: abel.tuterスコープ対応
スコープ対象のアプリケーションで 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()
現在のユーザーの名前 (jsmith など) を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在のユーザーのユーザー名。 |
次の例は、現在のユーザーの表示名オブジェクトを取得する方法を示しています。
var user = gs.getUserName();
gs.print ("The current user name is: " + user);
var impUser = new GlideImpersonate();
impUser.impersonate("62826bf03710200044e0bfc8bcbe5df1");
var user = gs.getUserName();
gs.print ("The impersonated user name is: " + user);
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 つ持っているかどうかを示すフラグ。 可能な値:
|
次の例は、現在のユーザーが admin または 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(オブジェクト roleName, オブジェクト group)
現在のユーザーが指定されたグループ内で指定されたロールを持っているかどうかを判断します。
| 名前 | タイプ | 説明 |
|---|---|---|
| roleName | オブジェクト | ロールの名前。 |
| group | オブジェクト | 指定されたロールを確認するグループの 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 - hoursAgo(数値 hours)
指定された時間数前の日時を返します。戻り値は、インスタンスのタイムゾーンに合わせて調整されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| hours | 数値 | 遡る時間数。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された時間数前の 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)
指定された時間数前の時間の終わりの日時を返します。戻り値は、インスタンスのタイムゾーンに合わせて調整されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| hours | 数値 (整数) | 遡る時間数。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された時間数前の終わりの 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)
指定された時間数前の時間の始まりの日時を返します。戻り値は、インスタンスのタイムゾーンに合わせて調整されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| 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)
指定された日付オブジェクトの日付が月の初日かどうかを確認します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 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(オブジェクト date)
指定された日付オブジェクトの日付が週の初日かどうかを確認します。この方法では、週の初日を月曜日とする 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)
指定された日付オブジェクトの日付が年の初日かどうかを確認します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 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)
指定された日付オブジェクトの日付が月の最終日かどうかを確認します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 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(オブジェクト date)
指定された日付オブジェクトの日付が週の最終日かどうかを確認します。この方法では、週の最終日を日曜日とする 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)
指定された日付オブジェクトの日付が年の最終日かどうかを確認します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 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(文字列 message, 文字列 source)
メッセージをシステムログに記録し、syslog テーブルに保存します。
| 名前 | タイプ | 説明 |
|---|---|---|
| message | 文字列 | 記録するメッセージ。 |
| source | 文字列 | オプション。メッセージのソース。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、定数と変数を使用してログエントリを投稿する方法を示しています。
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(文字列 message, 文字列 source)
エラーをシステムログに記録し、syslog テーブルに保存します。
| 名前 | タイプ | 説明 |
|---|---|---|
| message | 文字列 | 記録するエラーメッセージ。 |
| source | 文字列 | オプション。メッセージのソース。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例では、インシデントテーブルが見つからない場合にエラーをログに記録します。
var gr_NOW = new GlideRecord("incident");
if (!gr_NOW.isValid()) {
gs.logError('Incident table could not be found');
return;
}
GlideSystem - logWarning(文字列 message, 文字列 source)
警告をシステムログに記録し、syslog テーブルに保存します。
| 名前 | タイプ | 説明 |
|---|---|---|
| message | 文字列 | 記録するメッセージ。 |
| source | 文字列 | オプション。メッセージのソース。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例では、インシデントテーブルが見つからない場合に警告をログに記録します。
var gr_NOW = new GlideRecord("incident");
if (!gr_NOW.isValid()) {
gs.logWarning('Incident table could not be found');
return;
}
GlideSystem - minutesAgo(数値 minutes)
指定された分数前の日時を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| minutes | 数値 | 返す過去の分数。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された分数前の 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(数値 minutes)
特定の分数前の分の終わりの日時を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| minutes | 数値 | 遡る整数の分数 (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(数値 minutes)
特定の分数前の分の始まりの日時を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| minutes | 数値 | 遡る整数の分数 (15 や 112 など)。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された分数前の 1 分間の最初の 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(数値 months)
特定の月数前の日時を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| months | 数値 | 遡る整数の月数。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された月数前のまったく同じ時刻の 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(数値 months)
特定の月数前の月の最終日の日時を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| months | 数値 | 整数の月数 (4 や 16 など)。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された月数前の月の終わりの GMT。 形式: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-09-01 06:59:59
GlideSystem - monthsAgoStart(数値 months)
特定の月数前の月の始まりの日時を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| months | 数値 | 遡る整数の月数 (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(オブジェクト obj)
オブジェクトをクエリし、オブジェクトが 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 メソッドを使用して、date-time の計算、date-time の書式設定、date-time 形式間の変換などの date-time の操作を実行できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | GMT 形式で現在の日時を使用する GlideDateTime オブジェクト。 |
フィールド [u_target_date] を GMT 形式の現在の日時に設定します。
current.u_target_date = gs.nowGlideDateTime();
GlideSystem - print(文字列 message)
メッセージをシステムログに書き込みます。
このメソッドでは、デバッグがアクティブ化されていない限り、syslog テーブルにメッセージは書き込まれません。
| 名前 | タイプ | 説明 |
|---|---|---|
| message | 文字列 | 記録するメッセージ |
| タイプ | 説明 |
|---|---|
| なし |
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(数値 quarters)
特定の四半期数前の日時を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| quarters | 数値 | 遡る整数の四半期数。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された四半期数前の四半期の 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(数値 quarters)
指定された四半期数前の四半期最終日の日時を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| quarters | 数値 | 整数の四半期数 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された四半期数前の四半期の終わりの GMT (形式 yyyy-mm-dd hh:mm:ss) |
スコープ対応
スコープ対象のアプリケーションで quartersAgoEnd() メソッドを使用するには、対応するスコープ対象のメソッド quartersAgoEnd() を使用します。
GlideSystem - quartersAgoStart(数値 quarters)
指定された四半期数前の四半期の初日の日時を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| quarters | 数値 | 整数の四半期数 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された四半期数前の月の終わりの GMT (形式 yyyy-mm-dd hh:mm:ss) |
スコープ対応
スコープ対象のアプリケーションで quartersAgoStart() メソッドを使用するには、対応するスコープ対象のメソッド quartersAgoStart() を使用します。
GlideSystem - setProperty(文字列 key, 文字列 value, 文字列 description)
指定されたキーを指定された値に設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| key | 文字列 | 設定するプロパティのキー。 |
| value | 文字列 | 設定するプロパティの値。 |
| description | 文字列 | プロパティの説明。 |
| タイプ | 説明 |
|---|---|
| なし |
gs.setProperty("glide.foo","bar","foo");
gs.info(gs.getProperty("glide.foo"));
出力:bar
スコープ対応
スコープ対象のアプリケーションで setProperty() メソッドを使用するには、対応するスコープ対象のメソッド setProperty() を使用します。
GlideSystem - setRedirect(オブジェクト URI)
このトランザクションのリダイレクト 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 | オブジェクト | GlideRecord |
| タイプ | 説明 |
|---|---|
| なし |
GlideSystem - yearsAgo(数値 years)
特定の年数前の日時を取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| years | 数値 | 整数の年数 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定された年数前の年の始まりの GMT (形式 yyyy-mm-dd hh:mm:ss) |
スコープ対応
スコープ対象のアプリケーションで yearsAgo(数値 years)メソッドを使用するには、対応するスコープ対象のメソッド yearsAgo(数値 years) を使用します。
GlideSystem - yesterday()
昨日の時刻 (24 時間前) を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 24 時間前の GMT (形式 yyyy-mm-dd hh:mm:ss) |
スコープ対応
スコープ対象のアプリケーションで yesterday() メソッドを使用するには、対応するスコープ対象のメソッド yesterday() を使用します。