Display of the request number under RITM in the My requests widget
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-29-2022 12:06 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-29-2022 02:34 PM
Do you mind posting the code of the my request widget?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-29-2022 11:57 PM
Please find the code below.
(function() {
var alsoRequest = false;
var localInput = input; //to safeguard pollution of 'input' via BR or other scripts
data.filterMsg = gs.getMessage("Search open requests");
if (localInput && localInput.view === 'open')
data.filterMsg = gs.getMessage("Search open requests");
else if (localInput && localInput.view === 'close')
data.filterMsg = gs.getMessage("Search closed requests");
function getField(gr, name) {
var f = {};
var id = gr.getUniqueValue();
gr = new GlideRecord(gr.getRecordClassName());
gr.get(id);
f.display_value = gr.getDisplayValue(name);
f.value = gr.getValue(name);
var ge = gr.getElement(name);
if (ge) {
var ed = ge.getED();
if (ed)
f.type = ed.getInternalType();
f.label = ge.getLabel();
}
return f;
}
function getMyRequestSysIds() {
var ids = {};
var rq_filter = new GlideRecord('request_filter');
rq_filter.addActiveQuery();
if (rq_filter.isValidField('applies_to'))
rq_filter.addQuery('applies_to', 1).addOrCondition('applies_to', 10);
rq_filter.query();
while(rq_filter.next()) {
var tableName = rq_filter.table_name;
if (rq_filter.isValidField('table'))
tableName = rq_filter.table;
var filter= rq_filter.filter;
//gs.addInfoMessage('tableName'+tableName);
//gs.addInfoMessage('filter'+filter);
var gr = new GlideRecord(tableName);
gr.addQuery(filter);
// var gr = new GlideRecord('sn_si_incident');
// gr.addEncodedQuery('category=Risk Review^stateIN10,16,18,19,20,100^EQ');
gr.query();
//gs.addInfoMessage('++'+gr.getRowCount());
//if (tableName == 'sc_request')
if (tableName == 'sc_request')
alsoRequest = true;
else if (tableName == 'sn_si_incident')
alsoRequest = true;
else if (tableName == 'dmn_demand')
alsoRequest = true;
while(gr.next()) {
var portalSettings = {};
portalSettings.page = rq_filter.portal_page.nil()? '' : rq_filter.portal_page.getDisplayValue() + '';
portalSettings.primary_display = rq_filter.primary_display.nil()? '': rq_filter.primary_display + '';
portalSettings.secondary_displays = rq_filter.secondary_display.nil()? '': rq_filter.secondary_display + '';
ids[gr.sys_id + ''] = portalSettings;
}
}
// gs.addInfoMessage('ids'+ids);
return ids;
}
/** function Getrequestnumber(number) {
var gr = new GlideRecord('sc_request');
gr.addQuery('number', number);
gr.query();
var res = [];
while (gr.next()) {
res.push(gr.getDisplayValue('number'));
}
return res;
} **/
//gs.log('view'+localInput.view,'2pg');
// retrieve the request's
var myRequestMap = getMyRequestSysIds();
var taskIDs = Object.keys(myRequestMap);
//gs.log('taskIDs'+taskIDs,'pgg');
var gr = new GlideRecordSecure('task');
if (localInput && localInput.view === 'open')
{
gr.addActiveQuery();
gr.addQuery('sys_class_name','sc_request');
//gs.addInfoMessage("1");
}
else if (localInput && localInput.view === 'close')
{
gr.addQuery('state', 3);
gr.addQuery('sys_class_name','sc_req_item');
//gs.addInfoMessage("2");
}
else if (localInput && localInput.view === 'open_sec')
{
gr.addActiveQuery();
gr.addQuery('sys_class_name','sn_si_incident');
//gs.addInfoMessage("3");
}
else if (localInput && localInput.view === 'close_sec')
{
gr.addQuery('active', 0);
var x=gs.getUserID();
gr.addQuery('opened_by', x);
gr.addQuery('sys_class_name','sn_si_incident');
//gs.addInfoMessage("4");
}
else if (localInput && localInput.view === 'open_dmd')
{
var xx=gs.getUserID();
gr.addQuery('opened_by', xx);
gr.addEncodedQuery('sys_class_name=dmn_demand^ref_dmn_demand.u_process_statusNOT INCompleted,Cancelled');
//gr.addActiveQuery();
//gr.addQuery('sys_class_name','dmn_demand');
//gs.addInfoMessage("3");
}
else if (localInput && localInput.view === 'close_dmd')
{
var xx=gs.getUserID();
gr.addQuery('opened_by', xx);
gr.addEncodedQuery('sys_class_name=dmn_demand^ref_dmn_demand.u_process_statusINCompleted,Cancelled');
}
else if (localInput && localInput.view === 'none')
{
var x=gs.getUserID();
gr.addQuery('opened_by', x);
//gr.addQuery('active', 0);
//gs.addInfoMessage("5");
data.val='none';
}
else
{
var x=gs.getUserID();
gr.addQuery('opened_by', x);
//gs.addInfoMessage("6");
//data.val='none';
//gr.addQuery('active', 0);
}
gr.orderByDesc('sys_updated_on');
if (localInput && localInput.search_text) {
var req = [];
var task = new GlideRecordSecure('task');
task.addQuery('123TEXTQUERY321', localInput.search_text);
if (localInput && localInput.view === 'open')
task.addQuery('active', 1);
else if (localInput && localInput.view === 'close')
task.addQuery('active', 0);
//task.addQuery('state', 3);
else
task.addQuery('active', 1);
task.addQuery('sys_id', taskIDs);
task.query();
while(task.next())
req.push(task.getUniqueValue());
if (alsoRequest) {
var ritmGR = new GlideRecord('sc_req_item');
if (localInput && localInput.view === 'open')
ritmGR.addQuery('request.active', 1);
else if (localInput && localInput.view === 'close')
ritmGR.addQuery('request.active', 0);
// ritmGR.addQuery('state', 3);
else
ritmGR.addQuery('request.active', 1);
ritmGR.addQuery('123TEXTQUERY321', localInput.search_text);
ritmGR.addQuery('request.sys_id', taskIDs);
ritmGR.query();
while(ritmGR.next())
req.push(ritmGR.getValue('request'));
}
gr.addQuery('sys_id', req);
}
else
gr.addQuery('sys_id', taskIDs);
gr.query();
gs.log('row count'+gr.getRowCount(),'1pg');
data.request = {};
data.request.req_list = [];
var recordIdx = 0;
var limit = options.items_per_page? options.items_per_page : 15;
if (localInput && localInput.action == 'fetch_more')
data.lastLimit = localInput.lastLimit + limit;
else
data.lastLimit = limit;
data.hasMore = false;
while (recordIdx != data.lastLimit && gr.next()) {
var portalSettings = myRequestMap[gr.getUniqueValue()];
if (typeof portalSettings == 'undefined')
portalSettings = {};
var record = {};
record.sys_id = gr.getValue('sys_id');
gs.log(gr.getRecordClassName(),'3pg');
if (gr.getRecordClassName() == 'sc_request') {
gs.log('inside request','pg');
var ritm = new GlideRecord("sc_req_item");
ritm.addQuery("number", gr.getUniqueValue());
ritm.query();
if (ritm.getRowCount() == 0)
continue;
if (ritm.getRowCount() > 1){
gs.log('inside request12','pg');
//record.display_field = gs.getMessage("{0} requested items", ritm.getRowCount());
ritm.next();
record.display_field = ritm.cat_item.getDisplayValue() || ritm.getDisplayValue("short_description");
gs.log('inside request3'+record.display_field,'pg');
}
else {
ritm.next();
record.display_field = ritm.cat_item.getDisplayValue() || ritm.getDisplayValue("short_description");
}
record.url = { id: portalSettings.page? portalSettings.page: 'sc_request', table: 'sc_req_item', sys_id: ritm.getValue('sys_id')};
}
// //pg code starts
// else if (gr.getRecordClassName() == 'sn_si_incident') {
// gs.log('inside request','1pg');
// var sir = new GlideRecord("sn_si_incident");
// //sir.addQuery("caller", gs.getUserID());
// sir.addQuery("sys_id", gr.getUniqueValue());
// sir.query();
// //gs.addInfoMessage('count'+sir.getRowCount());
// if (sir.getRowCount() == 0)
// continue;
// if (sir.getRowCount() > 1){
// gs.log('inside request12','1pg');
// //record.display_field = gs.getMessage("{0} requested items", ritm.getRowCount());
// sir.next();
// record.display_field = sir.cat_item.getDisplayValue() || sir.getDisplayValue("short_description");
// gs.log('inside request3'+record.display_field,'1pg');
// }
// else {
// sir.next();
// record.display_field = sir.cat_item.getDisplayValue() || sir.getDisplayValue("short_description");
// }
// //record.url = { id: portalSettings.page? portalSettings.page: 'sc_request', table: 'sc_req_item', sys_id: ritm.getValue('sys_id')};
// }
// //pg ends
else {
record.display_field = portalSettings.primary_display ? getField(gr, portalSettings.primary_display).display_value : getField(gr, 'number').display_value;
record.url = { id: portalSettings.page? portalSettings.page :'ticket', table: gr.getRecordClassName(), sys_id: record.sys_id};
}
if (portalSettings.secondary_displays) {
record.secondary_displays = [];
portalSettings.secondary_displays.split(",").forEach(function (sDisplay){
record.secondary_displays.push(getField(gr, sDisplay));
});
}
else
record.secondary_displays = getField(gr, 'short_description');
record.updated_on = gr.getValue('sys_updated_on');
record.state = gr.getDisplayValue('state');
if((recordIdx !== 0) && (data.lastLimit - limit === recordIdx))
record.highlight = true;
data.request.req_list.push(record);
recordIdx++;
}
if (gr.next())
data.hasMore = true;
})();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-07-2022 12:16 AM
Hi Navyaa,
we too had the same requirement , after spending some time with script in the widget, I tried the below and got it working.
These are the steps I followed:
Step 1: set entry for sc_request entry on "myrequest filter" page to false
Step 2: edit the filter for the below filter record and update the criteria as per the second snap shot
-refresh Ticket Page.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-16-2023 11:04 AM
this works but i am wondering how did you come up with the idea and also what else is being impacted by the change. do you know?
thanks for sharing!
-Maria