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

FNow1
Tera Contributor

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();  
  
  }
3 REPLIES 3

Harshad Wagh
Tera Guru

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();  
  
  }

Same exact error:

  1. "InternalError: Can't find method com.glide.glideobject.GlideDateTime.subtract(com.glide.glideobject.GlideDateTime). (<refname>; line 8)"

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();  
  
  }