Name
sn_data_discovery.DataDiscoverySlushbucketAjax
Description
No description available
Script
var DataDiscoverySlushbucketAjax = Class.create();
DataDiscoverySlushbucketAjax.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
setItemWithTableData: function() {
gr = new GlideRecordSecure(this.getParameter('sysparm_right_table'));
gr.query();
rightChoiceMap = {};
while (gr.next()) {
rightChoiceMap[gr.getValue(this.getParameter('sysparm_reference_field'))] = "-1";
}
var leftKey = this.getParameter('sysparm_leftKey');
var textField = this.getParameter('sysparm_textField');
var gr = new GlideRecordSecure(this.getParameter('sysparm_left_table'));
gr.query();
while (gr.next()) {
if (rightChoiceMap[gr.getValue(leftKey)] === "-1") {
rightChoiceMap[gr.getValue(leftKey)] = gr.getValue(textField);
} else {
var item = this.newItem();
item.setAttribute('value', gr.getValue(leftKey));
item.setAttribute('text', gr.getValue(textField));
}
}
item = this.newItem();
item.setAttribute('value', "end");
var keys = Object.keys(rightChoiceMap);
for (i = 0; i < keys.length; i++) {
var key = keys[i];
item = this.newItem();
item.setAttribute('value', key);
item.setAttribute('text', rightChoiceMap[key]);
}
},
editTargetTables: function() {
var table_name = this.getParameter('sysparm_right_table');
var reference_field = this.getParameter('sysparm_reference_field');
var values = this.getParameter('sysparm_rightChoiceValues');
var arr = values.split(',');
var rightChoiceMap = {};
for (x in arr) {
rightChoiceMap[arr[x]] = true;
}
gr = new GlideRecordSecure(table_name);
gr.query();
while (gr.next()) {
if (rightChoiceMap[gr.getValue(reference_field)]) {
delete rightChoiceMap[gr.getValue(reference_field)];
} else {
gr.deleteRecord();
}
}
var keys = Object.keys(rightChoiceMap);
if(values=='') {
return;
}
var rec = new GlideRecordSecure(table_name);
for (i = 0; i < keys.length; i++) {
var key = keys[i];
rec.newRecord();
rec[reference_field] = key;
rec.insert();
}
}
});
Sys ID
7d05580ea3112110c1c5109246fcda23