Can't find method com.glide.glideobject.GlideDateTime.subtract

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-13-2022 09:13 AM
Hi Everyone,
Leadership asked me to create an aging category system on the vulnerable item table. I've done this before with other tables but for some reason, the same methods won't work on the sn_vul scope app.
The script below, throws back an error:
"InternalError: Can't find method com.glide.glideobject.GlideDateTime.subtract(java.lang.String). (<refname>; line 8)"
On line 8, I am trying to evaluate the difference between the date/time that the VIT was created vs the current time. I then plan to take that output and put it into one of the catergories listed on lines 14-20.
any ideas why it's not working?
Full Code:
var elapsedTime = 0;
var aging = '';
var currentTimeNow = GlideDateTime().getDisplayValue();
var gr = new GlideRecord('sn_vul_vulnerable_item');
gr.query();
while(gr.next()) {
elapsedTime = (GlideDateTime.subtract((gr.sys_created_on.getDisplayValue(), currentTimeNow)));
// Check to see when the item was created
if (elapsedTime <= 30) aging = '0-30 Days';
if (elapsedTime > 31) aging = '31-60 Days';
if (elapsedTime > 61) aging = '61-90 Days';
if (elapsedTime > 91) aging = '91-120 Days';
if (elapsedTime > 121) aging = '121-150 Days';
if (elapsedTime > 151) aging = '151-180 Days';
if (elapsedTime > 181) aging = '> 181 Days';
gr.setWorkflow(false); // Skip any Business Rules
gr.autoSysFields(false); // Do not update system fields
gr.u_aging_category = aging;
gr.update();
}
- Labels:
-
Scripting and Coding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-13-2022 09:34 AM
Can you try following?
var elapsedTime = 0;
var aging = '';
var currentTimeNow = new GlideDateTime();
var gr = new GlideRecord('sn_vul_vulnerable_item');
gr.query();
while(gr.next()) {
elapsedTime = (GlideDateTime.subtract((new GlideDateTime(gr.sys_created_on), currentTimeNow)));
// Check to see when the item was created
if (elapsedTime <= 30) aging = '0-30 Days';
if (elapsedTime > 31) aging = '31-60 Days';
if (elapsedTime > 61) aging = '61-90 Days';
if (elapsedTime > 91) aging = '91-120 Days';
if (elapsedTime > 121) aging = '121-150 Days';
if (elapsedTime > 151) aging = '151-180 Days';
if (elapsedTime > 181) aging = '> 181 Days';
gr.setWorkflow(false); // Skip any Business Rules
gr.autoSysFields(false); // Do not update system fields
gr.u_aging_category = aging;
gr.update();
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-13-2022 10:35 AM
Same exact error:
|
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-13-2022 11:18 AM
OK was able to make it work.
var elapsedTime = 0;
var aging = '';
var currentTimeNow = new GlideDateTime();
var gr = new GlideRecord('sn_vul_vulnerable_item');
gr.query();
while(gr.next()) {
elapsedTime = GlideDateTime.subtract(new GlideDateTime(gr.getValue('sys_created_on')),currentTimeNow);
// Check to see when the item was created
if (elapsedTime <= 30) aging = '0-30 Days';
if (elapsedTime > 31) aging = '31-60 Days';
if (elapsedTime > 61) aging = '61-90 Days';
if (elapsedTime > 91) aging = '91-120 Days';
if (elapsedTime > 121) aging = '121-150 Days';
if (elapsedTime > 151) aging = '151-180 Days';
if (elapsedTime > 181) aging = '> 181 Days';
gr.setWorkflow(false); // Skip any Business Rules
gr.autoSysFields(false); // Do not update system fields
gr.u_aging_category = aging;
gr.update();
}