- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-26-2024 10:11 AM - edited 04-26-2024 10:14 AM
Hi,
I have a requirement to automatically fill start date field as Jan 1st current year and end date as Dec 31st current year during creation of a record in one of the scoped table. The record in the table will be created through scheduled job.. Can someone guide me for the server side script? Note job would run every year begging to create a record with current year first date as start date and current year last date as end date
Regards,
Divya
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-26-2024 11:36 AM - edited 04-26-2024 12:33 PM
Hi @divyalakshmi
Please check these 2 methods . In this example I've used starting and ending times of the year and the date tiime formatting is yyyy-mm-dd hh:mm:ss.
Please look for date/time formatting as well if you are using the scripting method
//Method 1 - Can be typically used in Global Scope
var presentYear = new GlideDateTime().getYear();
var yearStart = new GlideDateTime(presentYear + '-01-01 00:00:00');
var yearEnd = new GlideDateTime(presentYear + '-12-31 23:59:59');
//Method 2 - This one involves more scripting but can be used in any scope.
var presentDateTime = new GlideDateTime().getValue();
var presentDate = presentDateTime.split(' ')[0];
var presentDateArr = presentDate.split('-');
var elementstr;
var presentYear;
for(i in presentDateArr){
elementstr = presentDateArr[i]+'';
if (elementstr.length == 4)
presentYear = presentDateArr[i];
}
var yearStart = new GlideDateTime(presentYear + '-01-01 00:00:00');
var yearEnd = new GlideDateTime(presentYear + '-12-31 23:59:59');
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-26-2024 10:45 AM
Hi @divyalakshmi ,
I tried your problem in my PDI and I got the solution for this please take reference from below
Create Before Business Rule and add below code
(function executeRule(current, previous /*null when async*/) {
// Add your code here
current.end_date = new GlideDateTime('2024-12-31 12:00:00');
current.start_date = new GlideDateTime('2024-01-01 12:00:00');
})(current, previous);
Note: You can use any table and give the backend value of start and end date
Result :
I created new record and start and end date already filled
Please mark my answer correct and helpful if this works for you
Thanks and Regards
Sarthak
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-26-2024 11:28 AM
Hi @Community Alums unfortunately I will not know the year.. My job will run yearly once to create a one record for whole year and it should identify the year.. Eg: my schedule job will run on 2024 31st December and create a record with start date as jan 1st 2025 and end date as dec 31 2025 and similarly job will run on dec 31 2025 to create record for 2026 as start and end date as jan 1 2026 and dec 31 2026..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-26-2024 11:36 AM - edited 04-26-2024 12:33 PM
Hi @divyalakshmi
Please check these 2 methods . In this example I've used starting and ending times of the year and the date tiime formatting is yyyy-mm-dd hh:mm:ss.
Please look for date/time formatting as well if you are using the scripting method
//Method 1 - Can be typically used in Global Scope
var presentYear = new GlideDateTime().getYear();
var yearStart = new GlideDateTime(presentYear + '-01-01 00:00:00');
var yearEnd = new GlideDateTime(presentYear + '-12-31 23:59:59');
//Method 2 - This one involves more scripting but can be used in any scope.
var presentDateTime = new GlideDateTime().getValue();
var presentDate = presentDateTime.split(' ')[0];
var presentDateArr = presentDate.split('-');
var elementstr;
var presentYear;
for(i in presentDateArr){
elementstr = presentDateArr[i]+'';
if (elementstr.length == 4)
presentYear = presentDateArr[i];
}
var yearStart = new GlideDateTime(presentYear + '-01-01 00:00:00');
var yearEnd = new GlideDateTime(presentYear + '-12-31 23:59:59');