Skip to content

Instantly share code, notes, and snippets.

@ChecksumFailed
ChecksumFailed / DataTransformRecord.js
Last active May 1, 2024 20:21
ServiceNow Data Tranformation helper script
/**
* DataTransformRecord Class
* Manages the lifecycle of data transformation in ServiceNow by automating the creation, manipulation,
* and cleanup of data sources and associated transform maps.
*
* @class
*/
var DataTransformRecord = function() {
var datasource;
var map;
(function() {
var comment = "Workflow cancelled by " + gs.getUserDisplayName();
new WorkflowApprovalUtils().cancelAll(current, comment);
new Workflow().restartWorkflow(current);
current.work_notes = comment;
//cancel current flow context and start new
if (!current.cat_item.flow_designer_flow.nil() && !current.flow_context.nil()) {
//copy variables from ritm to change request form
var ritmVar = new GlideRecord('sc_item_option_mtom');
ritmVar.addQuery('request_item', current.getUniqueValue());
ritmVar.addNotNullQuery('sc_item_option.value');
ritmVar.orderBy('sc_item_option.order');
ritmVar.query();
var chgVar = new GlideRecord('question_answer');
chgVar.newRecord();
chgVar.table_name = 'change_request';
var cf_ClientCommonsAjax = Class.create();
cf_ClientCommonsAjax.prototype = Object.extendsObject(AbstractAjaxProcessor, {
/**
* Dot walk object until last property reached
* @param {Object} obj obj
* @param {Array} props array of object properties
* @returns the last object value
*/
@ChecksumFailed
ChecksumFailed / simplePipeTest.js
Last active June 14, 2023 17:17
Pipe and Compose in ServiceNow
function f1(a) {
gs.info("Hello " + a);
return gs.now();
}
function f2(a) {
gs.info("The date is: " + a);
return 70;
}
function f3(a) {
gs.info("The temperature is " + a + " degrees");
/**
* Used to validate arguments passed into methods.
*/
var argumentValidation = Class.create();
argumentValidation.prototype = {
initialize: function(logLevel) {
this.logger = new global.GSLog('cf.argumentValidation.log.level');
if (this.notNil(logLevel)) {
logger.setLevel(logLevel);
@ChecksumFailed
ChecksumFailed / ReadMe.md
Created October 17, 2023 20:53
SerivceNow Widget Exploit Testing

Powershell script to to test simple lis

@ChecksumFailed
ChecksumFailed / cf_getActiveUserSessions.js
Created October 31, 2023 13:06
ServiceNow: Get Active Sessions with username and node
/**
* Retrieves active user sessions and associated nodes for a list of user IDs.
*
* @param {string[]} userIDs - An array of user IDs for which to retrieve active sessions.
* @returns {Object[]|undefined} - An array of session and node information, or undefined if no active sessions are found.
*/
function cf_getActiveUserSessions(userIDs) {
/**
* Internal function to get active sessions for given user IDs.
@ChecksumFailed
ChecksumFailed / glideRecordHelper.js
Last active March 22, 2024 15:34
Just some random things
/**
* Creates a new GlideRecord Object from inputs, calls query(), then retuns the Object
* @private
* @param {object} options - Object containing table and any gliderecord methods to call
* @returns {GlideRecord}
* @example
* var options = {
* "table": "cmdbi_ci_computer",
* "methods": {
* "addEncodedQuery": "active=true",
/**
* Takes a nested object and flattens its to one level. Function recursively calls itself until finished.
* //https://stackoverflow.com/questions/34513964/how-to-convert-this-nested-object-into-a-flat-object
* @public
* @param {Object} currentNode - Current node in the nested object to process
* @param {object} flattenedObject - The new object containing the flattened values
* @param {object} flattendKey - The current flattened key name. Example: key.key1.key2
* @returns {Object}
* @example var testObj = {
"key1" : "test1",