- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-06-2025 09:23 AM - edited 06-06-2025 09:24 AM
Hi,
I have a year(type - integer) & month(type - choice having 12 choice values) & date field in my custom table. Now whenever I insert a record in the table I want to get the date field populated based on the year and month. So if my year is 2025 and month is January I want the date field to be automatically populated as 1st January 2025. Similarly for February I want to populate it as 1st Februrary 2025. Date we can have as 1st of every month. Some assistance on how can I write a script for this to populate the date in this way will greatly help?
Regards,
Maharshi
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-06-2025 10:03 AM
You can achieve this by using a Business Rule on your custom table that triggers on insert (or insert/update) and populates the date field as the 1st of the selected month and year.
(function executeRule(current, gsr) {
// Mapping of month names to their numeric representation
var monthMap = {
'January': '01',
'February': '02',
'March': '03',
'April': '04',
'May': '05',
'June': '06',
'July': '07',
'August': '08',
'September': '09',
'October': '10',
'November': '11',
'December': '12'
};
var year = current.year;
var monthName = current.month.toString();
var day = '01';
if (year && monthMap[monthName]) {
var dateString = year + '-' + monthMap[monthName] + '-' + day;
current.date = dateString; // This assumes 'date' field is of type 'Date' (not date/time)
}
})(current, gsr);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-06-2025 09:43 AM
Hi @MaharshiC ,
Before insert/update of those 3 fields, trigger a BR with before insert/ update rule and in the scripting section , use GlideDateTime api call to get the date format and populate to your date field
Code snippet:
// Create a JavaScript Date object for the dayof the selected month and year
var jsDate = new Date(current.year, current.monthnumber, current.day);
// Convert to GlideDateTime and set the date field
var gdt = new GlideDateTime();
gdt.setDisplayValue(gs.getDateTimeUtil().get().formatDate(jsDate, "yyyy-MM-dd"));
current.date_field = gdt; // Replace 'date_field' with your actual field name
Please mark this as helpful/ correct if this answers your question.
Thanks,
Yaswanth
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-06-2025 10:03 AM
You can achieve this by using a Business Rule on your custom table that triggers on insert (or insert/update) and populates the date field as the 1st of the selected month and year.
(function executeRule(current, gsr) {
// Mapping of month names to their numeric representation
var monthMap = {
'January': '01',
'February': '02',
'March': '03',
'April': '04',
'May': '05',
'June': '06',
'July': '07',
'August': '08',
'September': '09',
'October': '10',
'November': '11',
'December': '12'
};
var year = current.year;
var monthName = current.month.toString();
var day = '01';
if (year && monthMap[monthName]) {
var dateString = year + '-' + monthMap[monthName] + '-' + day;
current.date = dateString; // This assumes 'date' field is of type 'Date' (not date/time)
}
})(current, gsr);