Set the records url in URL field
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-06-2023 09:21 PM - edited ‎01-07-2023 10:51 PM
Hi All,
Can anyone please help us on the below requirement.
We wrote below business rule to set the records URL in URL field but some reasons we're getting same url for all the records. But as per the script it should return the url based on the count.
And script is runs on ABC table.
Script:
(function executeRule(current, previous /*null when async*/ ) {
setLink();
function setLink() {
var d = [];
var d1 = [];
var di = new GlideRecord('sn_sec_cmn_src_ci');
di.addEncodedQuery('cmdb_ci.sys_class_name=cmdb_ci_unclassed_hardware^cmdb_ci.x_tsirm_tio_cmdb_asset_attributesISEMPTY^cmdb_ci.operational_status=1^last_scan_dateONLast 90 days@javascript:gs.beginningOfLast90Days()@javascript:gs.endOfLast90Days()^NQcmdb_ci.x_tsirm_tio_cmdb_asset_attributes.sys_updated_onNOTONLast 90 days@javascript:gs.beginningOfLast90Days()@javascript:gs.endOfLast90Days()^cmdb_ci.x_tsirm_tio_cmdb_asset_attributesISNOTEMPTY^cmdb_ci.operational_status=1^last_scan_dateONLast 90 days@javascript:gs.beginningOfLast90Days()@javascript:gs.endOfLast90Days()^cmdb_ci.sys_class_name=cmdb_ci_aix_server');
di.query();
while (di.next())
{
d.push(di.cmdb_ci.toString());
}
var ci = new GlideRecord("cmdb_ci");
ci.addEncodedQuery('sys_class_name=cmdb_ci_unclassed_hardware^operational_status=1');
ci.addQuery('sys_id', 'NOT IN', d);
ci.query();
while (ci.next()) {
var cicount = ci.getRowCount();
gs.info("Count - "+ci.getRowCount());
d1.push(ci.getValue("sys_id"));
}
var link = "";
if (cicount > 0) {
link = "https://abcdev.service-now.com/cmdb_ci.do?sysparm_query=sys_idIN" + d1;
gs.info("link is" + link);
current.u_link = link;
}
current.u_length = current.total_length - current.scanned_length;
}
})(current, previous);
Note: In the script log every time we're getting same count.
Advance thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-06-2023 10:35 PM
Hi @ar1
Try this
(function executeRule(current, previous /*null when async*/ ) {
setLink();
function setLink() {
var d = [];
var d1 = [];
var di = new GlideRecord('sn_sec_cmn_src_ci');
di.addEncodedQuery('cmdb_ci.sys_class_name=cmdb_ci_unclassed_hardware^cmdb_ci.x_tsirm_tio_cmdb_asset_attributesISEMPTY^cmdb_ci.operational_status=1^last_scan_dateONLast 90 days@javascript:gs.beginningOfLast90Days()@javascript:gs.endOfLast90Days()^NQcmdb_ci.x_tsirm_tio_cmdb_asset_attributes.sys_updated_onNOTONLast 90 days@javascript:gs.beginningOfLast90Days()@javascript:gs.endOfLast90Days()^cmdb_ci.x_tsirm_tio_cmdb_asset_attributesISNOTEMPTY^cmdb_ci.operational_status=1^last_scan_dateONLast 90 days@javascript:gs.beginningOfLast90Days()@javascript:gs.endOfLast90Days()^cmdb_ci.sys_class_name=cmdb_ci_aix_server');
di.query();
while (di.next()) {
d.push(di.cmdb_ci.toString());
}
var ci = new GlideRecord("cmdb_ci");
ci.addEncodedQuery('sys_class_name=cmdb_ci_unclassed_hardware^operational_status=1');
ci.addQuery('sys_id', 'NOT IN', d);
ci.query();
while (ci.next()) {
var cicount = ci.getRowCount();
gs.info("Count - " + ci.getRowCount());
d1.push(ci.getValue("sys_id"));
}
var link = "";
for (var i = 0; i < d1.length; i++) {
link = "https://abcdev.service-now.com/cmdb_ci.do?sysparm_query=sys_idIN" + d1[i];
gs.info("link is" + link);
current.u_link = link;
}
}
})(current, previous);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-06-2023 11:11 PM - edited ‎01-07-2023 10:50 PM
Hi Abhit,
Many thanks for the response.
We tried your suggestion, but only one url is coming for all the records.
As per the requirement, we're getting some count in one field called "Lenth".
Example:
So if the Length is populated with "2", then we need to set those two records url in "Link" field.
and if Length is 10 then those ten records url need to set Link field.
Currently irrespective of Length field count, we're getting below url for all records level.
URL:
https://abcdev.service-now.com/cmdb_ci.do?sysparm_query=sys_idINfff8099fdb373890dbffdb184b9619c7
Advance thanks for the support.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-09-2023 01:40 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-09-2023 01:47 AM
Hi Abhit,
Many thanks for the response.
When we removed the [i] after d1 from url, we are getting correct url and it's working fine.
But the only problem is when we send more sys_id to the url we're getting below error image.
Could you please help us fix the url length.
Advance thanks.