グローバルオブジェクトとは
- ServiceNowのグローバルオブジェクトは、ServiceNowのスクリプティング(特にサーバーサイドスクリプティング)でよく使われる組み込みオブジェクトである
- これらのオブジェクトを使用することで、データの取得や操作、ログの記録、エラー処理などを効率的に行える
主要なグローバルオブジェクト
1. gs (GlideSystem)
gs オブジェクトは、ログの記録、システム情報の取得、ユーザー情報の取得などに使用される
主なメソッド
-
gs.log(message, source)- ログを記録 -
gs.info(message)-infoレベルのログを記録 -
gs.warn(message)-warnレベルのログを記録 -
gs.error(message)-errorレベルのログを記録 -
gs.getUser()- 現在のユーザー情報を取得 -
gs.getProperty(propertyName, defaultValue)- システムプロパティの値を取得 -
gs.nowDateTime()- 現在の日時を取得
例:
gs.info("このメッセージはログに記録されます");
gs.log("カスタムメッセージ", "CustomScript");
2. current
current オブジェクトは、現在処理中のレコードを指す
ビジネスルールやスクリプトインクルード、ワークフローなどで使用される
主なプロパティ
-
current.field_name- 指定したフィールドの値を取得または設定 -
current.update()- レコードを更新 -
current.insert()- レコードを新規作成 -
current.deleteRecord()- レコードを削除
例:
current.short_description = "新しい説明";
current.update();
3. previous
previous オブジェクトは、レコードが変更される前の値を保持する
特にビジネスルール(Before Update, After Update) でよく使われる
例:
if (current.priority != previous.priority) {
gs.info("優先度が変更されました: " + previous.priority + " → " + current.priority);
}
4. g_user (GlideUser)
g_user は、現在のユーザーの情報を取得するために使う
これはクライアントスクリプト(Client Script) で使用される
主なメソッド
-
g_user.hasRole("admin")- ユーザーが特定のロールを持っているか確認 -
g_user.userID- ユーザーのsys_idを取得 -
g_user.userName- ユーザー名を取得
例:
if (g_user.hasRole("admin")) {
alert("あなたは管理者です!");
}
5. g_form (GlideForm)
g_form は、フォーム内のフィールドを操作するために使用する
クライアントスクリプトでよく使われる
主なメソッド
-
g_form.getValue("field_name")- フィールドの値を取得 -
g_form.setValue("field_name", "new_value")- フィールドの値を設定 -
g_form.setReadOnly("field_name", true)- フィールドを読み取り専用にする -
g_form.setMandatory("field_name", true)- 必須フィールドにする
例:
if (g_user.hasRole("itil")) {
g_form.setReadOnly("priority", true);
}
6. g_scratchpad
g_scratchpad は、サーバースクリプトからクライアントスクリプトへデータを渡すための一時オブジェクトである
例:
(サーバースクリプト - ビジネスルール)
g_scratchpad.isAdmin = gs.getUser().hasRole("admin");
(クライアントスクリプト)
if (g_scratchpad.isAdmin) {
alert("管理者としてログインしています。");
}
7. g_request と g_response
これらは、Service PortalやREST APIの処理で使用される
-
g_request.getParameter("param_name")- URLパラメータの値を取得 -
g_response.setStatus(200)- HTTPレスポンスのステータスを設定
例:
var userId = g_request.getParameter("sys_id");
g_response.setStatus(200);
まとめ
| オブジェクト名 | 用途 |
|---|---|
gs |
ログ記録、ユーザー情報、システム情報取得 |
current |
現在処理中のレコード |
previous |
変更前のレコード情報 |
g_user |
クライアントスクリプトでのユーザー情報取得 |
g_form |
クライアントスクリプトでのフォーム操作 |
g_scratchpad |
サーバー → クライアントのデータ受け渡し |
g_request |
リクエスト情報の取得 |
g_response |
HTTPレスポンスの操作 |