Skip to content

Conversation

@mandeepkaran
Copy link
Contributor

@mandeepkaran mandeepkaran commented Oct 11, 2025

PR Description:

Smart Field Validation and Dependent Field Derivation Using GlideElement.getError()

This contribution demonstrates how to pass validation context and error messages between multiple Business Rules using the GlideElement.setError() and GlideElement.getError() methods.

The idea helps developers avoid redundant validation logic across Business Rules while enabling context-aware field derivation.

Example Overview

In this example:

  1. First Business Rule (Order 100):

    • Validates the short_description field.
    • Sets an error message if it’s too short.
  2. Second Business Rule (Order 200):

    • Reads the error using getError().
    • Performs dependent logic—such as populating a category or impact field—only if no error exists.

Benefits

  • Improves Performance: By reducing unnecessary validations.
  • Reduces Code Duplication: Ensures that validation logic is centralized.
  • Maintains Consistent Validation Handling: Across different Business Rules.

This approach streamlines the validation process and enhances the maintainability of your ServiceNow applications.

Pull Request Checklist

Overview

  • Put an x inside of the square brackets to check each item.
  • I have read and understood the CONTRIBUTING.md guidelines
  • My pull request has a descriptive title that accurately reflects the changes and the description has been filled in above.
  • I've included only files relevant to the changes described in the PR title and description
  • I've created a new branch in my forked repository for this contribution

Code Quality

  • My code is relevant to ServiceNow developers
  • My code snippets expand meaningfully on official ServiceNow documentation (if applicable)
  • I've disclosed use of ES2021 features (if applicable)
  • I've tested my code snippets in a ServiceNow environment (where possible)

Repository Structure Compliance

  • I've placed my code snippet(s) in one of the required top-level categories:
    • Core ServiceNow APIs/
    • Server-Side Components/
    • Client-Side Components/
    • Modern Development/
    • Integration/
    • Specialized Areas/
  • I've used appropriate sub-categories within the top-level categories
  • Each code snippet has its own folder with a descriptive name

Documentation

  • I've included a README.md file for each code snippet
  • The README.md includes:
    • Description of the code snippet functionality
    • Usage instructions or examples
    • Any prerequisites or dependencies
    • (Optional) Screenshots or diagrams if helpful

Restrictions

  • My PR does not include XML exports of ServiceNow records
  • My PR does not contain sensitive information (passwords, API keys, tokens)
  • My PR does not include changes that fall outside the described scope

If you need HTML beautified alert box, use this.
UI Page to render the custom alert
These are example ScreenShots for reference
Example Screenshots
…Info.png to Catalog Client Script/CustomAlert/Screenshots/ExampleScreenShotCustomAlertInfo.png
…ertSuccess.png to Catalog Client Script/CustomAlert/Screenshots/ExampleScreenShotForCustomAlertSuccess.png
…rtDanger.png to Catalog Client Script/CustomAlert/Screenshots/ExampleScrenShotForCustomAlertDanger.png
Notes for installation or Implementation
Business rule to add work notes on record if notes for tag entries are allowed.
It is very hard to track who added the tag to the record and when, this will help to manage to understand who has added what tags on record.
Business rule to add work notes on record if notes for tag removal are allowed.
It is very hard to track who removed the tag to the record and when, this will help to manage to understand who has removed what tags on record.
Notes for the implementation
This reverts commit 064f919.
…tion Using getError() and setError() directory
@bird-03
Copy link
Contributor

bird-03 commented Oct 11, 2025

@mandeepkaran

Thanks for your contribution, while I am reviewing your PR #2041, appriciate your patience and recommend to check other 2 cool projects 'Hack4Good' and 'Actionpack'

Happy Hacking

@bird-03
Copy link
Contributor

bird-03 commented Oct 11, 2025

Hey @mandeepkaran

SeemsIt appears that this contribution is a duplicate of your other contribution PR #2036

Please ensure to make unique and meaningful contributions, and refrain from spamming or duplicating submissions. Closing this as it's duplicate.

Keep contributing and check other repos as well for quality contribution. Appriciate your time, effort and intent to open-source contribution.

Thank you for your contribution. Happy Hacking

@bird-03 bird-03 closed this Oct 11, 2025
@mandeepkaran
Copy link
Contributor Author

mandeepkaran commented Oct 11, 2025

@bird-03
#2036 this was rejected because folder got created for GlideElement so submitted new one using existing folder.

Here is the comment from #2036
I have reverted this PR as you have created a new main folder - "GlideElement". There is already GlideElement Folder under Core ServiceNow APIs folder.

please DO NOT create a new folder. use already existing - relevant folders to submit your code snippet.

Is there a way to reopen this? or I need to submit again?

@bird-03
Copy link
Contributor

bird-03 commented Oct 11, 2025 via email

@bird-03 bird-03 reopened this Oct 11, 2025
@bird-03
Copy link
Contributor

bird-03 commented Oct 11, 2025

Accepted!!

Keep doing cool contributions!

@bird-03 bird-03 merged commit d29ced4 into ServiceNowDevProgram:main Oct 11, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants