Using Onload script not getting response when loading multiple records at a time
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
4 weeks ago
Hi All,
I am using script incude in onload client script on change request table.When loading multiple records at a time not getting response for few records(below alert is not triggering), I guess script include is not yet called.
Script I used
function onLoad() {
g_form.setSectionDisplay('post_implementationreview', false);
var change_type = g_form.getValue('type');
g_form.setDisplay('u_ready_for_review', true);
g_form.setDisplay('u_impact_assessment', true);
g_form.setDisplay('u_next_steps', true);
if (change_type == 'emergency') {
g_form.setDisplay('u_reason_for_emergency', true);
g_form.setDisplay('u_explanation_of_the_emergency', true);
g_form.setDisplay('u_reason_for_failure', false);
g_form.setDisplay('u_root_cause_performed', true);
} else if (change_type == 'standard' || change_type == 'normal') {
//alert('Standard change');
g_form.setDisplay('u_reason_for_failure', true);
g_form.setDisplay('u_reason_for_emergency', false);
g_form.setDisplay('u_explanation_of_the_emergency', false);
g_form.setDisplay('u_root_cause_performed', false);
}
var sysID = g_form.getUniqueValue();
var ga = new GlideAjax('CheckReviewTaskExists');
ga.addParam('sysparm_name', 'reviewTaskExists');
ga.addParam('sysparm_change_id', sysID);
ga.getXMLAnswer(function(response) {
alert("True " + response);
if (response == 'true') {
g_form.setMandatory('u_ready_for_review', true);
g_form.setMandatory('u_impact_assessment', true);
g_form.setMandatory('u_next_steps', true);
if (change_type == 'emergency') {
g_form.setMandatory('u_reason_for_emergency', true);
g_form.setMandatory('u_explanation_of_the_emergency', true);
g_form.setMandatory('u_root_cause_performed', true);
} else if (change_type == 'standard' || change_type == 'normal') {
g_form.setMandatory('u_reason_for_failure', true);
}
g_form.setSectionDisplay('post_implementationreview', true);
}
});
}
Please help me on this
Thanks,
Nandini
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
4 weeks ago
Hi there @nandini29
This happens because onLoad runs before the form fully loads all records, so your GlideAjax may not always finish when multiple forms load at once.
Try wrapping your GlideAjax call in a short timeout or move it inside g_form.isNewRecord() or g_form.isLoading check. Example fix:
function onLoad() {
if (g_form.isLoading()) return;
setTimeout(function() {
var sysID = g_form.getUniqueValue();
var ga = new GlideAjax('CheckReviewTaskExists');
ga.addParam('sysparm_name', 'reviewTaskExists');
ga.addParam('sysparm_change_id', sysID);
ga.getXMLAnswer(function(response) {
if (response == 'true') {
g_form.setSectionDisplay('post_implementationreview', true);
}
});
}, 500);
}
The delay ensures the form and client session are ready before your script runs
Kind Regards,
Mohamed Azarudeen Z
Developer @ KPMG
