Skip to content

Instantly share code, notes, and snippets.

/**
* @namespace cf_HTMLTableParser
* @description A module for parsing HTML tables into an array of objects.
*/
var cf_HTMLTableParser = (function () {
var logger = new GSLog('', "cf_HTMLTableParser");
/**
* Parses HTML tables into an array of objects.
Example Structure of an HTML document with two tables
/**
* 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",
@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",
@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 / ReadMe.md
Created October 17, 2023 20:53
SerivceNow Widget Exploit Testing

Powershell script to to test simple lis

/**
* 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 / 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");
@ChecksumFailed
ChecksumFailed / DataTransformUtils.js
Last active June 15, 2023 16:27
DataTransformUtilsV2
/*
* NOTE; This is a work in progress and has not been tested in its current form.
* Set of methods to simplify loading data into ServiceNow. Use with Inbound Email, rest, etc...
* A temporary DS/importset will be created for the data load. It will be removed if the cleanup method is called.
* Example usage: DataTransformUtils().getDataSourceByName('Test DataSource').copyDataSource().copyAtt(sourceRecord).loadData().getMapByName('Test Transform Map').importData().cleanUpImport().log();
* this will:
* 1. Retrieve Existing DS by name
* 2. Create a clone of this datasource
* 3. Copy attachments from a source record to copied datasource
* 4. load data from the datasource into the import set table
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
*/
//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';