- Post History
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
2 hours ago - edited an hour ago
Hello Community,
We’ve all been there: you make a field mandatory on a form using UI Policy, only to find a week later that someone bypassed it via a List Edit, an Excel Import, or an API integration.
In ServiceNow, "Mandatory" doesn't always mean "Mandatory everywhere." To keep your data clean, you need to pick the right tool for the job. Here is a simplified guide to the 5 ways to enforce fields without annoying your users.
1. The "Everywhere" Rule: Dictionary Entry
What it is: A checkbox on the field’s database definition i.e. Dictionary entry.
Best for: Fields that must exist for the record to make sense (e.g., "Short Description" on a Task).
The Vibe: Permanent and non-negotiable.
Watch out: It’s "all or nothing." You can’t make it mandatory only for "In Progress" tickets.
Navigate: All > System Definition > Dictionary
2. The "Smart Form" Rule: UI Policies
What it is: A no-code way to make fields mandatory based on conditions (e.g., "If State is Closed, Resolution Code is mandatory").
Best for: Guiding users through a form. It shows that helpful red asterisk instantly.
The Vibe: User-friendly and visual.
Watch out: It only works in the browser. It won't stop a bulk import or a background script.
- Navigate: All > System UI > UI Policies
3. The "Power User" Rule: Data Policies
What it is: The "Big Brother" of UI Policies. It enforces rules at the server level.
Best for: Blocking bad data from Imports, Web Services, and List Edits.
The Vibe: Robust and secure.
Pro Tip: Check the "Use as UI Policy" box so it also acts like a UI Policy on your forms. It's the best of both worlds!
- Navigate: All > System Policy > Rules > Data Policies
4. The "Complex Logic" Rule: Client Scripts
What it is: Custom JavaScript (browser-side) for when the Condition Builder isn't enough.
Best for: Validating specific patterns, like ensuring a "Serial Number" starts with "SN-" and has 8 digits.
The Vibe: Highly customizable but requires coding.
Watch out: Too many scripts can slow down your form load times.
- Navigate: System Definition > Client Scripts
5. The "Last Line of Defense": Business Rules
What it is: Server-side scripts that run right before a record hits the database.
Best for: Cross-table validation (e.g., "Don't allow closing this Change if the linked CI is currently 'Down'").
The Vibe: The ultimate gatekeeper.
Watch out: Users don't see the error until after they hit Save, which can be frustrating.
- Navigate: System Definition > Business Rules
💡Quick Cheat Sheet: Which one do I choose?
| If you want to... | Use this... |
| Always require a value | Dictionary |
| Require it conditionally on a form . | UI Policy |
| Block bad imports/API calls | Data Policy |
| Validate a Regex pattern | Client Script |
| Check other tables before saving | Business Rule |
Summary
Don't rely on just one method. For critical data, use Defense in Depth:
Use a UI Policy so the user knows what to do.
Use a Data Policy to catch the people trying to sneak around the UI!
What’s your favorite "Gotcha" when it comes to mandatory fields? Let’s discuss in the comments! 👇
If this helped you in any way, don't forget to hit the like button! 👍
- 108 Views
