LoginSignup
0

More than 1 year has passed since last update.

[ServiceNow]ユーザーをグループで絞り込みたい

Last updated at Posted at 2021-12-23

はじめに

こんにちは!
最近、ServiceNowという物を触り始めたので、普及の為に記事書いてみようと思います。
ちなみに、始めての投稿になりますので、見苦しい点あるかもしれませんが、温かく見守ってください。

実装環境

ServiceNow バージョン:Rome

やりたいこと

サービスカタログでユーザーコンボをグループで絞り込みしたい。
ロールなら下記の画像のように簡単に設定できるが、グループではちょっと工夫が必要っぽいので、実装してみた。
image.png

設定内容

1.まずはスクリプトインクルードを作ります。
※注意:手抜きスクリプトです。いきなりクエリを返すようなクソコードです。実際につくるならメンバーのIDを返す方がいいと思います。
image.png

var GroupUtils = Class.create();
GroupUtils.prototype = {
    initialize: function() {
    },
        getGmemberQuery: function(gname){
            var userIds = [];
            var gr = new GlideRecord('sys_user_grmember');
            gr.addQuery('group.name',gname);
            gr.query();

            while(gr.next()){
                userIds.push(gr.user.toString());
            }
            return 'sys_idIN' + userIds.toString();
        },
    type: 'GroupUtils'
};

 

2.カタログアイテム変数の参照修飾子に先ほど作ったスクリプトを書いてきます。引数には絞り込みたいグループ名を入れます。
これで、sys_id in(メンバー1, メンバー2・・・)みたいなクエリになります。
image.png

javascript:'active=true^'+new GroupUtils().getGmemberQuery('テストグループ')

 

3.動作検証!
「テストグループ」には下記の5名を入れています。
彼らが出れば成功です。
image.png

やったね!たえちゃん!!
image.png

おわりに

今回はカタログアイテムでグループでフィルタリングする方法について記載してみました。
これからも定期的に役に立ちそうなもの書いていけたらと思います!

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