Skip to content

Add code snippet to backup Critical Table Data #1581

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
12 changes: 12 additions & 0 deletions Business Rules/Backup Critical Table Data/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Overview
This ServiceNow script automates backing up critical record data (such as task or incident records) to an external storage solution. Designed to run as a Business Rule, it helps maintain redundancy for sensitive information by copying specific record details to a backup API whenever a record is created or modified.

# How It Works
- Data Extraction: Collects key record fields (such as `sys_id`, `number`, `short_description`) from `current`.
- API Call: Sends a `POST` request with record data to an external backup endpoint.
- Logging: Outputs API response for monitoring.

# Implementation
1. Update the `setEndpoint` URL to match your backup API endpoint.
2. Modify the `recordData` with table data structure as needed.
3. Ensure the Business Rule is triggered on the appropriate conditions (e.g., on record insert/update) in the target table.
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// Script to back up critical table data to external storage
(function executeRule(current, previous /*null when async*/) {
var recordData = {
sys_id: current.sys_id.toString(),
number: current.number.toString(),
short_description: current.short_description.toString()
Comment on lines +4 to +6
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In future, use getter methods (getValue('field') and getUniqueValue()) to avoid having to use this method

};

// Call external API to store data
var request = new sn_ws.RESTMessageV2();
request.setEndpoint('https://your-backup-api.com/backup');
request.setHttpMethod('POST');
request.setRequestBody(JSON.stringify(recordData));

var response = request.execute();
gs.info("Backup response: " + response.getBody());
})(current, previous);

Loading