Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
e5d45a7
Create custom_alert.js
mandeepkaran Oct 5, 2024
12f7b57
Create custom_alert_box.js
mandeepkaran Oct 5, 2024
74fcc33
ExampleScreenShots
mandeepkaran Oct 5, 2024
8a3b974
Create readme.md
mandeepkaran Oct 5, 2024
7990eea
Rename Catalog Client Script/CustomAlert/ExampleScreenShotCustomAlert…
mandeepkaran Oct 5, 2024
f50a5b5
Rename Catalog Client Script/CustomAlert/ExampleScreenShotForCustomAl…
mandeepkaran Oct 5, 2024
01659da
Rename Catalog Client Script/CustomAlert/ExampleScrenShotForCustomAle…
mandeepkaran Oct 5, 2024
da8f30e
Create readme.md
mandeepkaran Oct 5, 2024
a56fd1f
Create update_notes_tag_addition.js
mandeepkaran Oct 6, 2024
deb75b1
Create update_notes_tag_removal.js
mandeepkaran Oct 6, 2024
064f919
Create readme.md
mandeepkaran Oct 6, 2024
58758ea
Revert "Create update_notes_tag_addition.js"
mandeepkaran Oct 6, 2024
3cfa425
Revert "Create update_notes_tag_removal.js"
mandeepkaran Oct 6, 2024
e80fe0f
Revert "Create readme.md"
mandeepkaran Oct 6, 2024
a5e2eb7
Merge branch 'ServiceNowDevProgram:main' into main
mandeepkaran Oct 6, 2024
39f6fca
Create br_validate_short_description.js
mandeepkaran Oct 11, 2025
a004c9c
Create README.md
mandeepkaran Oct 11, 2025
2c802d0
Create br_derive_dependent_fields.js
mandeepkaran Oct 11, 2025
b8607ce
Update br_derive_dependent_fields.js
mandeepkaran Oct 11, 2025
228d67b
Update README.md
mandeepkaran Oct 11, 2025
cab3fa0
Delete GlideElement/Smart Field Validation and Dependent Field Deriva…
mandeepkaran Oct 11, 2025
f52e0d3
Create README.md
mandeepkaran Oct 11, 2025
76e2f2e
Create Normalize_All_Variants_of_prod.js
mandeepkaran Oct 11, 2025
38949f4
Update README.md
mandeepkaran Oct 11, 2025
e876d8d
Merge branch 'main' into mandeepkaran-patch-GF1
mandeepkaran Oct 11, 2025
627161e
Update README.md
mandeepkaran Oct 11, 2025
b5c1d26
Update Normalize_All_Variants_of_prod.js
mandeepkaran Oct 11, 2025
db5636c
Merge branch 'main' into mandeepkaran-patch-GF1
mandeepkaran Oct 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions GlideFilter/CaseSensitiveSearch/Normalize_All_Variants_of_prod.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// Create this as fix script or run as background script as per your requirement
(function normalizeProdWithGlideFilter() {
var changeGR = new GlideRecord('change_request');
changeGR.addNotNullQuery('u_environment');
var normalizeProdFilter = 'u_environment=prod';
changeGR.addEncodedQuery(normalizeProdFilter);
changeGR.query();

var filter = new GlideFilter(normalizeProdFilter, 'filterCondition');
filter.setCaseSensitive(false); // Match any case variant of "prod"
filter.setEnforceSecurity(true); // Enforce ACLs

var updated = 0;

while (changeGR.next()) {
if (filter.match(changeGR, true)) {
var original = changeGR.u_environment.toString();

if (original !== 'Prod') {
changeGR.u_environment = 'Prod';
changeGR.update();
updated++;
}
}
}
gs.info('Environment normalization completed. Total updated: ' + updated);
})();
43 changes: 43 additions & 0 deletions GlideFilter/CaseSensitiveSearch/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# ServiceNow Fix Script: Normalize "prod" Environment Using GlideFilter

## Problem Statement

In many ServiceNow environments, custom fields like `u_environment` on tables such as `change_request` often contain inconsistent variants of the same logical value, for example: `prod`, `PROD`, `Prod`,`PrOd`, `pRoD` etc.

These inconsistencies cause:
- Bad or inconsistent reports
- Broken automation rules like BR or flow with condition
- And, Poor data hygiene or dirty values

---

## Solution: Fix Script or Background Script Using GlideFilter

We use **`GlideFilter`** with **case-sensitive matching** to securely identify inconsistent values to avoid multiple `if` conditions or regular expressions.

---

## Example

Instead of writing custom logic with if statement like this:

```javascript
var env = gr.u_environment.toString().toLowerCase();
if (env === 'prod' || env === 'prod ' || env === 'PROD' || env === 'PrOd') {
// Normalize
}
```

You can simply write:
```javascript
var filter = new GlideFilter('u_environment=prod', 'envNormalize');
filter.setCaseSensitive(false);
if (filter.match(gr, true)) {
// Normalize
}
```

## **How to Use**
1. Go to **Scripts - Background** or **Fix Scripts**.
2. Define the script using above glidefilter example shared.
3. Click **Run Script**.
Loading