ServiceNowのClient ScriptとBusiness Ruleの違い|クライアント側とサーバー側の使い分け

ServiceNowのClient ScriptとBusiness Ruleの違いを示すクライアント側とサーバー側の図解アイキャッチ ServiceNow開発判断

読む前に確認

ServiceNowのClient ScriptとBusiness Ruleの違い|クライアント側とサーバー側の使い分け

  • CADの学習で迷いやすい判断軸を先に整理します。
  • 読んだ後は関連ハブで全体像に戻れます。
  • 理解確認は模擬試験で弱点を見ます。
この記事の導線を開く
全体像CAD資格対策ハブ
深掘りCAD模擬試験
比較CSAとCADの違い
演習CAD模擬試験

Client ScriptとBusiness Ruleは「実行場所」と「保証したいこと」で分ける

Client ScriptとBusiness Ruleの違いは、ブラウザ側かサーバー側かだけではなく、入力体験を良くしたいのか、データ整合性を保証したいのかで決まります。CAD対策では、似た選択肢としてUI Policy、Data Policy、Flow Designerも出てくるため、同じ要件をどの層で実装するかを説明できることが重要です。

要件向いている選択理由
フォーム入力中に警告を出したいClient Script / UI Policy利用者の画面操作にすぐ反応する必要があるため。
保存後に関連レコードを更新したいBusiness Ruleサーバー側でデータ変更を確実に処理する必要があるため。
APIやImport経由でも必須や形式を守りたいData Policy画面以外の経路でもデータルールを効かせたい場合に近い。
複数処理を見える形で連携したいFlow Designer人が追える業務フローとして分岐や通知を設計しやすい。

CAD向けの見分け方

  • 「利用者が保存前に気づくべき」ならClient ScriptやUI Policyを検討します。
  • 「保存後のデータ整合性が重要」ならBusiness Ruleを検討します。
  • 「画面以外の登録経路でも守る」ならData Policyを候補に入れます。
  • 「処理を見通しや可用保守性を上げる」ならFlow Designerとの比較も必要です。

PDIで確認する順番

PDIでは、フォーム上の入力制御、保存時のサーバー処理、API/Import経由の登録を分けて確認すると、暗記ではなく実行場所と責務で判断できるようになります。

ServiceNowでスクリプトを学び始めると、Client ScriptBusiness Rule の違いでつまずきやすくなります。どちらもJavaScriptを書けるため、「どちらに書いても同じではないか」と見えてしまうことがあります。

結論から言うと、Client Scriptはユーザーの画面上で動く処理で、Business Ruleはサーバー側でレコード操作に合わせて動く処理です。つまり、違いの中心は「JavaScriptかどうか」ではなく、どこで、いつ、何を制御するかです。

30秒要約

  • Client Scriptはブラウザ上のフォーム操作を助ける処理です。
  • Business Ruleはサーバー側で保存前後のデータ整合性を守る処理です。
  • 画面以外の入口でも必ず守りたいルールは、Client Scriptだけに任せないようにします。

スクリプト・自動化の理解をCSA模試で確認する
Business Rule、Flow Designer、フォーム制御の使い分けを問題形式で確認できます。

Client ScriptとBusiness Ruleの違いは「画面側」か「サーバー側」か

Client ScriptとBusiness Ruleは、どちらもServiceNowの動きを変えるために使います。ただし、実行される場所と目的が違います。

項目 Client Script Business Rule
実行場所 ユーザーのブラウザ、フォーム画面 ServiceNowのサーバー側
主な目的 画面操作を補助する レコード保存や更新時の処理を制御する
向いている処理 入力中の表示制御、値の補完、警告表示 保存前後の値補正、関連レコード更新、整合性保持
注意点 画面以外の登録経路では効かないことがある 影響範囲が広く、条件設計を誤ると全体に影響する

Client Scriptはフォーム操作を助ける

Client Scriptは、ユーザーがフォームを開いたり、フィールドの値を変更したり、送信しようとしたりするタイミングで動くクライアント側のスクリプトです。フォーム上で値を自動入力する、警告を出す、項目の表示を切り替える、といった処理に向いています。

たとえば、カテゴリを選んだらサブカテゴリ候補を変える、入力値に応じて注意メッセージを出す、送信前に簡単なチェックをする、といった場面です。利用者が入力中に気づけるようにする処理はClient Scriptで考えやすいです。

ただし、Client Scriptはユーザーの画面操作に近い処理です。API、インポート、Flow、バックグラウンド処理など、画面を通らない登録経路では期待通りに効かないことがあります。絶対に守るべきデータルールをClient Scriptだけに任せるのは危険です。

// onChange Client Script の考え方
// 入力中のユーザーに注意を出す用途に向いています
function onChange(control, oldValue, newValue, isLoading) {
  if (isLoading || newValue === '') return;

  if (newValue === '1') {
    g_form.showFieldMsg('priority', 'High priority requires careful review.', 'info');
  }
}

Business Ruleはレコード操作に近いサーバー側処理

