0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

グローバルオブジェクトについて【ServiceNow】

Posted at

グローバルオブジェクトとは

  • 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_requestg_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レスポンスの操作
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?