グローバルオブジェクトとは
- 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レスポンスの操作 |