Dynamic Date population in the Set Field Values in the Automated Test Framework (ATF)

ramd
Kilo Contributor

Hi There, 

We are currently building some reusable test cases using ATF (Automated Test Framework) Application. We have several test scenarios related to change management where the "Planned Start Date" and "End Date" should be dynamically populated to future date, typically the date and time should be anything between 3rd Sunday 09:00 pm PST - 12:00 AM PST. 

Is there any javascript available to meet this requirement? I want to populate the 3rd Sunday 09:00 pm PST, in the highlighted area as shown in the attached screenshot.

Please help. 

Thanks,

RD

 

find_real_file.png

1 ACCEPTED SOLUTION

Here's one way.

var myDatePicker = Class.create();
myDatePicker.prototype = {
    initialize: function() {
    },

	// Pass in year and month as numbers
	3rdSunday : function(year, month) {
		var first = 15; // the soonest that the 3rd Sunday can be
		var last = 21; // the latest that the 3rd Sunday can be
		
		var gdt = new GlideDateTime();
		gdt.setYearLocalTime(year);
		gdt.setMonthLocalTime(month);

		for (var day = first; day < last; day++) { 
			gdt.setDayOfMonthLocalTime(day);
			if (gdt.getDayOfWeekLocalTime() == 7) {
				return day;
			}
		}
		
		return;
	},

    type: 'myDatePicker'
};

Usage is:

var dom = new myDatePicker().thirdSunday(2018, 6);
// dom = 17, the date of the third Sunday in June 2018

If you want it to return the entire date (ex. 2018-06-17), simply change the return value in the function to 

return gdt.getDate();

View solution in original post

12 REPLIES 12

Hey mate,

I know I am late, but for anyone else, it is likely that the issue was with the client callable field not being ticked on the Script Inlcude.  if you are creating a script include for client side work, this needs to be ticked.

Catches a lot of us out haha.

find_real_file.png

ramd
Kilo Contributor

Thank you so much Chuck. It works!. 

Cheers!

RD

 

 

 

I'm glad it worked. Don't forget to mark my response as correct so that others with the same question in the future can find it quickly and that it gets removed from the Unanswered list.

 

Thank you

Ijaazops
Kilo Expert

Hi Chuck,

Do i run this script using the "Run server side script" step. could you please help me on this.

markdesouza
Giga Guru

Greetings.  I am trying to do something similar.  I have a catalog item that I want to populate the "required by" date field with a date always a week from today.  I added a script include:  

var myDatePicker = Class.create();
myDatePicker.prototype = {
    initialize: function() {
    },

	// pass in the number of days in the future
	// usage: javascript:new myDatePicker().getFutureDate(3);
	// the above will set your date to 3 days in the future
	getFutureDate : function(futureDate) {
		
		var gdt = new GlideDateTime();

		gdt = gdt.addDaysLocalTime(futureDate);

		
		return gdt.getDate();
	},

    type: 'myDatePicker'
};

and I'm trying to call it in the field as such:

find_real_file.png

 

But it doesn't seem to be setting the date.  When I set a validation step looking for 11/22 it's failing.  Any help would be appreciated.  

 

Also, I can go into the background scripts module and successfully call the script using:

var gd = new myDatePicker().getFutureDate(3);
gs.info(gd);