- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
05-12-2022 10:50 PM
// ヘッダーメニューのドロップダウンに30件まで表示
var max = 30;
var t = data;
data.count = 0;
var items = data.items = [];
var user = gs.getUser().getID();//ユーザ情報取得
// items.record_watchersを使用して、ドロップダウン カウントを更新するタイミングをヘッダーに指示
items.record_watchers = [];
items.record_watchers.push({'table':'sn_hr_core_task','filter':'assigned_to=' + user.toString() + 'state=10^EQ' });//アサイン先が自分かつステータスが準備完了
var gr = new GlideRecord('sn_hr_core_task');//人事タスクテーブル
gr.addQuery("assigned to", user);//アサイン先が自分
gr.addQuery("state", "10");//ステータスが準備完了
gr.orderByDesc('sys_updated_on');//更新順
gr.setLimit(max);
gr.query();
//プルダウン表示タイトルの指定
while (gr.next()) {
var a = {};
var title = gr.short_description.toString();//タイトルに概要説明を指定
addCI(title, gr.sys_id);
}
//リンク先の指定
function addCI(title, query) {
data.count++;
var link = {};
link.title = title;
link.type = 'link';
link.href='?id=hrm_todos_page'; //タスクページを開く
items.push(link);
}
//short_description概要説明
現在、上記のスクリプトを使用して、ポータル画面のヘッダーに、自分のタスクの通知を表示し、タスクの管理を行おうとしています。
ですが現状、自分以外のユーザーのタスクも表示されてしまいます。
自分のタスクのみを表示するには、どうしたら良いでしょうか。
ご教授頂けると幸いです。
解決済! 解決策の投稿を見る。

- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
05-15-2022 12:54 AM
aさん、
試していませんが次のようにスクリプトを修正しました。
(function(data) {
// ヘッダーメニューのドロップダウンに30件まで表示
var max = 30;
var user = gs.getUserID(); //ユーザ情報取得
var grInfo = {
'table': 'sn_hr_core_task',
'filter': 'assigned_to=' + user.toString() + 'state=10^EQ'
}; //アサイン先が自分かつステータスが準備完了
var gr = new GlideRecord('sn_hr_core_task'); //人事タスクテーブル
gr.addQuery("assigned to", user); //アサイン先が自分
gr.addQuery("state", "10"); //ステータスが準備完了
gr.orderByDesc('sys_updated_on'); //更新順
gr.setLimit(max);
gr.query();
//プルダウン表示タイトルの指定
var items = [];
while (gr.next()) {
var title = gr.short_description.toString(); //タイトルに概要説明を指定
items.push({
title: title,
type: 'link',
href: '?id=hrm_todos_page' //タスクページを開く
});
}
data.record_watchers = [grInfo];
data.omitBadge = false;
data.items = items;
data.count = items.length;
})(data);

- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
05-15-2022 12:54 AM
aさん、
試していませんが次のようにスクリプトを修正しました。
(function(data) {
// ヘッダーメニューのドロップダウンに30件まで表示
var max = 30;
var user = gs.getUserID(); //ユーザ情報取得
var grInfo = {
'table': 'sn_hr_core_task',
'filter': 'assigned_to=' + user.toString() + 'state=10^EQ'
}; //アサイン先が自分かつステータスが準備完了
var gr = new GlideRecord('sn_hr_core_task'); //人事タスクテーブル
gr.addQuery("assigned to", user); //アサイン先が自分
gr.addQuery("state", "10"); //ステータスが準備完了
gr.orderByDesc('sys_updated_on'); //更新順
gr.setLimit(max);
gr.query();
//プルダウン表示タイトルの指定
var items = [];
while (gr.next()) {
var title = gr.short_description.toString(); //タイトルに概要説明を指定
items.push({
title: title,
type: 'link',
href: '?id=hrm_todos_page' //タスクページを開く
});
}
data.record_watchers = [grInfo];
data.omitBadge = false;
data.items = items;
data.count = items.length;
})(data);
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
05-15-2022 05:34 PM
ご回答ありがとうございます。
こちらのスクリプトで検証させて頂いたところ、ユーザーロール「admin」を持っていないユーザーは、自分のタスクのみの表示が可能だったのですが、ユーザーロール「admin」を持っているユーザーは、他のユーザーのタスクも表示されてしまいます。
これはスクリプト以外の設定などに、原因があるのでしょうか?

- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
05-15-2022 06:39 PM
スクリプト-バックグラウンドからスクリプトを実行してみてください。
var user = gs.getUserID();
var gr = new GlideRecord('sn_hr_core_task'); //人事タスクテーブル
gr.addQuery("assigned_to", user); //アサイン先が自分
gr.addQuery("state", "10"); //ステータスが準備完了
gr.orderByDesc('sys_updated_on'); //更新順
gr.setLimit(max);
gr.query();
//プルダウン表示タイトルの指定
var items = [];
while (gr.next()) {
var title = gr.short_description.toString(); //タイトルに概要説明を指定
gs.info('number:' + gr.getValue('number') + ' description:' + gr.getValue('short_description') + ' user:' + gr.assigned_to.user_name);
}
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
05-15-2022 07:26 PM
バックグラウンドで実行したところ、正常にユーザー情報を取得できていました。
有難う御座います。