Script Include Date Query
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-15-2024 10:34 PM
Dear all,
I would like to check if the record is exist when end user input with Onchange client script and Script include, below my script, but not working, could anyone help me:
Thank you!
Script Include:
var CM_Name_Date_Count = Class.create();
CM_Name_Date_Count.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
checkNameDate: function(){
var namedate_count = new GlideAggregate('sn_hr_core_contract_management');
var name = this.getParameter('u_contract_name');
//gs.info('HRIS Test contract name ' + name);
var date = this.getParameter('u_contract_start_date');
//gs.info('HRIS Test contract start date ' + start);
namedate_count.addQuery('u_contract_name', name);
namedate_count.addQuery('u_contract_start_date', date);
namedate_count.addAggregate('COUNT');
namedate_count.query();
var answer = false;
while(namedate_count.next()){
if(namedate_count.getAggregate('COUNT') >= 1){
answer = true;
}
}
return answer;
},
type: 'CM_Name_Date_Count'
});
Client Script:
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
//Type appropriate comment here, and begin script below
var contractName = g_form.getValue('u_contract_name');
//alert('HRIS Test contract name ' + contractName);
var contractStartDate = g_form.getValue('u_contract_start_date');
//alert('HRIS Test contract start date ' + contractStartDate);
var ga = new GlideAjax('sn_hr_core.CM_Name_Date_Count');
ga.addParam('sysparm_name', 'checkNameDate');
ga.addParam('u_contract_name', contractName);
ga.addParam('u_contract_start_date', contractStartDate);
ga.getXMLAnswer(function(answer) {
if (answer == 'true') {
alert('This contract is exist, please adjust');
return;
}
});
return false;
}
6 REPLIES 6
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-15-2024 10:47 PM
Hello @Jeff42 ,
Please use modified code I hope this should work for you.
var CM_Name_Date_Count = Class.create();
CM_Name_Date_Count.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
checkNameDate: function(){
var namedate_count = new GlideAggregate('sn_hr_core_contract_management');
var name = g_request.getParameter('u_contract_name');
var date = g_request.getParameter('u_contract_start_date');
namedate_count.addQuery('u_contract_name', name);
namedate_count.addQuery('u_contract_start_date', date);
namedate_count.addAggregate('COUNT');
namedate_count.query();
var answer = false;
while(namedate_count.next()){
if(namedate_count.getAggregate('COUNT') >= 1){
answer = true;
}
}
return answer;
},
type: 'CM_Name_Date_Count'
});
Client Script
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
var contractName = g_form.getValue('u_contract_name');
var contractStartDate = g_form.getValue('u_contract_start_date');
var ga = new GlideAjax('sn_hr_core.CM_Name_Date_Count');
ga.addParam('sysparm_name', 'checkNameDate');
ga.addParam('u_contract_name', contractName);
ga.addParam('u_contract_start_date', contractStartDate);
ga.getXMLAnswer(function(answer) {
if (answer == 'true') {
alert('This contract exists, please adjust');
}
});
}
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-15-2024 11:07 PM
Thanks @Abhijeet_Pawar
var name = g_request.getParameter('u_contract_name'); --- not working
I think the key point is Date Value. Client get_velue don't match Server site Value.
because if I remove Contract Start Date(Date) Parameter, just have Contract Name(String), the script is good.