Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

ユーザー基準を変更したとき、変更後のユーザー基準が反映されないことがある

Kazuo Iizuka
Tera Contributor

レコードプロデューサーの利用可能の欄に

ユーザー基準が何も設定されていない状態(誰でも参照できる状態)から
レコードプロデューサーの利用可能の欄に

ユーザー基準を設定し、特定のユーザーのみ参照できるように変更しました。

 

この変更の確認作業として、設定したユーザー基準に該当しないユーザーAとして、代理操作したところ、
参照できなくなっているはずですが、参照できてしまいました。
(同時に別のカタログアイテムも同様に利用可能の欄を変更をしていましたが、こちらは問題無くユーザー基準が反映されていました)

 

この現象はブラウザに起因するものか、インスタンスに起因するものか、
情報がございましたら、ご提供いただけますでしょうか。
よろしくお願いいたします。


【確認作業の詳細】
確認作業は4人で各自のPCで、ユーザーAとして代理操作で実施し、下記のような結果でした。

 

<確認作業者1、2>
①ユーザー基準が反映されない。
②ブラウザのキャッシュをクリアした。
 →ユーザー基準が反映された

 

<確認作業者3、4>
①ユーザー基準が反映されない。
②ブラウザのキャッシュをクリアせず、ServiceNowに下記※システムプロパティを追加した。
 →ユーザー基準が反映されない。
③3日程度経過した後、確認した。(ブラウザのキャッシュはクリアしていない)
 →ユーザー基準が反映されていた。

 

※システムプロパティ
下記システムプロパティを新規作成して、値をtrueに設定する。
glide.cache.disabled.scripted_user_criteria_cache
glide.cache.disabled.criteria_cache

2件の返信2

iwai
Giga Sage

類似の事象がNowSupportにありました。その情報を元に文章をChatGPTに作ってもらいました。

 

NowSupportの情報

カタログ アイテムのユーザー基準がサービス ポータルから一度だけ評価される - サポートとトラブルシューティング (servicenow.com)

ユーザー基準キャッシュの仕組みについての説明

  1. 2つのキャッシュ: ユーザー基準とその使用状況に関する2つのキャッシュがあります。
  2. ユーザー基準の使用場所: ユーザー基準は、カタログアイテムやナレッジベース、ポータルなど、どこで使用されるかを認識していません。
  3. ユーザー基準の定義: ユーザー基準は、ユーザーのグループを表しています。
  4. ユーザー基準キャッシュ: どのユーザーがどのユーザー基準にアクセスできるかをキャッシュします。
  5. USER_ITEMS_CACHE: 特定のユーザーがどのアイテムにアクセスできるかをキャッシュする別のキャッシュがあります。
  6. 初回アクセス時のキャッシュ: ユーザーがカタログアイテムを初めて開くときに、このキャッシュが生成され、キャッシュが変更されない限り、その結果が継続して使用されます。
  7. キャッシュが空の場合: このキャッシュが空の場合、ユーザー基準キャッシュに移行し、ユーザーのアクティブな基準を取得し、アイテムの表示可能性を検証して、その結果をUSER_ITEMS_CACHEにキャッシュします。
  8. スクリプトによる変動結果: ユーザー基準は、スクリプトによる変動結果を想定して設計されていません。
  9. 設計の前提: リソースへのアクセスは時間とともに変わらないと仮定されています。
  10. アクセスのキャッシュ: ユーザーはアクセスできるかどうかの結果がキャッシュされ、パフォーマンス向上のために使用されます。

 

ChatGPTの回答

お世話になっております。

ご質問の「この現象はブラウザに起因するものか、インスタンスに起因するものか」について、以下の通り回答いたします。

現象の分析

  1. ブラウザに起因する可能性:
    • キャッシュの影響: 確認作業者12がブラウザのキャッシュをクリアすることでユーザー基準が反映されたことから、ブラウザのキャッシュが影響していた可能性があります。
    • ブラウザのキャッシュの仕組み: ブラウザはリソースを効率的に表示するためにキャッシュを利用しますが、このキャッシュが最新の変更を反映しないことがあります。
  2. インスタンスに起因する可能性:
    • キャッシュの無効化設定: システムプロパティ glide.cache.disabled.scripted_user_criteria_cache および glide.cache.disabled.criteria_cache を設定してキャッシュを無効化しましたが、確認作業者34の結果から即時反映されないことが確認されました。
    • キャッシュのリフレッシュ: ServiceNowのキャッシュは定期的にリフレッシュされますが、そのタイミングにより変更が遅延することがあります。
    • システム全体のキャッシュ: ユーザー基準のキャッシュとユーザーがアクセスできるアイテムのキャッシュ(USER_ITEMS_CACHE)が影響することがあります。

結論

  1. ブラウザに起因する可能性:
    • ブラウザのキャッシュが最新の設定を反映しないため、ユーザー基準が即時反映されないことがあります。この場合、ブラウザのキャッシュをクリアすることで解決することが多いです。
  2. インスタンスに起因する可能性:
    • システムプロパティの設定によりキャッシュを無効化しても、ServiceNowのキャッシュが即時にリフレッシュされない場合があります。このため、インスタンスのキャッシュリフレッシュのタイミングに依存することがあります。

推奨事項

  1. ブラウザのキャッシュクリア:
    • ブラウザのキャッシュを定期的にクリアすることで、最新の設定が反映されやすくなります。
    • 確認作業を行う際には、常にブラウザのキャッシュをクリアすることをお勧めします。
  2. ServiceNowのキャッシュクリア:
    • ServiceNowの管理者としてログインし、「キャッシュクリア(cache.do)」を実行することで、インスタンスのキャッシュをリフレッシュすることが推奨されます。再起動が行えない場合でも、キャッシュクリアの実行で設定の反映が確認できる場合があります。

ご不明点がございましたら、再度お問い合わせください。

よろしくお願いいたします。

 

Kazuo Iizuka
Tera Contributor

iwai様

情報のご提供ありがとうございます。