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模擬問題集を人気順で一覧比較できます👇