Business Ruleは、レコードがinsert、update、delete、queryされるタイミングに合わせてサーバー側で動くルールです。保存前に値を整える、保存後に関連レコードを更新する、特定条件でエラーにする、といった処理に向いています。

Business Ruleの強みは、画面操作以外の登録経路も含めて、サーバー側で一貫した処理を行えることです。利用者がフォームから更新した場合だけでなく、連携やインポートで更新される場合も考慮したい処理はBusiness Ruleの候補になります。

一方で、Business Ruleは影響範囲が広くなりやすいです。条件が広すぎると想定外の更新でも動きますし、同じレコードを再更新する設計では処理が連鎖することもあります。Flow Designerとの使い分けは、Business RuleとFlow Designerの違いでも整理しています。

// before Business Rule の考え方
// 画面以外の入口でも保存前に値を整えたい場合に検討します
if (current.short_description) {
  current.short_description = current.short_description.trim();
}

実務ではどう選ぶべきか

迷ったときは、次の順で考えると判断しやすくなります。

  1. その処理はユーザーが入力中に気づくべきものか
  2. フォーム画面以外の登録経路でも必ず効かせたいか
  3. 保存前後のデータ整合性に関わるか
  4. UI PolicyやData Policyで実現できないか
  5. 同じ処理を画面側とサーバー側に二重実装していないか

画面操作をわかりやすくするならClient Script、保存されるデータの整合性を守るならBusiness Ruleが候補です。単純な必須や表示制御なら、まず UI PolicyとData Policyの違い を確認し、スクリプトが本当に必要かを考えると保守しやすくなります。

よくある失敗例

  • Client Scriptで必須チェックを完結させる: APIやImport Setから登録された場合にチェックを通らない可能性があります。
  • Business Ruleで画面メッセージ中心の処理を書く: 入力中に気づかせたい処理はClient ScriptやUI Policyのほうが自然です。
  • 同じロジックを両方に書く: 画面側とサーバー側で判定条件がずれ、原因調査が難しくなります。
  • GlideRecordをClient Scriptに直接書こうとする: クライアント側とサーバー側のAPIを混同しないようにします。

CSA/CADではどう問われるか

CSAでは、Client Scriptをクライアント側、Business Ruleをサーバー側の処理として見分ける問題が出やすいです。画面上の操作、フォーム入力、onChangeなどのキーワードがあればClient Scriptを考えます。

CADでは、より実装寄りに、実行タイミング、サーバーサイド処理、画面以外の登録経路、GlideAjaxのような橋渡しも含めて問われることがあります。まずは「どこで動く処理か」を取り違えないことが大切です。

FAQ

Q. Client Scriptでデータ品質を守れますか。

A. 入力中の補助には使えますが、画面以外の入口では効かないことがあります。必ず守るルールはBusiness RuleやData Policyも検討します。

Q. Business Ruleでフォームの表示制御をするべきですか。

A. 通常は向きません。フォーム上の表示、非表示、入力中の警告はUI PolicyやClient Scriptで考えるほうが自然です。

Q. GlideAjaxはいつ使いますか。

A. Client Scriptからサーバー側の情報を安全に取得したい場合に検討します。クライアント側に重い処理や機密ロジックを置かないための橋渡しです。

確認問題

Q1. フォームで優先度を変更した瞬間に注意メッセージを表示したい。まず検討するのは?

A. Client Scriptです。ユーザーの画面操作に反応する処理に向いています。

Q2. APIで更新された場合も含めて、保存前に値を標準化したい。候補になるのは?

A. Business Ruleです。サーバー側でレコード操作に合わせて処理できます。

まとめ

Client ScriptとBusiness Ruleは、どちらもJavaScriptを使えます。しかし、Client Scriptは画面側、Business Ruleはサーバー側という大きな違いがあります。

実務で迷ったら、「これは利用者の入力中に助ける処理か、それとも保存されるデータを守る処理か」を確認してください。この判断軸を持つと、スクリプトの置き場所を間違えにくくなります。

理解を確認したい方は、ServiceNow CSA 業務機能領域の無料模試で、スクリプトや自動化の判断問題を確認してみてください。

Client ScriptとBusiness Ruleを30秒で判断する

Client Scriptはブラウザ側でユーザー操作に反応する処理、Business Ruleはサーバー側でレコード処理に反応する処理です。見た目や入力補助ならClient Script、保存時の整合性や関連処理ならBusiness Ruleを検討します。

観点Client ScriptBusiness Rule
実行場所クライアント側サーバー側
主な用途入力補助、表示制御保存時処理、関連レコード更新
守れる範囲ユーザー体験中心データ整合性中心
CAD観点乱用せず責務を分ける

よくある質問

この記事はCAD対策に役立ちますか?

はい。CADに関係する用語、判断軸、実務で迷いやすいポイントを整理し、CADの学習に接続しやすい形で確認できます。

読後に次に確認すべきページはどこですか?

CAD資格対策ハブで全体像を確認し、必要に応じてCAD模擬試験で弱点を確認してください。

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