パラメータで指定しているビューと異なるビューに遷移する

miyu
Tera Guru

Database view[u_facility_hyouji_for_application]のRequest task[request_task]ビューリスト画面に遷移するContent Itemを作成しました。
URLのパラメータ[syparm_view]でビューを指定しています。
ですが、URLは正しいにも関わらずSelf Use Training[self_use_training]ビューに遷移しているユーザがいることが判明しました。

以下、トランザクションログです。

NG log.png

 

ほとんどのユーザは以下の通り、正常にRequest task[request_task]ビューに遷移しています。

OK log.png

 


また、ビューのレコードは以下の通り正しく登録されています。

sys_ui_view.png

 

なぜこのような現象が起こっているのでしょうか?

原因をご存知の方がいらっしゃいましたら、ご教示いただきたいです。

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

3件の返信3

iwai
Giga Sage

ユーザーが自分でビューを選択したのではないかと推測しました。Viewの動きについて以下のページに記載があります。

ビュー管理 (servicenow.com)

この説明を引用して、ふたつの疑問にChatGPTに回答してもらいました。

  • 疑問1:ユーザーが選択したビューとURLで指定したビューはどちらが優先されるのか。
    • 答え:通常の状況では、ユーザーが選択し保存したビューが優先されます。つまり、ユーザーが一度ビューを選択すると、それがユーザーのデフォルトのビューとなり、その後URLで異なるビューを指定しても、ユーザーが選択したビューでフォームが開きます。
  • 疑問2:URLのビューを強制したい場合はどうしたらよいのか。
    • 答え:URLのビューを強制するためには、sysparm_view_forcedパラメータをtrueに設定します。これにより、ユーザーの保存済みのビュー設定を無視して、URLで指定したビューが表示されます。
==説明ページから引用==
ユーザーがビューを切り替えると、選択したビューはユーザーの設定として保存され、フォームを開いたときにデフォルトで同じビューが表示されます。ユーザーがビューを設定して保存している場合、別のビューを指定したURLでレコードを開くと、ユーザー設定のビューでフォームが表示され、URLの指定は無視されます。例えば、ユーザーがインシデントレコードでモバイルビューを選択し、次にビジュアルタスクボードビューを指定した以下のリンクを開こうとしても、フォームは引き続きモバイルビューで開きます。

https://{instance}/nav_to.do?uri=incident.do?sys_id={sys_ID}sysparm_view=vtb

sysparm_viewパラメータは、リストまたはフォームで使用するビューを指定しますが、ユーザーのビューに対する保存済みの設定によって上書きすることができます。この振る舞いを上書きするには、sysparm_view_forcedパラメータをtrueに設定します。

 

ご返信ありがとうございます。大変助かります。

ユーザーが自分でビューを選択したのではないかと推測しました。

こちら、ユーザにヒアリングしたところビューは変更していないみたいでした、、

ちなみに、adminユーザで対象のDtabase viewでTry Itしたところ、

DefaultビューでなくSelf Use Trainigビュー(URLで指定していないのに表示されていたビュー)になっていたのですが、

こちらの設定も関係しているのかご存知でしょうか?

 

sysparm_view_forcedというパラメータがあるのですね、知りませんでした、、

ユーザにビューは選択させない仕様としているので、こちらをパラメータに追加するようにしてみます!

 

誰かが意図せず何かしてビューが設定されている可能性があります。ユーザー設定がされているかどうかを確認してみてください。

ユーザーが手動で設定した値は、User Preferences[sys_user_preference]に保存されています。
u_facility_hyouji_for_application Tableなら 「u_facility_hyouji_for_application.view」「u_facility_hyouji_for_application_list.view」このようなNameで、どのユーザーが選択しているか把握できます。またSystem設定にしていると全ユーザーのデフォルト値にもなります。


別の機能ではビューの切り替え制御は、ViewRulesの設定によっても自動的に変わります。