script条件付きACLで落としやすいミス7選|CSA試験で失点しないための実践チェック

ServiceNow

ServiceNowの資格試験、とくにCSAでは「ACLは理解しているつもりだったのに落とした」という声が本当に多いです。
その原因の多くが、**script条件付きACLの“思い込み”や“勘違い”**にあります。

script条件付きACLは、正しく使えば非常に強力です。
一方で、挙動を正確に理解していないと「なぜか見えない」「管理者なのに通らない」といったトラブルを簡単に引き起こします。

この記事では、**CSA試験・実務の両方で頻出する「script条件付きACLで落としやすいミス」**を体系的に整理します。
試験対策としても、実務での事故防止としても役立つ内容です。

script条件付きACLとは?基本構造の再確認

script条件付きACLとは、ACLの条件判定をJavaScriptで柔軟に制御できる仕組みです。
role条件や条件ビルダーだけでは表現できないケースで使われます。

基本構造はとてもシンプルです。

  • ACLの「Script」にチェックを入れる
  • script内で true / false をreturnする
  • true → アクセス許可
  • false → アクセス拒否

ここで重要なのは、script条件は「補助」ではなく「最終判定」になり得るという点です。
この理解が曖昧なまま進むと、以降のミスを連鎖的に引き起こします。

本番形式で慣れるのが合格への近道。UdemyのServiceNow模擬問題集を人気順で一覧比較できます👇

ミス①:scriptのreturn値を意識していない

もっとも多いミスがこれです。

if (current.state == 1) {
    true;
}

一見正しそうですが、returnがありません
この場合、scriptは undefined を返し、結果は false扱い になります。

正しくは以下です。

if (current.state == 1) {
    return true;
}
return false;

CSA試験では
「script条件があるACLが効かない理由は?」
といった形で、return値を理解しているかを問われることがあります。

script条件付きACLでは、return true / false を必ず明示する
これは鉄則です。

ミス②:current と gs.getUser() の使い分けミス

script条件付きACLでは、以下の2つを混同しやすいです。

  • current → 対象レコード
  • gs.getUser() → ログインユーザー

たとえば、
「自分が作成したレコードだけ見せたい」
という場合、正しくはこうなります。

return current.opened_by == gs.getUserID();

しかし試験では、以下のような誤りが選択肢に出やすいです。

return current.opened_by == current.sys_id;

誰と誰を比較しているのか
この視点が抜けると、一気に誤答になります。

script条件付きACLでは、
「今見ているレコード」
「今ログインしているユーザー」
この2つを常に意識してください。

ミス③:Table ACLとField ACLの評価順を誤解している

script条件付きACLが絡むと、評価順の誤解がさらに増えます。

基本ルールは以下です。

  • Table ACL → Field ACL の順で評価される
  • どちらか1つでも false ならアクセス不可

つまり、Field ACLのscriptが正しくても、Table ACLで落ちていれば見えないということです。

試験では
「scriptは正しいのに表示されない理由」
として、Table ACL側の存在が問われるケースがあります。

scriptだけを見て判断するのは危険です。
ACLは“組み合わせ”で評価されることを必ず押さえましょう。

ミス④:role条件とscript条件の関係を混同している

ACLには以下の条件があります。

  • role条件
  • condition(条件ビルダー)
  • script条件

ここで重要なのは、すべてAND条件だという点です。

よくある勘違いがこれです。

scriptでtrueを返しているから、roleが無くても通るはず

これは誤りです。

  • role条件でNG → scriptがtrueでもNG
  • scriptでfalse → roleがOKでもNG

CSA試験では
「script条件はrole条件を上書きできるか?」
といった聞き方をされることがあります。

答えは できない です。

ミス⑤:管理者(admin)なら通ると思い込んでいる

これも非常に多いミスです。

adminロールは強力ですが、script条件の結果までは無視しません

つまり、

  • scriptが false → adminでもアクセス不可
  • scriptが true → adminでもアクセス可

「管理者なのに見えない」という現象は、
script条件が原因であることがほとんどです。

CSA試験では
「adminでも通らないケースはどれか?」
という問題が出やすく、script条件付きACLは典型例です。

ミス⑥:デバッグ方法を知らずに「ACLが効かない」と判断する

実務でも試験でも、ACLの理解にはデバッグ視点が欠かせません。

代表的な確認方法は以下です。

  • ACL Debuggerを使う
  • gs.info()でログ出力を考える
  • Table / Field ACLを分けて考える

試験ではツール操作は出ませんが、
「どこを確認すべきか」という思考プロセスが問われます。

script条件付きACLは
ブラックボックスにしない
これが重要です。

script条件付きACLで失点しないための考え方

script条件付きACLで落としやすいミスは、知識不足というより思い込みが原因です。

特に重要なのは以下です。

  • return true / false を必ず意識する
  • current と ユーザーの区別を明確にする
  • ACLは単体ではなく組み合わせで評価される
  • scriptはroleを上書きしない
  • adminでもscriptは無視できない

CSA試験では、
「なんとなく使っている人」と「仕組みで理解している人」
この差がそのまま点数に出ます。

もしACLやscript条件がまだ曖昧だと感じる場合は、
UdemyのCSA対策講座で、実際の画面と挙動をセットで学ぶのがおすすめです。
文章だけでは掴みにくいACLの評価順やscriptの動きが、かなりクリアになります。

script条件付きACLは、正しく理解すれば得点源になります。
落とし穴を避けて、確実に積み上げていきましょう。

本番形式で慣れるのが合格への近道。UdemyのServiceNow模擬問題集を人気順で一覧比較できます👇

タイトルとURLをコピーしました